From 9d52b3d41d6dfdfb2e61cd59510b3a1d61925a16 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Mon, 20 Nov 2017 23:21:15 +1000 Subject: + Added the Upgraded Arcane Alembic.$ Fixed the Upgraded Alchemy Furnace GUI. % Tried to make the 'Upgraded' Alembic & Furnace work better with the vanilla TC versions. $ Fixed the Upgraded Alchemy Furnace causing the tesselator to throw issues. $ Fixes to the Upgraded Arcane Alembic. --- src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java index 6dd948bcd1..83d274473c 100644 --- a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java +++ b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java @@ -1,13 +1,18 @@ package gtPlusPlus.core.tileentities; import cpw.mods.fml.common.registry.GameRegistry; -import gtPlusPlus.core.tileentities.general.*; +import gtPlusPlus.core.tileentities.general.TileEntityFirepit; +import gtPlusPlus.core.tileentities.general.TileEntityFishTrap; +import gtPlusPlus.core.tileentities.general.TileEntityHeliumGenerator; +import gtPlusPlus.core.tileentities.general.TileEntityInfiniteFluid; import gtPlusPlus.core.tileentities.machines.TileEntityModularityTable; import gtPlusPlus.core.tileentities.machines.TileEntityProjectTable; import gtPlusPlus.core.tileentities.machines.TileEntityTradeTable; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbenchAdvanced; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.xmod.thaumcraft.common.tile.TileFastAlchemyFurnace; +import gtPlusPlus.xmod.thaumcraft.common.tile.TileFastArcaneAlembic; public class ModTileEntities { @@ -30,6 +35,8 @@ public class ModTileEntities { GameRegistry.registerTileEntity(TileEntityProjectTable.class, "TileProjectTable"); GameRegistry.registerTileEntity(TileEntityTradeTable.class, "TileTradeTable"); GameRegistry.registerTileEntity(TileEntityModularityTable.class, "TileEntityModularityTable"); + GameRegistry.registerTileEntity(TileFastAlchemyFurnace.class, "TileFastAlchemyFurnace"); + GameRegistry.registerTileEntity(TileFastArcaneAlembic.class, "TileFastArcaneAlembic"); } -- cgit From b86f9e013b478725a3772b98e67490a3f2a044f6 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 23 Nov 2017 17:06:21 +1000 Subject: + Added Ink Sacs to Fish trap loot. + Added recycling recipes for all material components. + Added EnderIO alloys to the Alloy Blast Smelter. - Reduced rate of Sand from Fish Trap by 5%. - Removed some logging. $ Fixed Tooltip of Large Sifter stating it only required 9 Sieves, now says 18 as intended. $ Fixed Recipe Recycling not working as intended. --- .../core/material/MaterialGenerator.java | 24 ++- .../gtPlusPlus/core/recipe/RECIPES_GREGTECH.java | 54 ++++-- .../tileentities/general/TileEntityFishTrap.java | 127 +++++++------ .../GregtechMetaTileEntity_IndustrialSifter.java | 96 +++++----- .../gregtech/loaders/RecipeGen_DustGeneration.java | 10 +- .../xmod/gregtech/loaders/RecipeGen_Recycling.java | 197 +++++++++++++++++++++ 6 files changed, 369 insertions(+), 139 deletions(-) create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java index 0b6848846b..6e529b3e92 100644 --- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java +++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java @@ -19,8 +19,15 @@ import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.item.ItemUtils; -import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; -import gtPlusPlus.xmod.gregtech.loaders.*; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_AlloySmelter; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Assembler; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelter; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Extruder; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluids; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Plates; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Recycling; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_ShapedCrafting; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -49,7 +56,7 @@ public class MaterialGenerator { } int sRadiation = 0; - if (ItemUtils.isRadioactive(materialName) || matInfo.vRadiationLevel != 0){ + if (ItemUtils.isRadioactive(materialName) || (matInfo.vRadiationLevel != 0)){ sRadiation = matInfo.vRadiationLevel; } @@ -121,7 +128,7 @@ public class MaterialGenerator { temp = new BaseItemNugget(matInfo); temp = new BaseItemPlate(matInfo); temp = new BaseItemPlateDouble(matInfo); - } + } else if (matInfo.getState() == MaterialState.PURE_LIQUID){ FluidUtils.generateFluidNoPrefix(unlocalizedName, materialName, matInfo.getMeltingPointK(), C); return true; @@ -138,8 +145,9 @@ public class MaterialGenerator { RecipeGen_Fluids.generateRecipes(matInfo); RecipeGen_Plates.generateRecipes(matInfo); RecipeGen_ShapedCrafting.generateRecipes(matInfo); + RecipeGen_Recycling.generateRecipes(matInfo); return true; - } catch (Throwable t) + } catch (final Throwable t) { Utils.LOG_INFO(""+matInfo.getLocalizedName()+" failed to generate."); return false; @@ -158,7 +166,7 @@ public class MaterialGenerator { } int sRadiation = 0; - if (ItemUtils.isRadioactive(materialName) || matInfo.vRadiationLevel != 0){ + if (ItemUtils.isRadioactive(materialName) || (matInfo.vRadiationLevel != 0)){ sRadiation = matInfo.vRadiationLevel; } @@ -172,6 +180,7 @@ public class MaterialGenerator { //Add A jillion Recipes - old code RecipeGen_DustGeneration.addMixerRecipe_Standalone(matInfo); RecipeGen_Fluids.generateRecipes(matInfo); + //RecipeGen_Recycling.generateRecipes(matInfo); } public static void generateNuclearMaterial(final Material matInfo){ @@ -209,7 +218,8 @@ public class MaterialGenerator { RecipeGen_Fluids.generateRecipes(matInfo); RecipeGen_Assembler.generateRecipes(matInfo); RecipeGen_DustGeneration.generateRecipes(matInfo, true); - } catch (Throwable t){ + RecipeGen_Recycling.generateRecipes(matInfo); + } catch (final Throwable t){ Utils.LOG_INFO(""+matInfo.getLocalizedName()+" failed to generate."); } } diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index 4f83afa197..365218e28e 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -280,18 +280,6 @@ public class RECIPES_GREGTECH { 120); } - - - - - - - - - - - - //TungstenCarbide if (Materials.get("TungstenCarbide") != null){ CORE.RA.addBlastSmelterRecipe( @@ -332,9 +320,49 @@ public class RECIPES_GREGTECH { }, FluidUtils.getFluidStack("molten.darksteel", 2*144), 0, - MathUtils.findPercentageOfInt(500*20, 80), + MathUtils.findPercentageOfInt(200*20, 80), 120); } + //Pulsating Iron + if (ItemUtils.getItemStackOfAmountFromOreDict("dustIron", 1) != ItemUtils.getSimpleStack(ModItems.AAA_Broken)){ + CORE.RA.addBlastSmelterRecipe( + new ItemStack[]{ + ItemUtils.getGregtechCircuit(2), + ItemUtils.getItemStackOfAmountFromOreDict("dustIron", 1), + ItemUtils.getSimpleStack(Items.ender_pearl) + }, + FluidUtils.getFluidStack("molten.pulsatingiron", 2*144), + 0, + MathUtils.findPercentageOfInt(8*20, 80), + 120); + } + //Energetic Alloy + if (ItemUtils.getItemStackOfAmountFromOreDict("dustEnergeticAlloy", 1) != ItemUtils.getSimpleStack(ModItems.AAA_Broken)){ + CORE.RA.addBlastSmelterRecipe( + new ItemStack[]{ + ItemUtils.getGregtechCircuit(12), + ItemUtils.getItemStackOfAmountFromOreDict("dustIron", 1), + ItemUtils.getSimpleStack(Items.glowstone_dust) + }, + FluidUtils.getFluidStack("molten.redstone", 144), + FluidUtils.getFluidStack("molten.energeticalloy", 144), + 0, + MathUtils.findPercentageOfInt(9*20, 80), + 120); + } + //Vibrant Alloy + if (ItemUtils.getItemStackOfAmountFromOreDict("dustVibrantAlloy", 1) != ItemUtils.getSimpleStack(ModItems.AAA_Broken)){ + CORE.RA.addBlastSmelterRecipe( + new ItemStack[]{ + ItemUtils.getGregtechCircuit(12), + ItemUtils.getItemStackOfAmountFromOreDict("dustEnergeticAlloy", 1), + ItemUtils.getSimpleStack(Items.ender_pearl) + }, + FluidUtils.getFluidStack("molten.vibrantalloy", 144), + 0, + MathUtils.findPercentageOfInt(16*20, 80), + 480); + } } diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityFishTrap.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityFishTrap.java index bd2f8b727c..d73de219e4 100644 --- a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityFishTrap.java +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityFishTrap.java @@ -9,7 +9,6 @@ import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.xmod.gregtech.api.objects.XSTR; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -101,24 +100,24 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { int checkingSlot = 0; final ItemStack loot = this.generateLootForFishTrap().copy(); try { - //Utils.LOG_INFO("Trying to add "+loot.getDisplayName()+" | "+loot.getItemDamage()); + //Utils.LOG_WARNING("Trying to add "+loot.getDisplayName()+" | "+loot.getItemDamage()); for (final ItemStack contents : this.getInventory().getInventory()) { if (GT_Utility.areStacksEqual(loot, contents)){ if (contents.stackSize < contents.getMaxStackSize()) { - //Utils.LOG_INFO("3-Trying to add one more "+loot.getDisplayName()+"meta: "+loot.getItemDamage()+" to an existing stack of "+contents.getDisplayName()+" with a size of "+contents.stackSize); + //Utils.LOG_WARNING("3-Trying to add one more "+loot.getDisplayName()+"meta: "+loot.getItemDamage()+" to an existing stack of "+contents.getDisplayName()+" with a size of "+contents.stackSize); contents.stackSize++; this.markDirty(); - return true; + return true; } } checkingSlot++; } checkingSlot = 0; for (final ItemStack contents : this.getInventory().getInventory()) { - if (contents == null) { - //Utils.LOG_INFO("Adding Item To Empty Slot. "+(checkingSlot+1)); + if (contents == null) { + //Utils.LOG_WARNING("Adding Item To Empty Slot. "+(checkingSlot+1)); this.getInventory().setInventorySlotContents(checkingSlot, loot); this.markDirty(); return true; @@ -126,7 +125,7 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { checkingSlot++; } } - catch (NullPointerException n) { + catch (final NullPointerException n) { } } this.markDirty(); @@ -142,9 +141,12 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { else if (lootWeight <= 10) { loot = ItemUtils.getSimpleStack(Items.bone); } - else if (lootWeight <= 20) { + else if (lootWeight <= 15) { loot = ItemUtils.getSimpleStack(Blocks.sand); } + else if (lootWeight <= 20) { + loot = ItemUtils.simpleMetaStack(Items.dye, 0, 1); + } // Junk Loot else if (lootWeight <= 23) { if (LoadedMods.PamsHarvestcraft) { @@ -156,12 +158,12 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { } // Pam Fish else if (lootWeight <= 99) { - Random xstr = new Random(); + final Random xstr = new Random(); loot = FishingHooks.getRandomFishable(xstr, 100); } else if (lootWeight == 100){ - int rareLoot = MathUtils.randInt(1, 10); + final int rareLoot = MathUtils.randInt(1, 10); if (rareLoot <= 4) { loot = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("nuggetIron", 1); if (loot == null){ @@ -173,7 +175,7 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { if (loot == null){ loot = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ingotGold", 1); } - } + } else if (rareLoot <= 9){ loot = ItemUtils.getSimpleStack(Items.emerald); } @@ -192,47 +194,47 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { @Override public void updateEntity() { try{ - if (!this.worldObj.isRemote) { - this.tickCount++; - // Utils.LOG_WARNING("Ticking "+this.tickCount); - // Check if the Tile is within water once per second. - if ((this.tickCount % 20) == 0) { - this.isInWater = this.isSurroundedByWater(); - } - else { - - } + if (!this.worldObj.isRemote) { + this.tickCount++; + // Utils.LOG_WARNING("Ticking "+this.tickCount); + // Check if the Tile is within water once per second. + if ((this.tickCount % 20) == 0) { + this.isInWater = this.isSurroundedByWater(); + } + else { - if (this.isInWater) { - this.calculateTickrate(); - } + } - // Try add some loot once every 30 seconds. - if ((this.tickCount % this.baseTickRate) == 0) { if (this.isInWater) { - // Add loot - // Utils.LOG_WARNING("Adding Loot to the fishtrap at - // x["+this.locationX+"] y["+this.locationY+"] - // z["+this.locationZ+"] (Ticking for loot every - // "+this.baseTickRate+" ticks)"); - this.tryAddLoot(); - this.markDirty(); + this.calculateTickrate(); } - else { - Utils.LOG_INFO("This Trap does not have enough water around it."); - Utils.LOG_WARNING("Not adding Loot to the fishtrap at x[" + this.locationX + "] y[" + this.locationY - + "] z[" + this.locationZ + "] (Ticking for loot every " + this.baseTickRate + " ticks)"); - this.markDirty(); + + // Try add some loot once every 30 seconds. + if ((this.tickCount % this.baseTickRate) == 0) { + if (this.isInWater) { + // Add loot + // Utils.LOG_WARNING("Adding Loot to the fishtrap at + // x["+this.locationX+"] y["+this.locationY+"] + // z["+this.locationZ+"] (Ticking for loot every + // "+this.baseTickRate+" ticks)"); + this.tryAddLoot(); + this.markDirty(); + } + else { + Utils.LOG_WARNING("This Trap does not have enough water around it."); + Utils.LOG_WARNING("Not adding Loot to the fishtrap at x[" + this.locationX + "] y[" + this.locationY + + "] z[" + this.locationZ + "] (Ticking for loot every " + this.baseTickRate + " ticks)"); + this.markDirty(); + } + this.tickCount = 0; + } + if (this.tickCount > (this.baseTickRate + 500)) { + this.tickCount = 0; } - this.tickCount = 0; - } - if (this.tickCount > (this.baseTickRate + 500)) { - this.tickCount = 0; - } + } } - } - catch (Throwable t){} + catch (final Throwable t){} } public void calculateTickrate() { @@ -293,13 +295,6 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { "Crayfish", "Eel", "Frog", "Grouper", "Herring", "Jellyfish", "Mudfish", "Octopus", "Perch", "Scallop", "Shrimp", "Snail", "Snapper", "Tilapia", "Trout", "Tuna", "Turtle", "Walleye" }; - private static final ItemStack[] minecraftFish = { - ItemUtils.simpleMetaStack(Items.fish, 0, 1).copy(), - ItemUtils.simpleMetaStack(Items.fish, 1, 1).copy(), - ItemUtils.simpleMetaStack(Items.fish, 2, 1).copy(), - ItemUtils.simpleMetaStack(Items.fish, 3, 1).copy() - }; - public static void pamsHarvestCraftCompat() { for (int i = 0; i < harvestcraftFish.length; i++) { @@ -312,22 +307,22 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { } @Override - public ItemStack getStackInSlot(int slot) { + public ItemStack getStackInSlot(final int slot) { return this.getInventory().getStackInSlot(slot); } @Override - public ItemStack decrStackSize(int slot, int count) { + public ItemStack decrStackSize(final int slot, final int count) { return this.getInventory().decrStackSize(slot, count); } @Override - public ItemStack getStackInSlotOnClosing(int slot) { + public ItemStack getStackInSlotOnClosing(final int slot) { return this.getInventory().getStackInSlotOnClosing(slot); } @Override - public void setInventorySlotContents(int slot, ItemStack stack) { + public void setInventorySlotContents(final int slot, final ItemStack stack) { this.getInventory().setInventorySlotContents(slot, stack); } @@ -337,7 +332,7 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { } @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { + public boolean isUseableByPlayer(final EntityPlayer entityplayer) { return this.getInventory().isUseableByPlayer(entityplayer); } @@ -346,7 +341,7 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType(), 1, 1); this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, this.getBlockType()); this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord - 1, this.zCoord, this.getBlockType()); - this.getInventory().openInventory(); + this.getInventory().openInventory(); } @Override @@ -354,17 +349,17 @@ public class TileEntityFishTrap extends TileEntity implements ISidedInventory { this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType(), 1, 1); this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, this.getBlockType()); this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord - 1, this.zCoord, this.getBlockType()); - this.getInventory().closeInventory(); + this.getInventory().closeInventory(); } @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) { + public boolean isItemValidForSlot(final int slot, final ItemStack itemstack) { return this.getInventory().isItemValidForSlot(slot, itemstack); } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] accessibleSides = new int[this.getSizeInventory()]; + public int[] getAccessibleSlotsFromSide(final int p_94128_1_) { + final int[] accessibleSides = new int[this.getSizeInventory()]; for (int r=0; r 0) && (tValidOutputSlots >= 1)) { - if ((cloneRecipe != null) && (cloneRecipe.isRecipeInputEqual(true, null, tInputs))) { - Utils.LOG_WARNING("Valid Recipe found - size "+cloneRecipe.mOutputs.length); + if ((this.cloneRecipe != null) && (this.cloneRecipe.isRecipeInputEqual(true, null, tInputs))) { + Utils.LOG_WARNING("Valid Recipe found - size "+this.cloneRecipe.mOutputs.length); this.mEfficiency = (10000 - ((this.getIdealStatus() - this.getRepairStatus()) * 1000)); this.mEfficiencyIncrease = 10000; - this.mEUt = (-cloneRecipe.mEUt); - this.mMaxProgresstime = Math.max(1, (cloneRecipe.mDuration/5)); - final ItemStack[] outputs = new ItemStack[cloneRecipe.mOutputs.length]; - for (int i = 0; i < cloneRecipe.mOutputs.length; i++){ - if (this.getBaseMetaTileEntity().getRandomNumber(7500) < cloneRecipe.getOutputChance(i)){ + this.mEUt = (-this.cloneRecipe.mEUt); + this.mMaxProgresstime = Math.max(1, (this.cloneRecipe.mDuration/5)); + final ItemStack[] outputs = new ItemStack[this.cloneRecipe.mOutputs.length]; + for (int i = 0; i < this.cloneRecipe.mOutputs.length; i++){ + if (this.getBaseMetaTileEntity().getRandomNumber(7500) < this.cloneRecipe.getOutputChance(i)){ Utils.LOG_WARNING("Adding a bonus output"); - outputs[i] = cloneRecipe.getOutput(i); + outputs[i] = this.cloneRecipe.getOutput(i); } else { Utils.LOG_WARNING("Adding null output"); @@ -255,7 +255,7 @@ extends GregtechMeta_MultiBlockBase { final int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ * 2; int tAmount = 0; - controller = false; + this.controller = false; for (int i = -2; i < 3; i++) { for (int j = -2; j < 3; j++) { for (int h = 0; h < 3; h++) { @@ -275,7 +275,7 @@ extends GregtechMeta_MultiBlockBase { // Sifter Floor/Roof inner 3x3 if (((i != -2) && (i != 2)) && ((j != -2) && (j != 2))) { - if (h != 0){ + if (h != 0){ if (!this.addToMachineList(tTileEntity, TAE.GTPP_INDEX(21))) { if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != ModBlocks.blockCasings2Misc) { Utils.LOG_MACHINE_INFO("Sifter Casing(s) Missing from one of the "+sHeight+" layers inner 3x3."); @@ -302,12 +302,12 @@ extends GregtechMeta_MultiBlockBase { tAmount++; } } - } + } else { //Dealt with inner 5x5, now deal with the exterior. //Deal with all 4 sides (Sifter walls) boolean checkController = false; - if (((xDir + i) != 0) || ((zDir + j) != 0) && h == 0) {//no controller + if (((xDir + i) != 0) || (((zDir + j) != 0) && (h == 0))) {//no controller checkController = true; } else { @@ -317,7 +317,7 @@ extends GregtechMeta_MultiBlockBase { if (!this.addToMachineList(tTileEntity, TAE.GTPP_INDEX(21))) { if (!checkController){ if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != ModBlocks.blockCasings2Misc) { - if (tTileEntity instanceof GregtechMetaTileEntity_IndustrialSifter || aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) == GregTech_API.sBlockMachines){ + if ((tTileEntity instanceof GregtechMetaTileEntity_IndustrialSifter) || (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) == GregTech_API.sBlockMachines)){ if (h != 0){ Utils.LOG_MACHINE_INFO("Found a secondary controller at the wrong Y level."); return false; @@ -328,24 +328,24 @@ extends GregtechMeta_MultiBlockBase { Utils.LOG_MACHINE_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName()); return false; } - } - - if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 5) { - if (tTileEntity instanceof GregtechMetaTileEntity_IndustrialSifter || aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) == GregTech_API.sBlockMachines){ - } - else { - Utils.LOG_MACHINE_INFO("Sifter Casings Missing from somewhere in the "+sHeight+" layer edge."); - Utils.LOG_MACHINE_INFO("Incorrect Meta value for block, expected 5."); - Utils.LOG_MACHINE_INFO("Instead, found "+aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j)+"."); - return false; + + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 5) { + if ((tTileEntity instanceof GregtechMetaTileEntity_IndustrialSifter) || (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) == GregTech_API.sBlockMachines)){ + + } + else { + Utils.LOG_MACHINE_INFO("Sifter Casings Missing from somewhere in the "+sHeight+" layer edge."); + Utils.LOG_MACHINE_INFO("Incorrect Meta value for block, expected 5."); + Utils.LOG_MACHINE_INFO("Instead, found "+aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j)+"."); + return false; + } } } - } - tAmount++; + tAmount++; } else { - tAmount++; + tAmount++; } } } @@ -383,7 +383,7 @@ extends GregtechMeta_MultiBlockBase { } public boolean ignoreController(final Block tTileEntity) { - if (!controller && (tTileEntity == GregTech_API.sBlockMachines)) { + if (!this.controller && (tTileEntity == GregTech_API.sBlockMachines)) { return true; } return false; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java index a8a4cf963f..46bf36c445 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java @@ -177,7 +177,7 @@ public class RecipeGen_DustGeneration implements Runnable{ //Add Shapeless recipe for low tier alloys. if (tVoltageMultiplier <= 30){ if (RecipeUtils.addShapedGregtechRecipe(inputStacks, outputStacks)){ - Utils.LOG_INFO("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Success"); + Utils.LOG_INFO("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Success"); } else { Utils.LOG_INFO("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Failed"); @@ -194,7 +194,7 @@ public class RecipeGen_DustGeneration implements Runnable{ } - public static boolean addMixerRecipe_Standalone(Material material){ + public static boolean addMixerRecipe_Standalone(final Material material){ final ItemStack[] inputStacks = material.getMaterialComposites(); final ItemStack outputStacks = material.getDust(material.smallestStackSizeWhenProcessing); //Is this a composite? @@ -264,14 +264,14 @@ public class RecipeGen_DustGeneration implements Runnable{ } else { Utils.LOG_INFO("inputStackSize == NUll - "+material.getLocalizedName()); - } + } } else { Utils.LOG_INFO("InputStacks is out range 1-4 - "+material.getLocalizedName()); - } + } } else { - Utils.LOG_INFO("InputStacks == NUll - "+material.getLocalizedName()); + Utils.LOG_INFO("InputStacks == NUll - "+material.getLocalizedName()); } return false; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java new file mode 100644 index 0000000000..cf48516354 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java @@ -0,0 +1,197 @@ +package gtPlusPlus.xmod.gregtech.loaders; + +import static gregtech.api.enums.GT_Values.M; + +import java.util.ArrayList; +import java.util.Map; + +import org.apache.commons.lang3.reflect.FieldUtils; + +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.item.ItemUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import net.minecraft.item.ItemStack; + +public class RecipeGen_Recycling implements Runnable{ + + final Material toGenerate; + static Map mNameMap; + + public RecipeGen_Recycling(final Material M){ + this.toGenerate = M; + mNameMap = this.getNameMap(); + } + + @Override + public void run() { + generateRecipes(this.toGenerate); + } + + public static void generateRecipes(final Material material){ + + Utils.LOG_INFO("Generating Recycling recipes for "+material.getLocalizedName()); + + final OrePrefixes[] mValidPrefixesAsString = { + OrePrefixes.ingot, + OrePrefixes.ingotHot, + OrePrefixes.nugget, + OrePrefixes.plate, + OrePrefixes.plateDense, + OrePrefixes.plateDouble, + OrePrefixes.plateTriple, + OrePrefixes.plateQuadruple, + OrePrefixes.plateQuintuple, + OrePrefixes.stick, + OrePrefixes.stickLong, + OrePrefixes.bolt, + OrePrefixes.screw, + OrePrefixes.ring, + OrePrefixes.rotor, + OrePrefixes.gearGt, + OrePrefixes.gearGtSmall + }; + + Utils.LOG_INFO("Found "+mValidPrefixesAsString.length+" valid OreDict prefixes."); + if (mValidPrefixesAsString.length >= 1){ + for (final OrePrefixes validPrefix : mValidPrefixesAsString){ + + try { + final ItemStack tempStack = ItemUtils.getItemStackOfAmountFromOreDict(validPrefix+material.getLocalizedName(), 1); + + if ((tempStack != null) && (tempStack != ItemUtils.getSimpleStack(ModItems.AAA_Broken))){ + //mValidItems[mSlotIndex++] = tempStack; + final ItemStack mDust = getDust(material, validPrefix); + if ((mDust != null) && GT_ModHandler.addPulverisationRecipe(tempStack, mDust)){ + Utils.LOG_INFO("Recycle Recipe: "+material.getLocalizedName()+" - Success - Recycle "+tempStack.getDisplayName()+" and obtain "+mDust.getDisplayName()); + } + else { + Utils.LOG_INFO("Recycle Recipe: "+material.getLocalizedName()+" - Failed"); + if (mDust == null){ + Utils.LOG_INFO("Invalid Dust output."); + } + } + } + } catch (final Throwable t){ + t.printStackTrace(); + Utils.LOG_INFO("Returning Null. Throwable Info: "+t.getMessage()); + Utils.LOG_INFO("Throwable Info: "+t.toString()); + Utils.LOG_INFO("Throwable Info: "+t.getCause().toString()); + + } + + } + } + } + + + + public static ItemStack getDust(final Material aMaterial, final OrePrefixes aPrefix) { + return aMaterial == null ? null : getDust(aMaterial, aPrefix.mMaterialAmount); + } + + public static ItemStack getDust(final Material aMaterial, final long aMaterialAmount) { + if (aMaterialAmount <= 0) { + return null; + } + ItemStack rStack = null; + if ((((aMaterialAmount % M) == 0) || (aMaterialAmount >= (M * 16)))) { + rStack = get(OrePrefixes.dust, aMaterial, aMaterialAmount / M); + } + if ((rStack == null) && ((((aMaterialAmount * 4) % M) == 0) || (aMaterialAmount >= (M * 8)))) { + rStack = get(OrePrefixes.dustSmall, aMaterial, (aMaterialAmount * 4) / M); + } + if ((rStack == null) && (((aMaterialAmount * 9) >= M))) { + rStack = get(OrePrefixes.dustTiny, aMaterial, (aMaterialAmount * 9) / M); + } + if (rStack == null){ + Utils.LOG_INFO("Returning Null. Method: "+ReflectionUtils.getMethodName(0)); + Utils.LOG_INFO("Called from method: "+ReflectionUtils.getMethodName(1)); + Utils.LOG_INFO("Called from method: "+ReflectionUtils.getMethodName(2)); + } + + return rStack; + } + + public static ItemStack get(final Object aName, final long aAmount) { + return get(aName, null, aAmount, true, true); + } + + public static ItemStack get(final Object aName, final ItemStack aReplacement, final long aAmount) { + return get(aName, aReplacement, aAmount, true, true); + } + + public static ItemStack get(final OrePrefixes aPrefix, final Object aMaterial, final long aAmount) { + return get(aPrefix, aMaterial, null, aAmount); + } + + public static ItemStack get(final OrePrefixes aPrefix, final Object aMaterial, final ItemStack aReplacement, + final long aAmount) { + if (OrePrefixes.mPreventableComponents.contains(aPrefix) && aPrefix.mDisabledItems.contains(aMaterial)) { + return aReplacement; + } + return get(aPrefix.get(aMaterial), aReplacement, aAmount, false, true); + } + + public static ItemStack get(final Object aName, final ItemStack aReplacement, final long aAmount, + final boolean aMentionPossibleTypos, final boolean aNoInvalidAmounts) { + if (aNoInvalidAmounts && (aAmount < 1L)) { + Utils.LOG_INFO("Returning Null. Method: "+ReflectionUtils.getMethodName(0)); + Utils.LOG_INFO("Called from method: "+ReflectionUtils.getMethodName(1)); + Utils.LOG_INFO("Called from method: "+ReflectionUtils.getMethodName(2)); + return null; + } + if (!mNameMap.containsKey(aName.toString()) && aMentionPossibleTypos) { + Utils.LOG_INFO("Unknown Key for Unification, Typo? " + aName); + } + return GT_Utility.copyAmount(aAmount, new Object[]{mNameMap.get(aName.toString()), + getFirstOre(aName, aAmount), aReplacement}); + } + + + public static ItemStack getFirstOre(final Object aName, final long aAmount) { + if (GT_Utility.isStringInvalid(aName)) { + Utils.LOG_INFO("Returning Null. Method: "+ReflectionUtils.getMethodName(0)); + Utils.LOG_INFO("Called from method: "+ReflectionUtils.getMethodName(1)); + Utils.LOG_INFO("Called from method: "+ReflectionUtils.getMethodName(2)); + return null; + } + final ItemStack tStack = (ItemStack) mNameMap.get(aName.toString()); + if (GT_Utility.isStackValid(tStack)) { + return GT_Utility.copyAmount(aAmount, new Object[]{tStack}); + } + return GT_Utility.copyAmount(aAmount, getOres(aName).toArray()); + } + + public static ArrayList getOres(final Object aOreName) { + final String aName = (aOreName == null) ? "" : aOreName.toString(); + final ArrayList rList = new ArrayList(); + if (GT_Utility.isStringValid(aName)) { + rList.addAll(getOres(aName)); + } + return rList; + } + + public Map getNameMap(){ + Map tempMap; + try { + tempMap = (Map) FieldUtils.readStaticField(GT_OreDictUnificator.class, "sName2StackMap", true); + if (tempMap != null){ + return tempMap; + } + } + catch (final IllegalAccessException e) { + e.printStackTrace(); + } + Utils.LOG_INFO("Invalid map stored in GT_OreDictUnificator.class, unable to find sName2StackMap field."); + return null; + } + + + +} -- cgit From be05aadfba9659ec68219554ae96b81de5549034 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Fri, 24 Nov 2017 13:41:48 +1000 Subject: + Added a simple block that can convert liquid xp to mob essence and back. + Added some Enchantment utilities. --- src/Java/gtPlusPlus/core/block/ModBlocks.java | 23 ++- .../core/block/general/BlockTankXpConverter.java | 105 ++++++++++ .../item/base/itemblock/ItemBlockEntityBase.java | 18 ++ .../general/TileEntityXpConverter.java | 193 ++++++++++++++++++ .../core/util/enchantment/EnchantmentUtils.java | 102 ++++++++++ .../gtPlusPlus/core/util/fluid/FluidUtils.java | 218 +++++++++++---------- 6 files changed, 553 insertions(+), 106 deletions(-) create mode 100644 src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java create mode 100644 src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java create mode 100644 src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index 6ebb21bb9c..992cd7e991 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -3,9 +3,20 @@ package gtPlusPlus.core.block; import cpw.mods.fml.common.registry.GameRegistry; import gtPlusPlus.core.block.base.BasicBlock.BlockTypes; import gtPlusPlus.core.block.base.BlockBaseOre; -import gtPlusPlus.core.block.general.*; +import gtPlusPlus.core.block.general.BlockTankXpConverter; +import gtPlusPlus.core.block.general.FirePit; +import gtPlusPlus.core.block.general.FluidTankInfinite; +import gtPlusPlus.core.block.general.HellFire; +import gtPlusPlus.core.block.general.LightGlass; +import gtPlusPlus.core.block.general.MiningExplosives; import gtPlusPlus.core.block.general.antigrief.BlockWitherProof; -import gtPlusPlus.core.block.machine.*; +import gtPlusPlus.core.block.machine.FishTrap; +import gtPlusPlus.core.block.machine.HeliumGenerator; +import gtPlusPlus.core.block.machine.Machine_ModularityTable; +import gtPlusPlus.core.block.machine.Machine_ProjectTable; +import gtPlusPlus.core.block.machine.Machine_TradeTable; +import gtPlusPlus.core.block.machine.Machine_Workbench; +import gtPlusPlus.core.block.machine.Machine_WorkbenchAdvanced; import gtPlusPlus.core.fluids.FluidRegistryHandler; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; @@ -38,16 +49,17 @@ public final class ModBlocks { public static Block blockFirePit; public static Block blockOreFluorite; - + public static Block blockMiningExplosive; - + public static Block blockHellfire; public static Block blockInfiniteFLuidTank; public static Block blockProjectTable; public static Block blockTradeTable; public static Block blockModularTable; - + public static Block blockWitherGuard; + public static Block blockXpConverter; public static void init() { Utils.LOG_INFO("Initializing Blocks."); @@ -78,6 +90,7 @@ public final class ModBlocks { blockTradeTable = new Machine_TradeTable(); blockModularTable = new Machine_ModularityTable(); blockWitherGuard = new BlockWitherProof(); + blockXpConverter = new BlockTankXpConverter(); } diff --git a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java new file mode 100644 index 0000000000..aa19556317 --- /dev/null +++ b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java @@ -0,0 +1,105 @@ +package gtPlusPlus.core.block.general; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.item.base.itemblock.ItemBlockEntityBase; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.tileentities.general.TileEntityXpConverter; +import gtPlusPlus.core.util.enchantment.EnchantmentUtils; +import gtPlusPlus.core.util.player.PlayerUtils; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockTankXpConverter extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon textureTop; + @SideOnly(Side.CLIENT) + private IIcon textureBottom; + @SideOnly(Side.CLIENT) + private IIcon textureFront; + + @SuppressWarnings("deprecation") + public BlockTankXpConverter() { + super(Material.iron); + this.setBlockName("blockTankXpConverter"); + this.setCreativeTab(AddToCreativeTab.tabMachines); + GameRegistry.registerBlock(this, ItemBlockEntityBase.class, "blockTankXpConverter"); + LanguageRegistry.addName(this, "Xp Converter"); + } + + /** + * Gets the block's texture. Args: side, meta + */ + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(final int p_149691_1_, final int p_149691_2_) { + return p_149691_1_ == 1 ? this.textureTop + : (p_149691_1_ == 0 ? this.textureBottom + : ((p_149691_1_ != 2) && (p_149691_1_ != 4) ? this.blockIcon : this.textureFront)); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(final IIconRegister p_149651_1_) { + this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); + this.textureTop = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); + this.textureBottom = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); + this.textureFront = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); + } + + /** + * Called upon block activation (right click on the block.) + */ + @Override + public boolean onBlockActivated(final World world, final int x, final int y, final int z, final EntityPlayer player, + final int side, final float lx, final float ly, final float lz) { + if (world.isRemote) { + return true; + } + else { + final TileEntityXpConverter tank = (TileEntityXpConverter) world.getTileEntity(x, y, z); + if (tank != null){ + if (tank.tankEssence.getFluid() != null){ + PlayerUtils.messagePlayer(player, "This tank contains "+tank.tankEssence.getFluidAmount()+"L of "+tank.tankEssence.getFluid().getLocalizedName()); + } + if (tank.tankLiquidXp.getFluid() != null){ + PlayerUtils.messagePlayer(player, "This tank contains "+tank.tankLiquidXp.getFluidAmount()+"L of "+tank.tankLiquidXp.getFluid().getLocalizedName()); + } + if ((tank.tankEssence.getFluid() != null) && (tank.tankLiquidXp.getFluid() != null)){ + PlayerUtils.messagePlayer(player, "This is worth "+EnchantmentUtils.getLevelForLiquid(tank.tankLiquidXp.getFluidAmount())); + } + } + } + return true; + } + + @Override + public int getRenderBlockPass() { + return 1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public TileEntity createNewTileEntity(final World world, final int p_149915_2_) { + return new TileEntityXpConverter(); + } + + @Override + public void onBlockAdded(final World world, final int x, final int y, final int z) { + super.onBlockAdded(world, x, y, z); + } + +} diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java index 43a37b423c..0dda165b6b 100644 --- a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java +++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java @@ -1,9 +1,14 @@ package gtPlusPlus.core.item.base.itemblock; +import java.util.List; + +import gtPlusPlus.core.block.general.BlockTankXpConverter; import gtPlusPlus.core.creative.AddToCreativeTab; import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public class ItemBlockEntityBase extends ItemBlock { @@ -19,5 +24,18 @@ public class ItemBlockEntityBase extends ItemBlock { return super.getColorFromItemStack(p_82790_1_, p_82790_2_); } + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + public final void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) { + if (Block.getBlockFromItem(stack.getItem()) instanceof BlockTankXpConverter){ + list.add(EnumChatFormatting.GRAY+"Liquid Xp can be filled or drained from all four sides."); + list.add(EnumChatFormatting.GRAY+"Mob Essence can be filled or drained from the top and bottom."); + } + else if (Block.getBlockFromItem(stack.getItem()) instanceof BlockTankXpConverter){ + //list.add(EnumChatFormatting.GRAY+"A pile of " + materialName + " dust."); + } + super.addInformation(stack, aPlayer, list, bool); + } + } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java new file mode 100644 index 0000000000..990304cf07 --- /dev/null +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java @@ -0,0 +1,193 @@ +package gtPlusPlus.core.tileentities.general; + +import gtPlusPlus.core.util.enchantment.EnchantmentUtils; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidEvent; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + +public class TileEntityXpConverter extends TileEntity implements IFluidHandler { + + public FluidTank tankEssence = new FluidTank((int) (64000*EnchantmentUtils.RATIO_MOB_ESSENCE_TO_LIQUID_XP)); + public FluidTank tankLiquidXp = new FluidTank(64000); + private boolean needsUpdate = false; + private int updateTimer = 0; + + public TileEntityXpConverter() { + } + + @Override + public int fill(final ForgeDirection from, final FluidStack resource, final boolean doFill) { + this.needsUpdate = true; + if (resource.isFluidEqual(EnchantmentUtils.getLiquidXP(1))){ + return this.tankLiquidXp.fill(resource, doFill); + } + else if (resource.isFluidEqual(EnchantmentUtils.getMobEssence(1))){ + return this.tankEssence.fill(resource, doFill); + } + else { + return 0; + } + } + + @Override + public FluidStack drain(final ForgeDirection from, final FluidStack resource, final boolean doDrain) { + this.needsUpdate = true; + if (resource.isFluidEqual(EnchantmentUtils.getLiquidXP(1))){ + return this.tankLiquidXp.drain(resource.amount, doDrain); + } + else if (resource.isFluidEqual(EnchantmentUtils.getMobEssence(1))){ + return this.tankEssence.drain(resource.amount, doDrain); + } + else { + return null; + } + + } + + @Override + public FluidStack drain(final ForgeDirection from, final int maxDrain, final boolean doDrain) { + this.needsUpdate = true; + final FluidStack fluid_Essence = this.tankEssence.getFluid(); + final FluidStack fluid_Xp = this.tankLiquidXp.getFluid(); + if ((fluid_Essence == null) && (fluid_Xp == null)) { + return null; + } + + FluidStack fluid; + FluidTank tank; + + if ((from == ForgeDirection.UP) || (from == ForgeDirection.DOWN)){ + fluid = fluid_Essence; + tank = this.tankEssence; + } + else { + fluid = fluid_Xp; + tank = this.tankLiquidXp; + } + + int drained = maxDrain; + if (fluid.amount < drained) { + drained = fluid.amount; + } + + final FluidStack stack = new FluidStack(fluid, drained); + if (doDrain) { + fluid.amount -= drained; + if (fluid.amount <= 0) { + fluid = null; + } + + if (this != null) { + FluidEvent.fireEvent(new FluidEvent.FluidDrainingEvent(fluid, this.getWorldObj(), this.xCoord, + this.yCoord, this.zCoord, tank, 0)); + } + } + return stack; + } + + @Override + public boolean canFill(final ForgeDirection from, final Fluid fluid) { + return true; + } + + @Override + public boolean canDrain(final ForgeDirection from, final Fluid fluid) { + return true; + } + + @Override + public FluidTankInfo[] getTankInfo(final ForgeDirection from) { + if ((from == ForgeDirection.UP) || (from == ForgeDirection.DOWN)){ + return new FluidTankInfo[] { this.tankEssence.getInfo() }; + } + else { + return new FluidTankInfo[] { this.tankLiquidXp.getInfo() }; + } + } + + public float getAdjustedVolume() { + this.needsUpdate = true; + final float amount = this.tankLiquidXp.getFluidAmount(); + final float capacity = this.tankLiquidXp.getCapacity(); + final float volume = (amount / capacity) * 0.8F; + return volume; + } + + @Override + public void updateEntity() { + + if (this.tankEssence.getFluid() != null){ + final FluidStack bigStorage = this.tankEssence.getFluid(); + bigStorage.amount = this.tankEssence.getCapacity(); + this.tankEssence.setFluid(bigStorage); + } + + if (this.tankLiquidXp.getFluid() != null){ + final FluidStack bigStorage = this.tankLiquidXp.getFluid(); + bigStorage.amount = this.tankLiquidXp.getCapacity(); + this.tankLiquidXp.setFluid(bigStorage); + } + + if (this.needsUpdate) { + + if (this.tankEssence.getFluid() != null){ + final FluidStack bigStorage = this.tankEssence.getFluid(); + bigStorage.amount = this.tankEssence.getCapacity(); + this.tankEssence.setFluid(bigStorage); + } + + if (this.tankLiquidXp.getFluid() != null){ + final FluidStack bigStorage = this.tankLiquidXp.getFluid(); + bigStorage.amount = this.tankLiquidXp.getCapacity(); + this.tankLiquidXp.setFluid(bigStorage); + } + + if (this.updateTimer == 0) { + this.updateTimer = 10; // every 10 ticks it will send an update + } else { + --this.updateTimer; + if (this.updateTimer == 0) { + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + this.needsUpdate = false; + } + } + } + } + + @Override + public void readFromNBT(final NBTTagCompound tag) { + this.tankEssence.readFromNBT(tag); + this.tankLiquidXp.readFromNBT(tag); + super.readFromNBT(tag); + } + + @Override + public void writeToNBT(final NBTTagCompound tag) { + this.tankEssence.writeToNBT(tag); + this.tankLiquidXp.writeToNBT(tag); + super.writeToNBT(tag); + } + + @Override + public Packet getDescriptionPacket() { + final NBTTagCompound tag = new NBTTagCompound(); + this.writeToNBT(tag); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, this.blockMetadata, tag); + } + + @Override + public void onDataPacket(final NetworkManager net, final S35PacketUpdateTileEntity pkt) { + final NBTTagCompound tag = pkt.func_148857_g(); + this.readFromNBT(tag); + } + +} diff --git a/src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java b/src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java new file mode 100644 index 0000000000..49c625685c --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java @@ -0,0 +1,102 @@ +package gtPlusPlus.core.util.enchantment; + +import gtPlusPlus.core.util.Utils; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +public class EnchantmentUtils { + + + public static final int XP_PER_BOTTLE = 8; + public static final int RATIO = 20; + public static final int LIQUID_PER_XP_BOTTLE = 160; + public static final double RATIO_MOB_ESSENCE_TO_LIQUID_XP = 13.32; + + public static int liquidToXpRatio(final int liquid) { + return liquid / RATIO; + } + + public static int xpToLiquidRatio(final int xp) { + return xp * RATIO; + } + + public static FluidStack getEssenceFromLiquidXp(final int xpAmount){ + if (xpAmount <= 0){ + return null; + } + return getMobEssence((int) (xpAmount*RATIO_MOB_ESSENCE_TO_LIQUID_XP)); + } + + public static FluidStack getLiquidXpFromEssence(final int essenceAmount){ + if (essenceAmount <= 0){ + return null; + } + return getLiquidXP((int) (essenceAmount/RATIO_MOB_ESSENCE_TO_LIQUID_XP)); + } + + public static int getLiquidForLevel(final int level) { + final int xp = getExperienceForLevel(level); + return xpToLiquidRatio(xp); + } + + public static int getLevelForLiquid(final int liquid) { + final int xp = liquidToXpRatio(liquid); + return getLevelForExperience(xp); + } + + public static int getExperienceForLevel(final int level) { + if (level == 0) { + return 0; + } + if ((level > 0) && (level < 16)) { + return level * 17; + } + if ((level > 15) && (level < 31)) { + return (int) (((1.5 * Math.pow(level, 2.0)) - (29.5 * level)) + 360.0); + } + return (int) (((3.5 * Math.pow(level, 2.0)) - (151.5 * level)) + 2220.0); + } + + public static int getXpToNextLevel(final int level) { + final int levelXP = getLevelForExperience(level); + final int nextXP = getExperienceForLevel(level + 1); + return nextXP - levelXP; + } + + public static int getLevelForExperience(final int experience) { + int i; + for (i = 0; getExperienceForLevel(i) <= experience; ++i) { + } + return i - 1; + } + + + + + + + + //Xp Fluids + public static FluidStack getMobEssence(final int amount){ + Utils.LOG_WARNING("Trying to get a fluid stack of Mob Essence."); + try { + return FluidRegistry.getFluidStack("mobessence", amount).copy(); + } + catch (final Throwable e){ + return null; + } + + } + + public static FluidStack getLiquidXP(final int amount){ + Utils.LOG_WARNING("Trying to get a fluid stack of Liquid XP."); + try { + return FluidRegistry.getFluidStack("xpjuice", amount).copy(); + } + catch (final Throwable e){ + return null; + } + + } + +} diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java index 47020b536b..b0b6102504 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java @@ -1,6 +1,8 @@ package gtPlusPlus.core.util.fluid; -import gregtech.api.enums.*; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.util.GT_LanguageManager; import gtPlusPlus.core.fluids.GenericFluid; import gtPlusPlus.core.item.base.BaseItemComponent; @@ -9,12 +11,17 @@ import gtPlusPlus.core.item.base.cell.BaseItemPlasmaCell; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialStack; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.enchantment.EnchantmentUtils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.*; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; public class FluidUtils { @@ -87,24 +94,24 @@ public class FluidUtils { public static Fluid generateFluid(final String displayName, final String fluidName, final int tempK, final short[] rgba ,final int aState){ Fluid generatedFluid = null; switch (aState) { - case 0: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 10000, false, rgba); - break; - } - default: - case 1: - case 4: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 1000, false, rgba); - break; - } - case 2: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, -100, tempK, 200, true, rgba); - break; - } - case 3: { - generatedFluid = new GenericFluid(displayName, fluidName, 15, -10000, tempK, 10, true, rgba); - break; - } + case 0: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 10000, false, rgba); + break; + } + default: + case 1: + case 4: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 1000, false, rgba); + break; + } + case 2: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, -100, tempK, 200, true, rgba); + break; + } + case 3: { + generatedFluid = new GenericFluid(displayName, fluidName, 15, -10000, tempK, 10, true, rgba); + break; + } } return generatedFluid; } @@ -122,24 +129,24 @@ public class FluidUtils { final int tempK = material.getMeltingPointC(); Fluid generatedFluid = null; switch (aState) { - case 0: { - generatedFluid = new GenericFluid(material, 0, 100, tempK, 10000, false); - break; - } - default: - case 1: - case 4: { - generatedFluid = new GenericFluid(material, 0, 100, tempK, 1000, false); - break; - } - case 2: { - generatedFluid = new GenericFluid(material, 0, -100, tempK, 200, true); - break; - } - case 3: { - generatedFluid = new GenericFluid(material, 15, -10000, tempK, 10, true); - break; - } + case 0: { + generatedFluid = new GenericFluid(material, 0, 100, tempK, 10000, false); + break; + } + default: + case 1: + case 4: { + generatedFluid = new GenericFluid(material, 0, 100, tempK, 1000, false); + break; + } + case 2: { + generatedFluid = new GenericFluid(material, 0, -100, tempK, 200, true); + break; + } + case 3: { + generatedFluid = new GenericFluid(material, 15, -10000, tempK, 10, true); + break; + } } return generatedFluid; } @@ -167,30 +174,30 @@ public class FluidUtils { GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), (aLocalized == null) ? aName : aLocalized); if (FluidRegistry.registerFluid(rFluid)) { switch (aState) { - case 0: { - rFluid.setGaseous(false); - rFluid.setViscosity(10000); - break; - } - case 1: - case 4: { - rFluid.setGaseous(false); - rFluid.setViscosity(1000); - break; - } - case 2: { - rFluid.setGaseous(true); - rFluid.setDensity(-100); - rFluid.setViscosity(200); - break; - } - case 3: { - rFluid.setGaseous(true); - rFluid.setDensity(-10000); - rFluid.setViscosity(10); - rFluid.setLuminosity(15); - break; - } + case 0: { + rFluid.setGaseous(false); + rFluid.setViscosity(10000); + break; + } + case 1: + case 4: { + rFluid.setGaseous(false); + rFluid.setViscosity(1000); + break; + } + case 2: { + rFluid.setGaseous(true); + rFluid.setDensity(-100); + rFluid.setViscosity(200); + break; + } + case 3: { + rFluid.setGaseous(true); + rFluid.setDensity(-10000); + rFluid.setViscosity(10); + rFluid.setLuminosity(15); + break; + } } } else { @@ -201,18 +208,18 @@ public class FluidUtils { } if (aMaterial != null) { switch (aState) { - case 1: { - aMaterial.mFluid = (rFluid); - break; - } - case 2: { - aMaterial.mGas = (rFluid); - break; - } - case 3: { - aMaterial.mPlasma = (rFluid); - break; - } + case 1: { + aMaterial.mFluid = (rFluid); + break; + } + case 2: { + aMaterial.mGas = (rFluid); + break; + } + case 3: { + aMaterial.mPlasma = (rFluid); + break; + } } } if ((aFullContainer != null) && (aEmptyContainer != null) && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) { @@ -234,7 +241,7 @@ public class FluidUtils { } public static Fluid addGTPlasma(final Material aMaterial) { - if (aMaterial.getLocalizedName().toLowerCase().contains("clay") || aMaterial.getComposites().size()>1 || aMaterial.getLocalizedName().toLowerCase().contains("wrought")){ + if (aMaterial.getLocalizedName().toLowerCase().contains("clay") || (aMaterial.getComposites().size()>1) || aMaterial.getLocalizedName().toLowerCase().contains("wrought")){ return null; } Utils.LOG_INFO("Generating a "+aMaterial.getLocalizedName()+" Plasma Cell"); @@ -277,30 +284,30 @@ public class FluidUtils { GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), (aLocalized == null) ? aName : aLocalized); if (FluidRegistry.registerFluid(rFluid)) { switch (aState) { - case 0: { - rFluid.setGaseous(false); - rFluid.setViscosity(10000); - break; - } - case 1: - case 4: { - rFluid.setGaseous(false); - rFluid.setViscosity(1000); - break; - } - case 2: { - rFluid.setGaseous(true); - rFluid.setDensity(-100); - rFluid.setViscosity(200); - break; - } - case 3: { - rFluid.setGaseous(true); - rFluid.setDensity(-10000); - rFluid.setViscosity(10); - rFluid.setLuminosity(15); - break; - } + case 0: { + rFluid.setGaseous(false); + rFluid.setViscosity(10000); + break; + } + case 1: + case 4: { + rFluid.setGaseous(false); + rFluid.setViscosity(1000); + break; + } + case 2: { + rFluid.setGaseous(true); + rFluid.setDensity(-100); + rFluid.setViscosity(200); + break; + } + case 3: { + rFluid.setGaseous(true); + rFluid.setDensity(-10000); + rFluid.setViscosity(10); + rFluid.setLuminosity(15); + break; + } } } else { @@ -435,8 +442,8 @@ public class FluidUtils { Utils.LOG_INFO("FLUID GENERATION FAILED FOR "+localizedName); return null; } - - public final static Fluid generateFluidNonMolten(final String unlocalizedName, final String localizedName, final int MeltingPoint, final short[] RGBA, ItemStack dustStack, final ItemStack dustStack2){ + + public final static Fluid generateFluidNonMolten(final String unlocalizedName, final String localizedName, final int MeltingPoint, final short[] RGBA, final ItemStack dustStack, final ItemStack dustStack2){ return generateFluidNonMolten(unlocalizedName, localizedName, MeltingPoint, RGBA, dustStack, dustStack2, 144); } @@ -516,4 +523,13 @@ public class FluidUtils { } + public static FluidStack getMobEssence(final int amount){ + return EnchantmentUtils.getMobEssence(amount); + } + + public static FluidStack getLiquidXP(final int amount){ + return EnchantmentUtils.getLiquidXP(amount); + } + + } -- cgit From 27a3675ced121616092334e68b8ae2719a86abaf Mon Sep 17 00:00:00 2001 From: Alkalus Date: Fri, 24 Nov 2017 13:50:31 +1000 Subject: % Refactored a package and class name. --- .../core/block/general/BlockTankXpConverter.java | 4 +- .../general/TileEntityXpConverter.java | 12 +-- .../core/util/enchanting/EnchantingUtils.java | 102 +++++++++++++++++++++ .../core/util/enchantment/EnchantmentUtils.java | 102 --------------------- .../gtPlusPlus/core/util/fluid/FluidUtils.java | 6 +- 5 files changed, 113 insertions(+), 113 deletions(-) create mode 100644 src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java delete mode 100644 src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java index aa19556317..d9cbfc9fe5 100644 --- a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java +++ b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java @@ -8,7 +8,7 @@ import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.item.base.itemblock.ItemBlockEntityBase; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.tileentities.general.TileEntityXpConverter; -import gtPlusPlus.core.util.enchantment.EnchantmentUtils; +import gtPlusPlus.core.util.enchanting.EnchantingUtils; import gtPlusPlus.core.util.player.PlayerUtils; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -75,7 +75,7 @@ public class BlockTankXpConverter extends BlockContainer { PlayerUtils.messagePlayer(player, "This tank contains "+tank.tankLiquidXp.getFluidAmount()+"L of "+tank.tankLiquidXp.getFluid().getLocalizedName()); } if ((tank.tankEssence.getFluid() != null) && (tank.tankLiquidXp.getFluid() != null)){ - PlayerUtils.messagePlayer(player, "This is worth "+EnchantmentUtils.getLevelForLiquid(tank.tankLiquidXp.getFluidAmount())); + PlayerUtils.messagePlayer(player, "This is worth "+EnchantingUtils.getLevelForLiquid(tank.tankLiquidXp.getFluidAmount())); } } } diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java index 990304cf07..ca190802dc 100644 --- a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java @@ -1,6 +1,6 @@ package gtPlusPlus.core.tileentities.general; -import gtPlusPlus.core.util.enchantment.EnchantmentUtils; +import gtPlusPlus.core.util.enchanting.EnchantingUtils; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -16,7 +16,7 @@ import net.minecraftforge.fluids.IFluidHandler; public class TileEntityXpConverter extends TileEntity implements IFluidHandler { - public FluidTank tankEssence = new FluidTank((int) (64000*EnchantmentUtils.RATIO_MOB_ESSENCE_TO_LIQUID_XP)); + public FluidTank tankEssence = new FluidTank((int) (64000*EnchantingUtils.RATIO_MOB_ESSENCE_TO_LIQUID_XP)); public FluidTank tankLiquidXp = new FluidTank(64000); private boolean needsUpdate = false; private int updateTimer = 0; @@ -27,10 +27,10 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { @Override public int fill(final ForgeDirection from, final FluidStack resource, final boolean doFill) { this.needsUpdate = true; - if (resource.isFluidEqual(EnchantmentUtils.getLiquidXP(1))){ + if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ return this.tankLiquidXp.fill(resource, doFill); } - else if (resource.isFluidEqual(EnchantmentUtils.getMobEssence(1))){ + else if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ return this.tankEssence.fill(resource, doFill); } else { @@ -41,10 +41,10 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { @Override public FluidStack drain(final ForgeDirection from, final FluidStack resource, final boolean doDrain) { this.needsUpdate = true; - if (resource.isFluidEqual(EnchantmentUtils.getLiquidXP(1))){ + if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ return this.tankLiquidXp.drain(resource.amount, doDrain); } - else if (resource.isFluidEqual(EnchantmentUtils.getMobEssence(1))){ + else if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ return this.tankEssence.drain(resource.amount, doDrain); } else { diff --git a/src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java b/src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java new file mode 100644 index 0000000000..76336d4298 --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java @@ -0,0 +1,102 @@ +package gtPlusPlus.core.util.enchanting; + +import gtPlusPlus.core.util.Utils; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +public class EnchantingUtils { + + + public static final int XP_PER_BOTTLE = 8; + public static final int RATIO = 20; + public static final int LIQUID_PER_XP_BOTTLE = 160; + public static final double RATIO_MOB_ESSENCE_TO_LIQUID_XP = 13.32; + + public static int liquidToXpRatio(final int liquid) { + return liquid / RATIO; + } + + public static int xpToLiquidRatio(final int xp) { + return xp * RATIO; + } + + public static FluidStack getEssenceFromLiquidXp(final int xpAmount){ + if (xpAmount <= 0){ + return null; + } + return getMobEssence((int) (xpAmount*RATIO_MOB_ESSENCE_TO_LIQUID_XP)); + } + + public static FluidStack getLiquidXpFromEssence(final int essenceAmount){ + if (essenceAmount <= 0){ + return null; + } + return getLiquidXP((int) (essenceAmount/RATIO_MOB_ESSENCE_TO_LIQUID_XP)); + } + + public static int getLiquidForLevel(final int level) { + final int xp = getExperienceForLevel(level); + return xpToLiquidRatio(xp); + } + + public static int getLevelForLiquid(final int liquid) { + final int xp = liquidToXpRatio(liquid); + return getLevelForExperience(xp); + } + + public static int getExperienceForLevel(final int level) { + if (level == 0) { + return 0; + } + if ((level > 0) && (level < 16)) { + return level * 17; + } + if ((level > 15) && (level < 31)) { + return (int) (((1.5 * Math.pow(level, 2.0)) - (29.5 * level)) + 360.0); + } + return (int) (((3.5 * Math.pow(level, 2.0)) - (151.5 * level)) + 2220.0); + } + + public static int getXpToNextLevel(final int level) { + final int levelXP = getLevelForExperience(level); + final int nextXP = getExperienceForLevel(level + 1); + return nextXP - levelXP; + } + + public static int getLevelForExperience(final int experience) { + int i; + for (i = 0; getExperienceForLevel(i) <= experience; ++i) { + } + return i - 1; + } + + + + + + + + //Xp Fluids + public static FluidStack getMobEssence(final int amount){ + Utils.LOG_WARNING("Trying to get a fluid stack of Mob Essence."); + try { + return FluidRegistry.getFluidStack("mobessence", amount).copy(); + } + catch (final Throwable e){ + return null; + } + + } + + public static FluidStack getLiquidXP(final int amount){ + Utils.LOG_WARNING("Trying to get a fluid stack of Liquid XP."); + try { + return FluidRegistry.getFluidStack("xpjuice", amount).copy(); + } + catch (final Throwable e){ + return null; + } + + } + +} diff --git a/src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java b/src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java deleted file mode 100644 index 49c625685c..0000000000 --- a/src/Java/gtPlusPlus/core/util/enchantment/EnchantmentUtils.java +++ /dev/null @@ -1,102 +0,0 @@ -package gtPlusPlus.core.util.enchantment; - -import gtPlusPlus.core.util.Utils; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -public class EnchantmentUtils { - - - public static final int XP_PER_BOTTLE = 8; - public static final int RATIO = 20; - public static final int LIQUID_PER_XP_BOTTLE = 160; - public static final double RATIO_MOB_ESSENCE_TO_LIQUID_XP = 13.32; - - public static int liquidToXpRatio(final int liquid) { - return liquid / RATIO; - } - - public static int xpToLiquidRatio(final int xp) { - return xp * RATIO; - } - - public static FluidStack getEssenceFromLiquidXp(final int xpAmount){ - if (xpAmount <= 0){ - return null; - } - return getMobEssence((int) (xpAmount*RATIO_MOB_ESSENCE_TO_LIQUID_XP)); - } - - public static FluidStack getLiquidXpFromEssence(final int essenceAmount){ - if (essenceAmount <= 0){ - return null; - } - return getLiquidXP((int) (essenceAmount/RATIO_MOB_ESSENCE_TO_LIQUID_XP)); - } - - public static int getLiquidForLevel(final int level) { - final int xp = getExperienceForLevel(level); - return xpToLiquidRatio(xp); - } - - public static int getLevelForLiquid(final int liquid) { - final int xp = liquidToXpRatio(liquid); - return getLevelForExperience(xp); - } - - public static int getExperienceForLevel(final int level) { - if (level == 0) { - return 0; - } - if ((level > 0) && (level < 16)) { - return level * 17; - } - if ((level > 15) && (level < 31)) { - return (int) (((1.5 * Math.pow(level, 2.0)) - (29.5 * level)) + 360.0); - } - return (int) (((3.5 * Math.pow(level, 2.0)) - (151.5 * level)) + 2220.0); - } - - public static int getXpToNextLevel(final int level) { - final int levelXP = getLevelForExperience(level); - final int nextXP = getExperienceForLevel(level + 1); - return nextXP - levelXP; - } - - public static int getLevelForExperience(final int experience) { - int i; - for (i = 0; getExperienceForLevel(i) <= experience; ++i) { - } - return i - 1; - } - - - - - - - - //Xp Fluids - public static FluidStack getMobEssence(final int amount){ - Utils.LOG_WARNING("Trying to get a fluid stack of Mob Essence."); - try { - return FluidRegistry.getFluidStack("mobessence", amount).copy(); - } - catch (final Throwable e){ - return null; - } - - } - - public static FluidStack getLiquidXP(final int amount){ - Utils.LOG_WARNING("Trying to get a fluid stack of Liquid XP."); - try { - return FluidRegistry.getFluidStack("xpjuice", amount).copy(); - } - catch (final Throwable e){ - return null; - } - - } - -} diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java index b0b6102504..611c7fe897 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java @@ -11,7 +11,7 @@ import gtPlusPlus.core.item.base.cell.BaseItemPlasmaCell; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialStack; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.enchantment.EnchantmentUtils; +import gtPlusPlus.core.util.enchanting.EnchantingUtils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import net.minecraft.init.Items; @@ -524,11 +524,11 @@ public class FluidUtils { public static FluidStack getMobEssence(final int amount){ - return EnchantmentUtils.getMobEssence(amount); + return EnchantingUtils.getMobEssence(amount); } public static FluidStack getLiquidXP(final int amount){ - return EnchantmentUtils.getLiquidXP(amount); + return EnchantingUtils.getLiquidXP(amount); } -- cgit From b5fd7c514de976e5f0b550e751ae3a73001ac67e Mon Sep 17 00:00:00 2001 From: Alkalus Date: Fri, 24 Nov 2017 17:20:03 +1000 Subject: $ Fixed issue where all my blocks allowed mobs to spawn. % More Work on the Xp Converter. % Formatting. --- .../gtPlusPlus/core/block/base/AdvancedBlock.java | 7 +++ .../gtPlusPlus/core/block/base/BasicBlock.java | 7 +++ .../gtPlusPlus/core/block/base/BlockBaseNBT.java | 19 ++++-- .../gtPlusPlus/core/block/base/BlockBaseOre.java | 6 ++ src/Java/gtPlusPlus/core/block/base/MetaBlock.java | 7 +++ .../core/block/general/BlockTankXpConverter.java | 59 ++++++++++++++++--- .../gtPlusPlus/core/block/general/HellFire.java | 41 ++++++++----- .../block/general/antigrief/BlockWitherProof.java | 38 ++++++------ .../block/general/fluids/BlockFluidSludge.java | 6 ++ .../core/block/machine/BlockGtFrameBox.java | 6 ++ .../gtPlusPlus/core/block/machine/FishTrap.java | 25 +++++--- .../block/machine/Machine_ModularityTable.java | 13 ++++- .../core/block/machine/Machine_ProjectTable.java | 8 ++- .../core/block/machine/Machine_TradeTable.java | 18 +++--- .../core/block/machine/Machine_Workbench.java | 7 +++ src/Java/gtPlusPlus/core/item/ModItems.java | 67 ++++++++++++++++------ .../core/tileentities/ModTileEntities.java | 10 +--- .../general/TileEntityXpConverter.java | 31 +++++++--- .../gtPlusPlus/core/util/player/PlayerUtils.java | 31 +++++----- 19 files changed, 294 insertions(+), 112 deletions(-) (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java b/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java index 7a0b715138..d8e59f96c8 100644 --- a/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java +++ b/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java @@ -4,7 +4,9 @@ import gtPlusPlus.core.lib.CORE; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class AdvancedBlock extends Block { @@ -28,4 +30,9 @@ public class AdvancedBlock extends Block { return false; } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } diff --git a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java index 9e3a5fc37f..f97763dd54 100644 --- a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java +++ b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java @@ -5,7 +5,9 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BasicBlock extends BlockContainer { @@ -62,4 +64,9 @@ public class BasicBlock extends BlockContainer { return null; } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java index 3ecb556e09..da308e270b 100644 --- a/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java +++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java @@ -9,10 +9,12 @@ import gtPlusPlus.core.item.base.itemblock.ItemBlockNBT; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.Explosion; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public abstract class BlockBaseNBT extends BlockContainer @@ -25,7 +27,7 @@ public abstract class BlockBaseNBT extends BlockContainer private IIcon textureFront; @SuppressWarnings("deprecation") - public BlockBaseNBT(Material material, String unlocalName, String displayName){ + public BlockBaseNBT(final Material material, final String unlocalName, final String displayName){ super(material); this.setBlockName(unlocalName); this.setCreativeTab(AddToCreativeTab.tabMachines); @@ -46,28 +48,33 @@ public abstract class BlockBaseNBT extends BlockContainer public abstract TileEntity createNewTileEntity(final World world, final int p_149915_2_); @Override - public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + public void breakBlock(final World world, final int x, final int y, final int z, final Block block, final int meta) { super.breakBlock(world, x, y, z, block, meta); } @Override - public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta) { + public void onBlockDestroyedByPlayer(final World world, final int x, final int y, final int z, final int meta) { super.onBlockDestroyedByPlayer(world, x, y, z, meta); } @Override - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { + public void onBlockDestroyedByExplosion(final World world, final int x, final int y, final int z, final Explosion explosion) { super.onBlockDestroyedByExplosion(world, x, y, z, explosion); } @Override - public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + public void onBlockHarvested(final World world, final int x, final int y, final int z, final int meta, final EntityPlayer player) { super.onBlockHarvested(world, x, y, z, meta, player); } @Override - public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) { + public void onBlockExploded(final World world, final int x, final int y, final int z, final Explosion explosion) { super.onBlockExploded(world, x, y, z, explosion); } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java index c1e58e9393..285f394971 100644 --- a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java +++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java @@ -6,6 +6,7 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.math.MathUtils; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -71,6 +72,11 @@ public class BlockBaseOre extends BlockBaseModular{ return this.blockColour; } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + diff --git a/src/Java/gtPlusPlus/core/block/base/MetaBlock.java b/src/Java/gtPlusPlus/core/block/base/MetaBlock.java index 3e116eeb7f..880bb3a597 100644 --- a/src/Java/gtPlusPlus/core/block/base/MetaBlock.java +++ b/src/Java/gtPlusPlus/core/block/base/MetaBlock.java @@ -4,8 +4,10 @@ import java.util.List; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; public class MetaBlock extends MultiTextureBlock { @@ -25,4 +27,9 @@ public class MetaBlock extends MultiTextureBlock { } } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java index d9cbfc9fe5..97a9ff2af6 100644 --- a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java +++ b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java @@ -4,6 +4,8 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.interfaces.IToolStats; +import gregtech.common.items.GT_MetaGenerated_Tool_01; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.item.base.itemblock.ItemBlockEntityBase; import gtPlusPlus.core.lib.CORE; @@ -13,9 +15,13 @@ import gtPlusPlus.core.util.player.PlayerUtils; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockTankXpConverter extends BlockContainer { @@ -66,16 +72,48 @@ public class BlockTankXpConverter extends BlockContainer { return true; } else { - final TileEntityXpConverter tank = (TileEntityXpConverter) world.getTileEntity(x, y, z); - if (tank != null){ - if (tank.tankEssence.getFluid() != null){ - PlayerUtils.messagePlayer(player, "This tank contains "+tank.tankEssence.getFluidAmount()+"L of "+tank.tankEssence.getFluid().getLocalizedName()); + boolean mDidScrewDriver = false; + //Check For Screwdriver + try { + final ItemStack mHandStack = PlayerUtils.getItemStackInPlayersHand(player); + final Item mHandItem = PlayerUtils.getItemInPlayersHand(player); + if (mHandItem instanceof IToolStats){ + if (((mHandItem instanceof GT_MetaGenerated_Tool_01) && ((mHandItem.getDamage(mHandStack) == 22) || (mHandItem.getDamage(mHandStack) == 150)))){ + final TileEntityXpConverter tile = (TileEntityXpConverter) world.getTileEntity(x, y, z); + if (tile != null){ + mDidScrewDriver = true; + tile.onScrewdriverRightClick((byte) side, player, x, y, z); + } + + } } - if (tank.tankLiquidXp.getFluid() != null){ - PlayerUtils.messagePlayer(player, "This tank contains "+tank.tankLiquidXp.getFluidAmount()+"L of "+tank.tankLiquidXp.getFluid().getLocalizedName()); + } + catch (final Throwable t){ + mDidScrewDriver = false; + } + + if (!mDidScrewDriver){ + + + try { + final TileEntityXpConverter tile = (TileEntityXpConverter) world.getTileEntity(x, y, z); + if (tile != null){ + tile.onRightClick((byte) side, player, x, y, z); + } } - if ((tank.tankEssence.getFluid() != null) && (tank.tankLiquidXp.getFluid() != null)){ - PlayerUtils.messagePlayer(player, "This is worth "+EnchantingUtils.getLevelForLiquid(tank.tankLiquidXp.getFluidAmount())); + catch (final Throwable t){} + + final TileEntityXpConverter tank = (TileEntityXpConverter) world.getTileEntity(x, y, z); + if (tank != null){ + if (tank.tankEssence.getFluid() != null){ + PlayerUtils.messagePlayer(player, "This tank contains "+tank.tankEssence.getFluidAmount()+"L of "+tank.tankEssence.getFluid().getLocalizedName()); + } + if (tank.tankLiquidXp.getFluid() != null){ + PlayerUtils.messagePlayer(player, "This tank contains "+tank.tankLiquidXp.getFluidAmount()+"L of "+tank.tankLiquidXp.getFluid().getLocalizedName()); + } + if ((tank.tankEssence.getFluid() != null) && (tank.tankLiquidXp.getFluid() != null)){ + PlayerUtils.messagePlayer(player, "This is worth "+EnchantingUtils.getLevelForLiquid(tank.tankLiquidXp.getFluidAmount())+" levels."); + } } } } @@ -102,4 +140,9 @@ public class BlockTankXpConverter extends BlockContainer { super.onBlockAdded(world, x, y, z); } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } diff --git a/src/Java/gtPlusPlus/core/block/general/HellFire.java b/src/Java/gtPlusPlus/core/block/general/HellFire.java index 2adab5d5e7..d73d0eb085 100644 --- a/src/Java/gtPlusPlus/core/block/general/HellFire.java +++ b/src/Java/gtPlusPlus/core/block/general/HellFire.java @@ -1,6 +1,11 @@ package gtPlusPlus.core.block.general; -import static net.minecraftforge.common.util.ForgeDirection.*; +import static net.minecraftforge.common.util.ForgeDirection.DOWN; +import static net.minecraftforge.common.util.ForgeDirection.EAST; +import static net.minecraftforge.common.util.ForgeDirection.NORTH; +import static net.minecraftforge.common.util.ForgeDirection.SOUTH; +import static net.minecraftforge.common.util.ForgeDirection.UP; +import static net.minecraftforge.common.util.ForgeDirection.WEST; import java.util.IdentityHashMap; import java.util.Map.Entry; @@ -21,6 +26,7 @@ import net.minecraft.block.BlockFire; import net.minecraft.block.material.MapColor; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -44,29 +50,29 @@ public class HellFire extends BlockFire { this.setCreativeTab(AddToCreativeTab.tabBlock); GameRegistry.registerBlock(this, "blockHellFire"); LanguageRegistry.addName(this, "Hellish Fire"); - enableBrutalFire(); + this.enableBrutalFire(); } private void enableBrutalFire() { - for (Object o : Block.blockRegistry.getKeys()) + for (final Object o : Block.blockRegistry.getKeys()) { - String name = (String)o; - Block b = Block.getBlockFromName(name); + final String name = (String)o; + final Block b = Block.getBlockFromName(name); - if (b == Blocks.grass || b == Blocks.mycelium){ - int spread = 3; - int flamm = 3; + if ((b == Blocks.grass) || (b == Blocks.mycelium)){ + final int spread = 3; + final int flamm = 3; this.setFireInfo(b, spread * 4, flamm * 4); } if (b != Blocks.air) { - int spread = Blocks.fire.getEncouragement(b); - int flamm = Blocks.fire.getFlammability(b); + final int spread = Blocks.fire.getEncouragement(b); + final int flamm = Blocks.fire.getFlammability(b); this.setFireInfo(b, spread * 4, flamm * 4); } } - + //Special Case madness this.setFireInfo(Blocks.brown_mushroom_block, 20, 100); this.setFireInfo(Blocks.red_mushroom_block, 20, 100); @@ -89,7 +95,7 @@ public class HellFire extends BlockFire { @Override public void updateTick(final World world, final int x, final int y, final int z, Random random) { - random = new XSTR(); + random = new XSTR(); if (world.getGameRules().getGameRuleBooleanValue("doFireTick")) { final boolean flag = world.getBlock(x, y - 1, z).isFireSource(world, x, y - 1, z, UP); @@ -296,13 +302,18 @@ public class HellFire extends BlockFire { //Burn @Override - public void onEntityWalking(World world, int i, int j, int k, Entity entity) { + public void onEntityWalking(final World world, final int i, final int j, final int k, final Entity entity) { entity.setFire(10); } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + //Burn @Override - public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { + public void onEntityCollidedWithBlock(final World world, final int i, final int j, final int k, final Entity entity) { entity.setFire(10); } @@ -399,7 +410,7 @@ public class HellFire extends BlockFire { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(final IIconRegister IIconRegister) { - this.IIconArray = new IIcon[] { + this.IIconArray = new IIcon[] { IIconRegister.registerIcon(CORE.MODID + ":" + "hellfire/" + "blockHellFire" + "_layer_0"), IIconRegister.registerIcon(CORE.MODID + ":" + "hellfire/" + "blockHellFire" + "_layer_1") }; } diff --git a/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java b/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java index 297bcb3061..d093bf2e2f 100644 --- a/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java +++ b/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java @@ -7,11 +7,11 @@ import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.math.MathUtils; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.boss.EntityDragon; import net.minecraft.entity.boss.EntityWither; import net.minecraft.entity.boss.IBossDisplayData; @@ -56,39 +56,40 @@ public class BlockWitherProof extends Block{ this.blockIcon = iIcon.registerIcon(CORE.MODID + ":" + "blockFrameGt"); } - public void onBlockExploded(World world, int x, int y, int z, Explosion explosion){ + @Override + public void onBlockExploded(final World world, final int x, final int y, final int z, final Explosion explosion){ //prevent from being destroyed by wither and nukes. } @Override - public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, - int p_149723_3_, int p_149723_4_, Explosion p_149723_5_) { - + public void onBlockDestroyedByExplosion(final World p_149723_1_, final int p_149723_2_, + final int p_149723_3_, final int p_149723_4_, final Explosion p_149723_5_) { + } @Override - public boolean canDropFromExplosion(Explosion p_149659_1_) { + public boolean canDropFromExplosion(final Explosion p_149659_1_) { return false; } @Override - public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, - Entity entity) { - if (entity == null || !entity.isEntityAlive()){ + public boolean canEntityDestroy(final IBlockAccess world, final int x, final int y, final int z, + final Entity entity) { + if ((entity == null) || !entity.isEntityAlive()){ return false; - } - if (entity instanceof EntityWither || entity instanceof EntityDragon || entity instanceof IBossDisplayData){ + } + if ((entity instanceof EntityWither) || (entity instanceof EntityDragon) || (entity instanceof IBossDisplayData)){ return false; } else { - return super.canEntityDestroy(world, x, y, z, entity); - } + return super.canEntityDestroy(world, x, y, z, entity); + } } - - + + //Colour Handling private static final int mWitherColour = Utils.rgbtoHexValue(32, 32, 32); - + @Override public int colorMultiplier(final IBlockAccess par1IBlockAccess, final int par2, final int par3, final int par4){ return mWitherColour; @@ -99,6 +100,11 @@ public class BlockWitherProof extends Block{ return mWitherColour; } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } diff --git a/src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java b/src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java index f40c1dbe7d..b87054748d 100644 --- a/src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java +++ b/src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java @@ -6,6 +6,7 @@ import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -52,4 +53,9 @@ public class BlockFluidSludge extends BlockFluidClassic { return super.displaceIfPossible(world, x, y, z); } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } diff --git a/src/Java/gtPlusPlus/core/block/machine/BlockGtFrameBox.java b/src/Java/gtPlusPlus/core/block/machine/BlockGtFrameBox.java index cab02f9db6..0ed3aa5afd 100644 --- a/src/Java/gtPlusPlus/core/block/machine/BlockGtFrameBox.java +++ b/src/Java/gtPlusPlus/core/block/machine/BlockGtFrameBox.java @@ -4,6 +4,7 @@ import gtPlusPlus.core.block.base.BasicBlock.BlockTypes; import gtPlusPlus.core.block.base.MetaBlock; import gtPlusPlus.core.lib.CORE; import net.minecraft.block.material.Material; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.IBlockAccess; public class BlockGtFrameBox extends MetaBlock { @@ -32,4 +33,9 @@ public class BlockGtFrameBox extends MetaBlock { return super.colorMultiplier(p_149720_1_, p_149720_2_, p_149720_3_, p_149720_4_); } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } diff --git a/src/Java/gtPlusPlus/core/block/machine/FishTrap.java b/src/Java/gtPlusPlus/core/block/machine/FishTrap.java index f2e15e24b6..fad1dff490 100644 --- a/src/Java/gtPlusPlus/core/block/machine/FishTrap.java +++ b/src/Java/gtPlusPlus/core/block/machine/FishTrap.java @@ -14,10 +14,12 @@ import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class FishTrap extends BlockContainer @@ -95,23 +97,28 @@ public class FishTrap extends BlockContainer } @Override - public void onBlockAdded(World world, int x, int y, int z) { + public void onBlockAdded(final World world, final int x, final int y, final int z) { super.onBlockAdded(world, x, y, z); } @Override - public void breakBlock(World world, int x, int y, int z, Block block, int number) { - InventoryUtils.dropInventoryItems(world, x, y, z, block); - super.breakBlock(world, x, y, z, block, number); - } + public void breakBlock(final World world, final int x, final int y, final int z, final Block block, final int number) { + InventoryUtils.dropInventoryItems(world, x, y, z, block); + super.breakBlock(world, x, y, z, block, number); + } @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) { + public void onBlockPlacedBy(final World world, final int x, final int y, final int z, final EntityLivingBase entity, final ItemStack stack) { if (stack.hasDisplayName()) { - ((TileEntityFishTrap) world.getTileEntity(x,y,z)).setCustomName(stack.getDisplayName()); - } + ((TileEntityFishTrap) world.getTileEntity(x,y,z)).setCustomName(stack.getDisplayName()); } - + } + + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + /*@Override public void breakBlock(World world, BlockPos pos, IBlockState blockstate) { TileEntityFishTrap te = (TileEntityFishTrap) world.getTileEntity(pos); diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java index 9a11c9dadc..1b4c5ebd01 100644 --- a/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java +++ b/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java @@ -12,9 +12,11 @@ import gtPlusPlus.core.util.Utils; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class Machine_ModularityTable extends BlockContainer @@ -67,9 +69,9 @@ public class Machine_ModularityTable extends BlockContainer } final TileEntity te = world.getTileEntity(x, y, z); if ((te != null) && (te instanceof TileEntityModularityTable)){ - player.openGui(GTplusplus.instance, 1, world, x, y, z); - Utils.LOG_INFO("Player opened GUI"); - return true; + player.openGui(GTplusplus.instance, 1, world, x, y, z); + Utils.LOG_INFO("Player opened GUI"); + return true; } return false; } @@ -79,4 +81,9 @@ public class Machine_ModularityTable extends BlockContainer return new TileEntityModularityTable(); } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java index 2c742b99db..939015adf7 100644 --- a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java +++ b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java @@ -10,7 +10,6 @@ import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.tileentities.machines.TileEntityProjectTable; -import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.player.PlayerUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; @@ -18,10 +17,12 @@ import ic2.core.item.tool.ItemToolWrench; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO") @@ -151,4 +152,9 @@ public class Machine_ProjectTable extends BlockContainer return false; } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java index 540ba61837..724b438b13 100644 --- a/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java +++ b/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java @@ -1,22 +1,19 @@ package gtPlusPlus.core.block.machine; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.GTplusplus; import gtPlusPlus.core.block.base.BlockBaseNBT; -import gtPlusPlus.core.creative.AddToCreativeTab; -import gtPlusPlus.core.item.base.itemblock.ItemBlockNBT; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.tileentities.machines.TileEntityTradeTable; import gtPlusPlus.core.util.Utils; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class Machine_TradeTable extends BlockBaseNBT @@ -53,9 +50,9 @@ public class Machine_TradeTable extends BlockBaseNBT final TileEntity te = world.getTileEntity(x, y, z); if ((te != null) && (te instanceof TileEntityTradeTable)) { - //Utils.LOG_INFO("Clicked on TE - ok"); - player.openGui(GTplusplus.instance, 6, world, x, y, z); - return true; + //Utils.LOG_INFO("Clicked on TE - ok"); + player.openGui(GTplusplus.instance, 6, world, x, y, z); + return true; } else { Utils.LOG_INFO("Bad TE"); @@ -68,4 +65,9 @@ public class Machine_TradeTable extends BlockBaseNBT return new TileEntityTradeTable(); } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java index 64a5c5af8b..b5c54ad9a8 100644 --- a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java +++ b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java @@ -17,10 +17,12 @@ import ic2.core.item.tool.ItemToolWrench; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO") @@ -150,4 +152,9 @@ public class Machine_Workbench extends BlockContainer return false; } + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + return false; + } + } \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 851db25325..bd43da11fa 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -8,7 +8,12 @@ import gregtech.api.enums.Materials; import gregtech.api.util.GT_OreDictUnificator; import gtPlusPlus.core.common.compat.COMPAT_Baubles; import gtPlusPlus.core.creative.AddToCreativeTab; -import gtPlusPlus.core.item.base.*; +import gtPlusPlus.core.item.base.BaseEuItem; +import gtPlusPlus.core.item.base.BaseItemBackpack; +import gtPlusPlus.core.item.base.BaseItemBurnable; +import gtPlusPlus.core.item.base.BaseItemDamageable; +import gtPlusPlus.core.item.base.BaseItemTCShard; +import gtPlusPlus.core.item.base.CoreItem; import gtPlusPlus.core.item.base.dusts.decimal.BaseItemCentidust; import gtPlusPlus.core.item.base.dusts.decimal.BaseItemDecidust; import gtPlusPlus.core.item.base.foods.BaseItemFood; @@ -23,19 +28,36 @@ import gtPlusPlus.core.item.bauble.HealthBoostBauble; import gtPlusPlus.core.item.bauble.ModularBauble; import gtPlusPlus.core.item.chemistry.CoalTar; import gtPlusPlus.core.item.effects.RarityUncommon; -import gtPlusPlus.core.item.general.*; +import gtPlusPlus.core.item.general.BaseItemGrindle; +import gtPlusPlus.core.item.general.BufferCore; +import gtPlusPlus.core.item.general.ItemAirFilter; +import gtPlusPlus.core.item.general.ItemAreaClear; +import gtPlusPlus.core.item.general.ItemBasicFirestarter; +import gtPlusPlus.core.item.general.ItemBlueprint; +import gtPlusPlus.core.item.general.ItemEmpty; +import gtPlusPlus.core.item.general.ItemGemShards; +import gtPlusPlus.core.item.general.ItemHalfCompleteCasings; +import gtPlusPlus.core.item.general.ItemLavaFilter; +import gtPlusPlus.core.item.general.RF2EU_Battery; import gtPlusPlus.core.item.general.books.ItemBaseBook; -import gtPlusPlus.core.item.general.chassis.*; +import gtPlusPlus.core.item.general.chassis.itemBoilerChassis; +import gtPlusPlus.core.item.general.chassis.itemDehydratorCoil; +import gtPlusPlus.core.item.general.chassis.itemDehydratorCoilWire; import gtPlusPlus.core.item.general.throwables.ItemHydrofluoricAcidPotion; import gtPlusPlus.core.item.general.throwables.ItemSulfuricAcidPotion; import gtPlusPlus.core.item.init.ItemsFoods; import gtPlusPlus.core.item.init.ItemsMultiTools; import gtPlusPlus.core.item.tool.misc.SandstoneHammer; -import gtPlusPlus.core.item.tool.staballoy.*; +import gtPlusPlus.core.item.tool.staballoy.MultiPickaxeBase; +import gtPlusPlus.core.item.tool.staballoy.MultiSpadeBase; +import gtPlusPlus.core.item.tool.staballoy.StaballoyAxe; +import gtPlusPlus.core.item.tool.staballoy.StaballoyPickaxe; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.CORE.configSwitches; import gtPlusPlus.core.lib.LoadedMods; -import gtPlusPlus.core.material.*; +import gtPlusPlus.core.material.ALLOY; +import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MaterialGenerator; import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.material.nuclear.NUCLIDE; import gtPlusPlus.core.util.StringUtils; @@ -44,12 +66,15 @@ import gtPlusPlus.core.util.debug.DEBUG_INIT; import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.materials.MaterialUtils; -import net.minecraft.block.Block; -import net.minecraft.item.*; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; public final class ModItems { @@ -240,7 +265,7 @@ public final class ModItems { public static Item itemModularBauble; public static Item itemCustomBook; - + public static Item itemGrindleTablet; public static final void init(){ @@ -309,7 +334,7 @@ public final class ModItems { itemHydrofluoricPotion = new ItemHydrofluoricAcidPotion("itemHydrofluoricPotion", "Thowable Vial of Hydrofluoric Acid", "They won't see this coming, nor anything after!").setTextureName(CORE.MODID + ":itemPotion"); //Start meta Item Generation ItemsFoods.load(); - + try{ @@ -590,6 +615,14 @@ public final class ModItems { //Create Multi-tools ItemsMultiTools.load(); + //Xp Fluids - Dev + if (!FluidRegistry.isFluidRegistered("mobessence")){ + FluidUtils.generateFluidNoPrefix("mobessence", "mobessence", 0, new short[]{125, 175, 125, 100}); + } + if (!FluidRegistry.isFluidRegistered("xpjuice")){ + FluidUtils.generateFluidNoPrefix("xpjuice", "xpjuice", 0, new short[]{50, 150, 50, 100}); + } + //Just an unusual plate needed for some black magic. itemPlateClay = new BaseItemPlate(MaterialUtils.generateMaterialFromGtENUM(Materials.Clay)); itemDoublePlateClay = new BaseItemPlateDouble(MaterialUtils.generateMaterialFromGtENUM(Materials.Clay)); @@ -605,10 +638,10 @@ public final class ModItems { } //A plate of Europium. - if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plateEuropium", 1) == null && CORE.configSwitches.enableCustom_Pipes){ + if ((ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plateEuropium", 1) == null) && CORE.configSwitches.enableCustom_Pipes){ itemPlateEuropium = new BaseItemPlate(MaterialUtils.generateMaterialFromGtENUM(Materials.Europium)); } - if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plateDoubleEuropium", 1) == null && CORE.configSwitches.enableCustom_Pipes){ + if ((ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plateDoubleEuropium", 1) == null) && CORE.configSwitches.enableCustom_Pipes){ itemDoublePlateEuropium = new BaseItemPlateDouble(MaterialUtils.generateMaterialFromGtENUM(Materials.Europium)); } @@ -618,7 +651,7 @@ public final class ModItems { itemAirFilter = new ItemAirFilter(); itemLavaFilter = new ItemLavaFilter(); - + itemGrindleTablet = new BaseItemGrindle(); //Chemistry @@ -662,7 +695,7 @@ public final class ModItems { itemPlatePulsatingIron = ItemUtils.generateSpecialUsePlate("itemPlate"+"PhasedIron", "Phased Iron", new short[]{50, 91, 21}, 0); itemPlateEnergeticAlloy = ItemUtils.generateSpecialUsePlate("itemPlate"+"EnergeticAlloy", "Energetic Alloy", new short[]{252, 152, 45}, 0); itemPlateVibrantAlloy = ItemUtils.generateSpecialUsePlate("itemPlate"+"VibrantAlloy", "Vibrant Alloy", new short[]{204, 242, 142}, 0); - itemPlateConductiveIron = ItemUtils.generateSpecialUsePlate("itemPlate"+"ConductiveIron", "Conductive Iron", new short[]{164, 109, 100}, 0); + itemPlateConductiveIron = ItemUtils.generateSpecialUsePlate("itemPlate"+"ConductiveIron", "Conductive Iron", new short[]{164, 109, 100}, 0); //Register dumb naming conventions - Who chose fucking phased Iron/Gold? GT_OreDictUnificator.registerOre("dustPhasedGold", ItemUtils.getSimpleStack(itemDustVibrantAlloy)); @@ -677,7 +710,7 @@ public final class ModItems { //Big Reactors if (LoadedMods.Big_Reactors|| LOAD_ALL_CONTENT){ Utils.LOG_INFO("BigReactors Found - Loading Resources."); - //Item Init + //Item Init itemPlateBlutonium = ItemUtils.generateSpecialUsePlate("itemPlate"+"Blutonium", "Blutonium", new short[]{0, 0, 255}, 0); itemPlateBlutonium = ItemUtils.generateSpecialUsePlate("itemPlate"+"Cyanite", "Cyanite", new short[]{0, 191, 255}, 0); itemPlateLudicrite = ItemUtils.generateSpecialUsePlate("itemPlate"+"Ludicrite", "Ludicrite", new short[]{167, 5, 179}, 0); @@ -692,7 +725,7 @@ public final class ModItems { //Item Init try { ItemUtils.getItemForOreDict("Thaumcraft:ItemResource", "ingotVoidMetal", "Void Metal Ingot", 16); - itemPlateVoidMetal = ItemUtils.generateSpecialUsePlate("itemPlate"+"Void", "Void", new short[]{82, 17, 82}, 0); + itemPlateVoidMetal = ItemUtils.generateSpecialUsePlate("itemPlate"+"Void", "Void", new short[]{82, 17, 82}, 0); GT_OreDictUnificator.registerOre("plateVoidMetal", new ItemStack(ModItems.itemPlateVoidMetal)); } catch (final NullPointerException e){ e.getClass(); @@ -742,7 +775,7 @@ public final class ModItems { if (LoadedMods.RFTools|| LOAD_ALL_CONTENT){ Utils.LOG_INFO("rfTools Found - Loading Resources."); //Item Init - itemPlateDimensionShard = ItemUtils.generateSpecialUsePlate("itemPlate"+"DimensionShard", "Dimensional Shard", new short[]{170, 230, 230}, 0); + itemPlateDimensionShard = ItemUtils.generateSpecialUsePlate("itemPlate"+"DimensionShard", "Dimensional Shard", new short[]{170, 230, 230}, 0); } else { Utils.LOG_WARNING("rfTools not Found - Skipping Resources."); @@ -810,7 +843,7 @@ public final class ModItems { //ItemBlockGtFrameBox = new ItemBlockGtFrameBox(ModBlocks.blockGtFrameSet1); //GameRegistry.registerItem(ItemBlockGtFrameBox, "itemGtFrameBoxSet1"); - + itemCustomBook = new ItemBaseBook(); } } diff --git a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java index 83d274473c..87fb8ef76d 100644 --- a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java +++ b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java @@ -5,6 +5,7 @@ import gtPlusPlus.core.tileentities.general.TileEntityFirepit; import gtPlusPlus.core.tileentities.general.TileEntityFishTrap; import gtPlusPlus.core.tileentities.general.TileEntityHeliumGenerator; import gtPlusPlus.core.tileentities.general.TileEntityInfiniteFluid; +import gtPlusPlus.core.tileentities.general.TileEntityXpConverter; import gtPlusPlus.core.tileentities.machines.TileEntityModularityTable; import gtPlusPlus.core.tileentities.machines.TileEntityProjectTable; import gtPlusPlus.core.tileentities.machines.TileEntityTradeTable; @@ -18,14 +19,6 @@ public class ModTileEntities { public static void init() { Utils.LOG_INFO("Registering Tile Entities."); - // GameRegistry.registerTileEntity(TileEntityReverter.class, - // "TE_blockGriefSaver"); - // GameRegistry.registerTileEntity(TileEntityReverter.class, "Tower - // Reverter"); - // GameRegistry.registerTileEntity(TileEntityNHG.class, - // "NuclearFueledHeliumGenerator"); - // GameRegistry.registerTileEntity(TileEntityCharger.class, - // "TE_Charger"); GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "HeliumGenerator"); GameRegistry.registerTileEntity(TileEntityWorkbench.class, "TileWorkbench"); GameRegistry.registerTileEntity(TileEntityWorkbenchAdvanced.class, "TileWorkbenchAdvanced"); @@ -37,6 +30,7 @@ public class ModTileEntities { GameRegistry.registerTileEntity(TileEntityModularityTable.class, "TileEntityModularityTable"); GameRegistry.registerTileEntity(TileFastAlchemyFurnace.class, "TileFastAlchemyFurnace"); GameRegistry.registerTileEntity(TileFastArcaneAlembic.class, "TileFastArcaneAlembic"); + GameRegistry.registerTileEntity(TileEntityXpConverter.class, "TileEntityXpConverter"); } diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java index ca190802dc..09fea921a5 100644 --- a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java @@ -1,6 +1,8 @@ package gtPlusPlus.core.tileentities.general; import gtPlusPlus.core.util.enchanting.EnchantingUtils; +import gtPlusPlus.core.util.player.PlayerUtils; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -91,6 +93,14 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { this.yCoord, this.zCoord, tank, 0)); } } + + if ((from == ForgeDirection.UP) || (from == ForgeDirection.DOWN)){ + this.tankEssence = tank; + } + else { + this.tankLiquidXp = tank; + } + return stack; } @@ -125,7 +135,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { @Override public void updateEntity() { - if (this.tankEssence.getFluid() != null){ + /*if (this.tankEssence.getFluid() != null){ final FluidStack bigStorage = this.tankEssence.getFluid(); bigStorage.amount = this.tankEssence.getCapacity(); this.tankEssence.setFluid(bigStorage); @@ -135,20 +145,19 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { final FluidStack bigStorage = this.tankLiquidXp.getFluid(); bigStorage.amount = this.tankLiquidXp.getCapacity(); this.tankLiquidXp.setFluid(bigStorage); - } + }*/ if (this.needsUpdate) { - if (this.tankEssence.getFluid() != null){ + /*if (this.tankEssence.getFluid() != null){ final FluidStack bigStorage = this.tankEssence.getFluid(); bigStorage.amount = this.tankEssence.getCapacity(); this.tankEssence.setFluid(bigStorage); - } + }*/ if (this.tankLiquidXp.getFluid() != null){ - final FluidStack bigStorage = this.tankLiquidXp.getFluid(); - bigStorage.amount = this.tankLiquidXp.getCapacity(); - this.tankLiquidXp.setFluid(bigStorage); + final FluidStack bigStorage = EnchantingUtils.getEssenceFromLiquidXp(this.tankLiquidXp.getFluidAmount()); + this.tankEssence.setFluid(bigStorage); } if (this.updateTimer == 0) { @@ -190,4 +199,12 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { this.readFromNBT(tag); } + public void onScrewdriverRightClick(final byte aSide, final EntityPlayer aPlayer, final float aX, final float aY, final float aZ) { + PlayerUtils.messagePlayer(aPlayer, "Screwdriver Rightclick."); + } + + public void onRightClick(final byte aSide, final EntityPlayer aPlayer, final int aX, final int aY, final int aZ) { + PlayerUtils.messagePlayer(aPlayer, "Rightclick."); + } + } diff --git a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java b/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java index 543fd65b71..f1462ba51e 100644 --- a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java +++ b/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java @@ -1,6 +1,9 @@ package gtPlusPlus.core.util.player; -import java.util.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -104,7 +107,7 @@ public class PlayerUtils { }catch(final NullPointerException e){ e.printStackTrace(); return null; - } + } if (heldItem != null){ return heldItem; } @@ -125,32 +128,32 @@ public class PlayerUtils { return null; } - - public static Item getItemInPlayersHand(EntityPlayer player){ + + public static Item getItemInPlayersHand(final EntityPlayer player){ Item heldItem = null; - try{heldItem = player.getHeldItem().getItem(); + try{ + heldItem = player.getHeldItem().getItem(); }catch(final NullPointerException e){return null;} if (heldItem != null){ return heldItem; } - return null; } - - public final static EntityPlayer getPlayerEntityByName(String aPlayerName){ - EntityPlayer player = PlayerUtils.getPlayer(aPlayerName); + + public final static EntityPlayer getPlayerEntityByName(final String aPlayerName){ + final EntityPlayer player = PlayerUtils.getPlayer(aPlayerName); if (player != null){ return player; - } + } return null; } - - public final static UUID getPlayersUUIDByName(String aPlayerName){ - EntityPlayer player = PlayerUtils.getPlayer(aPlayerName); + + public final static UUID getPlayersUUIDByName(final String aPlayerName){ + final EntityPlayer player = PlayerUtils.getPlayer(aPlayerName); if (player != null){ return player.getUniqueID(); - } + } return null; } -- cgit From ecbe25305fedc7119d034abc68547ebfed8b6725 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Sat, 25 Nov 2017 15:25:40 +1000 Subject: $ More Fixes to the Xp Converter. --- .../core/block/general/BlockTankXpConverter.java | 19 ++- .../general/TileEntityXpConverter.java | 158 +++++++++++++++------ 2 files changed, 119 insertions(+), 58 deletions(-) (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java index 97a9ff2af6..e4270061cb 100644 --- a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java +++ b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java @@ -4,7 +4,6 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.interfaces.IToolStats; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.item.base.itemblock.ItemBlockEntityBase; @@ -75,17 +74,15 @@ public class BlockTankXpConverter extends BlockContainer { boolean mDidScrewDriver = false; //Check For Screwdriver try { - final ItemStack mHandStack = PlayerUtils.getItemStackInPlayersHand(player); - final Item mHandItem = PlayerUtils.getItemInPlayersHand(player); - if (mHandItem instanceof IToolStats){ - if (((mHandItem instanceof GT_MetaGenerated_Tool_01) && ((mHandItem.getDamage(mHandStack) == 22) || (mHandItem.getDamage(mHandStack) == 150)))){ - final TileEntityXpConverter tile = (TileEntityXpConverter) world.getTileEntity(x, y, z); - if (tile != null){ - mDidScrewDriver = true; - tile.onScrewdriverRightClick((byte) side, player, x, y, z); - } - + final ItemStack mHandStack = PlayerUtils.getItemStackInPlayersHand(world, player.getDisplayName()); + final Item mHandItem = mHandStack.getItem(); + if (((mHandItem instanceof GT_MetaGenerated_Tool_01) && ((mHandItem.getDamage(mHandStack) == 22) || (mHandItem.getDamage(mHandStack) == 150)))){ + final TileEntityXpConverter tile = (TileEntityXpConverter) world.getTileEntity(x, y, z); + if (tile != null){ + mDidScrewDriver = true; + tile.onScrewdriverRightClick((byte) side, player, x, y, z); } + } } catch (final Throwable t){ diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java index 09fea921a5..e3650b5dca 100644 --- a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java @@ -1,5 +1,6 @@ package gtPlusPlus.core.tileentities.general; +import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.enchanting.EnchantingUtils; import gtPlusPlus.core.util.player.PlayerUtils; import net.minecraft.entity.player.EntityPlayer; @@ -22,6 +23,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public FluidTank tankLiquidXp = new FluidTank(64000); private boolean needsUpdate = false; private int updateTimer = 0; + private boolean mConvertToEssence = true; public TileEntityXpConverter() { } @@ -29,35 +31,52 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { @Override public int fill(final ForgeDirection from, final FluidStack resource, final boolean doFill) { this.needsUpdate = true; - if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ - return this.tankLiquidXp.fill(resource, doFill); - } - else if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ - return this.tankEssence.fill(resource, doFill); + Utils.LOG_INFO("Ticking. | mConvertToEssence: "+this.mConvertToEssence); + if (this.mConvertToEssence){ + if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ + Utils.LOG_INFO("fill(tankLiquidXp)"); + return this.tankLiquidXp.fill(resource, doFill); + } + else { + Utils.LOG_INFO("Looking for Liquid Xp, Instead found "+resource.getLocalizedName()+"."); + } } else { - return 0; + if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ + Utils.LOG_INFO("fill(tankEssence)"); + return this.tankEssence.fill(resource, doFill); + } + else { + Utils.LOG_INFO("Looking for Essence, Instead found "+resource.getLocalizedName()+"."); + } } + Utils.LOG_INFO("fill(0)"); + return 0; } @Override public FluidStack drain(final ForgeDirection from, final FluidStack resource, final boolean doDrain) { this.needsUpdate = true; - if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ - return this.tankLiquidXp.drain(resource.amount, doDrain); - } - else if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ - return this.tankEssence.drain(resource.amount, doDrain); + if (this.mConvertToEssence){ + if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ + Utils.LOG_INFO("drain(mConvertToEssence)"); + return this.tankEssence.drain(resource.amount, doDrain); + } } else { - return null; + if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ + Utils.LOG_INFO("drain(tankLiquidXp)"); + return this.tankLiquidXp.drain(resource.amount, doDrain); + } } - + Utils.LOG_INFO("drain(null)"); + return null; } @Override public FluidStack drain(final ForgeDirection from, final int maxDrain, final boolean doDrain) { this.needsUpdate = true; + Utils.LOG_INFO("drain(Ex)"); final FluidStack fluid_Essence = this.tankEssence.getFluid(); final FluidStack fluid_Xp = this.tankLiquidXp.getFluid(); if ((fluid_Essence == null) && (fluid_Xp == null)) { @@ -67,7 +86,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { FluidStack fluid; FluidTank tank; - if ((from == ForgeDirection.UP) || (from == ForgeDirection.DOWN)){ + if (this.mConvertToEssence){ fluid = fluid_Essence; tank = this.tankEssence; } @@ -94,29 +113,55 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { } } - if ((from == ForgeDirection.UP) || (from == ForgeDirection.DOWN)){ + + if (this.mConvertToEssence){ this.tankEssence = tank; } else { this.tankLiquidXp = tank; } + Utils.LOG_INFO("drain(Ex2)"); return stack; } @Override public boolean canFill(final ForgeDirection from, final Fluid fluid) { - return true; + if (this.mConvertToEssence){ + if (this.tankEssence.getFluidAmount() < this.tankEssence.getCapacity()){ + Utils.LOG_INFO("canFill(mConvertToEssence)"); + return true; + } + } + else { + if (this.tankLiquidXp.getFluidAmount() < this.tankLiquidXp.getCapacity()){ + Utils.LOG_INFO("canFill(tankLiquidXp)"); + return true; + } + } + Utils.LOG_INFO("canFill(false)"); + return false; } @Override public boolean canDrain(final ForgeDirection from, final Fluid fluid) { - return true; + if (this.mConvertToEssence){ + if (this.tankEssence.getFluidAmount() > 0){ + return true; + } + } + else { + if (this.tankLiquidXp.getFluidAmount() > 0){ + return true; + } + } + Utils.LOG_INFO("canDrain(false)"); + return false; } @Override public FluidTankInfo[] getTankInfo(final ForgeDirection from) { - if ((from == ForgeDirection.UP) || (from == ForgeDirection.DOWN)){ + if (this.mConvertToEssence){ return new FluidTankInfo[] { this.tankEssence.getInfo() }; } else { @@ -125,6 +170,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { } public float getAdjustedVolume() { + Utils.LOG_INFO("AdjustedVolume()"); this.needsUpdate = true; final float amount = this.tankLiquidXp.getFluidAmount(); final float capacity = this.tankLiquidXp.getCapacity(); @@ -135,47 +181,52 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { @Override public void updateEntity() { - /*if (this.tankEssence.getFluid() != null){ - final FluidStack bigStorage = this.tankEssence.getFluid(); - bigStorage.amount = this.tankEssence.getCapacity(); - this.tankEssence.setFluid(bigStorage); - } + if (!this.getWorldObj().isRemote){ - if (this.tankLiquidXp.getFluid() != null){ - final FluidStack bigStorage = this.tankLiquidXp.getFluid(); - bigStorage.amount = this.tankLiquidXp.getCapacity(); - this.tankLiquidXp.setFluid(bigStorage); - }*/ + //Utils.LOG_INFO("Ticking. | mConvertToEssence: "+this.mConvertToEssence); - if (this.needsUpdate) { + if (this.needsUpdate) { - /*if (this.tankEssence.getFluid() != null){ - final FluidStack bigStorage = this.tankEssence.getFluid(); - bigStorage.amount = this.tankEssence.getCapacity(); - this.tankEssence.setFluid(bigStorage); - }*/ - - if (this.tankLiquidXp.getFluid() != null){ - final FluidStack bigStorage = EnchantingUtils.getEssenceFromLiquidXp(this.tankLiquidXp.getFluidAmount()); - this.tankEssence.setFluid(bigStorage); + if (this.updateTimer == 0) { + this.updateTimer = 10; // every 10 ticks it will send an update + } else { + --this.updateTimer; + if (this.updateTimer == 0) { + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + this.needsUpdate = false; + } + } } - if (this.updateTimer == 0) { - this.updateTimer = 10; // every 10 ticks it will send an update - } else { - --this.updateTimer; - if (this.updateTimer == 0) { - this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); - this.needsUpdate = false; + + if (this.mConvertToEssence){ + if ((this.tankLiquidXp.getFluid() != null) && (this.tankLiquidXp.getFluidAmount() >= 100) && (this.tankEssence.getFluidAmount() <= (this.tankEssence.getCapacity()-(100*EnchantingUtils.RATIO_MOB_ESSENCE_TO_LIQUID_XP)))){ + final FluidStack bigStorage = EnchantingUtils.getEssenceFromLiquidXp(100); + this.tankEssence.fill(bigStorage, true); + this.tankLiquidXp.drain(100, true); + this.needsUpdate = true; + Utils.LOG_INFO("B->A"); + } + } + else { + final double rm = EnchantingUtils.RATIO_MOB_ESSENCE_TO_LIQUID_XP; + if ((this.tankEssence.getFluid() != null) && (this.tankEssence.getFluidAmount() >= rm) && (this.tankLiquidXp.getFluidAmount() <= (this.tankLiquidXp.getCapacity()-rm))){ + final FluidStack bigStorage = EnchantingUtils.getLiquidXP(1); + this.tankLiquidXp.fill(bigStorage, true); + this.tankEssence.drain((int) rm, true); + this.needsUpdate = true; + Utils.LOG_INFO("A->B"); } } } + } @Override public void readFromNBT(final NBTTagCompound tag) { this.tankEssence.readFromNBT(tag); this.tankLiquidXp.readFromNBT(tag); + tag.setBoolean("mConvertToEssence", this.mConvertToEssence); super.readFromNBT(tag); } @@ -183,6 +234,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public void writeToNBT(final NBTTagCompound tag) { this.tankEssence.writeToNBT(tag); this.tankLiquidXp.writeToNBT(tag); + this.mConvertToEssence = tag.getBoolean("mConvertToEssence"); super.writeToNBT(tag); } @@ -200,11 +252,23 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { } public void onScrewdriverRightClick(final byte aSide, final EntityPlayer aPlayer, final float aX, final float aY, final float aZ) { - PlayerUtils.messagePlayer(aPlayer, "Screwdriver Rightclick."); + + if (!this.getWorldObj().isRemote){ + + if (this.mConvertToEssence){ + PlayerUtils.messagePlayer(aPlayer, "Converting from Mob Essence to Liquid Xp."); + this.mConvertToEssence = false; + } + else { + PlayerUtils.messagePlayer(aPlayer, "Converting from Liquid Xp to Mob Essence."); + this.mConvertToEssence = true; + } + } + } public void onRightClick(final byte aSide, final EntityPlayer aPlayer, final int aX, final int aY, final int aZ) { - PlayerUtils.messagePlayer(aPlayer, "Rightclick."); + } } -- cgit From a8442c40315db01d24845faac17c52af11191036 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Sun, 26 Nov 2017 17:19:56 +1000 Subject: $ Fixed the Xp Converter not retaining its mode. --- .../general/TileEntityXpConverter.java | 54 ++++++++++++++++++---- 1 file changed, 45 insertions(+), 9 deletions(-) (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java index e3650b5dca..8491cf8f6e 100644 --- a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java @@ -1,5 +1,7 @@ package gtPlusPlus.core.tileentities.general; +import org.lwjgl.input.Keyboard; + import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.enchanting.EnchantingUtils; import gtPlusPlus.core.util.player.PlayerUtils; @@ -28,6 +30,26 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public TileEntityXpConverter() { } + private void changeMode(){ + if (this.mConvertToEssence){ + this.mConvertToEssence = false; + return; + } + else { + this.mConvertToEssence = true; + return; + } + } + + private boolean isServerSide(){ + if (this.getWorldObj().isRemote){ + return false; + } + else { + return true; + } + } + @Override public int fill(final ForgeDirection from, final FluidStack resource, final boolean doFill) { this.needsUpdate = true; @@ -181,7 +203,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { @Override public void updateEntity() { - if (!this.getWorldObj().isRemote){ + if (this.isServerSide()){ //Utils.LOG_INFO("Ticking. | mConvertToEssence: "+this.mConvertToEssence); @@ -226,7 +248,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public void readFromNBT(final NBTTagCompound tag) { this.tankEssence.readFromNBT(tag); this.tankLiquidXp.readFromNBT(tag); - tag.setBoolean("mConvertToEssence", this.mConvertToEssence); + this.mConvertToEssence = tag.getBoolean("mConvertToEssence"); super.readFromNBT(tag); } @@ -234,7 +256,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public void writeToNBT(final NBTTagCompound tag) { this.tankEssence.writeToNBT(tag); this.tankLiquidXp.writeToNBT(tag); - this.mConvertToEssence = tag.getBoolean("mConvertToEssence"); + tag.setBoolean("mConvertToEssence", this.mConvertToEssence); super.writeToNBT(tag); } @@ -252,23 +274,37 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { } public void onScrewdriverRightClick(final byte aSide, final EntityPlayer aPlayer, final float aX, final float aY, final float aZ) { - - if (!this.getWorldObj().isRemote){ - + if (this.isServerSide()){ if (this.mConvertToEssence){ PlayerUtils.messagePlayer(aPlayer, "Converting from Mob Essence to Liquid Xp."); - this.mConvertToEssence = false; } else { PlayerUtils.messagePlayer(aPlayer, "Converting from Liquid Xp to Mob Essence."); - this.mConvertToEssence = true; } + //Mode Change + this.changeMode(); } - } public void onRightClick(final byte aSide, final EntityPlayer aPlayer, final int aX, final int aY, final int aZ) { + if ((Keyboard.isKeyDown(42)) || (Keyboard.isKeyDown(54))) { + String mInput; + String mOutput; + + if (this.mConvertToEssence){ + mInput = "Liquid Xp"; + mOutput = "Mob Essence"; + } + else { + mInput = "Mob Essence"; + mOutput = "Liquid Xp"; + } + + PlayerUtils.messagePlayer(aPlayer, "Input: "+mInput+"."); + PlayerUtils.messagePlayer(aPlayer, "Output: "+mOutput+"."); + } + } } -- cgit From 2b28b0849d64b320e42a478f83af6a29c4f28ac1 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Sun, 26 Nov 2017 17:54:25 +1000 Subject: $ Fixed Large Sifter, Tree Farm & Power Sub-Station not forming on SMP. $ Fixed issue where INFO_MACHINE_LOGGING would cause NPE's on SMP. - Removed logging from the Xp Converter. --- .../item/base/itemblock/ItemBlockEntityBase.java | 4 +- .../general/TileEntityXpConverter.java | 38 ++++++------- src/Java/gtPlusPlus/core/util/Utils.java | 65 ++++++++++++++-------- 3 files changed, 64 insertions(+), 43 deletions(-) (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java index 0dda165b6b..b13e6b22bc 100644 --- a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java +++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java @@ -28,8 +28,8 @@ public class ItemBlockEntityBase extends ItemBlock { @Override public final void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) { if (Block.getBlockFromItem(stack.getItem()) instanceof BlockTankXpConverter){ - list.add(EnumChatFormatting.GRAY+"Liquid Xp can be filled or drained from all four sides."); - list.add(EnumChatFormatting.GRAY+"Mob Essence can be filled or drained from the top and bottom."); + list.add(EnumChatFormatting.GRAY+"Can convert Liquid Xp to Mob Essence and back."); + list.add(EnumChatFormatting.GRAY+"Right click with a Screwdriver to change mode."); } else if (Block.getBlockFromItem(stack.getItem()) instanceof BlockTankXpConverter){ //list.add(EnumChatFormatting.GRAY+"A pile of " + materialName + " dust."); diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java index 8491cf8f6e..98da5a40fc 100644 --- a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java @@ -53,26 +53,26 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { @Override public int fill(final ForgeDirection from, final FluidStack resource, final boolean doFill) { this.needsUpdate = true; - Utils.LOG_INFO("Ticking. | mConvertToEssence: "+this.mConvertToEssence); + Utils.LOG_WARNING("Ticking. | mConvertToEssence: "+this.mConvertToEssence); if (this.mConvertToEssence){ if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ - Utils.LOG_INFO("fill(tankLiquidXp)"); + Utils.LOG_WARNING("fill(tankLiquidXp)"); return this.tankLiquidXp.fill(resource, doFill); } else { - Utils.LOG_INFO("Looking for Liquid Xp, Instead found "+resource.getLocalizedName()+"."); + Utils.LOG_WARNING("Looking for Liquid Xp, Instead found "+resource.getLocalizedName()+"."); } } else { if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ - Utils.LOG_INFO("fill(tankEssence)"); + Utils.LOG_WARNING("fill(tankEssence)"); return this.tankEssence.fill(resource, doFill); } else { - Utils.LOG_INFO("Looking for Essence, Instead found "+resource.getLocalizedName()+"."); + Utils.LOG_WARNING("Looking for Essence, Instead found "+resource.getLocalizedName()+"."); } } - Utils.LOG_INFO("fill(0)"); + Utils.LOG_WARNING("fill(0)"); return 0; } @@ -81,24 +81,24 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { this.needsUpdate = true; if (this.mConvertToEssence){ if (resource.isFluidEqual(EnchantingUtils.getMobEssence(1))){ - Utils.LOG_INFO("drain(mConvertToEssence)"); + Utils.LOG_WARNING("drain(mConvertToEssence)"); return this.tankEssence.drain(resource.amount, doDrain); } } else { if (resource.isFluidEqual(EnchantingUtils.getLiquidXP(1))){ - Utils.LOG_INFO("drain(tankLiquidXp)"); + Utils.LOG_WARNING("drain(tankLiquidXp)"); return this.tankLiquidXp.drain(resource.amount, doDrain); } } - Utils.LOG_INFO("drain(null)"); + Utils.LOG_WARNING("drain(null)"); return null; } @Override public FluidStack drain(final ForgeDirection from, final int maxDrain, final boolean doDrain) { this.needsUpdate = true; - Utils.LOG_INFO("drain(Ex)"); + Utils.LOG_WARNING("drain(Ex)"); final FluidStack fluid_Essence = this.tankEssence.getFluid(); final FluidStack fluid_Xp = this.tankLiquidXp.getFluid(); if ((fluid_Essence == null) && (fluid_Xp == null)) { @@ -143,7 +143,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { this.tankLiquidXp = tank; } - Utils.LOG_INFO("drain(Ex2)"); + Utils.LOG_WARNING("drain(Ex2)"); return stack; } @@ -151,17 +151,17 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public boolean canFill(final ForgeDirection from, final Fluid fluid) { if (this.mConvertToEssence){ if (this.tankEssence.getFluidAmount() < this.tankEssence.getCapacity()){ - Utils.LOG_INFO("canFill(mConvertToEssence)"); + Utils.LOG_WARNING("canFill(mConvertToEssence)"); return true; } } else { if (this.tankLiquidXp.getFluidAmount() < this.tankLiquidXp.getCapacity()){ - Utils.LOG_INFO("canFill(tankLiquidXp)"); + Utils.LOG_WARNING("canFill(tankLiquidXp)"); return true; } } - Utils.LOG_INFO("canFill(false)"); + Utils.LOG_WARNING("canFill(false)"); return false; } @@ -177,7 +177,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { return true; } } - Utils.LOG_INFO("canDrain(false)"); + Utils.LOG_WARNING("canDrain(false)"); return false; } @@ -192,7 +192,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { } public float getAdjustedVolume() { - Utils.LOG_INFO("AdjustedVolume()"); + Utils.LOG_WARNING("AdjustedVolume()"); this.needsUpdate = true; final float amount = this.tankLiquidXp.getFluidAmount(); final float capacity = this.tankLiquidXp.getCapacity(); @@ -205,7 +205,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { if (this.isServerSide()){ - //Utils.LOG_INFO("Ticking. | mConvertToEssence: "+this.mConvertToEssence); + //Utils.LOG_WARNING("Ticking. | mConvertToEssence: "+this.mConvertToEssence); if (this.needsUpdate) { @@ -227,7 +227,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { this.tankEssence.fill(bigStorage, true); this.tankLiquidXp.drain(100, true); this.needsUpdate = true; - Utils.LOG_INFO("B->A"); + Utils.LOG_WARNING("B->A"); } } else { @@ -237,7 +237,7 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { this.tankLiquidXp.fill(bigStorage, true); this.tankEssence.drain((int) rm, true); this.needsUpdate = true; - Utils.LOG_INFO("A->B"); + Utils.LOG_WARNING("A->B"); } } } diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java index f9315a2966..979c1f0287 100644 --- a/src/Java/gtPlusPlus/core/util/Utils.java +++ b/src/Java/gtPlusPlus/core/util/Utils.java @@ -1,12 +1,16 @@ package gtPlusPlus.core.util; -import static gtPlusPlus.core.handler.BookHandler.mBookKeeperCount; - import java.awt.Color; import java.awt.Graphics; import java.io.File; import java.lang.reflect.Method; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; import org.apache.commons.lang3.EnumUtils; import org.apache.logging.log4j.LogManager; @@ -15,7 +19,6 @@ import org.apache.logging.log4j.Logger; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.relauncher.FMLRelaunchLog; -import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.TC_Aspects; import gregtech.api.enums.TC_Aspects.TC_AspectStack; @@ -23,7 +26,6 @@ import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; import gtPlusPlus.GTplusplus; -import gtPlusPlus.core.handler.BookHandler; import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; @@ -38,7 +40,6 @@ import ic2.core.item.resources.ItemCell; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import net.minecraft.init.Items; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -49,7 +50,9 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.IChatComponent; import net.minecraft.world.World; import net.minecraftforge.common.util.EnumHelper; -import net.minecraftforge.fluids.*; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; public class Utils { @@ -183,8 +186,21 @@ public class Utils { // Non-Dev Comments public static void LOG_MACHINE_INFO(final String s) { - if (CORE.configSwitches.MACHINE_INFO || ClientProxy.playerName.toLowerCase().contains("draknyte1")) { - String name1 = gtPlusPlus.core.util.reflect.ReflectionUtils.getMethodName(2); + + boolean localPlayer = false; + try { + if (ClientProxy.playerName != null){ + if (ClientProxy.playerName.toLowerCase().contains("draknyte1")){ + localPlayer = true; + } + } + } + catch (final Throwable t){ + + } + + if (CORE.configSwitches.MACHINE_INFO || localPlayer) { + final String name1 = gtPlusPlus.core.util.reflect.ReflectionUtils.getMethodName(2); modLogger.info("Machine Info: " + s + " | " + name1); } } @@ -504,7 +520,7 @@ public class Utils { } public static File getMcDir() { - if (MinecraftServer.getServer() != null && MinecraftServer.getServer().isDedicatedServer()) { + if ((MinecraftServer.getServer() != null) && MinecraftServer.getServer().isDedicatedServer()) { return new File("."); } return Minecraft.getMinecraft().mcDataDir; @@ -604,7 +620,7 @@ public class Utils { } - public static int calculateVoltageTier(int Voltage) { + public static int calculateVoltageTier(final int Voltage) { int V; if (Voltage == 8) { V = 0; @@ -732,34 +748,39 @@ public class Utils { return sBookCount; } - public static ItemStack getWrittenBook(ItemStack aBook, int aID, String aMapping, String aTitle, String aAuthor, - String[] aPages) { - if (GT_Utility.isStringInvalid(aMapping)) + public static ItemStack getWrittenBook(final ItemStack aBook, final int aID, final String aMapping, final String aTitle, final String aAuthor, + final String[] aPages) { + if (GT_Utility.isStringInvalid(aMapping)) { return null; - ItemStack rStack = (ItemStack) CORE.sBookList.get(aMapping); - if (rStack != null) + } + ItemStack rStack = CORE.sBookList.get(aMapping); + if (rStack != null) { return GT_Utility.copyAmount(1L, new Object[] { rStack }); - if ((GT_Utility.isStringInvalid(aTitle)) || (GT_Utility.isStringInvalid(aAuthor)) || (aPages.length <= 0)) + } + if ((GT_Utility.isStringInvalid(aTitle)) || (GT_Utility.isStringInvalid(aAuthor)) || (aPages.length <= 0)) { return null; + } sBookCount += 1; - int vMeta = (aID == -1 ? sBookCount : aID); + final int vMeta = (aID == -1 ? sBookCount : aID); rStack = (aBook == null ? new ItemStack(ModItems.itemCustomBook, 1, vMeta) : aBook); - NBTTagCompound tNBT = new NBTTagCompound(); + final NBTTagCompound tNBT = new NBTTagCompound(); tNBT.setString("title", GT_LanguageManager.addStringLocalization( new StringBuilder().append("Book.").append(aTitle).append(".Name").toString(), aTitle)); tNBT.setString("author", aAuthor); - NBTTagList tNBTList = new NBTTagList(); + final NBTTagList tNBTList = new NBTTagList(); for (byte i = 0; i < aPages.length; i = (byte) (i + 1)) { aPages[i] = GT_LanguageManager .addStringLocalization(new StringBuilder().append("Book.").append(aTitle).append(".Page") .append((i < 10) ? new StringBuilder().append("0").append(i).toString() : Byte.valueOf(i)) .toString(), aPages[i]); if (i < 48) { - if (aPages[i].length() < 256) + if (aPages[i].length() < 256) { tNBTList.appendTag(new NBTTagString(aPages[i])); - else + } + else { GT_Log.err.println(new StringBuilder().append("WARNING: String for written Book too long! -> ") .append(aPages[i]).toString()); + } } else { GT_Log.err.println(new StringBuilder().append("WARNING: Too much Pages for written Book! -> ") .append(aTitle).toString()); -- cgit From f30d9f3ad55ae18cec5e86cc6a7b0124847b9a1f Mon Sep 17 00:00:00 2001 From: Alkalus Date: Sun, 26 Nov 2017 19:09:55 +1000 Subject: % Made the Xp Converter more colourful. --- .../core/block/general/BlockTankXpConverter.java | 104 ++++++++++++++++++++- .../general/TileEntityXpConverter.java | 15 ++- 2 files changed, 111 insertions(+), 8 deletions(-) (limited to 'src/Java/gtPlusPlus/core/tileentities') diff --git a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java index e4270061cb..c2afdfd21f 100644 --- a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java +++ b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java @@ -1,5 +1,9 @@ package gtPlusPlus.core.block.general; +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; @@ -9,6 +13,8 @@ import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.item.base.itemblock.ItemBlockEntityBase; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.tileentities.general.TileEntityXpConverter; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.array.Triplet; import gtPlusPlus.core.util.enchanting.EnchantingUtils; import gtPlusPlus.core.util.player.PlayerUtils; import net.minecraft.block.BlockContainer; @@ -32,6 +38,10 @@ public class BlockTankXpConverter extends BlockContainer { @SideOnly(Side.CLIENT) private IIcon textureFront; + private int mRainbowTick = 0; + private int mRainbowTickMax = 0; + private final Map> mRainbowMap = new HashMap>(); + @SuppressWarnings("deprecation") public BlockTankXpConverter() { super(Material.iron); @@ -39,6 +49,10 @@ public class BlockTankXpConverter extends BlockContainer { this.setCreativeTab(AddToCreativeTab.tabMachines); GameRegistry.registerBlock(this, ItemBlockEntityBase.class, "blockTankXpConverter"); LanguageRegistry.addName(this, "Xp Converter"); + this.generateRainbowMap(); + if (!this.getTickRandomly()){ + this.setTickRandomly(true); + } } /** @@ -55,10 +69,10 @@ public class BlockTankXpConverter extends BlockContainer { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(final IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); - this.textureTop = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); - this.textureBottom = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); - this.textureFront = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlYellow"); + this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray"); + this.textureTop = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray"); + this.textureBottom = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray"); + this.textureFront = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray"); } /** @@ -142,4 +156,86 @@ public class BlockTankXpConverter extends BlockContainer { return false; } + private final boolean generateRainbowMap(){ + int id = 0; + this.mRainbowMap.put(id++, new Triplet( 0, 255, 0)); + this.mRainbowMap.put(id++, new Triplet( 51, 255, 0)); + this.mRainbowMap.put(id++, new Triplet(102, 255, 0)); + this.mRainbowMap.put(id++, new Triplet(153, 255, 0)); + this.mRainbowMap.put(id++, new Triplet(204, 255, 0)); + this.mRainbowMap.put(id++, new Triplet(255, 255, 0)); + this.mRainbowMap.put(id++, new Triplet(255, 204, 0)); + this.mRainbowMap.put(id++, new Triplet(255, 153, 0)); + this.mRainbowMap.put(id++, new Triplet(255, 102, 0)); + this.mRainbowMap.put(id++, new Triplet(255, 51, 0)); + this.mRainbowMap.put(id++, new Triplet(255, 0, 0)); + this.mRainbowMap.put(id++, new Triplet(255, 0, 51)); + this.mRainbowMap.put(id++, new Triplet(255, 0, 102)); + this.mRainbowMap.put(id++, new Triplet(255, 0, 153)); + this.mRainbowMap.put(id++, new Triplet(255, 0, 204)); + this.mRainbowMap.put(id++, new Triplet(255, 0, 255)); + this.mRainbowMap.put(id++, new Triplet(204, 0, 255)); + this.mRainbowMap.put(id++, new Triplet(153, 0, 255)); + this.mRainbowMap.put(id++, new Triplet(102, 0, 255)); + this.mRainbowMap.put(id++, new Triplet( 51, 0, 255)); + this.mRainbowMap.put(id++, new Triplet( 0, 0, 255)); + this.mRainbowMap.put(id++, new Triplet( 0, 51, 255)); + this.mRainbowMap.put(id++, new Triplet( 0, 102, 255)); + this.mRainbowMap.put(id++, new Triplet( 0, 153, 255)); + this.mRainbowMap.put(id++, new Triplet( 0, 204, 255)); + this.mRainbowMap.put(id++, new Triplet( 0, 255, 255)); + this.mRainbowMap.put(id++, new Triplet( 0, 255, 204)); + this.mRainbowMap.put(id++, new Triplet( 0, 255, 153)); + this.mRainbowMap.put(id++, new Triplet( 0, 255, 102)); + this.mRainbowMap.put(id++, new Triplet( 0, 255, 51)); + this.mRainbowTickMax = this.mRainbowMap.size(); + return true; + } + + @Override + public int getBlockColor() { + return Utils.rgbtoHexValue(0, 0, 0); + } + + @Override + public int colorMultiplier(final IBlockAccess p_149720_1_, final int p_149720_2_, final int p_149720_3_, final int p_149720_4_) { + + if ((this.mRainbowTick < 0) || (this.mRainbowTick > this.mRainbowTickMax)){ + this.mRainbowTick = 0; + } + //Utils.LOG_INFO("x: "+this.mRainbowTick); + if (this.mRainbowTick <= this.mRainbowTickMax){ + Triplet mT = this.mRainbowMap.get(this.mRainbowTick); + try { + return Utils.rgbtoHexValue(mT.getValue_1(), mT.getValue_1(), mT.getValue_1()); + } catch (final Throwable t){ + try { + mT = this.mRainbowMap.get(this.mRainbowTick-1); + return Utils.rgbtoHexValue(mT.getValue_1(), mT.getValue_1(), mT.getValue_1()); + } catch (final Throwable t1){ + return Utils.rgbtoHexValue(0, 0, 0); + } + } + } + + return Utils.rgbtoHexValue(0, 0, 0); + } + + @Override + public void updateTick(final World world, final int x, final int y, final int z, final Random rand) { + //this.mRainbowTick++; + super.updateTick(world, x, y, z, rand); + } + + @Override + public void randomDisplayTick(final World world, final int x, final int y, final int z, final Random rand) { + this.mRainbowTick++; + super.randomDisplayTick(world, x, y, z, rand); + } + + @Override + public int tickRate(final World p_149738_1_) { + return 20; + } + } diff --git a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java index 98da5a40fc..b886299afd 100644 --- a/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java +++ b/src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java @@ -24,8 +24,9 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public FluidTank tankEssence = new FluidTank((int) (64000*EnchantingUtils.RATIO_MOB_ESSENCE_TO_LIQUID_XP)); public FluidTank tankLiquidXp = new FluidTank(64000); private boolean needsUpdate = false; - private int updateTimer = 0; private boolean mConvertToEssence = true; + private int updateTimer = 0; + private long mTickTime = 0; public TileEntityXpConverter() { } @@ -204,11 +205,9 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { public void updateEntity() { if (this.isServerSide()){ - - //Utils.LOG_WARNING("Ticking. | mConvertToEssence: "+this.mConvertToEssence); + this.mTickTime++; if (this.needsUpdate) { - if (this.updateTimer == 0) { this.updateTimer = 10; // every 10 ticks it will send an update } else { @@ -241,6 +240,14 @@ public class TileEntityXpConverter extends TileEntity implements IFluidHandler { } } } + else { + } + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + this.markDirty(); + + if ((this.mTickTime % 20) == 0){ + + } } -- cgit