diff --git a/src/main/java/malte0811/industrialWires/IndustrialWires.java b/src/main/java/malte0811/industrialWires/IndustrialWires.java index a40cb41..d092be2 100644 --- a/src/main/java/malte0811/industrialWires/IndustrialWires.java +++ b/src/main/java/malte0811/industrialWires/IndustrialWires.java @@ -129,5 +129,4 @@ public class IndustrialWires { public void postInit(FMLPostInitializationEvent e) { proxy.postInit(); } - } diff --git a/src/main/java/malte0811/industrialWires/client/ClientProxy.java b/src/main/java/malte0811/industrialWires/client/ClientProxy.java index 74bed9e..b49d1dd 100644 --- a/src/main/java/malte0811/industrialWires/client/ClientProxy.java +++ b/src/main/java/malte0811/industrialWires/client/ClientProxy.java @@ -42,6 +42,7 @@ import malte0811.industrialWires.client.panelmodel.PanelModelLoader; import malte0811.industrialWires.client.render.TileRenderJacobsLadder; import malte0811.industrialWires.controlpanel.PanelComponent; import malte0811.industrialWires.items.ItemIC2Coil; +import malte0811.industrialWires.items.ItemKey; import malte0811.industrialWires.items.ItemPanelComponent; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -118,6 +119,11 @@ public class ClientProxy extends CommonProxy { ModelBakery.registerItemVariants(IndustrialWires.panelComponent, loc); ModelLoader.setCustomModelResourceLocation(IndustrialWires.panelComponent, meta, new ModelResourceLocation(loc, "inventory")); } + for (int meta = 0; meta < ItemKey.types.length; meta++) { + ResourceLocation loc = new ResourceLocation(IndustrialWires.MODID, "key/" + ItemKey.types[meta]); + ModelBakery.registerItemVariants(IndustrialWires.key, loc); + ModelLoader.setCustomModelResourceLocation(IndustrialWires.key, meta, new ModelResourceLocation(loc, "inventory")); + } Block[] blocks = {IndustrialWires.ic2conn, IndustrialWires.mechConv, IndustrialWires.jacobsLadder, IndustrialWires.panel}; for (Block b : blocks) { diff --git a/src/main/java/malte0811/industrialWires/client/gui/GuiRenameKey.java b/src/main/java/malte0811/industrialWires/client/gui/GuiRenameKey.java index 3383b5e..9dcec22 100644 --- a/src/main/java/malte0811/industrialWires/client/gui/GuiRenameKey.java +++ b/src/main/java/malte0811/industrialWires/client/gui/GuiRenameKey.java @@ -98,11 +98,9 @@ public class GuiRenameKey extends GuiContainer { @Override public void onGuiClosed() { super.onGuiClosed(); - if (!field.getText().isEmpty()) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("name", field.getText()); IndustrialWires.packetHandler.sendToServer(new MessageItemSync(hand, nbt)); - } } } diff --git a/src/main/java/malte0811/industrialWires/crafting/RecipeKeyLock.java b/src/main/java/malte0811/industrialWires/crafting/RecipeKeyLock.java index a5fc66f..2beac08 100644 --- a/src/main/java/malte0811/industrialWires/crafting/RecipeKeyLock.java +++ b/src/main/java/malte0811/industrialWires/crafting/RecipeKeyLock.java @@ -39,14 +39,13 @@ public class RecipeKeyLock implements IRecipe { return getLockId(inv) != 0; } - @Nonnull @Override public ItemStack getCraftingResult(@Nonnull InventoryCrafting inv) { ItemStack key = getKey(inv); if (key==null) { return null; } - ItemStack ret = key.copy(); + ItemStack ret = new ItemStack(IndustrialWires.key, 1, 1); ItemKey.setId(ret, getLockId(inv)); return ret; } @@ -59,7 +58,7 @@ public class RecipeKeyLock implements IRecipe { @Nonnull @Override public ItemStack getRecipeOutput() { - return new ItemStack(IndustrialWires.key); + return new ItemStack(IndustrialWires.key, 1, 1); } @Nonnull diff --git a/src/main/java/malte0811/industrialWires/items/ItemIC2Coil.java b/src/main/java/malte0811/industrialWires/items/ItemIC2Coil.java index 073d88e..2a112ab 100644 --- a/src/main/java/malte0811/industrialWires/items/ItemIC2Coil.java +++ b/src/main/java/malte0811/industrialWires/items/ItemIC2Coil.java @@ -64,7 +64,7 @@ public class ItemIC2Coil extends Item implements IWireCoil { setHasSubtypes(true); this.setCreativeTab(IndustrialWires.creativeTab); setMaxStackSize(64); - setRegistryName(new ResourceLocation(IndustrialWires.MODID, "ic2WireCoil")); + setRegistryName(new ResourceLocation(IndustrialWires.MODID, "ic2_wire_coil")); GameRegistry.register(this); } diff --git a/src/main/java/malte0811/industrialWires/items/ItemKey.java b/src/main/java/malte0811/industrialWires/items/ItemKey.java index 59a02eb..efd6ce8 100644 --- a/src/main/java/malte0811/industrialWires/items/ItemKey.java +++ b/src/main/java/malte0811/industrialWires/items/ItemKey.java @@ -25,6 +25,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagInt; +import net.minecraft.nbt.NBTTagString; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; @@ -37,6 +38,7 @@ import javax.annotation.Nullable; public class ItemKey extends Item implements INetGUIItem { private static final String lockId = "lockId"; + public static final String[] types = {"blank_key", "key"}; public ItemKey() { setUnlocalizedName(IndustrialWires.MODID + ".key"); @@ -72,7 +74,7 @@ public class ItemKey extends Item implements INetGUIItem { } public static int idForKey(@Nullable ItemStack held) { - if (held==null||held.getItem()!=IndustrialWires.key) { + if (held==null||held.getItem()!=IndustrialWires.key||held.getMetadata()==0) { return 0; } NBTTagCompound nbt = held.getTagCompound(); @@ -90,7 +92,8 @@ public class ItemKey extends Item implements INetGUIItem { @Nonnull @Override public ActionResult onItemRightClick(@Nonnull ItemStack stack, World worldIn, EntityPlayer playerIn, @Nonnull EnumHand hand) { - if (!worldIn.isRemote&&idForKey(playerIn.getHeldItem(hand))!=0) { + ItemStack held = playerIn.getHeldItem(hand); + if (!worldIn.isRemote&&idForKey(held)!=0) { playerIn.openGui(IndustrialWires.MODID, 1, worldIn, 0, 0, hand == EnumHand.MAIN_HAND ? 1 : 0); } return new ActionResult<>(EnumActionResult.SUCCESS, stack); @@ -99,6 +102,14 @@ public class ItemKey extends Item implements INetGUIItem { @Override public void onChange(NBTTagCompound nbt, EntityPlayer p, EnumHand hand) { ItemStack held = p.getHeldItem(hand); - held.setTagInfo("name", nbt.getTag("name")); + String name = nbt.getString("name"); + if (!name.trim().isEmpty()) { + held.setTagInfo("name", new NBTTagString(name)); + } else { + NBTTagCompound heldNBT = held.getTagCompound(); + if (heldNBT!=null) { + heldNBT.removeTag("name"); + } + } } } diff --git a/src/main/resources/assets/industrialwires/models/item/key/blank_key.json b/src/main/resources/assets/industrialwires/models/item/key/blank_key.json new file mode 100644 index 0000000..574b05c --- /dev/null +++ b/src/main/resources/assets/industrialwires/models/item/key/blank_key.json @@ -0,0 +1,6 @@ +{ + "parent":"item/generated", + "textures": { + "layer0":"industrialwires:items/blank_key" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/industrialwires/models/item/key/key.json b/src/main/resources/assets/industrialwires/models/item/key/key.json new file mode 100644 index 0000000..de8105a --- /dev/null +++ b/src/main/resources/assets/industrialwires/models/item/key/key.json @@ -0,0 +1,6 @@ +{ + "parent":"item/generated", + "textures": { + "layer0":"industrialwires:items/key" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/industrialwires/models/item/panel_component/lock.json b/src/main/resources/assets/industrialwires/models/item/panel_component/lock.json new file mode 100644 index 0000000..5b8d4f1 --- /dev/null +++ b/src/main/resources/assets/industrialwires/models/item/panel_component/lock.json @@ -0,0 +1,6 @@ +{ + "parent":"item/generated", + "textures": { + "layer0":"industrialwires:items/lock_switch" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/industrialwires/textures/items/blank_key.png b/src/main/resources/assets/industrialwires/textures/items/blank_key.png new file mode 100644 index 0000000..bdd4eca Binary files /dev/null and b/src/main/resources/assets/industrialwires/textures/items/blank_key.png differ diff --git a/src/main/resources/assets/industrialwires/textures/items/key.png b/src/main/resources/assets/industrialwires/textures/items/key.png new file mode 100644 index 0000000..4ca8482 Binary files /dev/null and b/src/main/resources/assets/industrialwires/textures/items/key.png differ diff --git a/src/main/resources/assets/industrialwires/textures/items/lock_switch.png b/src/main/resources/assets/industrialwires/textures/items/lock_switch.png new file mode 100644 index 0000000..709f04a Binary files /dev/null and b/src/main/resources/assets/industrialwires/textures/items/lock_switch.png differ