diff options
32 files changed, 1181 insertions, 36 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java index a2fc611223..0219ef93bd 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java @@ -4,7 +4,10 @@ package com.github.bartimaeusnek.bartworks; import com.github.bartimaeusnek.bartworks.client.creativetabs.GT2Tab; import com.github.bartimaeusnek.bartworks.client.creativetabs.bartworksTab; import com.github.bartimaeusnek.bartworks.common.ConfigHandler; +import com.github.bartimaeusnek.bartworks.common.blocks.BW_TileEntityContainer; import com.github.bartimaeusnek.bartworks.common.loaders.LoaderRegistry; +import com.github.bartimaeusnek.bartworks.common.tileentities.BW_RotorBlock; +import com.github.bartimaeusnek.bartworks.common.tileentities.GT_TileEntity_Windmill; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.event.FMLInitializationEvent; @@ -12,16 +15,12 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_OreDictUnificator; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import static com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry.BW_BLOCKS; - @Mod( modid = MainMod.modID, name = MainMod.name, version = MainMod.version, dependencies = "required-after:IC2; " @@ -53,7 +52,7 @@ public final class MainMod { } @Mod.EventHandler public void init(FMLInitializationEvent init) { - new LoaderRegistry().run(); + new LoaderRegistry().run(); } @Mod.EventHandler diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/client/gui/BW_GUIContainer_RotorBlock.java b/src/main/java/com/github/bartimaeusnek/bartworks/client/gui/BW_GUIContainer_RotorBlock.java new file mode 100644 index 0000000000..1311c291ac --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/client/gui/BW_GUIContainer_RotorBlock.java @@ -0,0 +1,55 @@ +package com.github.bartimaeusnek.bartworks.client.gui; + +import com.github.bartimaeusnek.bartworks.MainMod; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ic2.core.block.kineticgenerator.container.ContainerWindKineticGenerator; +import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator; +import ic2.core.util.GuiTooltipHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + +@SideOnly(Side.CLIENT) +public class BW_GUIContainer_RotorBlock extends GuiWindKineticGenerator +{ + public ContainerWindKineticGenerator container; + public String name; + + public BW_GUIContainer_RotorBlock(ContainerWindKineticGenerator container1) { + super(container1); + this.container = container1; + this.name = StatCollector.translateToLocal("tile.BWRotorBlock.name"); + } + + protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) { + this.fontRendererObj.drawString(this.name, (this.xSize - this.fontRendererObj.getStringWidth(this.name)) / 2, 6, 2157374); + if (this.container.base.checkrotor()) { + if (!this.container.base.rotorspace()) { + this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.rotorspace"), 27, 52, 2157374); + } else if (this.container.base.checkrotor() && !this.container.base.guiisminWindStrength()) { + this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.windweak1"), 27, 52, 2157374); + } else { + this.fontRendererObj.drawString(this.container.base.getRotorhealth() + " %", 46, 52, 2157374); + if (this.container.base.guiisoverload()) { + GuiTooltipHelper.drawAreaTooltip(p_146979_1_ - this.guiLeft, p_146979_2_ - this.guiTop, StatCollector.translateToLocal("ic2.WindKineticGenerator.error.overload"), 44, 27, 79, 52); + } + } + } else { + this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.rotormiss"), 27, 52, 2157374); + } + + } + + protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { + GL11.glColor3f(0.5f,0.25f,0.07f); + this.mc.getTextureManager().bindTexture(new ResourceLocation(MainMod.modID, "textures/GUI/GUIPrimitiveKUBox.png")); + int j = (this.width - this.xSize) / 2; + int k = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(j, k, 0, 0, this.xSize, this.ySize); + if (this.container.base.guiisoverload() && this.container.base.checkrotor()) { + this.drawTexturedModalRect(j + 44, k + 20, 176, 0, 30, 26); + this.drawTexturedModalRect(j + 102, k + 20, 176, 0, 30, 26); + } + } +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/client/gui/BW_GUIContainer_Windmill.java b/src/main/java/com/github/bartimaeusnek/bartworks/client/gui/BW_GUIContainer_Windmill.java new file mode 100644 index 0000000000..76cd7d2998 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/client/gui/BW_GUIContainer_Windmill.java @@ -0,0 +1,45 @@ +package com.github.bartimaeusnek.bartworks.client.gui; + +import com.github.bartimaeusnek.bartworks.MainMod; +import gregtech.api.gui.GT_Container_MultiMachine; +import gregtech.api.gui.GT_GUIContainer_MultiMachine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +public class BW_GUIContainer_Windmill extends GT_GUIContainer_MultiMachine { + + public BW_GUIContainer_Windmill(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { + super(aInventoryPlayer, aTileEntity, aName, null); + } + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + if (!(this.mContainer instanceof GT_Container_MultiMachine)) + return; + + if ((((GT_Container_MultiMachine)this.mContainer).mDisplayErrorCode & 64) != 0) + this.fontRendererObj.drawString(this.trans("138", "Incomplete Structure."), 92, 22, 16448255); + } + + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + GL11.glColor3f(0.5f,0.25f,0.07f); + this.mc.getTextureManager().bindTexture(new ResourceLocation(MainMod.modID, "textures/GUI/GUI_Windmill.png")); + + int x = (this.width - this.xSize) / 2; + int y = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); + if (this.mContainer.mMaxProgressTime > 0){ + this.drawTexturedModalRect(x+152, y+5,176,0,16,15); + this.drawTexturedModalRect(x+53, y+63,176,16,13,17); + } + + if (((GT_Container_MultiMachine)this.mContainer).mDisplayErrorCode == 0) { + if (((GT_Container_MultiMachine) this.mContainer).mActive == 0) { + GL11.glColor3f(1f,1f,1f); + this.drawTexturedModalRect(x+66, y+66,176,33,15,15); + } + } + + + } +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/blocks/BW_TileEntityContainer.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/blocks/BW_TileEntityContainer.java new file mode 100644 index 0000000000..b90bfeeec9 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/blocks/BW_TileEntityContainer.java @@ -0,0 +1,81 @@ +package com.github.bartimaeusnek.bartworks.common.blocks; + +import com.github.bartimaeusnek.bartworks.MainMod; +import ic2.api.tile.IWrenchable; +import ic2.core.IC2; +import ic2.core.IHasGui; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BW_TileEntityContainer extends BlockContainer { + + Class<? extends TileEntity> tileEntity = null; + + public BW_TileEntityContainer(Material p_i45386_1_,Class<? extends TileEntity> tileEntity, String blockName) { + super(p_i45386_1_); + this.tileEntity=tileEntity; + this.setCreativeTab(MainMod.BWT); + this.setBlockName(blockName); + this.setBlockTextureName(MainMod.modID+":"+blockName); + } + + + @Override + public boolean onBlockActivated(World worldObj, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + if (worldObj.isRemote) { + return true; + } + if (!player.isSneaking()) { + final TileEntity tile = worldObj.getTileEntity(x, y, z); + if (tile instanceof IHasGui) { + return worldObj.isRemote || IC2.platform.launchGui(player, (IHasGui)tile); + } + } + + return false; + } + + + public void onBlockPlacedBy(final World world, final int x, final int y, final int z, final EntityLivingBase entity, final ItemStack itemStack) { + final TileEntity tile = world.getTileEntity(x, y, z); + if (tile instanceof IWrenchable && itemStack != null) { + final IWrenchable tile2 = (IWrenchable)tile; + int meta = itemStack.getItemDamage(); + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + if (entity != null) { + final int face = MathHelper.floor_double(entity.rotationYaw * 4.0f / 360.0f + 0.5) & 0x3; + switch (face) { + case 0: + tile2.setFacing((short)2); + break; + case 1: + tile2.setFacing((short)5); + break; + case 2: + tile2.setFacing((short)3); + break; + case 3: + tile2.setFacing((short)4); + break; + } + } + } + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + try { + return this.tileEntity.newInstance(); + } catch (InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java new file mode 100644 index 0000000000..3fb86d4963 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java @@ -0,0 +1,90 @@ +package com.github.bartimaeusnek.bartworks.common.items; + +import com.github.bartimaeusnek.bartworks.MainMod; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ic2.api.item.IKineticRotor; +import ic2.core.block.kineticgenerator.gui.GuiWaterKineticGenerator; +import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +import java.util.List; + +import static ic2.api.item.IKineticRotor.GearboxType.WATER; +import static ic2.api.item.IKineticRotor.GearboxType.WIND; + +public class BW_Stonage_Rotors extends Item implements IKineticRotor { + + private int[] DiaMinMax = new int[3]; + private float eff; + private GearboxType type; + private ResourceLocation tex; + private String itemTex; + + public BW_Stonage_Rotors(int diameter, float eff, int min, int max,int durability, GearboxType type,ResourceLocation tex, String Name, String itemTex){ + this.DiaMinMax[0]=diameter; + this.DiaMinMax[1]=min; + this.DiaMinMax[2]=max; + this.eff=eff; + this.type=type; + this.tex=tex; + this.setMaxDamage(durability); + this.setUnlocalizedName(Name); + this.setCreativeTab(MainMod.BWT); + this.itemTex=itemTex; + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) { + this.itemIcon = iconRegister.registerIcon(MainMod.modID+":"+itemTex); + } + + public void addInformation(ItemStack itemStack, EntityPlayer player, List info, boolean b) { + info.add(StatCollector.translateToLocalFormatted("ic2.itemrotor.wind.info", this.DiaMinMax[1], this.DiaMinMax[2])); + GearboxType type = null; + if (Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator) { + type = WATER; + } else if (Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator) { + type = WIND; + } + if (type != null) { + info.add(StatCollector.translateToLocal(("ic2.itemrotor.fitsin." + this.isAcceptedType(itemStack, type)))); + } + } + + @Override + public int getDiameter(ItemStack itemStack) { + return this.DiaMinMax[0]; + } + + @Override + public ResourceLocation getRotorRenderTexture(ItemStack itemStack) { + return this.tex; + } + + @Override + public float getEfficiency(ItemStack itemStack) { + return this.eff; + } + + @Override + public int getMinWindStrength(ItemStack itemStack) { + return this.DiaMinMax[1]; + } + + @Override + public int getMaxWindStrength(ItemStack itemStack) { + return this.DiaMinMax[2]; + } + + @Override + public boolean isAcceptedType(ItemStack itemStack, GearboxType gearboxType) { + return gearboxType.equals(this.type); + } +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java new file mode 100644 index 0000000000..76b0d79b78 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/SimpleSubItemClass.java @@ -0,0 +1,58 @@ +package com.github.bartimaeusnek.bartworks.common.items; + +import com.github.bartimaeusnek.bartworks.MainMod; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +public class SimpleSubItemClass extends Item { + String[] tex; + @SideOnly(Side.CLIENT) + protected IIcon[] itemIcon; + + public SimpleSubItemClass(String[] tex){ + this.tex=tex; + this.hasSubtypes=true; + this.setCreativeTab(MainMod.BWT); + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) { + itemIcon = new IIcon[tex.length]; + for (int i = 0; i < tex.length; i++) { + itemIcon[i]=iconRegister.registerIcon(MainMod.modID+":"+tex[i]); + } + + } + + @Override + public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) { + for (int i = 0; i < tex.length; i++) { + p_150895_3_.add(new ItemStack(p_150895_1_, 1, i)); + } + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int p_77617_1_) + { + if (p_77617_1_<tex.length) + return this.itemIcon[p_77617_1_]; + else + return this.itemIcon[0]; + } + + public String getUnlocalizedName(ItemStack p_77667_1_) + { + if (p_77667_1_.getItemDamage()<tex.length) + return "item."+this.tex[p_77667_1_.getItemDamage()].replaceAll("/","."); + else + return "WrongDamageItemDestroyIt"; + } + +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java index 11567daeee..161f6111bb 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java @@ -3,15 +3,20 @@ package com.github.bartimaeusnek.bartworks.common.loaders; import com.github.bartimaeusnek.bartworks.MainMod; import com.github.bartimaeusnek.bartworks.common.ConfigHandler; import com.github.bartimaeusnek.bartworks.common.blocks.BW_Blocks; +import com.github.bartimaeusnek.bartworks.common.blocks.BW_TileEntityContainer; import com.github.bartimaeusnek.bartworks.common.items.*; +import com.github.bartimaeusnek.bartworks.common.tileentities.BW_RotorBlock; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_OreDictUnificator; +import ic2.api.item.IKineticRotor; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; import static com.github.bartimaeusnek.bartworks.MainMod.BWT; import static com.github.bartimaeusnek.bartworks.MainMod.GT2; @@ -30,6 +35,15 @@ public class ItemRegistry implements Runnable { public static ItemStack[] Diode8A= new ItemStack[GT_Values.VN.length]; public static ItemStack[] Diode12A= new ItemStack[GT_Values.VN.length]; public static ItemStack[] Diode16A= new ItemStack[GT_Values.VN.length]; + public static final Block ROTORBLOCK = new BW_TileEntityContainer(Material.wood, BW_RotorBlock.class,"BWRotorBlock"); + + public static final Item LeatherRotor = new BW_Stonage_Rotors(5, 0.15f, 15, 30,2400, IKineticRotor.GearboxType.WIND,new ResourceLocation(MainMod.modID, "textures/items/rotors/rotorLeather.png"),"BW_LeatherRotor","rotors/itemRotorLeather"); + public static final Item WoolRotor = new BW_Stonage_Rotors(7, 0.18f, 10, 20,1600, IKineticRotor.GearboxType.WIND,new ResourceLocation(MainMod.modID, "textures/items/rotors/rotorWool.png"),"BW_WoolRotor","rotors/itemRotorWool"); + public static final Item PaperRotor = new BW_Stonage_Rotors(9, 0.2f, 1, 10,800, IKineticRotor.GearboxType.WIND,new ResourceLocation(MainMod.modID, "textures/items/rotors/rotorPaper.png"),"BW_PaperRotor","rotors/itemRotorPaper"); + public static final Item CombinedRotor = new BW_Stonage_Rotors(11, 0.22f, 1, 50,5800, IKineticRotor.GearboxType.WIND,new ResourceLocation(MainMod.modID, "textures/items/rotors/rotorCombined.png"),"BW_CombinedRotor","rotors/itemRotorCombined"); + public static final Item craftingParts = new SimpleSubItemClass(new String[]{"grindstone_top","grindstone_bottom","completed_grindstone","rotors/leatherParts","rotors/woolParts","rotors/paperParts","rotors/combinedParts"}); + + public static final Item tab = new SimpleIconItem("GT2Coin"); public static final Block[] BW_BLOCKS = { new BW_Blocks("BW_ItemBlocks", new String[] @@ -57,6 +71,14 @@ public class ItemRegistry implements Runnable { if (newStuff) { GameRegistry.registerBlock(BW_BLOCKS[2], BW_ItemBlocks.class, "BW_Machinery_Casings"); GT_OreDictUnificator.registerOre(OrePrefixes.block, Materials.NickelZincFerrite, new ItemStack(BW_BLOCKS[2])); + + GameRegistry.registerItem(LeatherRotor,"BW_LeatherRotor"); + GameRegistry.registerItem(WoolRotor,"BW_WoolRotor"); + GameRegistry.registerItem(PaperRotor,"BW_PaperRotor"); + GameRegistry.registerItem(CombinedRotor,"BW_CombinedRotor"); + GameRegistry.registerItem(craftingParts,"craftingParts"); + GameRegistry.registerTileEntity(BW_RotorBlock.class,"BWRotorBlockTE"); + GameRegistry.registerBlock(ROTORBLOCK,"BWRotorBlock"); } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java index a6db1925a9..a467af62bd 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java @@ -2,11 +2,8 @@ package com.github.bartimaeusnek.bartworks.common.loaders; import com.github.bartimaeusnek.bartworks.MainMod; import com.github.bartimaeusnek.bartworks.common.ConfigHandler; -import com.github.bartimaeusnek.bartworks.common.items.Circuit_Programmer; -import com.github.bartimaeusnek.bartworks.common.tileentities.GT_MetaTileEntity_Diode; -import com.github.bartimaeusnek.bartworks.common.tileentities.GT_MetaTileEntity_EnergyDistributor; -import com.github.bartimaeusnek.bartworks.common.tileentities.GT_TileEntity_LESU; -import com.github.bartimaeusnek.bartworks.common.tileentities.GT_TileEntity_ManualTrafo; +import com.github.bartimaeusnek.bartworks.common.tileentities.*; +import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -18,12 +15,13 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.oredict.OreDictionary; import static com.github.bartimaeusnek.bartworks.common.ConfigHandler.newStuff; public class RecipeLoader implements Runnable { - private final static long bitsd = GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE; + private static final long bitsd = GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE; @Override public void run() { @@ -46,7 +44,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new ItemStack(ItemRegistry.BW_BLOCKS[1]), - bitsd, + RecipeLoader.bitsd, new Object[]{ "LLL", "LCL", @@ -58,8 +56,8 @@ public class RecipeLoader implements Runnable { GT_Values.RA.addCutterRecipe(new ItemStack(ItemRegistry.BW_BLOCKS[1]), new ItemStack(ItemRegistry.BW_BLOCKS[0], 9, 1), GT_Values.NI, 100, (int) (GT_Values.V[1] - (GT_Values.V[1] / 10))); GT_Values.RA.addCompressorRecipe(new ItemStack(ItemRegistry.BW_BLOCKS[0], 9, 1), new ItemStack(ItemRegistry.BW_BLOCKS[1]), 100, (int) (GT_Values.V[1] - (GT_Values.V[1] / 10))); GT_Values.RA.addCompressorRecipe(new ItemStack(ItemRegistry.BW_BLOCKS[0], 9, 0), new ItemStack(ItemRegistry.BW_BLOCKS[1]), 100, (int) (GT_Values.V[1] - (GT_Values.V[1] / 10))); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 0), bitsd, new Object[]{new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 1)}); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 1), bitsd, new Object[]{new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 0)}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 0), RecipeLoader.bitsd, new Object[]{new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 1)}); + GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 1), RecipeLoader.bitsd, new Object[]{new ItemStack(ItemRegistry.BW_BLOCKS[0], 1, 0)}); } /* @@ -68,7 +66,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new GT_TileEntity_LESU(ConfigHandler.IDOffset, "LESU", "LESU").getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "CDC", "SBS", @@ -82,7 +80,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new ItemStack(ItemRegistry.Destructopack), - bitsd, + RecipeLoader.bitsd, new Object[]{ "CPC", "PLP", @@ -94,7 +92,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new ItemStack(ItemRegistry.Destructopack), - bitsd, + RecipeLoader.bitsd, new Object[]{ "CPC", "PLP", @@ -106,7 +104,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new ItemStack(ItemRegistry.RockcutterMV), - bitsd, + RecipeLoader.bitsd, new Object[]{ "DS ", "DP ", @@ -120,7 +118,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new ItemStack(ItemRegistry.RockcutterLV), - bitsd, + RecipeLoader.bitsd, new Object[]{ "DS ", "DP ", @@ -134,7 +132,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new ItemStack(ItemRegistry.RockcutterHV), - bitsd, + RecipeLoader.bitsd, new Object[]{ "DS ", "DP ", @@ -149,7 +147,7 @@ public class RecipeLoader implements Runnable { if (ConfigHandler.teslastaff) GT_ModHandler.addCraftingRecipe( new ItemStack(ItemRegistry.Teslastaff), - bitsd, + RecipeLoader.bitsd, new Object[]{ "BO ", "OP ", @@ -171,7 +169,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new GT_MetaTileEntity_EnergyDistributor(ConfigHandler.IDOffset + 1 + i, "Energy Distributor " + GT_Values.VN[i], "Energy Distributor " + GT_Values.VN[i], i, "Splits Amperage into several Sides").getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "PWP", "WCW", @@ -182,7 +180,7 @@ public class RecipeLoader implements Runnable { }); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode12A[i] = new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset + GT_Values.VN.length * 4 + 1 + i, "Cable Diode 12A " + GT_Values.VN[i], "Cable Diode 12A " + GT_Values.VN[i], i, 12).getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -195,7 +193,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode12A[i], - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -208,7 +206,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode8A[i] = new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset + GT_Values.VN.length * 3 + 1 + i, "Cable Diode 8A " + GT_Values.VN[i], "Cable Diode 8A " + GT_Values.VN[i], i, 8).getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -221,7 +219,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode8A[i], - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -234,7 +232,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode4A[i] = new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset + GT_Values.VN.length * 2 + 1 + i, "Cable Diode 4A " + GT_Values.VN[i], "Cable Diode 4A " + GT_Values.VN[i], i, 4).getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -247,7 +245,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode4A[i], - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -260,7 +258,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode2A[i] = new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset + GT_Values.VN.length + 1 + i, "Cable Diode 2A " + GT_Values.VN[i], "Cable Diode 2A " + GT_Values.VN[i], i, 2).getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -273,7 +271,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode2A[i], - bitsd, + RecipeLoader.bitsd, new Object[]{ "WDW", "DCD", @@ -286,7 +284,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode16A[i] = new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset + GT_Values.VN.length * 5 + 5 + i, "Cable Diode 16A " + GT_Values.VN[i], "Cable Diode 16A " + GT_Values.VN[i], i, 16).getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "WHW", "DCD", @@ -300,7 +298,7 @@ public class RecipeLoader implements Runnable { ); GT_ModHandler.addCraftingRecipe( ItemRegistry.Diode16A[i], - bitsd, + RecipeLoader.bitsd, new Object[]{ "WHW", "DCD", @@ -328,7 +326,7 @@ public class RecipeLoader implements Runnable { GT_ModHandler.addCraftingRecipe( new GT_TileEntity_ManualTrafo(ConfigHandler.IDOffset + GT_Values.VN.length * 6 + 1, "Manual Travo", "Manual Travo").getStackForm(1L), - bitsd, + RecipeLoader.bitsd, new Object[]{ "SCS", "CHC", @@ -341,7 +339,157 @@ public class RecipeLoader implements Runnable { ); GT_Values.RA.addAssemblerRecipe(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Good,1L),Materials.Aluminium.getPlates(1),ItemList.Circuit_Board_Plastic.get(1L), ItemList.Battery_RE_LV_Lithium.get(1L)}, Materials.SolderingAlloy.getMolten(288L),new ItemStack(ItemRegistry.CircuitProgrammer),600,(int) (GT_Values.V[2] - (GT_Values.V[2] / 10))); - //current ID: ConfigHandler.IDOffset+GT_Values.VN.length*6+1 + + GT_ModHandler.addCraftingRecipe( + new GT_TileEntity_Windmill(ConfigHandler.IDOffset+GT_Values.VN.length*6+2,"Windmill","Windmill").getStackForm(1L), + RecipeLoader.bitsd, + new Object[]{ + "BHB", + "WGW", + "BWB", + 'B', new ItemStack(Blocks.brick_block), + 'W', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), + 'H', new ItemStack(Blocks.hopper), + 'G', new ItemStack(ItemRegistry.craftingParts,1,2), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.craftingParts,1,0), + RecipeLoader.bitsd, + new Object[]{ + "SSS", + "DfD", + " h ", + 'S', new ItemStack(Blocks.stone), + 'D', new ItemStack(GregTech_API.sBlockGranites,1,OreDictionary.WILDCARD_VALUE), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.craftingParts,1,1), + RecipeLoader.bitsd, + new Object[]{ + "hDf", + "SSS", + 'S', new ItemStack(Blocks.stone), + 'D', new ItemStack(GregTech_API.sBlockGranites,1, OreDictionary.WILDCARD_VALUE), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.craftingParts,1,2), + RecipeLoader.bitsd, + new Object[]{ + "STS", + "h f", + "SBS", + 'S', new ItemStack(GregTech_API.sBlockGranites,1, OreDictionary.WILDCARD_VALUE), + 'T', new ItemStack(ItemRegistry.craftingParts, 1, 0), + 'B', new ItemStack(ItemRegistry.craftingParts, 1, 1), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.craftingParts,1,3), + RecipeLoader.bitsd, + new Object[]{ + "WLs", + "WLh", + "WLf", + 'L', new ItemStack(Items.leather), + 'W', new ItemStack(Blocks.log,1,OreDictionary.WILDCARD_VALUE), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.craftingParts,1,4), + RecipeLoader.bitsd, + new Object[]{ + "WLs", + "WLh", + "WLf", + 'L', new ItemStack(Blocks.carpet), + 'W', new ItemStack(Blocks.log,1,OreDictionary.WILDCARD_VALUE), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.craftingParts,1,5), + RecipeLoader.bitsd, + new Object[]{ + "WLs", + "WLh", + "WLf", + 'L', new ItemStack(Items.paper), + 'W', new ItemStack(Blocks.log,1,OreDictionary.WILDCARD_VALUE), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.craftingParts,1,6), + RecipeLoader.bitsd, + new Object[]{ + "WEs", + "WZh", + "WDf", + 'E', new ItemStack(ItemRegistry.craftingParts,1,3), + 'Z', new ItemStack(ItemRegistry.craftingParts,1,4), + 'D', new ItemStack(ItemRegistry.craftingParts,1,5), + 'W', new ItemStack(Blocks.log,1,OreDictionary.WILDCARD_VALUE), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.LeatherRotor), + RecipeLoader.bitsd, + new Object[]{ + "hPf", + "PWP", + "sPr", + 'P', new ItemStack(ItemRegistry.craftingParts,1,3), + 'W', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.WoolRotor), + RecipeLoader.bitsd, + new Object[]{ + "hPf", + "PWP", + "sPr", + 'P', new ItemStack(ItemRegistry.craftingParts,1,4), + 'W', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.PaperRotor), + RecipeLoader.bitsd, + new Object[]{ + "hPf", + "PWP", + "sPr", + 'P', new ItemStack(ItemRegistry.craftingParts,1,5), + 'W', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.CombinedRotor), + RecipeLoader.bitsd, + new Object[]{ + "hPf", + "PWP", + "sPr", + 'P', new ItemStack(ItemRegistry.craftingParts,1,6), + 'W', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), + } + ); + GT_ModHandler.addCraftingRecipe( + new ItemStack(ItemRegistry.ROTORBLOCK), + RecipeLoader.bitsd, + new Object[]{ + "WRW", + "RGR", + "WRW", + 'R',GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Iron, 1L), + 'W', new ItemStack(Blocks.planks), + 'G', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Iron, 1L), + } + ); + //next free ID: ConfigHandler.IDOffset+GT_Values.VN.length*6+3 + } } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/BW_RotorBlock.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/BW_RotorBlock.java new file mode 100644 index 0000000000..de252a5c67 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/BW_RotorBlock.java @@ -0,0 +1,27 @@ +package com.github.bartimaeusnek.bartworks.common.tileentities; + +import com.github.bartimaeusnek.bartworks.client.gui.BW_GUIContainer_RotorBlock; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ic2.core.block.kineticgenerator.container.ContainerWindKineticGenerator; +import ic2.core.block.kineticgenerator.tileentity.TileEntityWindKineticGenerator; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; + +public class BW_RotorBlock extends TileEntityWindKineticGenerator { + + public int getGrindPower(){ + return super.getKuOutput(); + } + + public int getKuOutput() { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen getGui(EntityPlayer entityPlayer, boolean isAdmin) { + return new BW_GUIContainer_RotorBlock(new ContainerWindKineticGenerator(entityPlayer, this)); + } + +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_Windmill.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_Windmill.java new file mode 100644 index 0000000000..aa7cfcff98 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_Windmill.java @@ -0,0 +1,608 @@ +package com.github.bartimaeusnek.bartworks.common.tileentities; + +import com.github.bartimaeusnek.bartworks.MainMod; +import com.github.bartimaeusnek.bartworks.client.gui.BW_GUIContainer_Windmill; +import com.github.bartimaeusnek.bartworks.util.ChatColorHelper; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.objects.XSTR; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityDispenser; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; + +import static gregtech.api.enums.GT_Values.V; + +public class GT_TileEntity_Windmill extends GT_MetaTileEntity_MultiBlockBase { + + private static IIcon[] iIcons = new IIcon[2]; + private static IIconContainer[] iIconContainers = new IIconContainer[2]; + private static ITexture[] iTextures = new ITexture[2]; + + private final ArrayList<TileEntityDispenser> tedList = new ArrayList<TileEntityDispenser>(); + private BW_RotorBlock rotorBlock; + private byte hasDoor; + + public GT_TileEntity_Windmill(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + private GT_TileEntity_Windmill(String aName) { + super(aName); + } + + @Override + public boolean isCorrectMachinePart(ItemStack itemStack) { + return true; + } + + public boolean onRunningTick(ItemStack aStack) { + if (this.mMaxProgresstime > 0) + this.mProgresstime += this.rotorBlock.getGrindPower(); + return this.rotorBlock.getGrindPower() > 0; + } + + public boolean doRandomMaintenanceDamage() { + return true; + } + + public boolean recipe_fallback(ItemStack aStack){ + //sight... fallback to the macerator recipes + GT_Recipe.GT_Recipe_Map tMap = GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; + if (tMap == null) + return false; + GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), false, false, V[1], null, aStack); + if (tRecipe == null) + return false; + if (tRecipe.getOutput(0) != null) { + aStack.stackSize--; + mOutputItems[0] = tRecipe.getOutput(0); + if (new XSTR().nextInt(2) == 0){ + if (tRecipe.getOutput(1) != null) + mOutputItems[1] = tRecipe.getOutput(1); + else + mOutputItems[1] = tRecipe.getOutput(0); + } + } + this.mMaxProgresstime = (tRecipe.mDuration * 2 *100); + return true; + } + + @Override + public boolean checkRecipe(ItemStack itemStack) { + + if (itemStack == null || itemStack.getItem() == null) + return false; + + if (this.mOutputItems == null) + this.mOutputItems = new ItemStack[2]; + + //Override Recipes that doesnt quite work well with OreUnificator + //Items + if (itemStack.getItem().equals(Items.wheat)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 15 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L)); + this.mOutputItems[1] = (GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wheat, 1L)); + return true; + } else if (itemStack.getItem().equals(Items.bone)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 15 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = new ItemStack(Items.dye, 4, 15); + else + this.mOutputItems[0] = new ItemStack(Items.dye, 3, 15); + return true; + } + //Blocks + else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.gravel)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 30 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = new ItemStack(Items.flint, 2); + else + this.mOutputItems[0] = new ItemStack(Items.flint); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.cobblestone) || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.stone)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 2L); + else + this.mOutputItems[0] = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.sandstone)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 45 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = new ItemStack(Blocks.sand, 3); + else + this.mOutputItems[0] = new ItemStack(Blocks.sand, 2); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.clay) || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.hardened_clay) || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.stained_hardened_clay)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + this.mOutputItems[0] = Materials.Clay.getDust(1); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.redstone_block)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + this.mOutputItems[0] = Materials.Redstone.getDust(9); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.glass)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1L)); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.wool)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = new ItemStack(Items.string, 3); + else + this.mOutputItems[0] = new ItemStack(Items.string, 2); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.glowstone)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = new ItemStack(Items.glowstone_dust, 4); + else + this.mOutputItems[0] = new ItemStack(Items.glowstone_dust, 3); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.netherrack)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 2L)); + else + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1L)); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.log)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)); + else + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.log2)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)); + else + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.pumpkin)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 15 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = new ItemStack(Items.pumpkin_seeds, 2); + else + this.mOutputItems[0] = new ItemStack(Items.pumpkin_seeds, 1); + return true; + } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.melon_block)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 15 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = new ItemStack(Items.melon_seeds, 2); + else + this.mOutputItems[0] = new ItemStack(Items.melon_seeds, 1); + return true; + } + + //null checks for GT shit + if (GT_OreDictUnificator.getAssociation(itemStack) == null || + GT_OreDictUnificator.getAssociation(itemStack).mPrefix == null || + GT_OreDictUnificator.getAssociation(itemStack).mMaterial == null || + GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial == null || + GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial.getDust(1) == null + ) + return recipe_fallback(itemStack); //fallback for all non-unificated Items + + //Ore Unificator shit for balance + if (OrePrefixes.ingot.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || OrePrefixes.gem.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 45 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, 1L)); + return true; + } else if (OrePrefixes.ore.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.crushed, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, 1L)); + return true; + } else if (OrePrefixes.crushed.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 30 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dustImpure, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, 1L)); + return true; + } else if (OrePrefixes.crushedPurified.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 30 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dustPure, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, 1L)); + return true; + } else if (OrePrefixes.crushedCentrifuged.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 30 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, 1L)); + return true; + } else if (OrePrefixes.block.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, (GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial.mSubTags.contains(SubTag.METAL) || GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial.mSubTags.contains(SubTag.CRYSTAL)) ? 9L : 1L)); + return true; + } else if ( + OrePrefixes.stone.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.stoneBricks.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.stoneChiseled.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.stoneCobble.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.stoneCracked.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.stoneMossy.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.stoneMossyBricks.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.stoneSmooth.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) || + OrePrefixes.cobblestone.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix) + ) { + itemStack.stackSize -= 1; + this.mMaxProgresstime = 60 * 20 * 100; + if (new XSTR().nextInt(2) == 0) + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, 2L)); + else + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial, 1L)); + return true; + } + return recipe_fallback(itemStack); //2nd fallback + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new BW_GUIContainer_Windmill(aPlayerInventory, aBaseMetaTileEntity,this.getLocalName()); + } + + public boolean addDispenserToOutputSet(TileEntity aTileEntity) { + if (aTileEntity instanceof TileEntityDispenser) { + this.tedList.add((TileEntityDispenser) aTileEntity); + return true; + } + return false; + } + + public boolean addOutput(ItemStack aStack) { + if (GT_Utility.isStackInvalid(aStack)) + return false; + + for (TileEntityDispenser tHatch : this.tedList) { + for (int i = tHatch.getSizeInventory() - 1; i >= 0; i--) { + if (tHatch.getStackInSlot(i) == null || GT_Utility.areStacksEqual(tHatch.getStackInSlot(i), aStack) && aStack.stackSize + tHatch.getStackInSlot(i).stackSize <= 64) { + if (GT_Utility.areStacksEqual(tHatch.getStackInSlot(i), aStack)) { + ItemStack merge = tHatch.getStackInSlot(i).copy(); + merge.stackSize = aStack.stackSize + tHatch.getStackInSlot(i).stackSize; + tHatch.setInventorySlotContents(i, merge); + } else { + tHatch.setInventorySlotContents(i, aStack.copy()); + } + + if (GT_Utility.areStacksEqual(tHatch.getStackInSlot(i), aStack)) { + aStack = null; + return true; + } else { + tHatch.setInventorySlotContents(i, null); + aStack = null; + return false; + } + } + } + } + return false; + } + + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack itemStack) { + + /* + * offset x1 = 3x3 + * offset x2 = 5x5 + * offset x3 = 7x7 + * etc. + */ + + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX * 3; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ * 3; + + //floor + for (int x = -3; x <= 3; x++) { + for (int z = -3; z <= 3; z++) { + if (!((Math.abs(x) == 3 && Math.abs(z) == 3) || (xDir + x == 0 && zDir + z == 0))) + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, 0, zDir + z) != Blocks.brick_block) { + return false; + } + } + } + + //h_clay shaft + for (int y = 1; y <= 4; y++) + for (int x = -2; x <= 2; x++) + for (int z = -2; z <= 2; z++) { + if (!((Math.abs(x) == 2 && Math.abs(z) == 2) || (Math.abs(x) < 2 && Math.abs(z) != 2))) + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, y, zDir + z) != Blocks.hardened_clay && !this.addDispenserToOutputSet(aBaseMetaTileEntity.getTileEntityOffset(xDir + x, y, zDir + z))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, y, zDir + z) == Blocks.wooden_door && this.hasDoor < 3) { + this.hasDoor++; + continue; + } + return false; + } + } + + //plank layer 1 + for (int x = -2; x <= 2; x++) + for (int z = -2; z <= 2; z++) { + if (!(Math.abs(x) < 2 && Math.abs(z) != 2)) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, 5, zDir + z) != Blocks.planks) + return false; + } + } + + //plank layer 2-4 + for (int x = -3; x <= 3; x++) + for (int y = 6; y <= 8; y++) + for (int z = -3; z <= 3; z++) + if (!(((Math.abs(x) == 3 && Math.abs(z) == 3) || (Math.abs(x) < 3 && (Math.abs(z) != 2 || Math.abs(z) != 1))) || (xDir + x == 0 && zDir + z == 0 && y == 7))) + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, y, zDir + z) != Blocks.planks) + return false; + + //plank layer 5 + for (int x = -2; x <= 2; x++) + for (int z = -2; z <= 2; z++) + if (!(Math.abs(x) < 2 && (Math.abs(z) != 2))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, 9, zDir + z) != Blocks.planks) + return false; + } + //plank layer 6 + for (int x = -1; x <= 1; x++) + for (int z = -1; z <= 1; z++) + if (!(Math.abs(x) < 1 && (Math.abs(z) != 1))) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, 10, zDir + z) != Blocks.planks) + return false; + } + //plank layer 7 + if (aBaseMetaTileEntity.getBlockOffset(xDir, 11, zDir) != Blocks.planks) + return false; + + //Rotor Block + TileEntity te = this.getBaseMetaTileEntity().getWorld().getTileEntity(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord() + 7, this.getBaseMetaTileEntity().getZCoord()); + + if (te instanceof BW_RotorBlock) + this.rotorBlock = (BW_RotorBlock) te; + else + return false; + + //check for outputs + if (this.tedList.isEmpty()) + return false; + + this.mWrench = true; + this.mScrewdriver = true; + this.mSoftHammer = true; + this.mHardHammer = true; + this.mSolderingTool = true; + this.mCrowbar = true; + + //reset door cause bugs >_> + this.hasDoor = 0; + + return true; + } + + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide()) { + if (this.mEfficiency < 0) + this.mEfficiency = 0; + if (--this.mUpdate == 0 || --this.mStartUpCheck == 0) { + this.hasDoor = 0; + this.tedList.clear(); + this.mMachine = this.checkMachine(aBaseMetaTileEntity, this.mInventory[1]); + } + if (this.mStartUpCheck < 0) { + if (this.mMachine) { + if (this.mMaxProgresstime > 0) { + if (this.onRunningTick(this.mInventory[1])) { + if (this.mMaxProgresstime > 0 && this.mProgresstime >= this.mMaxProgresstime) { + if (this.mOutputItems != null) + for (ItemStack tStack : this.mOutputItems) + if (tStack != null) { + this.addOutput(tStack); + } + this.mEfficiency = 10000; + this.mOutputItems = new ItemStack[2]; + this.mProgresstime = 0; + this.mMaxProgresstime = 0; + this.mEfficiencyIncrease = 0; + if (aBaseMetaTileEntity.isAllowedToWork()) { + if (this.checkRecipe(this.mInventory[1])) + this.updateSlots(); + } + } + } + } else { + if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) { + if (aBaseMetaTileEntity.isAllowedToWork()) { + if (this.checkRecipe(this.mInventory[1])) + this.updateSlots(); + } + } + } + } else { + this.mMachine = this.checkMachine(aBaseMetaTileEntity, this.mInventory[1]); + return; + } + } else { + this.stopMachine(); + } + } + aBaseMetaTileEntity.setErrorDisplayID((aBaseMetaTileEntity.getErrorDisplayID() & ~127) | (this.mWrench ? 0 : 1) | (this.mScrewdriver ? 0 : 2) | (this.mSoftHammer ? 0 : 4) | (this.mHardHammer ? 0 : 8) | (this.mSolderingTool ? 0 : 16) | (this.mCrowbar ? 0 : 32) | (this.mMachine ? 0 : 64)); + aBaseMetaTileEntity.setActive(this.mMaxProgresstime > 0); + } + + @Override + public int getCurrentEfficiency(ItemStack itemStack) { + return 10000; + } + + @Override + public void updateSlots() { + if (this.mInventory[1] != null && this.mInventory[1].stackSize <= 0) { + this.mInventory[1] = null; + } + } + + @Override + public int getMaxEfficiency(ItemStack itemStack) { + return 10000; + } + + @Override + public int getPollutionPerTick(ItemStack itemStack) { + return 0; + } + + @Override + public int getDamageToComponent(ItemStack itemStack) { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack itemStack) { + return false; + } + + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) { + return new GT_TileEntity_Windmill(this.mName); + } + + @Override + public String[] getDescription() { + return new String[]{ + "A primitive Grinder powered by Kinetic energy.", + "WxHxL: 7x12x7", + "Layer 1: 7x7 Bricks, corners are air, controller at front centered.", + "Layer 2-4: 5x5 Hardened Clay, corners are air, can contain one door,", + " must contain at least one Dispenser", + "Layer 5: 5x5 Wood Planks. Corners are filled.", + "Layer 6: 7x7 Wood Planks. Corners are air.", + "Layer 8: 7x7 Wood Planks. Corners are air,", + " front centered must be a Primitive Kinetic Shaftbox", + "Layer 9: 7x7 Wood Planks. Corners are air.", + "Layer 10: 5x5 Wood Planks. Corners are filled.", + "Layer 11: 3x3 Wood Planks. Corners are filled.", + "Layer 12: 1x1 Wood Plank.", + "Needs a Wind Mill Rotor in the Shaftbox to operate", + "Input items in Controller", + "Output items will appear in the dispensers", + "Added by bartimaeusnek via "+ ChatColorHelper.DARKGREEN+"BartWorks" + }; + } + + @Override + public String[] getInfoData() { + return new String[]{"Progress:", this.mProgresstime + " Grindings of " + this.mMaxProgresstime + " needed Grindings", "GrindPower:", Integer.toString(this.rotorBlock.getGrindPower()) + "KU/t"}; + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aBlockIconRegister) { + iIcons[0]=aBlockIconRegister.registerIcon("brick"); + iIconContainers[0]=new IIconContainer() { + @Override + public IIcon getIcon() { + return iIcons[0]; + } + + @Override + public IIcon getOverlayIcon() { + return iIcons[0]; + } + + @Override + public ResourceLocation getTextureFile() { + return new ResourceLocation("brick"); + } + }; + + iIcons[1]=aBlockIconRegister.registerIcon(MainMod.modID+":windmill_top"); + iIconContainers[1]=new IIconContainer() { + @Override + public IIcon getIcon() { + return iIcons[1]; + } + + @Override + public IIcon getOverlayIcon() { + return iIcons[1]; + } + + @Override + public ResourceLocation getTextureFile() { + return new ResourceLocation(MainMod.modID+":windmill_top"); + } + }; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + + ITexture[] ret = new ITexture[0]; + + if (isClientSide()) { + iTextures[0] = new GT_RenderedTexture(iIconContainers[0], Dyes.getModulation(0, Dyes.MACHINE_METAL.mRGBa)); + + ret = new ITexture[6]; + for (int i = 0; i < 6; i++) { + ret[i] = iTextures[0]; + } + if (aSide == 1){ + iTextures[1] = new GT_RenderedTexture(iIconContainers[1], Dyes.getModulation(0, Dyes.MACHINE_METAL.mRGBa)); + + ret = new ITexture[6]; + for (int i = 0; i < 6; i++) { + ret[i] = iTextures[1]; + } + } + + } + + + return ret; + } + + public boolean isClientSide() { + if (this.getBaseMetaTileEntity().getWorld() != null) + return this.getBaseMetaTileEntity().getWorld().isRemote ? FMLCommonHandler.instance().getSide() == Side.CLIENT : FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT; + return FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT; + } +} diff --git a/src/main/resources/assets/bartworks/lang/en_US.lang b/src/main/resources/assets/bartworks/lang/en_US.lang index f726682955..400cf182fc 100644 --- a/src/main/resources/assets/bartworks/lang/en_US.lang +++ b/src/main/resources/assets/bartworks/lang/en_US.lang @@ -9,3 +9,15 @@ itemGroup.GT2C=Gregtech 2 Compat itemGroup.bartworks=BartWorks Inter Temporal BW_Machinery_Casings.0.name=Nickel-Zinc Ferrite Block BW_Machinery_Casings.1.name=Transformer-Winding Block +item.BW_PaperRotor.name=Primitive Paper Rotor (Wind only) +item.BW_LeatherRotor.name=Primitive Leather Rotor (Wind only) +item.BW_WoolRotor.name=Primitive Wool Rotor (Wind only) +item.BW_CombinedRotor.name=Combined Primitive Rotor (Wind only) +tile.BWRotorBlock.name=Primitive Kinetic Shaftbox +item.grindstone_top.name=Grindstone Top Piece +item.grindstone_bottom.name=Grindstone Bottom Piece +item.completed_grindstone.name=Grindstone +item.rotors.leatherParts.name=Leather Covered Wood Frame +item.rotors.woolParts.name=Wool Covered Wood Frame +item.rotors.paperParts.name=Paper Covered Wood Frame +item.rotors.combinedParts.name=Multiple Material Covered Wood Frame
\ No newline at end of file diff --git a/src/main/resources/assets/bartworks/textures/GUI/GUIPrimitiveKUBox.png b/src/main/resources/assets/bartworks/textures/GUI/GUIPrimitiveKUBox.png Binary files differnew file mode 100644 index 0000000000..0e329e4ea3 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/GUI/GUIPrimitiveKUBox.png diff --git a/src/main/resources/assets/bartworks/textures/GUI/GUI_Windmill.png b/src/main/resources/assets/bartworks/textures/GUI/GUI_Windmill.png Binary files differnew file mode 100644 index 0000000000..d71477e9da --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/GUI/GUI_Windmill.png diff --git a/src/main/resources/assets/bartworks/textures/blocks/BWRotorBlock.png b/src/main/resources/assets/bartworks/textures/blocks/BWRotorBlock.png Binary files differnew file mode 100644 index 0000000000..fc0872b45f --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/blocks/BWRotorBlock.png diff --git a/src/main/resources/assets/bartworks/textures/blocks/GrindstoneL.png b/src/main/resources/assets/bartworks/textures/blocks/GrindstoneL.png Binary files differnew file mode 100644 index 0000000000..6e2e7dfe4e --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/blocks/GrindstoneL.png diff --git a/src/main/resources/assets/bartworks/textures/blocks/brick.png b/src/main/resources/assets/bartworks/textures/blocks/brick.png Binary files differnew file mode 100644 index 0000000000..fd6959c2f5 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/blocks/brick.png diff --git a/src/main/resources/assets/bartworks/textures/blocks/windmill_top.png b/src/main/resources/assets/bartworks/textures/blocks/windmill_top.png Binary files differnew file mode 100644 index 0000000000..8f49c6b2f3 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/blocks/windmill_top.png diff --git a/src/main/resources/assets/bartworks/textures/items/completed_grindstone.png b/src/main/resources/assets/bartworks/textures/items/completed_grindstone.png Binary files differnew file mode 100644 index 0000000000..a02ee7ad6a --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/completed_grindstone.png diff --git a/src/main/resources/assets/bartworks/textures/items/grindstone_bottom.png b/src/main/resources/assets/bartworks/textures/items/grindstone_bottom.png Binary files differnew file mode 100644 index 0000000000..33b1e96bda --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/grindstone_bottom.png diff --git a/src/main/resources/assets/bartworks/textures/items/grindstone_top.png b/src/main/resources/assets/bartworks/textures/items/grindstone_top.png Binary files differnew file mode 100644 index 0000000000..0be37504b5 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/grindstone_top.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/combinedParts.png b/src/main/resources/assets/bartworks/textures/items/rotors/combinedParts.png Binary files differnew file mode 100644 index 0000000000..bdb4aafc04 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/combinedParts.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorCombined.png b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorCombined.png Binary files differnew file mode 100644 index 0000000000..13ae5461e8 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorCombined.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorLeather.png b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorLeather.png Binary files differnew file mode 100644 index 0000000000..a11f72b76d --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorLeather.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorPaper.png b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorPaper.png Binary files differnew file mode 100644 index 0000000000..56863186ac --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorPaper.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorWool.png b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorWool.png Binary files differnew file mode 100644 index 0000000000..a5bb68bb43 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/itemRotorWool.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/leatherParts.png b/src/main/resources/assets/bartworks/textures/items/rotors/leatherParts.png Binary files differnew file mode 100644 index 0000000000..824697ab3d --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/leatherParts.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/paperParts.png b/src/main/resources/assets/bartworks/textures/items/rotors/paperParts.png Binary files differnew file mode 100644 index 0000000000..5b09228578 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/paperParts.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/rotorCombined.png b/src/main/resources/assets/bartworks/textures/items/rotors/rotorCombined.png Binary files differnew file mode 100644 index 0000000000..4e97c01705 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/rotorCombined.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/rotorLeather.png b/src/main/resources/assets/bartworks/textures/items/rotors/rotorLeather.png Binary files differnew file mode 100644 index 0000000000..388b43bd56 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/rotorLeather.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/rotorPaper.png b/src/main/resources/assets/bartworks/textures/items/rotors/rotorPaper.png Binary files differnew file mode 100644 index 0000000000..e9d1767a42 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/rotorPaper.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/rotorWool.png b/src/main/resources/assets/bartworks/textures/items/rotors/rotorWool.png Binary files differnew file mode 100644 index 0000000000..d62caeba27 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/rotorWool.png diff --git a/src/main/resources/assets/bartworks/textures/items/rotors/woolParts.png b/src/main/resources/assets/bartworks/textures/items/rotors/woolParts.png Binary files differnew file mode 100644 index 0000000000..24c6cb0573 --- /dev/null +++ b/src/main/resources/assets/bartworks/textures/items/rotors/woolParts.png |