Skip to content

Commit 29f8ba4

Browse files
committedApr 3, 2016
SecureNetworkCard. Doesn't work, don't know why
1 parent 7ebb7a4 commit 29f8ba4

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed
 

Diff for: ‎src/main/java/pcl/opensecurity/ContentRegistry.java

+7
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import pcl.opensecurity.blocks.BlockSwitchableHub;
2323
import pcl.opensecurity.client.CreativeTab;
2424
import pcl.opensecurity.drivers.RFIDReaderCardDriver;
25+
import pcl.opensecurity.drivers.SecureNetworkCardDriver;
2526
import pcl.opensecurity.entity.EntityEnergyBolt;
2627
import pcl.opensecurity.items.ItemCooldownUpgrade;
2728
import pcl.opensecurity.items.ItemDamageUpgrade;
@@ -32,6 +33,7 @@
3233
import pcl.opensecurity.items.ItemRFIDReaderCard;
3334
import pcl.opensecurity.items.ItemSecurityDoor;
3435
import pcl.opensecurity.items.ItemSecurityDoorPrivate;
36+
import pcl.opensecurity.items.ItemSecureNetworkCard;
3537
import pcl.opensecurity.tileentity.TileEntityAlarm;
3638
import pcl.opensecurity.tileentity.TileEntityCardWriter;
3739
import pcl.opensecurity.tileentity.TileEntityDataBlock;
@@ -82,6 +84,7 @@ public class ContentRegistry {
8284
public static Item securityDoor;
8385
public static Item securityDoorPrivate;
8486
public static Item rfidReaderCard;
87+
public static Item secureNetworkCard;
8588
public static Item damageUpgrade;
8689
public static Item cooldownUpgrade;
8790
public static Item energyUpgrade;
@@ -124,6 +127,10 @@ private static void registerItems() {
124127
rfidReaderCard.setCreativeTab(CreativeTab);
125128
li.cil.oc.api.Driver.add(new RFIDReaderCardDriver());
126129

130+
secureNetworkCard = new ItemSecureNetworkCard();
131+
GameRegistry.registerItem(secureNetworkCard, "opensecurity.secureNetworkCard");
132+
secureNetworkCard.setCreativeTab(CreativeTab);
133+
127134
securityDoor = new ItemSecurityDoor(SecurityDoor);
128135
GameRegistry.registerItem(securityDoor, "opensecurity.securityDoor");
129136
securityDoor.setCreativeTab(CreativeTab);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package pcl.opensecurity.drivers;
2+
3+
import li.cil.oc.api.Network;
4+
import li.cil.oc.api.driver.EnvironmentHost;
5+
import li.cil.oc.api.machine.Arguments;
6+
import li.cil.oc.api.machine.Callback;
7+
import li.cil.oc.api.machine.Context;
8+
import li.cil.oc.api.network.Component;
9+
import li.cil.oc.api.network.ComponentConnector;
10+
import li.cil.oc.api.network.Node;
11+
import li.cil.oc.api.network.Visibility;
12+
import li.cil.oc.server.component.NetworkCard;
13+
14+
public class SecureNetworkCardDriver extends NetworkCard {
15+
16+
public static EnvironmentHost container;
17+
private ComponentConnector node;
18+
19+
public SecureNetworkCardDriver(EnvironmentHost container) {
20+
super(container);
21+
this.container = container;
22+
this.setNode(Network.newNode(this, Visibility.Network)
23+
.withComponent("modem", Visibility.Neighbors)
24+
.withConnector(1)
25+
.create());
26+
}
27+
28+
@Callback(doc = "generateUUID() -- Randomises the UUID")
29+
public Object[] generateUUID(Context context, Arguments args) {
30+
if(node.tryChangeBuffer(1)) {
31+
this.node = null;
32+
this.setNode(Network.newNode(this, Visibility.Network)
33+
.withComponent("modem", Visibility.Neighbors)
34+
.withConnector(1)
35+
.create());
36+
return new Object[] { true };
37+
} else {
38+
return new Object[] { false };
39+
}
40+
}
41+
42+
@Override
43+
public EnvironmentHost host() {
44+
return this.container;
45+
}
46+
47+
@Override
48+
public Component node() {
49+
return this.node != null ? this.node : super.node();
50+
}
51+
52+
@Override
53+
protected void setNode(Node value) {
54+
if(value instanceof ComponentConnector) {
55+
this.node = (ComponentConnector) value;
56+
}
57+
super.setNode(value);
58+
}
59+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package pcl.opensecurity.items;
2+
3+
import pcl.opensecurity.ContentRegistry;
4+
import pcl.opensecurity.drivers.SecureNetworkCardDriver;
5+
import li.cil.oc.api.driver.EnvironmentAware;
6+
import li.cil.oc.api.driver.EnvironmentHost;
7+
import li.cil.oc.api.driver.item.HostAware;
8+
import li.cil.oc.api.driver.item.Slot;
9+
import li.cil.oc.api.network.Environment;
10+
import li.cil.oc.api.network.ManagedEnvironment;
11+
import net.minecraft.item.Item;
12+
import net.minecraft.item.ItemStack;
13+
import net.minecraft.nbt.NBTTagCompound;
14+
15+
public class ItemSecureNetworkCard extends Item implements HostAware, EnvironmentAware {
16+
public ItemSecureNetworkCard() {
17+
super();
18+
setUnlocalizedName("secureNetworkCard");
19+
setTextureName("opensecurity:rfidReaderCard");
20+
}
21+
22+
@Override
23+
public boolean worksWith(ItemStack stack) {
24+
return stack.getItem().equals(this);
25+
}
26+
27+
@Override
28+
public ManagedEnvironment createEnvironment(ItemStack stack, EnvironmentHost host) {
29+
return new SecureNetworkCardDriver(host);
30+
}
31+
32+
@Override
33+
public String slot(ItemStack stack) {
34+
return Slot.Card;
35+
}
36+
37+
@Override
38+
public int tier(ItemStack stack) {
39+
// TODO Auto-generated method stub
40+
return 0;
41+
}
42+
43+
@Override
44+
public NBTTagCompound dataTag(ItemStack stack) {
45+
if(!stack.hasTagCompound()) {
46+
stack.setTagCompound(new NBTTagCompound());
47+
}
48+
final NBTTagCompound nbt = stack.getTagCompound();
49+
if(!nbt.hasKey("oc:data")) {
50+
nbt.setTag("oc:data", new NBTTagCompound());
51+
}
52+
return nbt.getCompoundTag("oc:data");
53+
}
54+
55+
@Override
56+
public Class<? extends Environment> providedEnvironment(ItemStack stack) {
57+
// TODO Auto-generated method stub
58+
return SecureNetworkCardDriver.class;
59+
}
60+
61+
@Override
62+
public boolean worksWith(ItemStack stack, Class<? extends EnvironmentHost> host) {
63+
// TODO Auto-generated method stub
64+
boolean works = worksWith(stack);
65+
return works;
66+
}
67+
}

0 commit comments

Comments
 (0)
Please sign in to comment.