Skip to content

Commit de2cf03

Browse files
committedJun 12, 2016
Turned magic file systems into floppies.
1 parent 36ce592 commit de2cf03

File tree

9 files changed

+33
-154
lines changed

9 files changed

+33
-154
lines changed
 

Diff for: ‎build.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ enderio.version=1.7.10-2.3.0.424_beta
1111
forestry.version=4.2.0.47
1212
gregtech.version=5.07.07
1313
ic2.version=2.2.643-experimental
14-
oc.version=MC1.7.10-1.6.0.920-dev
14+
oc.version=MC1.7.10-1.6.0.927-dev
1515
qmunitylib.version=0.1.109
1616
tis3d.version=MC1.7.10-0.8.2.61
1717
waila.version=1.5.10_1.7.10

Diff for: ‎src/main/java/pl/asie/computronics/oc/IntegrationOpenComputers.java

+30
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import cpw.mods.fml.common.event.FMLServerStoppedEvent;
77
import cpw.mods.fml.common.registry.GameRegistry;
88
import li.cil.oc.api.Driver;
9+
import li.cil.oc.api.IMC;
910
import li.cil.oc.api.driver.EnvironmentProvider;
1011
import li.cil.oc.api.driver.Item;
12+
import li.cil.oc.api.fs.FileSystem;
1113
import net.minecraft.init.Blocks;
1214
import net.minecraft.init.Items;
1315
import net.minecraft.item.ItemStack;
@@ -71,6 +73,9 @@
7173
import pl.asie.computronics.reference.Config;
7274
import pl.asie.computronics.reference.Mods;
7375
import pl.asie.computronics.util.RecipeUtils;
76+
import pl.asie.lib.util.ColorUtils.Color;
77+
78+
import java.util.concurrent.Callable;
7479

7580
import static pl.asie.computronics.Computronics.camera;
7681
import static pl.asie.computronics.Computronics.chatBox;
@@ -162,12 +167,37 @@ public void preInit() {
162167
}
163168
}
164169

