diff --git a/common/mrtjp/projectred/ProjectRedCore.java b/common/mrtjp/projectred/ProjectRedCore.java index 207412ff5..587d0a4b6 100755 --- a/common/mrtjp/projectred/ProjectRedCore.java +++ b/common/mrtjp/projectred/ProjectRedCore.java @@ -1,7 +1,8 @@ package mrtjp.projectred; -import mrtjp.projectred.api.APIImpl; +import codechicken.lib.packet.PacketCustom.CustomTinyPacketHandler; import mrtjp.projectred.api.ProjectRedAPI; +import mrtjp.projectred.core.APIImpl; import mrtjp.projectred.core.BlockBasics; import mrtjp.projectred.core.CommandDebug; import mrtjp.projectred.core.Configurator; @@ -40,7 +41,7 @@ "after:CCTurtle;" + "after:ComputerCraft;" ) -@NetworkMod(clientSideRequired = true, serverSideRequired = true) +@NetworkMod(clientSideRequired = true, serverSideRequired = true, tinyPacketHandler = CustomTinyPacketHandler.class) public class ProjectRedCore { public ProjectRedCore() { @@ -63,15 +64,6 @@ public ProjectRedCore() { @SidedProxy(clientSide = "mrtjp.projectred.core.CoreClientProxy", serverSide = "mrtjp.projectred.core.CoreProxy") public static IProxy proxy; - static { - LanguageRegistry.instance().addStringLocalization("itemGroup.core", "en_US", "Project Red: Core"); - LanguageRegistry.instance().addStringLocalization("itemGroup.trans", "en_US", "Project Red: Transmission"); - LanguageRegistry.instance().addStringLocalization("itemGroup.int", "en_US", "Project Red: Integration"); - LanguageRegistry.instance().addStringLocalization("itemGroup.ill", "en_US", "Project Red: Illumination"); - LanguageRegistry.instance().addStringLocalization("itemGroup.expansion", "en_US", "Project Red: Expansion"); - LanguageRegistry.instance().addStringLocalization("itemGroup.exploration", "en_US", "Project Red: Exploration"); - } - public static CreativeTabs tabCore = new CreativeTabs("core") { @Override public ItemStack getIconItemStack() { diff --git a/common/mrtjp/projectred/api/APIImpl.java b/common/mrtjp/projectred/core/APIImpl.java similarity index 90% rename from common/mrtjp/projectred/api/APIImpl.java rename to common/mrtjp/projectred/core/APIImpl.java index 83ab226f4..de552f456 100644 --- a/common/mrtjp/projectred/api/APIImpl.java +++ b/common/mrtjp/projectred/core/APIImpl.java @@ -1,9 +1,12 @@ -package mrtjp.projectred.api; +package mrtjp.projectred.core; import codechicken.lib.vec.BlockCoord; import codechicken.lib.vec.Rotation; import codechicken.multipart.TMultiPart; import codechicken.multipart.TileMultipart; +import mrtjp.projectred.api.IBundledEmitter; +import mrtjp.projectred.api.IBundledTile; +import mrtjp.projectred.api.ProjectRedAPI; import mrtjp.projectred.transmission.BundledCableCommons; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; diff --git a/common/mrtjp/projectred/core/BasicRenderUtils.java b/common/mrtjp/projectred/core/BasicRenderUtils.java index f2459da65..ef00e5f9e 100755 --- a/common/mrtjp/projectred/core/BasicRenderUtils.java +++ b/common/mrtjp/projectred/core/BasicRenderUtils.java @@ -43,45 +43,4 @@ public static void setFullBrightness() { public static void setFullColor() { Tessellator.instance.setColorRGBA(255, 255, 255, 255); } - - static EntityItem entityItem; - static RenderItem uniformRenderItem = new RenderItem() { - @Override - public boolean shouldBob() { - return false; - } - }; - - static { - uniformRenderItem.setRenderManager(RenderManager.instance); - entityItem = new EntityItem(null); - entityItem.hoverStart = 0; - } - - public static void renderItemUniform(ItemStack item) { - IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(item, ENTITY); - boolean is3D = customRenderer != null && customRenderer.shouldUseRenderHelper(ENTITY, item, BLOCK_3D); - - boolean larger = false; - if (item.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.blocksList[item.itemID].getRenderType())) { - int renderType = Block.blocksList[item.itemID].getRenderType(); - larger = !(renderType == 1 || renderType == 19 || renderType == 12 || renderType == 2); - } else if (is3D) { - larger = true; - } - - double d = 2; - double d1 = 1 / d; - if (larger) - GL11.glScaled(d, d, d); - - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - entityItem.setEntityItemStack(item); - uniformRenderItem.doRenderItem(entityItem, 0, larger ? 0.09 : 0.06, 0, 0, 0); - - if (larger) - GL11.glScaled(d1, d1, d1); - } - } \ No newline at end of file diff --git a/common/mrtjp/projectred/core/BlockBasics.java b/common/mrtjp/projectred/core/BlockBasics.java index 094e684d2..0154d0eba 100644 --- a/common/mrtjp/projectred/core/BlockBasics.java +++ b/common/mrtjp/projectred/core/BlockBasics.java @@ -25,6 +25,7 @@ public class BlockBasics extends BlockContainer { public BlockBasics(int id) { super(id, new Material(Material.iron.materialMapColor)); setCreativeTab(ProjectRedExpansion.tabExpansion); + this.setUnlocalizedName("projectred.core.appliance"); setHardness(0.75f); } diff --git a/common/mrtjp/projectred/core/Configurator.java b/common/mrtjp/projectred/core/Configurator.java index c034e7087..265cca037 100755 --- a/common/mrtjp/projectred/core/Configurator.java +++ b/common/mrtjp/projectred/core/Configurator.java @@ -17,11 +17,6 @@ public class Configurator { public static final String buildnumber = "@BUILD_NUMBER@"; public static final String modName = "Project: Red"; - public static final String corePacketChannel = "PR:Core"; - public static final String integrationPacketChannel = "PR:Int"; - public static final String transmissionPacketChannel = "PR:Trans"; - public static final String expansionPacketChannel = "PR:Expan"; - /** Multipart IDs **/ public static Property part_gate; public static Property part_wire; diff --git a/common/mrtjp/projectred/core/CoreCPH.java b/common/mrtjp/projectred/core/CoreCPH.java index 8e0d7a95d..350247bb2 100644 --- a/common/mrtjp/projectred/core/CoreCPH.java +++ b/common/mrtjp/projectred/core/CoreCPH.java @@ -1,5 +1,6 @@ package mrtjp.projectred.core; +import mrtjp.projectred.ProjectRedCore; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.NetClientHandler; import net.minecraft.entity.player.EntityPlayer; @@ -8,7 +9,8 @@ import codechicken.lib.packet.PacketCustom.IClientPacketHandler; public class CoreCPH implements IClientPacketHandler { - + public static Object channel = ProjectRedCore.instance; + @Override public void handlePacket(PacketCustom packet, NetClientHandler nethandler, Minecraft mc) { EntityPlayer player = mc.thePlayer; @@ -17,6 +19,7 @@ public void handlePacket(PacketCustom packet, NetClientHandler nethandler, Minec switch (packet.getType()) { case CoreProxy.messengerQueue: Messenger.addMessage(packet.readDouble(), packet.readDouble(), packet.readDouble(), packet.readString()); + return; case CoreProxy.alloySmelterWatcherUpdate: TileAlloySmelter t = BasicUtils.getTileEntity(world, packet.readCoord(), TileAlloySmelter.class); if (t != null) { diff --git a/common/mrtjp/projectred/core/CoreClientProxy.java b/common/mrtjp/projectred/core/CoreClientProxy.java index 389920234..f64e05860 100644 --- a/common/mrtjp/projectred/core/CoreClientProxy.java +++ b/common/mrtjp/projectred/core/CoreClientProxy.java @@ -17,19 +17,7 @@ public class CoreClientProxy extends CoreProxy { @Override public void init() { super.init(); - for (EnumPart part : EnumPart.VALID_PARTS) { - LanguageRegistry.addName(new ItemStack(itemComponent, 1, part.meta), part.fullName); - } - - for (EnumBasics m : EnumBasics.VALID_MACHINES) { - LanguageRegistry.addName(new ItemStack(blockMachines, 1, m.meta), m.fullname); - } - - LanguageRegistry.addName(itemDrawPlate, "Draw Plate"); - LanguageRegistry.addName(itemScrewdriver, "Screwdriver"); - LanguageRegistry.addName(new ItemStack(itemWireDebugger, 1, 0), "Wire debugger"); - MinecraftForge.EVENT_BUS.register(new Messenger()); - PacketCustom.assignHandler(Configurator.corePacketChannel, 1, 32, new CoreCPH()); + PacketCustom.assignHandler(CoreCPH.channel, new CoreCPH()); } } diff --git a/common/mrtjp/projectred/core/ItemBlockBasics.java b/common/mrtjp/projectred/core/ItemBlockBasics.java index 9d7157e02..e64914156 100644 --- a/common/mrtjp/projectred/core/ItemBlockBasics.java +++ b/common/mrtjp/projectred/core/ItemBlockBasics.java @@ -30,7 +30,7 @@ public int getMetadata(int md) { */ @Override public String getUnlocalizedName(ItemStack itemstack) { - return EnumBasics.get(itemstack.getItemDamage()).unlocalname; + return getUnlocalizedName()+"."+EnumBasics.get(itemstack.getItemDamage()).unlocalname; } } diff --git a/common/mrtjp/projectred/core/ItemPart.java b/common/mrtjp/projectred/core/ItemPart.java index f35ff56a8..fd06eee54 100644 --- a/common/mrtjp/projectred/core/ItemPart.java +++ b/common/mrtjp/projectred/core/ItemPart.java @@ -18,6 +18,7 @@ public class ItemPart extends Item { public ItemPart(int par1) { super(par1); + setUnlocalizedName("projectred.core.part"); setCreativeTab(ProjectRedCore.tabCore); setHasSubtypes(true); } @@ -40,7 +41,7 @@ public void getSubItems(int id, CreativeTabs tab, List list) { */ @Override public String getUnlocalizedName(ItemStack itemstack) { - return EnumPart.get(itemstack.getItemDamage()).unlocalName; + return getUnlocalizedName()+"."+EnumPart.get(itemstack.getItemDamage()).unlocalName; } @Override diff --git a/common/mrtjp/projectred/core/PRColors.java b/common/mrtjp/projectred/core/PRColors.java index 8da85d9b5..f463134a0 100644 --- a/common/mrtjp/projectred/core/PRColors.java +++ b/common/mrtjp/projectred/core/PRColors.java @@ -1,22 +1,22 @@ package mrtjp.projectred.core; public enum PRColors { - WHITE("White", 1.0F, 1.0F, 1.0F, 0xFFFFFF), - ORANGE("Orange", 0.95F, 0.7F, 0.2F, 0xFFA100), - MAGENTA("Magenta", 0.9F, 0.5F, 0.85F, 0xFF00FF), - LIGHT_BLUE("Light Blue", 0.6F, 0.7F, 0.95F, 0xAEAEFF), - YELLOW("Yellow", 0.9F, 0.9F, 0.2F, 0xFFFF00), - LIME("Lime", 0.5F, 0.8F, 0.1F, 0xA1FF63), - PINK("Pink", 0.95F, 0.7F, 0.8F, 0xFFB9B9), - GREY("Grey", 0.3F, 0.3F, 0.3F, 0x9D9D9D), - LIGHT_GREY("Light Grey", 0.6F, 0.6F, 0.6F, 0xCBCBCB), - CYAN("Cyan", 0.3F, 0.6F, 0.7F, 0x00FFFF), - PURPLE("Purple", 0.7F, 0.4F, 0.9F, 0xAE00FF), - BLUE("Blue", 0.2F, 0.4F, 0.8F, 0x0000FF), - BROWN("Brown", 0.5F, 0.4F, 0.3F, 0xA55A00), - GREEN("Green", 0.2F, 0.8F, 0.2F, 0x00A600), - RED("Red", 0.8F, 0.3F, 0.3F, 0xFF0000), - BLACK("Black", 0.1F, 0.1F, 0.1F, 0x3B3B3B), + WHITE("White", 1.0F, 1.0F, 1.0F, 16777215), + ORANGE("Orange", 0.95F, 0.7F, 0.2F, 12608256), + MAGENTA("Magenta", 0.9F, 0.5F, 0.85F, 11868853), + LIGHT_BLUE("Light Blue", 0.6F, 0.7F, 0.95F, 7308529), + YELLOW("Yellow", 0.9F, 0.9F, 0.2F, 12566272), + LIME("Lime", 0.5F, 0.8F, 0.1F, 7074048), + PINK("Pink", 0.95F, 0.7F, 0.8F, 15812213), + GREY("Grey", 0.3F, 0.3F, 0.3F, 5460819), + LIGHT_GREY("Light Grey", 0.6F, 0.6F, 0.6F, 9671571), + CYAN("Cyan", 0.3F, 0.6F, 0.7F, 34695), + PURPLE("Purple", 0.7F, 0.4F, 0.9F, 6160576), + BLUE("Blue", 0.2F, 0.4F, 0.8F, 1250240), + BROWN("Brown", 0.5F, 0.4F, 0.3F, 5187328), + GREEN("Green", 0.2F, 0.8F, 0.2F, 558848), + RED("Red", 0.8F, 0.3F, 0.3F, 10620678), + BLACK("Black", 0.1F, 0.1F, 0.1F, 2039583), ; diff --git a/common/mrtjp/projectred/core/TileAlloySmelter.java b/common/mrtjp/projectred/core/TileAlloySmelter.java index d97c4a176..6962816d6 100644 --- a/common/mrtjp/projectred/core/TileAlloySmelter.java +++ b/common/mrtjp/projectred/core/TileAlloySmelter.java @@ -285,7 +285,7 @@ public void updateWatchers() { if (BasicUtils.isClient(worldObj)) { return; } - PacketCustom packet = new PacketCustom(Configurator.expansionPacketChannel, CoreProxy.alloySmelterWatcherUpdate); + PacketCustom packet = new PacketCustom(CoreCPH.channel, CoreProxy.alloySmelterWatcherUpdate); packet.writeCoord(xCoord, yCoord, zCoord); packet.writeShort(heat); packet.writeShort(progress); diff --git a/common/mrtjp/projectred/expansion/ExpansionClientProxy.java b/common/mrtjp/projectred/expansion/ExpansionClientProxy.java index 070ef2447..d61dd8707 100644 --- a/common/mrtjp/projectred/expansion/ExpansionClientProxy.java +++ b/common/mrtjp/projectred/expansion/ExpansionClientProxy.java @@ -10,11 +10,6 @@ public class ExpansionClientProxy extends ExpansionProxy { @Override public void init() { super.init(); - LanguageRegistry.addName(new ItemStack(itemVAWT, 1, 0), "Vertical-Axis Wind Turbine"); - - for (EnumTube t : EnumTube.VALID_TUBE) { - LanguageRegistry.addName(new ItemStack(itemPartTube, 1, t.meta), t.name); - } } @Override diff --git a/common/mrtjp/projectred/expansion/ItemVAWT.java b/common/mrtjp/projectred/expansion/ItemVAWT.java index fb5a6b2f4..adb307137 100644 --- a/common/mrtjp/projectred/expansion/ItemVAWT.java +++ b/common/mrtjp/projectred/expansion/ItemVAWT.java @@ -19,7 +19,7 @@ public ItemVAWT(int id) { maxStackSize = 1; setMaxDamage(1280); setNoRepair(); - setUnlocalizedName("projectred.items.turbine.VAWT"); + setUnlocalizedName("projectred.expansion.VAWT"); setCreativeTab(ProjectRedExpansion.tabExpansion); } diff --git a/common/mrtjp/projectred/exploration/BlockOre.java b/common/mrtjp/projectred/exploration/BlockOre.java index 61dc304a9..78288228b 100644 --- a/common/mrtjp/projectred/exploration/BlockOre.java +++ b/common/mrtjp/projectred/exploration/BlockOre.java @@ -32,16 +32,17 @@ public ArrayList getBlockDropped(World world, int x, int y, int z, in int max = type.maxDrop; if (min == max) { - ret.add(type.getDropStack(max)); + if (type.drop != null) + ret.add(type.getDropStack(max)); + else + ret.add(type.getItemStack(max)); return ret; } int count = world.rand.nextInt(fortune + max); - if (count > max) { + if (count > max) count = max; - } - if (count < min) { + if (count < min) count = min; - } dropXpOnBlockBreak(world, x, y, z, MathHelper.getRandomIntegerInRange(world.rand, type.minXP, type.maxXP)); ret.add(type.getDropStack(count)); return ret; @@ -59,6 +60,10 @@ public void registerIcons(IconRegister reg) { } } + @Override + public int damageDropped(int meta) { + return meta; + } public enum EnumOre { ORERUBY("Ruby Ore", "oreruby", 2, EnumPart.RUBY.getItemStack(), 1, 4, 1, 8), diff --git a/common/mrtjp/projectred/exploration/BlockSpecialStone.java b/common/mrtjp/projectred/exploration/BlockSpecialStone.java index 2d09a4044..86cca7a1a 100644 --- a/common/mrtjp/projectred/exploration/BlockSpecialStone.java +++ b/common/mrtjp/projectred/exploration/BlockSpecialStone.java @@ -48,17 +48,24 @@ public ArrayList getBlockDropped(World world, int x, int y, int z, in @Override public void registerIcons(IconRegister reg) { - for (EnumSpecialStone s : EnumSpecialStone.VALID_STONE) { + for (EnumSpecialStone s : EnumSpecialStone.VALID_STONE) s.loadTextures(reg); - } + } + + @Override + public int damageDropped(int meta) { + return meta; } public enum EnumSpecialStone { - MARBLE("Marble", "stonemarble", 1, 6), - MARBLEBRICK("Marble Brick", "brickmarble", 1, 6), - BASALTCOBBLE("Basalt Cobblestone", "cobblebasalt", 2.5f, 16), + MARBLE("Marble", "stonemarble", 1, 6, null), + MARBLEBRICK("Marble Brick", "brickmarble", 1, 6, null), + BASALTCOBBLE("Basalt Cobblestone", "cobblebasalt", 2.5f, 16, null), BASALT("Basalt", "stonebasalt", 2.5f, 8, BASALTCOBBLE.getItemStack()), - BASALTBRICK("Basalt Brick", "brickbasalt", 2.5f, 8), + BASALTBRICK("Basalt Brick", "brickbasalt", 2.5f, 8, null), + RUBYBLOCK("Ruby Block", "storageruby", 5.0F, 10.0F, null), + SAPPHIREBLOCK("Sapphire Block", "storagesapphire", 5.0F, 10.0F, null), + PERIDOTBLOCK("Peridot Block", "storageperidot", 5.0F, 10.0F, null), ; public final String name; @@ -70,10 +77,6 @@ public enum EnumSpecialStone { public Icon texture; public static EnumSpecialStone[] VALID_STONE = values(); - private EnumSpecialStone(String name, String unlocal, float hardness, float explosionRes) { - this(name, unlocal, hardness, explosionRes, null); - } - private EnumSpecialStone(String name, String unlocal, float hardness, float explosionRes, ItemStack drop) { this.name = name; this.unlocal = unlocal; @@ -91,7 +94,7 @@ public ItemStack getItemStack() { } public ItemStack getItemStack(int i) { - return new ItemStack(ProjectRedExploration.blockStones, 1, meta); + return new ItemStack(ProjectRedExploration.blockStones, i, meta); } } } diff --git a/common/mrtjp/projectred/exploration/ExplorationClientProxy.java b/common/mrtjp/projectred/exploration/ExplorationClientProxy.java index b137a7304..f91dc01bf 100644 --- a/common/mrtjp/projectred/exploration/ExplorationClientProxy.java +++ b/common/mrtjp/projectred/exploration/ExplorationClientProxy.java @@ -44,52 +44,6 @@ public class ExplorationClientProxy extends ExplorationProxy { @Override public void init() { super.init(); - LanguageRegistry.addName(itemWoolGin, "Wool Gin"); - - for (EnumOre o : EnumOre.VALID_ORES) { - LanguageRegistry.addName(o.getItemStack(1), o.name); - } - - for (EnumSpecialStone s : EnumSpecialStone.VALID_STONE) { - LanguageRegistry.addName(s.getItemStack(), s.name); - } - - for (EnumBackpack b : EnumBackpack.VALID_BP) { - LanguageRegistry.addName(b.getItemStack(), b.fullname); - } - - LanguageRegistry.addName(itemRubyAxe, itemRubyAxe.tool.name); - LanguageRegistry.addName(itemSapphireAxe, itemSapphireAxe.tool.name); - LanguageRegistry.addName(itemPeridotAxe, itemPeridotAxe.tool.name); - LanguageRegistry.addName(itemRubyHoe, itemRubyHoe.tool.name); - LanguageRegistry.addName(itemSapphireHoe, itemSapphireHoe.tool.name); - LanguageRegistry.addName(itemPeridotHoe, itemPeridotHoe.tool.name); - LanguageRegistry.addName(itemRubyPickaxe, itemRubyPickaxe.tool.name); - LanguageRegistry.addName(itemSapphirePickaxe, itemSapphirePickaxe.tool.name); - LanguageRegistry.addName(itemPeridotPickaxe, itemPeridotPickaxe.tool.name); - LanguageRegistry.addName(itemRubyShovel, itemRubyShovel.tool.name); - LanguageRegistry.addName(itemSapphireShovel, itemSapphireShovel.tool.name); - LanguageRegistry.addName(itemPeridotShovel, itemPeridotShovel.tool.name); - LanguageRegistry.addName(itemRubySword, itemRubySword.tool.name); - LanguageRegistry.addName(itemSapphireSword, itemSapphireSword.tool.name); - LanguageRegistry.addName(itemPeridotSword, itemPeridotSword.tool.name); - LanguageRegistry.addName(itemWoodSaw, itemWoodSaw.tool.name); - LanguageRegistry.addName(itemStoneSaw, itemStoneSaw.tool.name); - LanguageRegistry.addName(itemIronSaw, itemIronSaw.tool.name); - LanguageRegistry.addName(itemGoldSaw, itemGoldSaw.tool.name); - LanguageRegistry.addName(itemRubySaw, itemRubySaw.tool.name); - LanguageRegistry.addName(itemSapphireSaw, itemSapphireSaw.tool.name); - LanguageRegistry.addName(itemPeridotSaw, itemPeridotSaw.tool.name); - LanguageRegistry.addName(itemDiamondSaw, itemDiamondSaw.tool.name); - LanguageRegistry.addName(itemWoodSickle, itemWoodSickle.tool.name); - LanguageRegistry.addName(itemStoneSickle, itemStoneSickle.tool.name); - LanguageRegistry.addName(itemIronSickle, itemIronSickle.tool.name); - LanguageRegistry.addName(itemGoldSickle, itemGoldSickle.tool.name); - LanguageRegistry.addName(itemRubySickle, itemRubySickle.tool.name); - LanguageRegistry.addName(itemSapphireSickle, itemSapphireSickle.tool.name); - LanguageRegistry.addName(itemPeridotSickle, itemPeridotSickle.tool.name); - LanguageRegistry.addName(itemDiamondSickle, itemDiamondSickle.tool.name); - MinecraftForgeClient.registerItemRenderer(itemWoodSaw.itemID, GemSawItemRenderer.instance); MinecraftForgeClient.registerItemRenderer(itemStoneSaw.itemID, GemSawItemRenderer.instance); MinecraftForgeClient.registerItemRenderer(itemIronSaw.itemID, GemSawItemRenderer.instance); diff --git a/common/mrtjp/projectred/exploration/ExplorationRecipes.java b/common/mrtjp/projectred/exploration/ExplorationRecipes.java index 094c2e2de..2e86d608e 100644 --- a/common/mrtjp/projectred/exploration/ExplorationRecipes.java +++ b/common/mrtjp/projectred/exploration/ExplorationRecipes.java @@ -181,6 +181,35 @@ private static void initWorldRecipes() { ); /** Basalt **/ FurnaceRecipes.smelting().addSmelting(ProjectRedExploration.blockStones.blockID, EnumSpecialStone.BASALTCOBBLE.meta, EnumSpecialStone.BASALT.getItemStack(), 0); + + /** Ruby block **/ + GameRegistry.addRecipe(EnumSpecialStone.RUBYBLOCK.getItemStack(), + "xxx", + "xxx", + "xxx", + 'x', EnumPart.RUBY.getItemStack() + ); + /** Sapphire block **/ + GameRegistry.addRecipe(EnumSpecialStone.SAPPHIREBLOCK.getItemStack(), + "xxx", + "xxx", + "xxx", + 'x', EnumPart.SAPPHIRE.getItemStack() + ); + /** Peridot block **/ + GameRegistry.addRecipe(EnumSpecialStone.PERIDOTBLOCK.getItemStack(), + "xxx", + "xxx", + "xxx", + 'x', EnumPart.PERIDOT.getItemStack() + ); + + /** Ruby **/ + GameRegistry.addShapelessRecipe(EnumPart.RUBY.getItemStack(9), EnumSpecialStone.RUBYBLOCK.getItemStack()); + /** Sapphire **/ + GameRegistry.addShapelessRecipe(EnumPart.SAPPHIRE.getItemStack(9), EnumSpecialStone.SAPPHIREBLOCK.getItemStack()); + /** Peridot **/ + GameRegistry.addShapelessRecipe(EnumPart.PERIDOT.getItemStack(9), EnumSpecialStone.PERIDOTBLOCK.getItemStack()); } diff --git a/common/mrtjp/projectred/exploration/ItemBackpack.java b/common/mrtjp/projectred/exploration/ItemBackpack.java index d209df484..d10ec6aea 100644 --- a/common/mrtjp/projectred/exploration/ItemBackpack.java +++ b/common/mrtjp/projectred/exploration/ItemBackpack.java @@ -27,7 +27,7 @@ public ItemBackpack(int par1) { super(par1); hasSubtypes = true; maxStackSize = 1; - setUnlocalizedName("projectred.items.backpack"); + setUnlocalizedName("projectred.exploration.backpack"); setCreativeTab(ProjectRedExploration.tabExploration); } @@ -94,7 +94,7 @@ public void getSubItems(int id, CreativeTabs tab, List list) { @Override public String getUnlocalizedName(ItemStack itemstack) { - return EnumBackpack.get(itemstack.getItemDamage()).unlocalname; + return this.getUnlocalizedName()+"."+EnumBackpack.get(itemstack.getItemDamage()).unlocalname; } @Override diff --git a/common/mrtjp/projectred/illumination/ILight.java b/common/mrtjp/projectred/illumination/ILight.java new file mode 100644 index 000000000..3907de021 --- /dev/null +++ b/common/mrtjp/projectred/illumination/ILight.java @@ -0,0 +1,5 @@ +package mrtjp.projectred.illumination; + +public interface ILight { + public boolean isOn(); +} diff --git a/common/mrtjp/projectred/illumination/IlluminationClientProxy.java b/common/mrtjp/projectred/illumination/IlluminationClientProxy.java index 64d2d0c60..d319ca7fd 100644 --- a/common/mrtjp/projectred/illumination/IlluminationClientProxy.java +++ b/common/mrtjp/projectred/illumination/IlluminationClientProxy.java @@ -14,14 +14,6 @@ public void init() { MinecraftForgeClient.registerItemRenderer(ProjectRedIllumination.itemPartInvLantern.itemID, LanternRenderer.instance); MinecraftForgeClient.registerItemRenderer(ProjectRedIllumination.itemPartLamp.itemID, LampRenderer.instance); MinecraftForgeClient.registerItemRenderer(ProjectRedIllumination.itemPartInvLamp.itemID, LampRenderer.instance); - for (EnumLantern e : EnumLantern.values()) { - LanguageRegistry.addName(e.getItemStack(), e.fullName); - LanguageRegistry.addName(e.getInvertedItemStack(), "Inverted " + e.fullName); - } - for (EnumLamp e : EnumLamp.values()) { - LanguageRegistry.addName(e.getItemStack(), e.fullName); - LanguageRegistry.addName(e.getInvertedItemStack(), "Inverted " + e.fullName); - } MinecraftForge.EVENT_BUS.register(LastEventBasedHaloRenderer.instance); } diff --git a/common/mrtjp/projectred/illumination/LampPart.java b/common/mrtjp/projectred/illumination/LampPart.java index 7bdc58bd5..ddf72fb63 100644 --- a/common/mrtjp/projectred/illumination/LampPart.java +++ b/common/mrtjp/projectred/illumination/LampPart.java @@ -24,7 +24,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class LampPart extends JCuboidPart implements TFacePart, JNormalOcclusion, IRedstonePart { +public class LampPart extends JCuboidPart implements TFacePart, JNormalOcclusion, IRedstonePart, ILight { EnumLamp type; private boolean isInverted; @@ -130,7 +130,8 @@ public int getLightValue() { @Override @SideOnly(Side.CLIENT) public void renderStatic(Vector3 pos, LazyLightMatrix olm, int pass) { - LampRenderer.instance.renderLamp(this, null); + if (pass == 0) + LampRenderer.instance.renderLamp(this, null); } @Override @@ -160,7 +161,7 @@ public ItemStack pickItem(MovingObjectPosition hit) { @Override public Cuboid6 getBounds() { - return new Cuboid6(0, 0, 0, 1, 1, 1); + return Cuboid6.full; } @Override @@ -170,7 +171,7 @@ public boolean occlusionTest(TMultiPart npart) { @Override public int getSlotMask() { - return 1 << PartMap.CENTER.i | 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3 | 1 << 4 | 1 << 5; + return 1 << 6 | 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3 | 1 << 4 | 1 << 5; } @Override @@ -195,12 +196,17 @@ public int weakPowerLevel(int s) { @Override public int redstoneConductionMap() { - return 1 << PartMap.CENTER.i | 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3 | 1 << 4 | 1 << 5; + return 1 << 6 | 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3 | 1 << 4 | 1 << 5; } @Override public boolean solid(int arg0) { - return true; - } + return true; + } + + @Override + public boolean isOn() { + return getLightValue() == 15; + } } diff --git a/common/mrtjp/projectred/illumination/LampRenderer.java b/common/mrtjp/projectred/illumination/LampRenderer.java index 6cb7cba37..d244d878f 100644 --- a/common/mrtjp/projectred/illumination/LampRenderer.java +++ b/common/mrtjp/projectred/illumination/LampRenderer.java @@ -5,15 +5,11 @@ import mrtjp.projectred.ProjectRedIllumination; import mrtjp.projectred.core.BasicRenderUtils; import mrtjp.projectred.core.InvertX; -import mrtjp.projectred.core.PRColors; -import mrtjp.projectred.illumination.LastEventBasedHaloRenderer.HaloObject; import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; @@ -22,91 +18,40 @@ import codechicken.lib.render.CCRenderState; import codechicken.lib.render.IUVTransformation; import codechicken.lib.render.IconTransformation; +import codechicken.lib.render.RenderUtils; import codechicken.lib.render.TextureUtils; +import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.TransformationList; import codechicken.lib.vec.Translation; public class LampRenderer implements IItemRenderer { - private Map models; - private Icon lampIcon; - private RenderBlocks render; - + public static LampRenderer instance = new LampRenderer(); - public LampRenderer() { - models = CCModel.parseObjModels(new ResourceLocation("projectred", "textures/obj/lamp.obj"), 7, new InvertX()); - for (CCModel c : models.values()) { - c.shrinkUVs(0.0005); - } - } - - private IModelCustom model; + private Icon lampIcon; - public void render() { - model.renderAll(); - } - - public void renderPart(String part) { - model.renderPart(part); - } - - public void bindTexture(LampPart lamp) { - lampIcon = lamp.getLightValue() == 15 ? lamp.type.onIcon : lamp.type.offIcon; + public Icon bindTexture(LampPart lamp) { + return lamp.getLightValue() == 15 ? lamp.type.onIcon : lamp.type.offIcon; } public void renderLamp(LampPart lamp, RenderBlocks b) { - render = b; - bindTexture(lamp); + lampIcon = b == null || b.overrideBlockTexture == null ? bindTexture(lamp) : b.overrideBlockTexture; CCRenderState.reset(); TextureUtils.bindAtlas(0); - BasicRenderUtils.setBrightnessDirect(lamp.world(), lamp.x(), lamp.y(), lamp.z()); + CCRenderState.setBrightness(lamp.world(), lamp.x(), lamp.y(), lamp.z()); renderLampBulb(lamp.x(), lamp.y(), lamp.z()); if (lamp.getLightValue() == 15 && b == null) - renderLampShade(lamp.x(), lamp.y(), lamp.z(), lamp.type.meta); - else if (lamp.getLightValue() == 0 && b == null) - LastEventBasedHaloRenderer.removeHaloObject(lamp.x(), lamp.y(), lamp.z()); - - } - - public void renderPart(CCModel cc, double x, double y, double z) { - TransformationList tl = new TransformationList(); - tl.with(new Translation(1, 0, 1)).with(new Translation(x, y, z)); - - IUVTransformation uv = null; - Icon override = render == null ? null : render.overrideBlockTexture; - if (override != null) { - uv = new IconTransformation(override); - } else { - uv = new IconTransformation(lampIcon); - } - cc.render(0, cc.verts.length, tl, uv, null); + renderLampShade(lamp.x(), lamp.y(), lamp.z(), lamp.type.meta); } - - + public void renderLampBulb(double x, double y, double z) { - renderPart(models.get("lamp"), x, y, z); + RenderUtils.renderBlock(Cuboid6.full, 0, new Translation(x, y, z), new IconTransformation(lampIcon), null); } - public void renderLampShade(final double x, final double y, final double z, final int tint) { - HaloObject r = new HaloObject((int) x, (int) y, (int) z) { - @Override - public boolean render(RenderWorldLastEvent event) { - renderPart(models.get("shade"), x, y, z); - return true; - } - - @Override - public void preRender() { - Tessellator.instance.setColorRGBA_I(PRColors.get(tint).hex, 128); - } - - @Override - public void postRender() { - } - }; - - LastEventBasedHaloRenderer.addObjectToRender(r); + public void renderLampShade(int x, int y, int z, int tint) { + Cuboid6 box = new Cuboid6(0, 0, 0, 1, 1, 1).expand(0.05D); + LastEventBasedHaloRenderer.addLight(x, y, z, tint, box); } public void renderInventory(double x, double y, double z, float scale) { @@ -114,14 +59,12 @@ public void renderInventory(double x, double y, double z, float scale) { GL11.glTranslated(x, y, z); GL11.glScalef(scale, scale, scale); TextureUtils.bindAtlas(0); - GL11.glDisable(GL11.GL_LIGHTING); CCRenderState.reset(); CCRenderState.useNormals(true); + CCRenderState.pullLightmap(); CCRenderState.startDrawing(7); - BasicRenderUtils.setFullColor(); - renderPart(models.get("lamp"), x, y, z); + renderLampBulb(x, y, z); CCRenderState.draw(); - GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } @@ -142,7 +85,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { lampIcon = item.getItem() == ProjectRedIllumination.itemPartInvLamp ? EnumLamp.get(item.getItemDamage()).onIcon : EnumLamp.get(item.getItemDamage()).offIcon; switch (type) { case ENTITY: - renderInventory(0f, 0f, 0f, .5f); + renderInventory(-.15f, 0f, -.15f, .50f); return; case EQUIPPED: renderInventory(0f, 0f, 0f, 1f); diff --git a/common/mrtjp/projectred/illumination/LanternPart.java b/common/mrtjp/projectred/illumination/LanternPart.java index a4ed13603..fb3ab031c 100644 --- a/common/mrtjp/projectred/illumination/LanternPart.java +++ b/common/mrtjp/projectred/illumination/LanternPart.java @@ -27,7 +27,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class LanternPart extends JCuboidPart implements TSlottedPart, JNormalOcclusion, IRedstonePart { +public class LanternPart extends JCuboidPart implements TSlottedPart, JNormalOcclusion, IRedstonePart, ILight { EnumLantern type; private boolean isInverted; @@ -93,12 +93,7 @@ public void onPartChanged(TMultiPart t){ updateNextTick = true; updateStateNextTick = true; } - - @Override - public void onRemoved() { - LastEventBasedHaloRenderer.removeHaloObject(x(), y(), z()); - } - + private boolean isBeingPowered() { return world().isBlockIndirectlyGettingPowered(x(), y(), z()); } @@ -238,4 +233,8 @@ public int weakPowerLevel(int arg0) { return 0; } + @Override + public boolean isOn() { + return getLightValue() == 15; + } } diff --git a/common/mrtjp/projectred/illumination/LanternRenderer.java b/common/mrtjp/projectred/illumination/LanternRenderer.java index c14242278..53268a42b 100644 --- a/common/mrtjp/projectred/illumination/LanternRenderer.java +++ b/common/mrtjp/projectred/illumination/LanternRenderer.java @@ -5,23 +5,21 @@ import mrtjp.projectred.ProjectRedIllumination; import mrtjp.projectred.core.BasicRenderUtils; import mrtjp.projectred.core.InvertX; -import mrtjp.projectred.core.PRColors; -import mrtjp.projectred.illumination.LastEventBasedHaloRenderer.HaloObject; import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.event.RenderWorldLastEvent; import org.lwjgl.opengl.GL11; +import codechicken.lib.lighting.LightModel; import codechicken.lib.render.CCModel; import codechicken.lib.render.CCRenderState; import codechicken.lib.render.IUVTransformation; import codechicken.lib.render.IconTransformation; import codechicken.lib.render.TextureUtils; +import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.Rotation; import codechicken.lib.vec.TransformationList; import codechicken.lib.vec.Translation; @@ -39,6 +37,7 @@ public LanternRenderer() { models = CCModel.parseObjModels(new ResourceLocation("projectred", "textures/obj/lantern.obj"), 7, new InvertX()); for (CCModel c : models.values()) { c.apply(new Translation(.5, 0, .5)); + c.computeLighting(LightModel.standardLightModel); c.shrinkUVs(0.0005); } } @@ -50,14 +49,13 @@ public void bindTexture(LanternPart lan) { public void renderLamp(LanternPart lan, RenderBlocks b) { render = b; bindTexture(lan); - CCRenderState.reset(); TextureUtils.bindAtlas(0); + CCRenderState.reset(); BasicRenderUtils.setBrightnessDirect(lan.world(), lan.x(), lan.y(), lan.z()); + CCRenderState.useModelColours(true); renderLampBulb(lan.x(), lan.y(), lan.z(), lan.rotation); if (lan.getLightValue() == 15 && b == null) renderLampShade(lan.x(), lan.y(), lan.z(), lan.type.meta); - else if (lan.getLightValue() == 0 && b == null) - LastEventBasedHaloRenderer.removeHaloObject(lan.x(), lan.y(), lan.z()); } public void renderPart(CCModel cc, double x, double y, double z, int rot) { @@ -76,8 +74,6 @@ public void renderPart(CCModel cc, double x, double y, double z, int rot) { } public void renderLampBulb(double x, double y, double z, int rotation) { - // CCRenderState.useNormals(true); - // CCRenderState.startDrawing(7); renderPart(models.get("covertop"), x, y, z, 2); renderPart(models.get("coverbottom"), x, y, z, 2); renderPart(models.get("lamp"), x, y, z, 2); @@ -91,7 +87,6 @@ public void renderLampBulb(double x, double y, double z, int rotation) { renderPart(models.get("standside"), x, y, z, rotation); renderPart(models.get("goldringtop"), x, y, z, rotation); } - // CCRenderState.draw(); } public void renderInventory(double x, double y, double z, float scale) { @@ -109,25 +104,9 @@ public void renderInventory(double x, double y, double z, float scale) { GL11.glPopMatrix(); } - public void renderLampShade(final double x, final double y, final double z, final int tint) { - HaloObject r = new HaloObject((int) x, (int) y, (int) z) { - @Override - public boolean render(RenderWorldLastEvent event) { - renderPart(models.get("lampshade"), x, y, z, 2); - return true; - } - - @Override - public void preRender() { - Tessellator.instance.setColorRGBA_I(PRColors.get(tint).hex, 128); - } - - @Override - public void postRender() { - } - }; - - LastEventBasedHaloRenderer.addObjectToRender(r); + public void renderLampShade(int x, int y, int z, int tint) { + Cuboid6 box = new Cuboid6(0.35D, 0.25D, 0.35D, 0.65D, 0.75D, 0.65D).expand(-1/64D); + LastEventBasedHaloRenderer.addLight(x, y, z, tint, box); } @Override @@ -135,13 +114,13 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { lampIcon = item.getItem() == ProjectRedIllumination.itemPartInvLantern ? EnumLantern.get(item.getItemDamage()).onIcon : EnumLantern.get(item.getItemDamage()).offIcon; switch (type) { case ENTITY: - renderInventory(-.3f, 0f, -.3f, 1.4f); + renderInventory(-.25f, 0f, -.25f, 1f); return; case EQUIPPED: - renderInventory(0f, 0f, 0f, 2f); + renderInventory(-.15f, -.15f, -.15f, 2f); return; case EQUIPPED_FIRST_PERSON: - renderInventory(0f, 0f, 0f, 2f); + renderInventory(-.15f, -.15f, -.15f, 2f); return; case INVENTORY: renderInventory(0f, -.05f, 0f, 2f); diff --git a/common/mrtjp/projectred/illumination/LastEventBasedHaloRenderer.java b/common/mrtjp/projectred/illumination/LastEventBasedHaloRenderer.java index 734abf167..9823a9a3f 100644 --- a/common/mrtjp/projectred/illumination/LastEventBasedHaloRenderer.java +++ b/common/mrtjp/projectred/illumination/LastEventBasedHaloRenderer.java @@ -5,14 +5,26 @@ import java.util.List; import java.util.Set; +import mrtjp.projectred.core.BasicRenderUtils; +import mrtjp.projectred.core.BasicUtils; +import mrtjp.projectred.core.PRColors; import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.WorldClient; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.world.World; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.event.ForgeSubscribe; import org.lwjgl.opengl.GL11; import codechicken.lib.render.CCRenderState; +import codechicken.lib.render.RenderUtils; +import codechicken.lib.vec.BlockCoord; +import codechicken.lib.vec.Cuboid6; +import codechicken.lib.vec.Translation; +import codechicken.multipart.TMultiPart; +import codechicken.multipart.TileMultipart; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -20,53 +32,47 @@ public class LastEventBasedHaloRenderer { public static LastEventBasedHaloRenderer instance = new LastEventBasedHaloRenderer(); - private static Set renderQueue = new HashSet(); - - public abstract static class HaloObject { - int posX; - int posY; - int posZ; - - public HaloObject(int x, int y, int z) { - posX = x; - posY = y; - posZ = z; + private static Set renderQueue = new HashSet(); + + private static class CoordCache { + int x, y, z; + int color; + Cuboid6 cube; + + public CoordCache(int x, int y, int z, int colorIndex, Cuboid6 cube) { + this.x = x; + this.y = y; + this.z = z; + this.color = colorIndex; + + this.cube = cube; } - + @Override public boolean equals(Object o) { - if (o instanceof HaloObject) { - HaloObject r = (HaloObject) o; - return posX == r.posX && posY == r.posY && posZ == r.posZ; + if (o instanceof CoordCache) { + CoordCache coord = (CoordCache) o; + return x == coord.x && y == coord.y && z == coord.z; } return false; } - public abstract void preRender(); - public abstract boolean render(RenderWorldLastEvent event); - public abstract void postRender(); + } - public static void addObjectToRender(HaloObject r) { - for (HaloObject ro : renderQueue) { - if (ro.equals(r)) { + static void addLight(int x, int y, int z, int color, Cuboid6 box) { + CoordCache cc = new CoordCache(x, y, z, color, box); + for (CoordCache c : renderQueue) { + if (cc.equals(c)) return; - } - } - renderQueue.add(r); - } - - public static void removeHaloObject(int x, int y, int z) { - for (HaloObject ro : renderQueue) { - if (ro.posX == x && ro.posY == y && ro.posZ == z) { - renderQueue.remove(ro); - break; - } } + renderQueue.add(cc); } + @ForgeSubscribe public void onRenderWorldLast(RenderWorldLastEvent event) { - List removeQueue = new ArrayList(); + List removeQueue = new ArrayList(); + Tessellator tess = Tessellator.instance; GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_BLEND); @@ -80,18 +86,18 @@ public void onRenderWorldLast(RenderWorldLastEvent event) { double z = view.prevPosZ + (view.posZ - view.prevPosZ) * partials; GL11.glTranslated(-1 * x, -1 * y, -1 * z); } - + WorldClient w = event.context.theWorld; + CCRenderState.reset(); CCRenderState.startDrawing(7); - for (HaloObject r : renderQueue) { - r.preRender(); - if (!r.render(event)) { + for (CoordCache r : renderQueue) { + if (shouldRemove(w, r)) removeQueue.add(r); - } - r.postRender(); + else + renderHalo(tess, r); } CCRenderState.draw(); - + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glColor3f(1, 1, 1); @@ -101,4 +107,22 @@ public void onRenderWorldLast(RenderWorldLastEvent event) { renderQueue.removeAll(removeQueue); } + + static void renderHalo(Tessellator tess, CoordCache cc) { + BasicRenderUtils.setFullBrightness(); + tess.setColorRGBA_I(PRColors.VALID_COLORS[cc.color].hex, 128); + RenderUtils.renderBlock(cc.cube, 0, new Translation(cc.x, cc.y, cc.z), null, null); + } + + static boolean shouldRemove(World w, CoordCache cc) { + TileMultipart t = BasicUtils.getMultipartTile(w, new BlockCoord(cc.x, cc.y, cc.z)); + if (t != null) { + TMultiPart tp = t.partMap(6); + if (tp instanceof ILight) { + return !((ILight)tp).isOn(); + } + } + return true; + } + } diff --git a/common/mrtjp/projectred/integration/IntegrationClientProxy.java b/common/mrtjp/projectred/integration/IntegrationClientProxy.java index d839b7274..419474643 100644 --- a/common/mrtjp/projectred/integration/IntegrationClientProxy.java +++ b/common/mrtjp/projectred/integration/IntegrationClientProxy.java @@ -17,10 +17,5 @@ public void preinit() { public void init() { super.init(); MinecraftForgeClient.registerItemRenderer(ProjectRedIntegration.itemPartGate.itemID, GateItemRenderer.instance); - - for (EnumGate g : EnumGate.VALID_GATES) - if(g.implemented()) - LanguageRegistry.addName(g.getItemStack(), g.name); - } } diff --git a/common/mrtjp/projectred/integration/IntegrationRecipes.java b/common/mrtjp/projectred/integration/IntegrationRecipes.java index 868a4a8b7..df847d4ca 100644 --- a/common/mrtjp/projectred/integration/IntegrationRecipes.java +++ b/common/mrtjp/projectred/integration/IntegrationRecipes.java @@ -51,9 +51,9 @@ private static void initGateRecipes() { /** RS Latch **/ GameRegistry.addRecipe(EnumGate.RSLatch.getItemStack(), - "WWA", - "CPC", - "AWW", + "ACW", + "WPW", + "WCA", 'W', EnumPart.CONDUCTIVEPLATE.getItemStack(), 'A', EnumPart.ANODE.getItemStack(), 'C', EnumPart.CATHODE.getItemStack(), @@ -73,9 +73,9 @@ private static void initGateRecipes() { /** Transparent Latch **/ GameRegistry.addRecipe(EnumGate.TransparentLatch.getItemStack(), - "CAW", - "AAA", - "AWP", + "ACW", + "CCC", + "CWP", 'C', EnumPart.CATHODE.getItemStack(), 'A', EnumPart.ANODE.getItemStack(), 'P', EnumPart.PLATE.getItemStack(), @@ -171,9 +171,9 @@ private static void initGateRecipes() { /** Counter Gate **/ GameRegistry.addRecipe(EnumGate.Counter.getItemStack(), - "PWP", - "CTC", - "PWP", + "PCP", + "WWT", + "PCP", 'P', EnumPart.PLATE.getItemStack(), 'W', EnumPart.CONDUCTIVEPLATE.getItemStack(), 'C', EnumPart.CATHODE.getItemStack(), @@ -300,12 +300,12 @@ private static void initGateRecipes() { /** Comparator **/ GameRegistry.addRecipe(EnumGate.Comparator.getItemStack(), - "QCQ", - "WWW", + "WCW", + "QWQ", "PWP", - 'Q', Item.netherQuartz, - 'C', EnumPart.CATHODE.getItemStack(), 'W', EnumPart.CONDUCTIVEPLATE.getItemStack(), + 'C', EnumPart.CATHODE.getItemStack(), + 'Q', Item.netherQuartz, 'P', EnumPart.PLATE.getItemStack() ); diff --git a/common/mrtjp/projectred/transmission/BundledCablePart.java b/common/mrtjp/projectred/transmission/BundledCablePart.java index 03d287434..8272d03eb 100644 --- a/common/mrtjp/projectred/transmission/BundledCablePart.java +++ b/common/mrtjp/projectred/transmission/BundledCablePart.java @@ -9,6 +9,7 @@ import mrtjp.projectred.api.IConnectable; import mrtjp.projectred.core.BasicUtils; import mrtjp.projectred.core.Configurator; +import mrtjp.projectred.core.CoreCPH; import mrtjp.projectred.core.CoreProxy; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -193,7 +194,7 @@ protected boolean test(EntityPlayer player) { if (s == "") s = "off"; - PacketCustom packet = new PacketCustom(Configurator.corePacketChannel, CoreProxy.messengerQueue); + PacketCustom packet = new PacketCustom(CoreCPH.channel, CoreProxy.messengerQueue); packet.writeDouble(x() + 0.0D); packet.writeDouble(y() + 0.5D); packet.writeDouble(z() + 0.0D); diff --git a/common/mrtjp/projectred/transmission/FramedBundledCablePart.java b/common/mrtjp/projectred/transmission/FramedBundledCablePart.java index 2319c1bc0..5d1bcefee 100644 --- a/common/mrtjp/projectred/transmission/FramedBundledCablePart.java +++ b/common/mrtjp/projectred/transmission/FramedBundledCablePart.java @@ -9,6 +9,7 @@ import mrtjp.projectred.api.IConnectable; import mrtjp.projectred.core.BasicUtils; import mrtjp.projectred.core.Configurator; +import mrtjp.projectred.core.CoreCPH; import mrtjp.projectred.core.CoreProxy; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -126,7 +127,7 @@ protected boolean test(EntityPlayer player, MovingObjectPosition hit) { if (s == "") { s = "off"; } - PacketCustom packet = new PacketCustom(Configurator.corePacketChannel, CoreProxy.messengerQueue); + PacketCustom packet = new PacketCustom(CoreCPH.channel, CoreProxy.messengerQueue); packet.writeDouble(x() + 0.0D); packet.writeDouble(y() + 0.5D); packet.writeDouble(z() + 0.0D); diff --git a/common/mrtjp/projectred/transmission/FramedRedwirePart.java b/common/mrtjp/projectred/transmission/FramedRedwirePart.java index 92d35ac4e..a3126f964 100644 --- a/common/mrtjp/projectred/transmission/FramedRedwirePart.java +++ b/common/mrtjp/projectred/transmission/FramedRedwirePart.java @@ -3,6 +3,7 @@ import mrtjp.projectred.api.IConnectable; import mrtjp.projectred.core.BasicUtils; import mrtjp.projectred.core.Configurator; +import mrtjp.projectred.core.CoreCPH; import mrtjp.projectred.core.CoreProxy; import mrtjp.projectred.core.Messenger; import net.minecraft.entity.player.EntityPlayer; @@ -209,7 +210,7 @@ protected boolean test(EntityPlayer player, MovingObjectPosition hit) { if (BasicUtils.isClient(world())) { Messenger.addMessage(x() + 0, y() + .5f, z() + 0, "/#f/#c[c] = " + getRedwireSignal()); } else { - PacketCustom packet = new PacketCustom(Configurator.corePacketChannel, CoreProxy.messengerQueue); + PacketCustom packet = new PacketCustom(CoreCPH.channel, CoreProxy.messengerQueue); packet.writeDouble(x() + 0.0D); packet.writeDouble(y() + 0.5D); packet.writeDouble(z() + 0.0D); diff --git a/common/mrtjp/projectred/transmission/ItemPartFramedWire.java b/common/mrtjp/projectred/transmission/ItemPartFramedWire.java index fd189dd4d..35f4f113b 100644 --- a/common/mrtjp/projectred/transmission/ItemPartFramedWire.java +++ b/common/mrtjp/projectred/transmission/ItemPartFramedWire.java @@ -54,7 +54,7 @@ public void getSubItems(int id, CreativeTabs tab, List list) { @Override public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName() + ".jac|" + stack.getItemDamage(); + return super.getUnlocalizedName() + "|" + stack.getItemDamage(); } @Override diff --git a/common/mrtjp/projectred/transmission/RedwirePart.java b/common/mrtjp/projectred/transmission/RedwirePart.java index 188475d3b..48772b58c 100755 --- a/common/mrtjp/projectred/transmission/RedwirePart.java +++ b/common/mrtjp/projectred/transmission/RedwirePart.java @@ -3,6 +3,7 @@ import mrtjp.projectred.api.IConnectable; import mrtjp.projectred.core.BasicUtils; import mrtjp.projectred.core.Configurator; +import mrtjp.projectred.core.CoreCPH; import mrtjp.projectred.core.CoreProxy; import mrtjp.projectred.core.Messenger; import net.minecraft.block.Block; @@ -260,7 +261,7 @@ protected boolean test(EntityPlayer player) { if (BasicUtils.isClient(world())) { Messenger.addMessage(x() + 0, y() + .5f, z() + 0, "/#f/#c[c] = " + getRedwireSignal()); } else { - PacketCustom packet = new PacketCustom(Configurator.corePacketChannel, CoreProxy.messengerQueue); + PacketCustom packet = new PacketCustom(CoreCPH.channel, CoreProxy.messengerQueue); packet.writeDouble(x() + 0.0D); packet.writeDouble(y() + 0.5D); packet.writeDouble(z() + 0.0D); diff --git a/common/mrtjp/projectred/transmission/TransmissionClientProxy.java b/common/mrtjp/projectred/transmission/TransmissionClientProxy.java index c94cc69f9..41df3b80b 100644 --- a/common/mrtjp/projectred/transmission/TransmissionClientProxy.java +++ b/common/mrtjp/projectred/transmission/TransmissionClientProxy.java @@ -11,11 +11,6 @@ public class TransmissionClientProxy extends TransmissionProxy { @Override public void init() { super.init(); - for (EnumWire w : EnumWire.VALID_WIRE) { - LanguageRegistry.addName(w.getItemStack(), w.name); - if (w.hasFramedForm()) - LanguageRegistry.addName(w.getFramedItemStack(), "Framed " + w.name); - } MinecraftForgeClient.registerItemRenderer(itemPartWire.itemID, WireItemRenderer.instance); MinecraftForgeClient.registerItemRenderer(itemPartFramedWire.itemID, FramedWireItemRenderer.instance); MicroMaterialRegistry.registerHighlightRenderer(new JacketedHighlightRenderer()); diff --git a/resources/assets/projectred/lang/en_US.lang b/resources/assets/projectred/lang/en_US.lang new file mode 100755 index 000000000..899c274d0 --- /dev/null +++ b/resources/assets/projectred/lang/en_US.lang @@ -0,0 +1,285 @@ +itemGroup.core=Project Red: Core + +item.projectred.core.part.partplate.name=Circuit Plate +item.projectred.core.part.partconductiveplate.name=Conductive Plate +item.projectred.core.part.partwiredplate.name=Wired Plate +item.projectred.core.part.partbundledplate.name=Bundled Plate +item.projectred.core.part.partanode.name=Anode +item.projectred.core.part.partcathode.name=Cathode +item.projectred.core.part.partpointer.name=Pointer +item.projectred.core.part.partsiliconchip.name=Silicon Chip +item.projectred.core.part.partenergizedsiliconchip.name=Energized Silicon Chip +item.projectred.core.part.partplatformedplate.name=Platformed Plate +item.projectred.core.part.partredingot.name=Red Alloy Ingot +item.projectred.core.part.partboule.name=Silicon Boule +item.projectred.core.part.partsilicon.name=Silicon +item.projectred.core.part.partinfusedsilicon.name=Infused Silicon +item.projectred.core.part.partenergizedsilicon.name=Energized Silicon +item.projectred.core.part.partmotor.name=Motor +item.projectred.core.part.partcoppercoil.name=Copper Coil +item.projectred.core.part.partironcoil.name=Iron Coil +item.projectred.core.part.partgoldcoil.name=Golden Coil +item.projectred.core.part.partwhitedust.name=White Illumar +item.projectred.core.part.partorangedust.name=Orange Illumar +item.projectred.core.part.partmagentadust.name=Magenta Illumar +item.projectred.core.part.partlightbluedust.name=Light Blue Illumar +item.projectred.core.part.partyellowdust.name=Yellow Illumar +item.projectred.core.part.partlimedust.name=Lime Illumar +item.projectred.core.part.partpinkdust.name=Pink Illumar +item.projectred.core.part.partgreydust.name=Grey Illumar +item.projectred.core.part.partlightgreydust.name=Light Grey Illumar +item.projectred.core.part.partcyandust.name=Cyan Illumar +item.projectred.core.part.partpurpledust.name=Purple Illumar +item.projectred.core.part.partbluedust.name=Blue Illumar +item.projectred.core.part.partbrowndust.name=Brown Illumar +item.projectred.core.part.partgreendust.name=Green Illumar +item.projectred.core.part.partreddust.name=Red Illumar +item.projectred.core.part.partblackdust.name=Black Illumar +item.projectred.core.part.partcloth.name=Woven Cloth +item.projectred.core.part.partsail.name=Sail +item.projectred.core.part.gemruby.name=Ruby +item.projectred.core.part.gemsapphire.name=Sapphire +item.projectred.core.part.gemperidot.name=Peridot + +tile.projectred.core.appliance.machinealloy.name=Alloy Smelter + +item.projectred.core.drawplate.name=Draw Plate +item.projectred.core.wiredebugger.name=Wire Debugger +item.projectred.core.screwdriver.name=Screwdriver + + + + +itemGroup.expansion=Project Red: Expansion + +item.projectred.expansion.VAWT.name=Vertical Axis Wind Turbine +item.projectred.expansion.ptube|0.name=Pressurized Tube + + + + +itemGroup.exploration=Project Red: Exploration + +tile.projectred.exploration.ore.oreruby.name=Ruby Ore +tile.projectred.exploration.ore.oresapphire.name=Sapphire Ore +tile.projectred.exploration.ore.oreperidot.name=Peridot Ore +tile.projectred.exploration.stone.stonemarble.name=Marble +tile.projectred.exploration.stone.brickmarble.name=Marble Brick +tile.projectred.exploration.stone.cobblebasalt.name=Basalt Cobblestone +tile.projectred.exploration.stone.stonebasalt.name=Basalt +tile.projectred.exploration.stone.brickbasalt.name=Basalt Brick +tile.projectred.exploration.stone.storageruby.name=Block of Ruby +tile.projectred.exploration.stone.storagesapphire.name=Block of Sapphire +tile.projectred.exploration.stone.storageperidot.name=Block of Peridot +item.projectred.exploration.woolgin.name=Wool Gin +item.projectred.exploration.backpack.bpwhite.name=White Backpack +item.projectred.exploration.backpack.bporange.name=Orange Backpack +item.projectred.exploration.backpack.bpmagenta.name=Magenta Backpack +item.projectred.exploration.backpack.bplightblue.name=Light Blue Backpack +item.projectred.exploration.backpack.bpyellow.name=Yellow Backpack +item.projectred.exploration.backpack.bplime.name=Lime Backpack +item.projectred.exploration.backpack.bppink.name=Pink Backpack +item.projectred.exploration.backpack.bpgrey.name=Grey Backpack +item.projectred.exploration.backpack.bplightgrey.name=Light Grey Backpack +item.projectred.exploration.backpack.bpcyan.name=Cyan Backpack +item.projectred.exploration.backpack.bppurple.name=Purple Backpack +item.projectred.exploration.backpack.bpblue.name=Blue Backpack +item.projectred.exploration.backpack.bpbrown.name=Brown Backpack +item.projectred.exploration.backpack.bpgreen.name=Green Backpack +item.projectred.exploration.backpack.bpred.name=Red Backpack +item.projectred.exploration.backpack.bpblack.name=Black Backpack +item.projectred.exploration.axeruby.name=Ruby Axe +item.projectred.exploration.axesapphire.name=Sapphire Axe +item.projectred.exploration.axeperidot.name=Peridot Axe +item.projectred.exploration.hoeruby.name=Ruby Hoe +item.projectred.exploration.hoesapphire.name=Sapphire Hoe +item.projectred.exploration.hoeperidot.name=Peridot Hoe +item.projectred.exploration.pickaxeruby.name=Ruby Pickaxe +item.projectred.exploration.pickaxesapphire.name=Sapphire Pickaxe +item.projectred.exploration.pickaxeperidot.name=Peridot Pickaxe +item.projectred.exploration.shovelruby.name=Ruby Shovel +item.projectred.exploration.shovelsapphire.name=Sapphire Shovel +item.projectred.exploration.shovelperidot.name=Peridot Shovel +item.projectred.exploration.swordruby.name=Ruby Sword +item.projectred.exploration.swordsapphire.name=Sapphire Sword +item.projectred.exploration.swordperidot.name=Peridot Sword +item.projectred.exploration.sawwood.name=Wooden Saw +item.projectred.exploration.sawstone.name=Stone Saw +item.projectred.exploration.sawiron.name=Iron Saw +item.projectred.exploration.sawgold.name=Golden Saw +item.projectred.exploration.sawruby.name=Ruby Saw +item.projectred.exploration.sawsapphire.name=Sapphire Saw +item.projectred.exploration.sawperidot.name=Peridot Saw +item.projectred.exploration.sawdiamond.name=Diamond Saw +item.projectred.exploration.sicklewood.name=Wooden Sickle +item.projectred.exploration.sicklestone.name=Stone Sickle +item.projectred.exploration.sickleiron.name=Iron Sickle +item.projectred.exploration.sicklegold.name=Golden Sickle +item.projectred.exploration.sickleruby.name=Ruby Sickle +item.projectred.exploration.sicklesapphire.name=Sapphire Sickle +item.projectred.exploration.sickleperidot.name=Peridot Sickle +item.projectred.exploration.sicklediamond.name=Diamond Sickle + + + + + +itemGroup.ill=Project Red: Illumination + +item.projectred.illumination.lantern|0.name=White Lantern +item.projectred.illumination.lantern|1.name=Orange Lantern +item.projectred.illumination.lantern|2.name=Magenta Lantern +item.projectred.illumination.lantern|3.name=Light Blue Lantern +item.projectred.illumination.lantern|4.name=Yellow Lantern +item.projectred.illumination.lantern|5.name=Lime Lantern +item.projectred.illumination.lantern|6.name=Pink Lantern +item.projectred.illumination.lantern|7.name=Grey Lantern +item.projectred.illumination.lantern|8.name=Light Grey Lantern +item.projectred.illumination.lantern|9.name=Cyan Lantern +item.projectred.illumination.lantern|10.name=Purple Lantern +item.projectred.illumination.lantern|11.name=Blue Lantern +item.projectred.illumination.lantern|12.name=Brown Lantern +item.projectred.illumination.lantern|13.name=Green Lantern +item.projectred.illumination.lantern|14.name=Red Lantern +item.projectred.illumination.lantern|15.name=Black Lantern +item.projectred.illumination.lanterninv.|0.name=Inverted White Lantern +item.projectred.illumination.lanterninv.|1.name=Inverted Orange Lantern +item.projectred.illumination.lanterninv.|2.name=Inverted Magenta Lantern +item.projectred.illumination.lanterninv.|3.name=Inverted Light Blue Lantern +item.projectred.illumination.lanterninv.|4.name=Inverted Yellow Lantern +item.projectred.illumination.lanterninv.|5.name=Inverted Lime Lantern +item.projectred.illumination.lanterninv.|6.name=Inverted Pink Lantern +item.projectred.illumination.lanterninv.|7.name=Inverted Grey Lantern +item.projectred.illumination.lanterninv.|8.name=Inverted Light Grey Lantern +item.projectred.illumination.lanterninv.|9.name=Inverted Cyan Lantern +item.projectred.illumination.lanterninv.|10.name=Inverted Purple Lantern +item.projectred.illumination.lanterninv.|11.name=Inverted Blue Lantern +item.projectred.illumination.lanterninv.|12.name=Inverted Brown Lantern +item.projectred.illumination.lanterninv.|13.name=Inverted Green Lantern +item.projectred.illumination.lanterninv.|14.name=Inverted Red Lantern +item.projectred.illumination.lanterninv.|15.name=Inverted Black Lantern +item.projectred.illumination.lamp|0.name=White Lamp +item.projectred.illumination.lamp|1.name=Orange Lamp +item.projectred.illumination.lamp|2.name=Magenta Lamp +item.projectred.illumination.lamp|3.name=Light Blue Lamp +item.projectred.illumination.lamp|4.name=Yellow Lamp +item.projectred.illumination.lamp|5.name=Lime Lamp +item.projectred.illumination.lamp|6.name=Pink Lamp +item.projectred.illumination.lamp|7.name=Grey Lamp +item.projectred.illumination.lamp|8.name=Light Grey Lamp +item.projectred.illumination.lamp|9.name=Cyan Lamp +item.projectred.illumination.lamp|10.name=Purple Lamp +item.projectred.illumination.lamp|11.name=Blue Lamp +item.projectred.illumination.lamp|12.name=Brown Lamp +item.projectred.illumination.lamp|13.name=Green Lamp +item.projectred.illumination.lamp|14.name=Red Lamp +item.projectred.illumination.lamp|15.name=Black Lamp +item.projectred.illumination.lampinv.|0.name=Inverted White Lamp +item.projectred.illumination.lampinv.|1.name=Inverted Orange Lamp +item.projectred.illumination.lampinv.|2.name=Inverted Magenta Lamp +item.projectred.illumination.lampinv.|3.name=Inverted Light Blue Lamp +item.projectred.illumination.lampinv.|4.name=Inverted Yellow Lamp +item.projectred.illumination.lampinv.|5.name=Inverted Lime Lamp +item.projectred.illumination.lampinv.|6.name=Inverted Pink Lamp +item.projectred.illumination.lampinv.|7.name=Inverted Grey Lamp +item.projectred.illumination.lampinv.|8.name=Inverted Light Grey Lamp +item.projectred.illumination.lampinv.|9.name=Inverted Cyan Lamp +item.projectred.illumination.lampinv.|10.name=Inverted Purple Lamp +item.projectred.illumination.lampinv.|11.name=Inverted Blue Lamp +item.projectred.illumination.lampinv.|12.name=Inverted Brown Lamp +item.projectred.illumination.lampinv.|13.name=Inverted Green Lamp +item.projectred.illumination.lampinv.|14.name=Inverted Red Lamp +item.projectred.illumination.lampinv.|15.name=Inverted Black Lamp + + + + + +itemGroup.int=Project Red: Integration + +item.projectred.integration.gate|0.name=OR Gate +item.projectred.integration.gate|1.name=NOR Gate +item.projectred.integration.gate|2.name=NOT Gate +item.projectred.integration.gate|3.name=AND Gate +item.projectred.integration.gate|4.name=NAND Gate +item.projectred.integration.gate|5.name=XOR Gate +item.projectred.integration.gate|6.name=XNOR Gate +item.projectred.integration.gate|7.name=Buffer Gate +item.projectred.integration.gate|8.name=Multiplexer +item.projectred.integration.gate|9.name=Pulse Former +item.projectred.integration.gate|10.name=Repeater +item.projectred.integration.gate|11.name=Randomizer +item.projectred.integration.gate|12.name=RS Latch +item.projectred.integration.gate|13.name=Toggle Latch +item.projectred.integration.gate|14.name=Transparent Latch +item.projectred.integration.gate|15.name=Light Sensor +item.projectred.integration.gate|16.name=Rain Sensor +item.projectred.integration.gate|17.name=Timer +item.projectred.integration.gate|18.name=Sequencer +item.projectred.integration.gate|19.name=Counter +item.projectred.integration.gate|20.name=State Cell +item.projectred.integration.gate|21.name=Synchronizer +item.projectred.integration.gate|22.name=Bus Transceiver +item.projectred.integration.gate|23.name=Null Cell +item.projectred.integration.gate|24.name=Invert Cell +item.projectred.integration.gate|25.name=Buffer Cell +item.projectred.integration.gate|26.name=Comparator +item.projectred.integration.gate|27.name=AND Cell + + + + +itemGroup.trans=Project Red: Transmission + +item.projectred.transmission.wire|0.name=Red Alloy Wire +item.projectred.transmission.wire|1.name=White Insulated Wire +item.projectred.transmission.wire|2.name=Orange Insulated Wire +item.projectred.transmission.wire|3.name=Magenta Insulated Wire +item.projectred.transmission.wire|4.name=Light Blue Insulated Wire +item.projectred.transmission.wire|5.name=Yellow Insulated Wire +item.projectred.transmission.wire|6.name=Lime Insulated Wire +item.projectred.transmission.wire|7.name=Pink Insulated Wire +item.projectred.transmission.wire|8.name=Grey Insulated Wire +item.projectred.transmission.wire|9.name=Light Grey Insulated Wire +item.projectred.transmission.wire|10.name=Cyan Insulated Wire +item.projectred.transmission.wire|11.name=Purple Insulated Wire +item.projectred.transmission.wire|12.name=Blue Insulated Wire +item.projectred.transmission.wire|13.name=Brown Insulated Wire +item.projectred.transmission.wire|14.name=Green Insulated Wire +item.projectred.transmission.wire|15.name=Red Insulated Wire +item.projectred.transmission.wire|16.name=Black Insulated Wire +item.projectred.transmission.wire|17.name=Bundled Cable +item.projectred.transmission.wire|18.name=White Bundled Cable +item.projectred.transmission.wire|19.name=Orange Bundled Cable +item.projectred.transmission.wire|20.name=Magenta Bundled Cable +item.projectred.transmission.wire|21.name=Light Blue Bundled Cable +item.projectred.transmission.wire|22.name=Yellow Bundled Cable +item.projectred.transmission.wire|23.name=Lime Bundled Cable +item.projectred.transmission.wire|24.name=Pink Bundled Cable +item.projectred.transmission.wire|25.name=Grey Bundled Cable +item.projectred.transmission.wire|26.name=Light Grey Bundled Cable +item.projectred.transmission.wire|27.name=Cyan Bundled Cable +item.projectred.transmission.wire|28.name=Purple Bundled Cable +item.projectred.transmission.wire|29.name=Blue Bundled Cable +item.projectred.transmission.wire|30.name=Brown Bundled Cable +item.projectred.transmission.wire|31.name=Green Bundled Cable +item.projectred.transmission.wire|32.name=Red Bundled Cable +item.projectred.transmission.wire|33.name=Black Bundled Cable +item.projectred.transmission.framewire|0.name=Framed Red Alloy Wire +item.projectred.transmission.framewire|1.name=Framed White Insulated Wire +item.projectred.transmission.framewire|2.name=Framed Orange Insulated Wire +item.projectred.transmission.framewire|3.name=Framed Magenta Insulated Wire +item.projectred.transmission.framewire|4.name=Framed Light Blue Insulated Wire +item.projectred.transmission.framewire|5.name=Framed Yellow Insulated Wire +item.projectred.transmission.framewire|6.name=Framed Lime Insulated Wire +item.projectred.transmission.framewire|7.name=Framed Pink Insulated Wire +item.projectred.transmission.framewire|8.name=Framed Grey Insulated Wire +item.projectred.transmission.framewire|9.name=Framed Light Grey Insulated Wire +item.projectred.transmission.framewire|10.name=Framed Cyan Insulated Wire +item.projectred.transmission.framewire|11.name=Framed Purple Insulated Wire +item.projectred.transmission.framewire|12.name=Framed Blue Insulated Wire +item.projectred.transmission.framewire|13.name=Framed Brown Insulated Wire +item.projectred.transmission.framewire|14.name=Framed Green Insulated Wire +item.projectred.transmission.framewire|15.name=Framed Red Insulated Wire +item.projectred.transmission.framewire|16.name=Framed Black Insulated Wire +item.projectred.transmission.framewire|17.name=Framed Bundled Cable diff --git a/resources/assets/projectred/textures/blocks/machines/generatorside.png b/resources/assets/projectred/textures/blocks/machines/generatorside.png deleted file mode 100644 index c46385a5d..000000000 Binary files a/resources/assets/projectred/textures/blocks/machines/generatorside.png and /dev/null differ diff --git a/resources/assets/projectred/textures/blocks/machines/generatorsideon.png b/resources/assets/projectred/textures/blocks/machines/generatorsideon.png deleted file mode 100644 index e86173076..000000000 Binary files a/resources/assets/projectred/textures/blocks/machines/generatorsideon.png and /dev/null differ diff --git a/resources/assets/projectred/textures/blocks/machines/generatortop.png b/resources/assets/projectred/textures/blocks/ore/storageperidot.png similarity index 79% rename from resources/assets/projectred/textures/blocks/machines/generatortop.png rename to resources/assets/projectred/textures/blocks/ore/storageperidot.png index 7704e0b23..571fb2088 100644 Binary files a/resources/assets/projectred/textures/blocks/machines/generatortop.png and b/resources/assets/projectred/textures/blocks/ore/storageperidot.png differ diff --git a/resources/assets/projectred/textures/items/saw.png b/resources/assets/projectred/textures/blocks/ore/storageruby.png old mode 100755 new mode 100644 similarity index 65% rename from resources/assets/projectred/textures/items/saw.png rename to resources/assets/projectred/textures/blocks/ore/storageruby.png index c1dde7168..11652ea5f Binary files a/resources/assets/projectred/textures/items/saw.png and b/resources/assets/projectred/textures/blocks/ore/storageruby.png differ diff --git a/resources/assets/projectred/textures/blocks/machines/generatorbottom.png b/resources/assets/projectred/textures/blocks/ore/storagesapphire.png similarity index 62% rename from resources/assets/projectred/textures/blocks/machines/generatorbottom.png rename to resources/assets/projectred/textures/blocks/ore/storagesapphire.png index 8bd532699..529c5da47 100644 Binary files a/resources/assets/projectred/textures/blocks/machines/generatorbottom.png and b/resources/assets/projectred/textures/blocks/ore/storagesapphire.png differ