diff options
21 files changed, 329 insertions, 446 deletions
diff --git a/build.properties b/build.properties index 9a44a2cdea..1671602e1e 100644 --- a/build.properties +++ b/build.properties @@ -1,7 +1,7 @@ minecraft.version=1.7.10 forge.version=10.13.4.1614-1.7.10 -detravscanner.version=0.15.1 +detravscanner.version=0.22.0 ae2.version=rv2-beta-33 applecore.version=1.7.10-1.2.1+107.59407 diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java index 25d2dcc67e..4c2806920d 100644 --- a/src/main/java/com/detrav/DetravScannerMod.java +++ b/src/main/java/com/detrav/DetravScannerMod.java @@ -22,7 +22,7 @@ import net.minecraftforge.common.config.Configuration; public class DetravScannerMod { public static final String MODID = "detravscannermod"; - public static final String VERSION = "0.15"; + public static final String VERSION = "0.22"; public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab(); @@ -68,8 +68,8 @@ public class DetravScannerMod @EventHandler public void onPostLoad(FMLPostInitializationEvent aEvent) { proxy.onPostLoad(); - DetravBlockBreakEventHandler.register(); - DetravLoginEventHandler.register(); + //DetravBlockBreakEventHandler.register(); + //DetravLoginEventHandler.register(); } @EventHandler diff --git a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java index ba5b3ff137..49a0c9ae50 100644 --- a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java +++ b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java @@ -9,6 +9,8 @@ import com.detrav.items.processing.ProcessingDetravToolProPick; import com.detrav.tileentities.Detrav_MetaTileEntity_Boiler_Solar_High; import com.detrav.tileentities.Detrav_MetaTileEntity_Boiler_Solar_Low; import com.detrav.tileentities.Detrav_MetaTileEntity_Boiler_Solar_Medium; +import com.detrav.utils.DetravRepairRecipe; +import cpw.mods.fml.common.registry.GameRegistry; /** * Created by wital_000 on 18.03.2016. @@ -32,5 +34,8 @@ public class Detrav_AfterGTPreload_Loader implements Runnable { DetravItemList.Solar_Boiler_Low.set(new Detrav_MetaTileEntity_Boiler_Solar_Low(2051,"boiler.bronze.solar", "Bronze Solar Boiler").getStackForm(1L)); DetravItemList.Solar_Boiler_Medium.set(new Detrav_MetaTileEntity_Boiler_Solar_Medium(2052,"boiler.steel.solar", "Steel Solar Boiler").getStackForm(1L)); DetravItemList.Solar_Boiler_High.set(new Detrav_MetaTileEntity_Boiler_Solar_High(2053,"boiler.stainless.steel.solar", "Stainless Steel Solar Boiler").getStackForm(1L)); + + GameRegistry.addRecipe(new DetravRepairRecipe()); + } } diff --git a/src/main/java/com/detrav/enums/DetravToolDictNames.java b/src/main/java/com/detrav/enums/DetravToolDictNames.java index 13e0f2529a..f208714a58 100644 --- a/src/main/java/com/detrav/enums/DetravToolDictNames.java +++ b/src/main/java/com/detrav/enums/DetravToolDictNames.java @@ -6,6 +6,5 @@ package com.detrav.enums; public enum DetravToolDictNames { craftingToolProPick, craftingToolElectricProPick, - craftingToolPortableCharger, - craftingRepairTool + craftingToolPortableCharger } diff --git a/src/main/java/com/detrav/enums/Textures01.java b/src/main/java/com/detrav/enums/Textures01.java index 5ba619c090..4cfb866ba1 100644 --- a/src/main/java/com/detrav/enums/Textures01.java +++ b/src/main/java/com/detrav/enums/Textures01.java @@ -18,7 +18,6 @@ public class Textures01 { new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_MV_PRO_PICK_HEAD"), new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_HV_PRO_PICK_HEAD"), new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/PORTABE_CHARGER"), - new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/PORTABE_CHARGER_BORDER"), - new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/REPAIR_TOOL") + new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/PORTABE_CHARGER_BORDER") }; }
\ No newline at end of file diff --git a/src/main/java/com/detrav/events/DetravCraftingEventHandler.java b/src/main/java/com/detrav/events/DetravCraftingEventHandler.java new file mode 100644 index 0000000000..0350b9b7b7 --- /dev/null +++ b/src/main/java/com/detrav/events/DetravCraftingEventHandler.java @@ -0,0 +1,46 @@ +package com.detrav.events; + +import com.detrav.utils.DetravRepairRecipe; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent; +import gregtech.api.util.GT_Utility; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.MinecraftForge; + +/** + * Created by Detrav on 02.10.2016. + */ +public class DetravCraftingEventHandler { + @SubscribeEvent + public void onCrafting(PlayerEvent.ItemCraftedEvent e) { + if(DetravRepairRecipe.INSTANCE == null) return; + if(!(e.craftMatrix instanceof InventoryCrafting)) return; + if(DetravRepairRecipe.INSTANCE.matches((InventoryCrafting) e.craftMatrix,null)) + { + if(!GT_Utility.areStacksEqual(e.crafting, e.craftMatrix.getStackInSlot(4),true)) return; + for(int i =0; i<e.craftMatrix.getSizeInventory(); i++) { + ItemStack stack = e.craftMatrix.getStackInSlot(i); + if(stack == null) continue; + if (stack.stackSize < 2) + e.craftMatrix.setInventorySlotContents(i, null); + else { + //stack.stackSize -= 1; + //e.craftMatrix.setInventorySlotContents(i,stack); + } + } + } + } + + static boolean inited = false; + + public static void register() { + if (!inited) { + inited = true; + DetravCraftingEventHandler handler = new DetravCraftingEventHandler(); + MinecraftForge.EVENT_BUS.register(handler); + FMLCommonHandler.instance().bus().register(handler); + } + } +} diff --git a/src/main/java/com/detrav/events/DetravEntityDropEvent.java b/src/main/java/com/detrav/events/DetravEntityDropEvent.java new file mode 100644 index 0000000000..ff733bf7ad --- /dev/null +++ b/src/main/java/com/detrav/events/DetravEntityDropEvent.java @@ -0,0 +1,86 @@ +package com.detrav.events; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import gregtech.api.enums.ItemList; +import gregtech.api.items.GT_MetaGenerated_Item_X01; +import ic2.core.Ic2Items; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.LivingDropsEvent; + +import java.util.Random; + +/** + * Created by Detrav on 02.10.2016. + */ +public class DetravEntityDropEvent { + + final static int baseShance = 40; + static Random random = new Random(); + + @SubscribeEvent + public void onLivingDropsEvent(LivingDropsEvent event) { + if(event.entity.isCreatureType(EnumCreatureType.monster, false)) { + float shance = (baseShance + event.entityLiving.getMaxHealth()); + int count = 0; + while (shance > 100) { + count++; + shance -= 100; + } + + if(count>0) + { + count = (int)Math.pow(count,event.lootingLevel+1) + 1; + + while (count>Ic2Items.coin.getMaxStackSize()) { + ItemStack itemStackToDrop = Ic2Items.coin.copy(); + itemStackToDrop.stackSize = itemStackToDrop.getMaxStackSize(); + event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, + event.entity.posY, event.entity.posZ, itemStackToDrop)); + count -= itemStackToDrop.getMaxStackSize(); + } + ItemStack itemStackToDrop = Ic2Items.coin.copy(); + itemStackToDrop.stackSize = count; + event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, + event.entity.posY, event.entity.posZ, itemStackToDrop)); + } + + count = 0; + + shance = shance*(event.lootingLevel +1); + while (shance > 100) { + count++; + shance -= 100; + } + if(random.nextInt(100) < shance) count ++; + ItemStack itemStackToDrop = ItemList.Credit_Copper.get(count); + event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, + event.entity.posY, event.entity.posZ, itemStackToDrop)); + } + /*if(event.source.getEntity() instanceof EntityPlayer) + { + + ((EntityPlayer)event.source.getEntity()).addChatComponentMessage( + new ChatComponentText(event.entity.toString()) + ); + }*/ + } + + + static boolean inited = false; + + public static void register() { + if (!inited) { + inited = true; + DetravEntityDropEvent handler = new DetravEntityDropEvent(); + MinecraftForge.EVENT_BUS.register(handler); + FMLCommonHandler.instance().bus().register(handler); + } + } +} diff --git a/src/main/java/com/detrav/gui/DetravRepairToolGui.java b/src/main/java/com/detrav/gui/DetravRepairToolGui.java deleted file mode 100644 index 8e55982aca..0000000000 --- a/src/main/java/com/detrav/gui/DetravRepairToolGui.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.detrav.gui; - -import com.detrav.gui.containers.DetravPortableChargerContainer; -import com.detrav.gui.containers.DetravRepairToolContainer; -import com.detrav.items.DetravMetaGeneratedTool01; -import gregtech.api.GregTech_API; -import gregtech.api.util.GT_Utility; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; - -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; -import static gregtech.api.enums.GT_Values.V; - -/** - * Created by wital_000 on 08.04.2016. - */ -public class DetravRepairToolGui extends GuiContainer { - public static final int GUI_ID = 40; - - ResourceLocation location = null; - private String mName = "Repair tools"; - //public static long charge = 0; - //ItemStack mItem = null; - //DetravPortableChargerContainer container = null; - private ItemStack mItem; - - public DetravRepairToolGui(InventoryPlayer player, World aWorld, ItemStack aStack) { - super(new DetravRepairToolContainer(player, aWorld, aStack)); - //container = (DetravPortableChargerContainer) inventorySlots; - location = new ResourceLocation(RES_PATH_GUI + "1by1.png"); - mItem = aStack; - //if (mItem != null) { -// charge = DetravMetaGeneratedTool01.INSTANCE.getRealCharge(mItem); -// } - } - - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(mName, 8, 4, 4210752); - fontRendererObj.drawString("Click with Tool to repair.", 8, 12, 4210752); - /*if (mItem != null) { - //GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - //EnumChatFormatting.AQUA + "" + + EnumChatFormatting.GRAY); - - Long[] tStats = DetravMetaGeneratedTool01.INSTANCE.getElectricStats(mItem); - if (tStats == null) return; - //long tCharge = DetravMetaGeneratedTool01.INSTANCE.getRealCharge(mItem); - long loss = DetravMetaGeneratedTool01.INSTANCE.getElectricStatsLoss(mItem); - fontRendererObj.drawString(GT_Utility.formatNumbers(charge) + " / " + GT_Utility.formatNumbers(Math.abs(tStats[0])) + " EU", 8, 14, 4210752); - fontRendererObj.drawString("Voltage/Loss: " + V[(int) (tStats[2] >= 0 ? tStats[2] < V.length ? tStats[2] : V.length - 1 : 1)] + " / " + loss, 8, 24, 4210752); - }*/ - } - - @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - mc.renderEngine.bindTexture(location); - if (GregTech_API.sColoredGUI && mItem != null && DetravMetaGeneratedTool01.getPrimaryMaterial(mItem) != null) { - short[] tColors = DetravMetaGeneratedTool01.getPrimaryMaterial(mItem).mColor.getRGBA(); - GL11.glColor4f(tColors[0] / 255F, tColors[1] / 255F, tColors[2] / 255F, 1F); - } else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - int x = (width - xSize) / 2; - int y = (height - ySize) / 2; - drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - } -}
\ No newline at end of file diff --git a/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java b/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java index eeb6d0e4a3..3d5685ada8 100644 --- a/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java +++ b/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java @@ -89,7 +89,7 @@ public class DetravPortableChargerContainer extends Container { //GT_ModHandler.ch - for(int forTry = 0; forTry<4;forTry++){ + for(int forTry = 0; forTry<20;forTry++){ Long[] selfStats = DetravMetaGeneratedTool01.INSTANCE.getElectricStats(mItem); if (selfStats == null) return; diff --git a/src/main/java/com/detrav/gui/containers/DetravRepairToolContainer.java b/src/main/java/com/detrav/gui/containers/DetravRepairToolContainer.java deleted file mode 100644 index 95c48117de..0000000000 --- a/src/main/java/com/detrav/gui/containers/DetravRepairToolContainer.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.detrav.gui.containers; - -import com.detrav.items.DetravMetaGeneratedTool01; -import forestry.core.gui.slots.SlotLocked; -import gregtech.api.items.GT_MetaBase_Item; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -/** - * Created by wital_000 on 08.04.2016. - */ -public class DetravRepairToolContainer extends Container { - public IInventory slots = new InventoryCrafting(this, 1, 1); - public ItemStack mItem; - private World worldObj; - - public DetravRepairToolContainer(InventoryPlayer inventoryPlayer, World aWorld, ItemStack aStack) { - this.worldObj = aWorld; - this.addSlotToContainer(new Slot(slots, 0, 80, 35)); - mItem = aStack; - //new Slot() - bindPlayerInventory(inventoryPlayer); - - //DetravMetaGeneratedTool01.INSTANCE.getToolStats(mItem). - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 9; j++) { - addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, - 8 + j * 18, 84 + i * 18)); - } - } - - - for (int i = 0; i < 9; i++) { - ItemStack stackInSlot = inventoryPlayer.getStackInSlot(i); - if (mItem!=null && stackInSlot!=null && mItem == stackInSlot) { - addSlotToContainer(new SlotLocked(inventoryPlayer, i, 8 + i * 18, 142)); - } else { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); - } - } - } - - @Override - public boolean canInteractWith(EntityPlayer p_75145_1_) { - return true; - } - - public void onContainerClosed(EntityPlayer p_75134_1_) { - super.onContainerClosed(p_75134_1_); - if (!this.worldObj.isRemote) { - //for (int i = 0; i < 9; ++i) - //{ - ItemStack itemstack = this.slots.getStackInSlotOnClosing(0); - - if (itemstack != null) { - p_75134_1_.dropPlayerItemWithRandomChoice(itemstack, false); - } - //} - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) { - return null; - } - - @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex != 0) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - if(DetravMetaGeneratedTool01.getToolDamage(mItem) >= DetravMetaGeneratedTool01.getToolMaxDamage(mItem)) - return null; - ItemStack tStack = aPlayer.inventory.getItemStack(); - if (tStack != null) { - if(tStack.getUnlocalizedName()!="gt.detrav.metatool.01.2") { - if (DetravMetaGeneratedTool01.getToolMaxDamage(tStack) > 0) { - long damage = DetravMetaGeneratedTool01.getToolDamage(tStack); - damage /= 10; - DetravMetaGeneratedTool01.setToolDamage(tStack, damage); - DetravMetaGeneratedTool01.INSTANCE.doDamage(mItem, 1000L); - } - //((GT_MetaTileEntity_Hatch_Maintenance) mTileEntity.getMetaTileEntity()).onToolClick(tStack, aPlayer); - //if (tStack.stackSize <= 0) aPlayer.inventory.setItemStack(null); - } - } - return null; - } - - - /*@Override - public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) { - ItemStack result = super.transferStackInSlot(par1EntityPlayer,par2); - par1EntityPlayer.addChatMessage(new ChatComponentText(result.getDisplayName())); - - return result; - }*/ -} diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java index cb0676a363..fb41a24a93 100644 --- a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java +++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java @@ -27,7 +27,6 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { super("detrav.metatool.01"); INSTANCE = this; addTool(0, "Prospector's Pick", "", new DetravToolProPick(), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}); - addTool(2, "Repair tools", "", new DetravRepairTool(), new Object[]{DetravToolDictNames.craftingRepairTool, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 8L)}); addTool(100, "Electric Prospector's Scanner (LV)", "", new DetravToolLVElectricProPick(), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L)); addTool(102, "Electric Prospector's Scanner (MV)", "", new DetravToolMVElectricProPick(), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L)); addTool(104, "Electric Prospector's Scanner (HV)", "", new DetravToolHVElectricProPick(), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L)); @@ -60,13 +59,6 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { aList.add(tOffset + 7, "Large: 60-99"); aList.add(tOffset + 8, "Very large: 100-***"); break; - case 2: - aList.add(tOffset + 0, EnumChatFormatting.GRAY + "Can repair some tools"); - aList.add(tOffset + 1, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); - aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Efficiency 90%" + EnumChatFormatting.GRAY); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Cost 1k per operation" + EnumChatFormatting.GRAY); - aList.add(tOffset + 4, "Right click to open GUI"); - break; case 100: case 101: case 102: diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravRepairTool.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravRepairTool.java deleted file mode 100644 index ab23490fa3..0000000000 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravRepairTool.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.detrav.items.behaviours; - -import com.detrav.DetravScannerMod; -import com.detrav.items.DetravMetaGeneratedTool01; -import gregtech.api.enums.SubTag; -import gregtech.api.interfaces.IItemBehaviour; -import gregtech.api.items.GT_MetaBase_Item; -import gregtech.common.items.behaviors.Behaviour_None; -import net.minecraft.dispenser.IBlockSource; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.List; - -/** - * Created by wital_000 on 08.04.2016. - */ -public class BehaviourDetravRepairTool extends Behaviour_None { - public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - if(DetravMetaGeneratedTool01.getToolDamage(aStack)< DetravMetaGeneratedTool01.INSTANCE.getToolMaxDamage(aStack)-1) { - DetravScannerMod.proxy.openRepairToolGui(aPlayer); - } else DetravMetaGeneratedTool01.INSTANCE.doDamage(aStack,1000); - - return super.onItemRightClick(aItem, aStack, aWorld, aPlayer); - //aPlayer.openContainer - } -} diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java index d14323139f..1fe38299b8 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java @@ -35,12 +35,20 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack); //Проверяем если нажат шифт if (aPlayer.isSneaking()) { - if (data == 0) { - aPlayer.addChatMessage(new ChatComponentText("Set Mode: Oil, Any Block")); - DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 1); - } else { - aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore, Any Rock Block")); - DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 0); + switch ((int)data) + { + case 0: + aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore (with small), Any Rock Block")); + DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 1); + break; + case 1: + aPlayer.addChatMessage(new ChatComponentText("Set Mode: Oil, Any Block")); + DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 2); + break; + default: + aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore, Any Rock Block")); + DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 0); + break; } return super.onItemRightClick(aItem, aStack, aWorld, aPlayer); } @@ -69,7 +77,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi for (int z = 0; z < 16; z++) { int ySize = c.getHeightValue(x, z); for (int y = 1; y < ySize; y++) { - if(data == 0) { + if(data < 2) { Block b = c.getBlock(x, y, z); if (b == GregTech_API.sBlockOres1) { TileEntity entity = c.getTileEntityUnsafe(x, y, z); @@ -77,7 +85,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) entity; String name = GT_LanguageManager.getTranslation( b.getUnlocalizedName() + "." + gt_entity.getMetaData() + ".name"); - if (name.startsWith("Small")) continue; + if (name.startsWith("Small")) if(data!=1) continue; packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, gt_entity.getMetaData()); } } @@ -110,7 +118,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack); - if (data == 0) + if (data < 2) return super.onItemUse(aItem, aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); if (!aWorld.isRemote) { FluidStack fStack = getUndergroundOil(aWorld,aX,aZ); diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java index 9e7a97752a..f33d88555d 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java @@ -79,6 +79,7 @@ public class BehaviourDetravToolProPick extends Behaviour_None { return; } } else if (aRandom.nextInt(10) < 4) { + long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack); HashMap<String, Integer> ores = new HashMap<String, Integer>(); for (int x = 0; x < 16; x++) for (int z = 0; z < 16; z++) { @@ -91,7 +92,7 @@ public class BehaviourDetravToolProPick extends Behaviour_None { GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) entity; String name = GT_LanguageManager.getTranslation( b.getUnlocalizedName() + "." + gt_entity.getMetaData() + ".name"); - if (name.startsWith("Small")) continue; + if (name.startsWith("Small")) if(data!=1) continue; if (!ores.containsKey(name)) ores.put(name, 1); else { @@ -102,10 +103,13 @@ public class BehaviourDetravToolProPick extends Behaviour_None { } } } + int total = 0; for (String key : ores.keySet()) { int value = ores.get(key); + total+=value; addChatMassageByValue(aPlayer,value,key); } + addChatMassageByValue(aPlayer,total,"Total"); if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts); return; @@ -114,6 +118,7 @@ public class BehaviourDetravToolProPick extends Behaviour_None { } void addChatMassageByValue(EntityPlayer aPlayer, int value, String name) { + if(name == "Total") return; if (value < 0) { aPlayer.addChatMessage(new ChatComponentText(foundTexts[6] + name)); } else if (value < 1) { diff --git a/src/main/java/com/detrav/items/tools/DetravRepairTool.java b/src/main/java/com/detrav/items/tools/DetravRepairTool.java deleted file mode 100644 index 65868ce963..0000000000 --- a/src/main/java/com/detrav/items/tools/DetravRepairTool.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.detrav.items.tools; - -import com.detrav.enums.Textures01; -import com.detrav.items.behaviours.BehaviourDetravRepairTool; -import gregtech.api.GregTech_API; -import gregtech.api.damagesources.GT_DamageSources; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.IToolStats; -import gregtech.api.items.GT_MetaGenerated_Tool; -import net.minecraft.block.Block; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.AchievementList; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IChatComponent; -import net.minecraftforge.event.world.BlockEvent; - -import java.util.List; - -/** - * Created by wital_000 on 08.04.2016. - */ -public class DetravRepairTool implements IToolStats { - public int getToolDamagePerBlockBreak() { - return 100; - } - - public int getToolDamagePerDropConversion() { - return 100; - } - - public int getToolDamagePerContainerCraft() { - return 100; - } - - public int getToolDamagePerEntityAttack() { - return 100; - } - - public int getBaseQuality() { - return 0; - } - - public float getBaseDamage() { - return 1.0F; - } - - @Override - public int getHurtResistanceTime(int i, Entity entity) { - return i; - } - - public float getSpeedMultiplier() { - return 0.5F; - } - - public float getMaxDurabilityMultiplier() { - return 0.5F; - } - - @Override - public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity) { - return GT_DamageSources.getCombatDamage((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer, (aEntity instanceof EntityLivingBase) ? getDeathMessage(aPlayer, (EntityLivingBase) aEntity) : null); - } - - public String getCraftingSound() { - return null; - } - - public String getEntityHitSound() { - return null; - } - - public String getBreakingSound() { - return (String) GregTech_API.sSoundList.get(Integer.valueOf(0)); - } - - @Override - public Enchantment[] getEnchantments(ItemStack itemStack) { - return new Enchantment[0]; - } - - @Override - public int[] getEnchantmentLevels(ItemStack itemStack) { - return new int[0]; - } - - public String getMiningSound() { - return null; - } - - public boolean canBlock() { - return false; - } - - public boolean isCrowbar() { - return false; - } - - @Override - public boolean isGrafter() { - return false; - } - - @Override - public boolean isChainsaw() { - return false; - } - - @Override - public boolean isWrench() { - return false; - } - - @Override - public boolean isWeapon() { - return false; - } - - @Override - public boolean isRangedWeapon() { - return false; - } - - @Override - public boolean isMiningTool() { - return false; - } - - public boolean isMinableBlock(Block aBlock, byte aMetaData) { - return false; - } - - @Override - public int convertBlockDrops(List<ItemStack> list, ItemStack itemStack, EntityPlayer entityPlayer, Block block, int i, int i1, int i2, byte b, int i3, boolean b1, BlockEvent.HarvestDropsEvent harvestDropsEvent) { - return 0; - } - - public ItemStack getBrokenItem(ItemStack aStack) { - return null; - } - - @Override - public float getNormalDamageAgainstEntity(float v, Entity entity, ItemStack itemStack, EntityPlayer entityPlayer) { - return v; - } - - @Override - public float getMagicDamageAgainstEntity(float v, Entity entity, ItemStack itemStack, EntityPlayer entityPlayer) { - return v; - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { - return Textures01.mTextures[6]; - } - - public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { - aItem.addItemBehavior(aID, new BehaviourDetravRepairTool()); - } - - public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) { - - aPlayer.triggerAchievement(AchievementList.openInventory); - aPlayer.triggerAchievement(AchievementList.mineWood); - aPlayer.triggerAchievement(AchievementList.buildWorkBench); - } - - public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got ProPicked by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); - } -} diff --git a/src/main/java/com/detrav/proxies/ClientProxy.java b/src/main/java/com/detrav/proxies/ClientProxy.java index 2f78f8c739..6eccd8738c 100644 --- a/src/main/java/com/detrav/proxies/ClientProxy.java +++ b/src/main/java/com/detrav/proxies/ClientProxy.java @@ -23,7 +23,7 @@ public class ClientProxy extends CommonProxy { @Override public void onPostLoad() { super.onPostLoad(); - DetravDrawBlockHighlightEventHandler.register(); + //DetravDrawBlockHighlightEventHandler.register(); //Textures.ItemIcons.CustomIcon test = new Textures.ItemIcons.CustomIcon("iconsets/PRO_PICK_HEAD"); //test.run(); @@ -44,6 +44,6 @@ public class ClientProxy extends CommonProxy { public void onPreInit() { super.onPreInit(); - DetravKeyHandler.register(); + //DetravKeyHandler.register(); } } diff --git a/src/main/java/com/detrav/proxies/CommonProxy.java b/src/main/java/com/detrav/proxies/CommonProxy.java index 1cea1bb3f9..70a6dd8ecd 100644 --- a/src/main/java/com/detrav/proxies/CommonProxy.java +++ b/src/main/java/com/detrav/proxies/CommonProxy.java @@ -3,11 +3,11 @@ package com.detrav.proxies; import com.detrav.DetravScannerMod; import com.detrav.enums.DetravItemList; import com.detrav.enums.DetravSimpleItems; +import com.detrav.events.DetravCraftingEventHandler; +import com.detrav.events.DetravEntityDropEvent; import com.detrav.gui.DetravGuiProPick; -import com.detrav.gui.DetravRepairToolGui; import com.detrav.gui.containers.DetravPortableChargerContainer; import com.detrav.gui.DetravPortableChargerGui; -import com.detrav.gui.containers.DetravRepairToolContainer; import com.detrav.items.DetravMetaGeneratedTool01; import cpw.mods.fml.common.network.IGuiHandler; import gregtech.api.GregTech_API; @@ -40,11 +40,6 @@ public class CommonProxy implements IGuiHandler { } } } - ; - GT_ModHandler.addCraftingRecipe( - DetravMetaGeneratedTool01.INSTANCE.getToolWithStatsPlus(2,1,Materials._NULL,Materials._NULL,null,0), - GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, - new Object[]{"dwx", "hMc", "fsr", Character.valueOf('M'), OrePrefixes.ingot.get(Materials.Steel)}); if (!GregTech_API.sSpecialFile.get(ConfigCategories.general, "DisableFlintTools", false)) { GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(0, 1, Materials.Flint, Materials.Wood, null), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"FF", "SS", Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood), Character.valueOf('F'), new ItemStack(Items.flint, 1)}); @@ -58,6 +53,8 @@ public class CommonProxy implements IGuiHandler { GT_ModHandler.addCraftingRecipe(DetravItemList.Solar_Boiler_Medium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GGG", "NNN", "PMP", Character.valueOf('M'), ItemList.Machine_Steel_Boiler, Character.valueOf('P'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('N'), OrePrefixes.dust.get(Materials.Nickel), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); GT_ModHandler.addCraftingRecipe(DetravItemList.Solar_Boiler_High.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GGG", "RRR", "PMP", Character.valueOf('M'), ItemList.Casing_HV, Character.valueOf('P'), OrePrefixes.pipeSmall.get(Materials.StainlessSteel), Character.valueOf('R'), OrePrefixes.dust.get(Materials.Rutile), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + DetravCraftingEventHandler.register(); + DetravEntityDropEvent.register(); } @Override @@ -67,8 +64,6 @@ public class CommonProxy implements IGuiHandler { return null; case DetravPortableChargerGui.GUI_ID: return new DetravPortableChargerContainer(player.inventory,world,player.getCurrentEquippedItem()); - case DetravRepairToolGui.GUI_ID: - return new DetravRepairToolContainer(player.inventory,world,player.getCurrentEquippedItem()); default: return null; } @@ -81,8 +76,6 @@ public class CommonProxy implements IGuiHandler { return new DetravGuiProPick(); case DetravPortableChargerGui.GUI_ID: return new DetravPortableChargerGui(player.inventory,world,player.getCurrentEquippedItem()); - case DetravRepairToolGui.GUI_ID: - return new DetravRepairToolGui(player.inventory,world,player.getCurrentEquippedItem()); default: return null; } @@ -99,10 +92,7 @@ public class CommonProxy implements IGuiHandler { player.openGui(DetravScannerMod.instance, DetravPortableChargerGui.GUI_ID,player.worldObj,(int)player.posX,(int)player.posY,(int)player.posZ); } - public void openRepairToolGui(EntityPlayer player) - { - player.openGui(DetravScannerMod.instance, DetravRepairToolGui.GUI_ID,player.worldObj,(int)player.posX,(int)player.posY,(int)player.posZ); - } + public void onPreInit() { diff --git a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_High.java b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_High.java index 65650d616f..28327439fd 100644 --- a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_High.java +++ b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_High.java @@ -29,6 +29,11 @@ public class Detrav_MetaTileEntity_Boiler_Solar_High extends GT_MetaTileEntity_B super(aName, aTier, aDescription, aTextures); } + @Override + public String[] getDescription() { + return new String[]{mDescription, "This machine can not explode!"}; + } + public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[4][17][]; for (byte i = -1; i < 16; i = (byte) (i + 1)) { @@ -49,7 +54,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_High extends GT_MetaTileEntity_B } public int maxProgresstime() { - return 500; + return 200; } public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { @@ -85,7 +90,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_High extends GT_MetaTileEntity_B this.mLossTimer = 0; } if (++this.mLossTimer > 45) { - this.mTemperature -= 1; + this.mTemperature -= 5; this.mLossTimer = 0; } if (this.mSteam != null) { @@ -107,7 +112,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_High extends GT_MetaTileEntity_B this.mHadNoWater = true; } else { if (this.mHadNoWater) { - aBaseMetaTileEntity.doExplosion(2048L); + //aBaseMetaTileEntity.doExplosion(2048L); return; } this.mFluid.amount -= 1; @@ -137,9 +142,9 @@ public class Detrav_MetaTileEntity_Boiler_Solar_High extends GT_MetaTileEntity_B boolean bRain = aBaseMetaTileEntity.getWorld().isRaining() && aBaseMetaTileEntity.getBiome().rainfall > 0.0F; mProcessingEnergy += bRain && aBaseMetaTileEntity.getWorld().skylightSubtracted >= 4 || !aBaseMetaTileEntity.getSkyAtSide((byte) 1) ? 0 : !bRain && aBaseMetaTileEntity.getWorld().isDaytime() ? 8 : 1; } - if ((this.mTemperature < 500) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { + if ((this.mTemperature < 200) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { this.mProcessingEnergy -= 1; - this.mTemperature += 1; + this.mTemperature += 5; } aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); } diff --git a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Low.java b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Low.java index 6d1cfc0ca4..742f008dce 100644 --- a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Low.java +++ b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Low.java @@ -29,6 +29,11 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Low extends GT_MetaTileEntity_Bo super(aName, aTier, aDescription, aTextures); } + @Override + public String[] getDescription() { + return new String[]{mDescription, "This machine can not explode!"}; + } + public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[4][17][]; for (byte i = -1; i < 16; i = (byte) (i + 1)) { @@ -49,7 +54,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Low extends GT_MetaTileEntity_Bo } public int maxProgresstime() { - return 500; + return 200; } public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { @@ -85,7 +90,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Low extends GT_MetaTileEntity_Bo this.mLossTimer = 0; } if (++this.mLossTimer > 45) { - this.mTemperature -= 1; + this.mTemperature -= 5; this.mLossTimer = 0; } if (this.mSteam != null) { @@ -107,7 +112,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Low extends GT_MetaTileEntity_Bo this.mHadNoWater = true; } else { if (this.mHadNoWater) { - aBaseMetaTileEntity.doExplosion(2048L); + //aBaseMetaTileEntity.doExplosion(2048L); return; } this.mFluid.amount -= 1; @@ -137,9 +142,9 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Low extends GT_MetaTileEntity_Bo boolean bRain = aBaseMetaTileEntity.getWorld().isRaining() && aBaseMetaTileEntity.getBiome().rainfall > 0.0F; mProcessingEnergy += bRain && aBaseMetaTileEntity.getWorld().skylightSubtracted >= 4 || !aBaseMetaTileEntity.getSkyAtSide((byte) 1) ? 0 : !bRain && aBaseMetaTileEntity.getWorld().isDaytime() ? 8 : 1; } - if ((this.mTemperature < 500) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { + if ((this.mTemperature < 200) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { this.mProcessingEnergy -= 1; - this.mTemperature += 1; + this.mTemperature += 5; } aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); } diff --git a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Medium.java b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Medium.java index 0d04ded00f..f538586447 100644 --- a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Medium.java +++ b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_Boiler_Solar_Medium.java @@ -29,6 +29,11 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Medium extends GT_MetaTileEntity super(aName, aTier, aDescription, aTextures); } + @Override + public String[] getDescription() { + return new String[]{mDescription, "This machine can not explode!"}; + } + public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[4][17][]; for (byte i = -1; i < 16; i = (byte) (i + 1)) { @@ -49,7 +54,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Medium extends GT_MetaTileEntity } public int maxProgresstime() { - return 500; + return 200; } public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { @@ -85,7 +90,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Medium extends GT_MetaTileEntity this.mLossTimer = 0; } if (++this.mLossTimer > 45) { - this.mTemperature -= 1; + this.mTemperature -= 5; this.mLossTimer = 0; } if (this.mSteam != null) { @@ -107,7 +112,7 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Medium extends GT_MetaTileEntity this.mHadNoWater = true; } else { if (this.mHadNoWater) { - aBaseMetaTileEntity.doExplosion(2048L); + //aBaseMetaTileEntity.doExplosion(2048L); return; } this.mFluid.amount -= 1; @@ -137,9 +142,9 @@ public class Detrav_MetaTileEntity_Boiler_Solar_Medium extends GT_MetaTileEntity boolean bRain = aBaseMetaTileEntity.getWorld().isRaining() && aBaseMetaTileEntity.getBiome().rainfall > 0.0F; mProcessingEnergy += bRain && aBaseMetaTileEntity.getWorld().skylightSubtracted >= 4 || !aBaseMetaTileEntity.getSkyAtSide((byte) 1) ? 0 : !bRain && aBaseMetaTileEntity.getWorld().isDaytime() ? 8 : 1; } - if ((this.mTemperature < 500) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { + if ((this.mTemperature < 200) && (this.mProcessingEnergy > 0) && (aTick % 12L == 0L)) { this.mProcessingEnergy -= 1; - this.mTemperature += 1; + this.mTemperature += 5; } aBaseMetaTileEntity.setActive(this.mProcessingEnergy > 0); } diff --git a/src/main/java/com/detrav/utils/DetravRepairRecipe.java b/src/main/java/com/detrav/utils/DetravRepairRecipe.java new file mode 100644 index 0000000000..9645142e84 --- /dev/null +++ b/src/main/java/com/detrav/utils/DetravRepairRecipe.java @@ -0,0 +1,125 @@ +package com.detrav.utils; + +import appeng.recipes.game.ShapelessRecipe; +import com.detrav.items.DetravMetaGeneratedTool01; +import com.enderio.core.common.OreDict; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.interfaces.internal.IGT_CraftingRecipe; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.common.items.GT_MetaGenerated_Tool_01; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.init.Items; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.ShapedOreRecipe; + +import java.util.Iterator; +import java.util.List; + +/** + * Created by Detrav on 02.10.2016. + */ +public class DetravRepairRecipe extends ShapelessRecipe { + + public static DetravRepairRecipe INSTANCE; + + //int recipeSize; + public DetravRepairRecipe() + { + super(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(0, 1, Materials._NULL, Materials._NULL, null)); + INSTANCE = this; + //recipeSize = aRecipeSize; + } + + + @Override + public boolean matches(InventoryCrafting inv, World world) { + ItemStack stack = inv.getStackInSlot(4); + int iStack = -1; + if(stack == null) return false; + if(stack.getItem() instanceof GT_MetaGenerated_Tool) + iStack = 4; + /* + for (int i = 0; i < inv.getSizeInventory(); i++) { + stack = inv.getStackInSlot(i); + if (stack == null) continue; + if (stack.getItem() instanceof GT_MetaGenerated_Tool) { + iStack = i; + break; + } + }*/ + if (iStack < 0) return false; + Materials mat = GT_MetaGenerated_Tool_01.getPrimaryMaterial(stack); + FluidStack fstack = mat.getMolten(1); + if(fstack == null) fstack = mat.getFluid(1); + if(fstack == null) return false; + int fluidID = fstack.getFluidID(); + for (int i = 0; i < inv.getSizeInventory(); i++) { + ItemStack tStack = inv.getStackInSlot(i); + if (tStack == null) continue; + if (i == iStack) continue; + GT_Recipe recipe = GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.findRecipe(null, false, 524288L, null, tStack); + if (recipe == null) + return false; + FluidStack fStack = recipe.getFluidOutput(0); + if (fStack.getFluidID() != fluidID) + return false; + } + return true; + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting inv) { + ItemStack stack = inv.getStackInSlot(4).copy(); + int iStack = 4; + /*for(int i =0; i<inv.getSizeInventory(); i++) + { + stack = inv.getStackInSlot(i); + if(stack == null) continue; + if(stack.getItem() instanceof GT_MetaGenerated_Tool) + { + iStack = i; + break; + } + }*/ + float amount = 0; + for (int i = 0; i < inv.getSizeInventory(); i++) { + ItemStack tStack = inv.getStackInSlot(i); + if (tStack == null) continue; + if (i == iStack) continue; + GT_Recipe recipe = GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.findRecipe(null, false, 524288L, null, tStack); + FluidStack fStack = recipe.getFluidOutput(0); + amount += fStack.amount; + } + + amount /= 1000; + + long maxDamage = GT_MetaGenerated_Tool.getToolMaxDamage(stack); + long damage = GT_MetaGenerated_Tool.getToolDamage(stack); + maxDamage = (long)(maxDamage * amount); + damage -= maxDamage; + if(damage<0) damage = 0; + GT_MetaGenerated_Tool.setToolDamage(stack,damage); + //inv.setInventorySlotContents(iStack,null); + return stack; + } + + @Override + public int getRecipeSize() { + return 9; + } +}
\ No newline at end of file |