170+
private static class ReadOnlyFS implements Callable<FileSystem> {
171+
172+
private final String name;
173+
174+
ReadOnlyFS(String name) {
175+
this.name = name;
176+
}
177+
178+
@Override
179+
@Optional.Method(modid = Mods.OpenComputers)
180+
public FileSystem call() throws Exception {
181+
return li.cil.oc.api.FileSystem.asReadOnly(li.cil.oc.api.FileSystem.fromClass(Computronics.class, Mods.Computronics, "loot/" + name));
182+
}
183+
}
184+
165185
@Optional.Method(modid = Mods.OpenComputers)
166186
public void init() {
167187

168188
Driver.add(new ComputronicsBlockEnvironmentProvider());
169189
ComputronicsPathProvider.initialize();
170190

191+
if(Computronics.tapeReader != null) {
192+
li.cil.oc.api.Items.registerFloppy("tape", Color.White.ordinal(), new ReadOnlyFS("tape"));
193+
IMC.registerProgramDiskLabel("tape", "tape", "Lua 5.2", "Lua 5.3", "LuaJ");
194+
}
195+
196+
if(Config.OC_CARD_BOOM || Config.OC_BOARD_BOOM) {
197+
li.cil.oc.api.Items.registerFloppy("explode", Color.Red.ordinal(), new ReadOnlyFS("explode"));
198+
IMC.registerProgramDiskLabel("explode", "explode", "Lua 5.2", "Lua 5.3", "LuaJ");
199+
}
200+
171201
if(colorfulUpgradeHandler == null && Config.OC_UPGRADE_COLORFUL) {
172202
colorfulUpgradeHandler = new ColorfulUpgradeHandler();
173203
MinecraftForge.EVENT_BUS.register(colorfulUpgradeHandler);

Diff for: ‎src/main/java/pl/asie/computronics/oc/driver/DriverBoardBoom.java

-10
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import li.cil.oc.api.component.RackBusConnectable;
99
import li.cil.oc.api.component.RackMountable;
1010
import li.cil.oc.api.internal.Rack;
11-
import li.cil.oc.api.machine.Context;
1211
import li.cil.oc.api.network.Message;
1312
import li.cil.oc.api.network.Node;
1413
import li.cil.oc.api.network.Visibility;
@@ -138,15 +137,6 @@ public NBTTagCompound getData() {
138137

139138
@Override
140139
public void onDisconnect(final Node node) {
141-
if(node.host() instanceof Context) {
142-
// Remove our file systems when we get disconnected from a
143-
// computer.
144-
node.disconnect(oc_fs.node());
145-
} else if(node == this.node()) {
146-
// Remove the file system if we are disconnected, because in that
147-
// case this method is only called once.
148-
oc_fs.node().remove();
149-
}
150140
}
151141

152142
@Override

Diff for: ‎src/main/java/pl/asie/computronics/oc/driver/DriverCardBoom.java

+2-35
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@
44
import li.cil.oc.api.machine.Arguments;
55
import li.cil.oc.api.machine.Callback;
66
import li.cil.oc.api.machine.Context;
7-
import li.cil.oc.api.network.Component;
87
import li.cil.oc.api.network.EnvironmentHost;
98
import li.cil.oc.api.network.Message;
109
import li.cil.oc.api.network.Node;
1110
import li.cil.oc.api.network.Visibility;
1211
import net.minecraft.nbt.NBTTagCompound;
13-
import pl.asie.computronics.Computronics;
14-
import pl.asie.computronics.reference.Mods;
1512
import pl.asie.computronics.util.OCUtils;
1613
import pl.asie.computronics.util.boom.SelfDestruct;
1714

@@ -25,9 +22,6 @@ public class DriverCardBoom extends ManagedEnvironmentWithComponentConnector {
2522
public DriverCardBoom(EnvironmentHost container) {
2623
this.container = container;
2724
createNode();
28-
if(this.node() != null) {
29-
initOCFilesystem();
30-
}
3125
}
3226

3327
protected void createNode() {
@@ -36,33 +30,14 @@ protected void createNode() {
3630
create());
3731
}
3832

39-
protected li.cil.oc.api.network.ManagedEnvironment oc_fs;
40-
41-
private void initOCFilesystem() {
42-
oc_fs = li.cil.oc.api.FileSystem.asManagedEnvironment(li.cil.oc.api.FileSystem.fromClass(Computronics.class, Mods.Computronics, "lua/component/self_destruct"),
43-
"self_destruct");
44-
((Component) oc_fs.node()).setVisibility(Visibility.Neighbors);
45-
}
46-
4733
@Override
4834
public void onConnect(final Node node) {
49-
if(node.host() instanceof Context) {
50-
node.connect(oc_fs.node());
51-
}
35+
5236
}
5337

5438
@Override
5539
public void onDisconnect(final Node node) {
56-
if(node.host() instanceof Context) {
57-
// Remove our file systems when we get disconnected from a
58-
// computer.
59-
node.disconnect(oc_fs.node());
60-
} else if(node == this.node()) {
61-
setTime(-1);
62-
// Remove the file system if we are disconnected, because in that
63-
// case this method is only called once.
64-
oc_fs.node().remove();
65-
}
40+
6641
}
6742

6843
@Override
@@ -111,9 +86,6 @@ public boolean canUpdate() {
11186
@Override
11287
public void load(NBTTagCompound nbt) {
11388
super.load(nbt);
114-
if(oc_fs != null && oc_fs.node() != null) {
115-
oc_fs.node().load(nbt.getCompoundTag("oc:fs"));
116-
}
11789
if(nbt.getBoolean("ticking")) {
11890
setTime(nbt.getInteger("time"));
11991
}
@@ -122,11 +94,6 @@ public void load(NBTTagCompound nbt) {
12294
@Override
12395
public void save(NBTTagCompound nbt) {
12496
super.save(nbt);
125-
if(oc_fs != null && oc_fs.node() != null) {
126-
final NBTTagCompound fsNbt = new NBTTagCompound();
127-
oc_fs.node().save(fsNbt);
128-
nbt.setTag("oc:fs", fsNbt);
129-
}
13097
if(this.time >= 0) {
13198
nbt.setBoolean("ticking", true);
13299
nbt.setInteger("time", this.time);

Diff for: ‎src/main/java/pl/asie/computronics/tile/TileTapeDrive.java

-48
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@
1111
import li.cil.oc.api.machine.Arguments;
1212
import li.cil.oc.api.machine.Callback;
1313
import li.cil.oc.api.machine.Context;
14-
import li.cil.oc.api.network.Component;
15-
import li.cil.oc.api.network.ManagedEnvironment;
1614
import li.cil.oc.api.network.Node;
17-
import li.cil.oc.api.network.Visibility;
1815
import net.minecraft.item.Item;
1916
import net.minecraft.item.ItemStack;
2017
import net.minecraft.nbt.NBTTagCompound;
@@ -85,9 +82,6 @@ public TileTapeDrive() {
8582
super("tape_drive");
8683
this.createInventory(1);
8784
this.state = new TapeDriveState();
88-
if(Mods.isLoaded(Mods.OpenComputers) && node() != null) {
89-
initOCFilesystem();
90-
}
9185
}
9286

9387
private static Object cc_fs;
@@ -167,55 +161,21 @@ public void detach(IComputerAccess computer) {
167161
}
168162
}
169163

170-
private Object oc_fs;
171-
172-
@Optional.Method(modid = Mods.OpenComputers)
173-
protected ManagedEnvironment oc_fs() {
174-
return (ManagedEnvironment) this.oc_fs;
175-
}
176-
177-
@Optional.Method(modid = Mods.OpenComputers)
178-
private void initOCFilesystem() {
179-
oc_fs = li.cil.oc.api.FileSystem.asManagedEnvironment(li.cil.oc.api.FileSystem.fromClass(Computronics.class, Mods.Computronics, "lua/component/tape_drive"),
180-
"tape_drive");
181-
((Component) oc_fs().node()).setVisibility(Visibility.Network);
182-
}
183-
184164
@Override
185165
@Optional.Method(modid = Mods.OpenComputers)
186166
public void onConnect(final Node node) {
187167
super.onConnect(node);
188-
189-
if(node == node()) {
190-
if(oc_fs() != null) {
191-
node.connect(oc_fs().node());
192-
}
193-
}
194168
}
195169

196170
@Override
197171
@Optional.Method(modid = Mods.OpenComputers)
198172
protected void onChunkUnload_OC() {
199-
if(oc_fs() != null) {
200-
Node node = oc_fs().node();
201-
if(node != null) {
202-
node.remove();
203-
}
204-
}
205-
206173
super.onChunkUnload_OC();
207174
}
208175

209176
@Override
210177
@Optional.Method(modid = Mods.OpenComputers)
211178
protected void invalidate_OC() {
212-
if(oc_fs() != null) {
213-
Node node = oc_fs().node();
214-
if(node != null) {
215-
node.remove();
216-
}
217-
}
218-
219179
super.invalidate_OC();
220180
}
221181

@@ -511,20 +471,12 @@ public void writeToNBT(NBTTagCompound tag) {
511471
@Optional.Method(modid = Mods.OpenComputers)
512472
public void readFromNBT_OC(NBTTagCompound tag) {
513473
super.readFromNBT_OC(tag);
514-
if(oc_fs() != null && oc_fs().node() != null) {
515-
oc_fs().node().load(tag.getCompoundTag("oc:fs"));
516-
}
517474
}
518475

519476
@Override
520477
@Optional.Method(modid = Mods.OpenComputers)
521478
public void writeToNBT_OC(NBTTagCompound tag) {
522479
super.writeToNBT_OC(tag);
523-
if(oc_fs() != null && oc_fs().node() != null) {
524-
final NBTTagCompound fsNbt = new NBTTagCompound();
525-
oc_fs().node().save(fsNbt);
526-
tag.setTag("oc:fs", fsNbt);
527-
}
528480
}
529481

530482
@Override

Diff for: ‎src/main/resources/assets/computronics/lua/component/self_destruct/.autorun.lua

-30
This file was deleted.

Diff for: ‎src/main/resources/assets/computronics/lua/component/tape_drive/.autorun.lua

-30
This file was deleted.

0 commit comments

Comments
 (0)
Please sign in to comment.