diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-11-02 16:57:16 +0100 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-11-02 16:57:16 +0100 |
commit | 8b842ae036b5abfe2b64708fe9d7da3b1ddb6e26 (patch) | |
tree | 4785340bb1d0eb835a1fd042df9d80d8e82db9d1 /src/main | |
parent | 8ad9760f5bf2c4bf1fb8c65447e98786e6b0553b (diff) | |
download | GT5-Unofficial-8b842ae036b5abfe2b64708fe9d7da3b1ddb6e26.tar.gz GT5-Unofficial-8b842ae036b5abfe2b64708fe9d7da3b1ddb6e26.tar.bz2 GT5-Unofficial-8b842ae036b5abfe2b64708fe9d7da3b1ddb6e26.zip |
added small ores
+fixed heated water pump
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
Former-commit-id: f2655dba9dabfb9a2fc58ec8e11c96fff5dcad5b
Diffstat (limited to 'src/main')
8 files changed, 195 insertions, 19 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/client/renderer/BW_Renderer_Block_Ores.java b/src/main/java/com/github/bartimaeusnek/bartworks/client/renderer/BW_Renderer_Block_Ores.java index bb5078ebff..5bcd873fd3 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/client/renderer/BW_Renderer_Block_Ores.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/client/renderer/BW_Renderer_Block_Ores.java @@ -23,6 +23,8 @@ package com.github.bartimaeusnek.bartworks.client.renderer; import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGeneratedOreTE; +import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGeneratedSmallOreTE; +import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_SmallOres; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; @@ -39,7 +41,7 @@ public class BW_Renderer_Block_Ores implements ISimpleBlockRenderingHandler { @Override public void renderInventoryBlock(Block aBlock, int aMeta, int modelId, RenderBlocks aRenderer) { - BW_MetaGeneratedOreTE tTileEntity = new BW_MetaGeneratedOreTE(); + BW_MetaGeneratedOreTE tTileEntity = aBlock instanceof BW_MetaGenerated_SmallOres ? new BW_MetaGeneratedSmallOreTE() : new BW_MetaGeneratedOreTE(); tTileEntity.mMetaData = (short) aMeta; aBlock.setBlockBoundsForItemRender(); aRenderer.setRenderBoundsFromBlock(aBlock); diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/server/container/BW_Container_HeatedWaterPump.java b/src/main/java/com/github/bartimaeusnek/bartworks/server/container/BW_Container_HeatedWaterPump.java index f18b34c734..8ea844c82c 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/server/container/BW_Container_HeatedWaterPump.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/server/container/BW_Container_HeatedWaterPump.java @@ -71,6 +71,19 @@ public class BW_Container_HeatedWaterPump extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) { + Slot slot = this.getSlot(p_82846_2_); + if (p_82846_2_ == 0 && slot.getStack() != null) { + for (int i = 25; i < this.inventorySlots.size(); i++) { + if (((Slot) this.inventorySlots.get(i)).getStack() == null) { + ((Slot) this.inventorySlots.get(i)).putStack(slot.getStack()); + slot.putStack(null); + } + } + } + else if (p_82846_2_ > 1 && slot.getStack() != null && ((Slot) this.inventorySlots.get(0)).getStack() == null && ((Slot) this.inventorySlots.get(0)).isItemValid(slot.getStack())){ + ((Slot) this.inventorySlots.get(0)).putStack(slot.getStack()); + slot.putStack(null); + } return null; } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java new file mode 100644 index 0000000000..c6baf39118 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGeneratedSmallOreTE.java @@ -0,0 +1,92 @@ +package com.github.bartimaeusnek.bartworks.system.material; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.interfaces.ITexture; +import gregtech.api.objects.GT_CopiedBlockTexture; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.objects.XSTR; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.blocks.GT_Block_Ores_Abstract; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; +import java.util.Random; + +public class BW_MetaGeneratedSmallOreTE extends BW_MetaGeneratedOreTE { + + @Override + public ArrayList<ItemStack> getDrops(Block aDroppedOre) { + ArrayList<ItemStack> rList = new ArrayList<>(); + Materials aMaterial = Werkstoff.werkstoffHashMap.get(this.mMetaData).getBridgeMaterial(); + + if (aMaterial != null) { + Random tRandom = new XSTR(this.xCoord ^ this.yCoord ^ this.zCoord); + ArrayList<ItemStack> tSelector = new ArrayList<>(); + + ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 1; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 2; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); + if (tStack != null) { + for (int i = 0; i < 12; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 5; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1L); + if (tStack != null) { + for (int i = 0; i < 10; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L), 1L); + if (tStack != null) { + for (int i = 0; i < 5; i++) { + tSelector.add(tStack); + } + } + tStack = GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial, 1L); + if (tStack != null) { + for (int i = 0; i < 10; i++) { + tSelector.add(tStack); + } + } + if (tSelector.size() > 0) { + rList.add(GT_Utility.copyAmount(1L, tSelector.get(tRandom.nextInt(tSelector.size())))); + } + if (tRandom.nextInt(3) > 1) { + rList.add(GT_OreDictUnificator.get(tRandom.nextInt(3) > 0 ? OrePrefixes.dustImpure : OrePrefixes.dust, Materials.Stone, 1L)); + } + } + return rList; + } + + @Override + public ITexture[] getTexture(Block aBlock, byte aSide) { + Werkstoff aMaterial = Werkstoff.werkstoffHashMap.get(this.mMetaData); + if ((aMaterial != null)) { + GT_RenderedTexture aIconSet = new GT_RenderedTexture(aMaterial.getTexSet().mTextures[OrePrefixes.oreSmall.mTextureIndex], aMaterial.getRGBA()); + return new ITexture[]{new GT_CopiedBlockTexture(Blocks.stone, 0, 0), aIconSet}; + } + return new ITexture[]{new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_RenderedTexture(gregtech.api.enums.TextureSet.SET_NONE.mTextures[OrePrefixes.oreSmall.mTextureIndex])}; + } +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java index 4d1a5a4a9e..eeb1f269a9 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Ores.java @@ -56,13 +56,16 @@ public class BW_MetaGenerated_Ores extends BW_TileEntityContainer { this.setResistance(5.0F); this.setBlockTextureName("stone"); this.setCreativeTab(metaTab); - for (Werkstoff w : Werkstoff.werkstoffHashSet) { - if (w != null) { - if ((w.getGenerationFeatures().toGenerate & 0b1000) == 0 || ((w.getGenerationFeatures().blacklist & 0b1000) != 0)) - continue; - GT_ModHandler.addValuableOre(this, w.getmID(), 1); - GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + "." + w.getmID() + ".name", w.getDefaultName() + OrePrefixes.ore.mLocalizedMaterialPost); - } + for (Werkstoff w : Werkstoff.werkstoffHashSet) + doRegistrationStuff(w); + } + + protected void doRegistrationStuff(Werkstoff w){ + if (w != null) { + if ((w.getGenerationFeatures().toGenerate & 0b1000) == 0 || ((w.getGenerationFeatures().blacklist & 0b1000) != 0)) + return; + GT_ModHandler.addValuableOre(this, w.getmID(), 1); + GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + "." + w.getmID() + ".name", w.getDefaultName() + OrePrefixes.ore.mLocalizedMaterialPost); } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_SmallOres.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_SmallOres.java new file mode 100644 index 0000000000..f5e6cf1a50 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_SmallOres.java @@ -0,0 +1,63 @@ +package com.github.bartimaeusnek.bartworks.system.material; + +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_ModHandler; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import java.util.Arrays; + +public class BW_MetaGenerated_SmallOres extends BW_MetaGenerated_Ores { + public BW_MetaGenerated_SmallOres(Material p_i45386_1_, Class<? extends TileEntity> tileEntity, String blockName) { + super(p_i45386_1_, tileEntity, blockName); + } + + @Override + protected void doRegistrationStuff(Werkstoff w) { + if (w != null) { + if ((w.getGenerationFeatures().toGenerate & 0b1000) == 0 || ((w.getGenerationFeatures().blacklist & 0b1000) != 0)) + return; + GT_ModHandler.addValuableOre(this, w.getmID(), 1); + GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + "." + w.getmID() + ".name", OrePrefixes.oreSmall.mLocalizedMaterialPre + w.getDefaultName() + OrePrefixes.oreSmall.mLocalizedMaterialPost); + } + } + + @Override + public String getUnlocalizedName() { + return "bw.blockores.02"; + } + + public static boolean setOreBlock(World aWorld, int aX, int aY, int aZ, int aMetaData, boolean air, Block block, int[] aBlockMeta) { + if (!air) { + aY = Math.min(aWorld.getActualHeight(), Math.max(aY, 1)); + } + + Block tBlock = aWorld.getBlock(aX, aY, aZ); + Block tOreBlock = WerkstoffLoader.BWSmallOres; + if (aMetaData < 0 || tBlock == Blocks.air && !air) { + return false; + } else { + + if (Block.getIdFromBlock(tBlock) != Block.getIdFromBlock(block)) { + return false; + } + final int aaY = aY; + if (Arrays.stream(aBlockMeta).noneMatch(e -> e == aWorld.getBlockMetadata(aX, aaY, aZ))) { + return false; + } + + aWorld.setBlock(aX, aY, aZ, tOreBlock, aMetaData, 0); + TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); + if (tTileEntity instanceof BW_MetaGeneratedOreTE) { + ((BW_MetaGeneratedOreTE) tTileEntity).mMetaData = (short) aMetaData; + } + + return true; + } + } + +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java index ea43acd6d0..f9ca22d37a 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java @@ -42,6 +42,7 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.common.blocks.GT_Block_Ores; import gregtech.common.blocks.GT_Block_Ores_Abstract; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java index 45971f3120..da365a60fc 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java @@ -737,7 +737,7 @@ public class WerkstoffLoader implements Runnable { "", new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), + new Werkstoff.GenerationFeatures(), 47, TextureSet.SET_METALLIC //No Byproducts @@ -808,7 +808,7 @@ public class WerkstoffLoader implements Runnable { "", new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), + new Werkstoff.GenerationFeatures(), 53, TextureSet.SET_METALLIC //No Byproducts @@ -896,7 +896,7 @@ public class WerkstoffLoader implements Runnable { "Leach Residue", new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), + new Werkstoff.GenerationFeatures(), 60, TextureSet.SET_ROUGH //No Byproducts @@ -1007,7 +1007,7 @@ public class WerkstoffLoader implements Runnable { "???", new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), + new Werkstoff.GenerationFeatures(), 69, TextureSet.SET_ROUGH //No Byproducts @@ -1018,7 +1018,7 @@ public class WerkstoffLoader implements Runnable { "???", new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), + new Werkstoff.GenerationFeatures(), 70, TextureSet.SET_ROUGH //No Byproducts @@ -1119,7 +1119,7 @@ public class WerkstoffLoader implements Runnable { "Crude Rhodium Metal", new Werkstoff.Stats(), Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), + new Werkstoff.GenerationFeatures(), 79, TextureSet.SET_DULL ); @@ -1265,6 +1265,7 @@ public class WerkstoffLoader implements Runnable { public static HashBiMap<Werkstoff, Fluid> fluids = HashBiMap.create(); public static HashBiMap<Werkstoff, Fluid> molten = HashBiMap.create(); public static Block BWOres; + public static Block BWSmallOres; public boolean registered; public static Werkstoff getWerkstoff(String Name){ @@ -1290,6 +1291,8 @@ public class WerkstoffLoader implements Runnable { } if (orePrefixes == ore) return new ItemStack(WerkstoffLoader.BWOres, amount, werkstoff.getmID()); + if (orePrefixes == oreSmall) + return new ItemStack(WerkstoffLoader.BWSmallOres, amount, werkstoff.getmID()); if (WerkstoffLoader.items.get(orePrefixes) == null) new Exception("NO SUCH ITEM!"+orePrefixes+werkstoff.getDefaultName()).printStackTrace(); return new ItemStack(WerkstoffLoader.items.get(orePrefixes), amount, werkstoff.getmID()).copy(); @@ -1542,7 +1545,9 @@ public class WerkstoffLoader implements Runnable { RenderingRegistry.registerBlockHandler(BW_Renderer_Block_Ores.INSTANCE); GameRegistry.registerTileEntity(BW_MetaGeneratedOreTE.class, "bw.blockoresTE"); WerkstoffLoader.BWOres = new BW_MetaGenerated_Ores(Material.rock, BW_MetaGeneratedOreTE.class, "bw.blockores"); + WerkstoffLoader.BWSmallOres = new BW_MetaGenerated_SmallOres(Material.rock, BW_MetaGeneratedSmallOreTE.class, "bw.blockoresSmall"); GameRegistry.registerBlock(WerkstoffLoader.BWOres, BW_MetaGeneratedOre_Item.class, "bw.blockores.01"); + GameRegistry.registerBlock(WerkstoffLoader.BWSmallOres, BW_MetaGeneratedOre_Item.class, "bw.blockores.02"); new GTMetaItemEnhancer(); } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/oregen/BW_OreLayer.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/oregen/BW_OreLayer.java index d9dff96cf7..920bb109af 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/oregen/BW_OreLayer.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/oregen/BW_OreLayer.java @@ -23,10 +23,7 @@ package com.github.bartimaeusnek.bartworks.system.oregen; import com.github.bartimaeusnek.bartworks.MainMod; -import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGeneratedOreTE; -import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_Ores; -import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import com.github.bartimaeusnek.bartworks.system.material.*; import com.github.bartimaeusnek.bartworks.util.MurmurHash3; import com.google.common.collect.ArrayListMultimap; import gregtech.api.GregTech_API; @@ -177,7 +174,7 @@ public abstract class BW_OreLayer extends GT_Worldgen { return true; if ((aMetaData == this.mSporadicMeta && (this.bwOres & 0b0001) != 0) || (aMetaData == this.mBetweenMeta && (this.bwOres & 0b0010) != 0) || (aMetaData == this.mPrimaryMeta && (this.bwOres & 0b1000) != 0) || (aMetaData == this.mSecondaryMeta && (this.bwOres & 0b0100) != 0)) { - return BW_MetaGenerated_Ores.setOreBlock(aWorld, aX, aY, aZ, aMetaData, false, this.getDefaultBlockToReplace(),this.getDefaultDamageToReplace()); + return isSmallOre ? BW_MetaGenerated_SmallOres.setOreBlock(aWorld, aX, aY, aZ, aMetaData, false, this.getDefaultBlockToReplace(),this.getDefaultDamageToReplace()) : BW_MetaGenerated_Ores.setOreBlock(aWorld, aX, aY, aZ, aMetaData, false, this.getDefaultBlockToReplace(),this.getDefaultDamageToReplace()); } return this.setGTOreBlockSpace(aWorld, aX, aY, aZ, aMetaData, this.getDefaultBlockToReplace()); |