diff options
Diffstat (limited to 'src')
9 files changed, 283 insertions, 142 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java index 5d6af0b8a7..394c7ff48f 100644 --- a/src/main/java/com/detrav/DetravScannerMod.java +++ b/src/main/java/com/detrav/DetravScannerMod.java @@ -1,5 +1,6 @@ package com.detrav; +import com.detrav.net.DetravProPickPacket00; import org.apache.logging.log4j.LogManager; import com.detrav.net.DetravNetwork; @@ -19,11 +20,11 @@ import gregtech.api.GregTech_API; import net.minecraft.creativetab.CreativeTabs; import net.minecraftforge.common.config.Configuration; -@Mod(modid = DetravScannerMod.MODID, version = DetravScannerMod.VERSION,dependencies = "required-after:IC2;required-after:gregtech;after:miscutils") +@Mod(modid = DetravScannerMod.MODID, version = DetravScannerMod.VERSION,dependencies = "required-after:IC2;required-after:gregtech;after:miscutils;after:bartworks") public class DetravScannerMod { public static final String MODID = "detravscannermod"; - public static final String VERSION = "1.5.3"; + public static final String VERSION = "1.5.4"; public static final boolean DEBUGBUILD = false; public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab(); @@ -73,6 +74,8 @@ public class DetravScannerMod proxy.onPostLoad(); if (Loader.isModLoaded("miscutils")) GTppHelper.generate_OreIDs(); + + DetravProPickPacket00.reFillFluidColors(); } } diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java index 62d296077c..6a80b7de0f 100644 --- a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java +++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java @@ -7,6 +7,7 @@ import com.detrav.enums.DetravToolDictNames; import com.detrav.items.tools.DetravProPick; import com.detrav.items.tools.DetravToolElectricProPick; +import cpw.mods.fml.common.Loader; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.TC_Aspects; @@ -20,6 +21,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.FluidStack; +import static com.detrav.DetravScannerMod.DEBUGBUILD; + /** * Created by wital_000 on 19.03.2016. */ @@ -298,32 +301,34 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { public void getDetravSubItems(Item item, CreativeTabs detravCreativeTab, List list) { ItemStack dStack; - - //Materials at tiers - dStack = getToolWithStats(0,1,Materials.Polycaprolactam,Materials.Polycaprolactam, null); - list.add(dStack); - dStack = getToolWithStats(2,1,Materials.Steel,Materials.Steel, null); - list.add(dStack); - dStack = getToolWithStats(2,1,Materials.Bronze,Materials.Steel, null); - list.add(dStack); - dStack = getToolWithStats(4,1,Materials.Manyullyn,Materials.Aluminium, null); - list.add(dStack); - dStack = getToolWithStats(6,1,Materials.DamascusSteel,Materials.DamascusSteel, null); - list.add(dStack); - dStack = getToolWithStats(8,1,Materials.Titanium,Materials.Titanium, null); - list.add(dStack); - dStack = getToolWithStats(10,1,Materials.TungstenSteel,Materials.TungstenSteel, null); - list.add(dStack); - dStack = getToolWithStats(12,1,Materials.Iridium,Materials.Iridium, null); - list.add(dStack); - dStack = getToolWithStats(12,1,Materials.Osmium,Materials.Osmium, null); - list.add(dStack); - dStack = getToolWithStats(14,1,Materials.Neutronium,Materials.Neutronium, null); - list.add(dStack); - dStack = getToolWithStats(16,1,Materials.InfinityCatalyst,Materials.InfinityCatalyst, null); - list.add(dStack); - dStack = getToolWithStats(18,1,Materials.Infinity,Materials.Infinity, null); - list.add(dStack); + if (Loader.isModLoaded("dreamcraft")) { + //Materials at tiers + dStack = getToolWithStats(0, 1, Materials.Polycaprolactam, Materials.Polycaprolactam, null); + list.add(dStack); + dStack = getToolWithStats(2, 1, Materials.Steel, Materials.Steel, null); + list.add(dStack); + dStack = getToolWithStats(2, 1, Materials.Bronze, Materials.Steel, null); + list.add(dStack); + dStack = getToolWithStats(4, 1, Materials.Manyullyn, Materials.Aluminium, null); + list.add(dStack); + dStack = getToolWithStats(6, 1, Materials.DamascusSteel, Materials.DamascusSteel, null); + list.add(dStack); + dStack = getToolWithStats(8, 1, Materials.Titanium, Materials.Titanium, null); + list.add(dStack); + dStack = getToolWithStats(10, 1, Materials.TungstenSteel, Materials.TungstenSteel, null); + list.add(dStack); + dStack = getToolWithStats(12, 1, Materials.Iridium, Materials.Iridium, null); + list.add(dStack); + dStack = getToolWithStats(12, 1, Materials.Osmium, Materials.Osmium, null); + list.add(dStack); + dStack = getToolWithStats(14, 1, Materials.Neutronium, Materials.Neutronium, null); + list.add(dStack); + + dStack = getToolWithStats(16, 1, Materials.InfinityCatalyst, Materials.InfinityCatalyst, null); + list.add(dStack); + dStack = getToolWithStats(18, 1, Materials.Infinity, Materials.Infinity, null); + list.add(dStack); + } //Steel for comparison dStack = getToolWithStats(0,1,Materials.Steel,Materials.Steel, null); @@ -354,12 +359,18 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { dStack = getToolWithStats(102, 1, Materials.Neutronium, Materials.TungstenSteel, new long[]{409600000L, GT_Values.V[7], 7L, -1L}); setCharge(dStack,409600000L); list.add(dStack); - dStack = getToolWithStats(104, 1, Materials.InfinityCatalyst, Materials.TungstenSteel, new long[]{1638400000L, GT_Values.V[8], 8L, -1L}); - setCharge(dStack,1638400000L); - list.add(dStack); - dStack = getToolWithStats(106, 1, Materials.Infinity, Materials.TungstenSteel, new long[]{6553600000L, GT_Values.V[9], 9L, -1L}); - setCharge(dStack,6553600000L); - list.add(dStack); + if (Loader.isModLoaded("dreamcraft")) { + dStack = getToolWithStats(104, 1, Materials.InfinityCatalyst, Materials.TungstenSteel, new long[]{1638400000L, GT_Values.V[8], 8L, -1L}); + setCharge(dStack, 1638400000L); + list.add(dStack); + dStack = getToolWithStats(106, 1, Materials.Infinity, Materials.TungstenSteel, new long[]{6553600000L, GT_Values.V[9], 9L, -1L}); + setCharge(dStack, 6553600000L); + list.add(dStack); + } else { + dStack = getToolWithStats(106, 1, Materials.Neutronium, Materials.TungstenSteel, new long[]{6553600000L, GT_Values.V[9], 9L, -1L}); + setCharge(dStack, 6553600000L); + list.add(dStack); + } } } diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java index 57f5318571..c614a844f6 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java @@ -1,14 +1,11 @@ package com.detrav.items.behaviours; -import java.util.ArrayList; -import java.util.List; -import java.util.SplittableRandom; - import com.detrav.items.DetravMetaGeneratedTool01; import com.detrav.net.DetravNetwork; import com.detrav.net.DetravProPickPacket00; +import com.detrav.utils.BartWorksHelper; import com.detrav.utils.GTppHelper; - +import cpw.mods.fml.common.Loader; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.objects.ItemData; import gregtech.api.util.GT_LanguageManager; @@ -16,8 +13,6 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.common.GT_UndergroundOil; import gregtech.common.blocks.GT_Block_Ores_Abstract; import gregtech.common.blocks.GT_TileEntity_Ores; -import gtPlusPlus.core.block.base.BlockBaseOre; -import gtPlusPlus.core.material.Material; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -25,11 +20,13 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; +import java.util.List; + /** * Created by wital_000 on 19.03.2016. */ @@ -92,56 +89,42 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi int ySize = c.getHeightValue(x, z);//(int)aPlayer.posY;//c.getHeightValue(x, z); for (int y = 1; y < ySize; y++) { switch (data) { - case 0: + case 0: case 1: - Block tBlock = c.getBlock(x,y,z); - short tMetaID = (short)c.getBlockMetadata(x,y,z); + Block tBlock = c.getBlock(x, y, z); + short tMetaID = (short) c.getBlockMetadata(x, y, z); if (tBlock instanceof GT_Block_Ores_Abstract) { - TileEntity tTileEntity = c.getTileEntityUnsafe(x,y,z); - if ((tTileEntity!=null) + TileEntity tTileEntity = c.getTileEntityUnsafe(x, y, z); + if ((tTileEntity != null) && (tTileEntity instanceof GT_TileEntity_Ores) && ((GT_TileEntity_Ores) tTileEntity).mNatural == true) { - tMetaID = (short)((GT_TileEntity_Ores) tTileEntity).getMetaData(); + tMetaID = (short) ((GT_TileEntity_Ores) tTileEntity).getMetaData(); try { String name = GT_LanguageManager.getTranslation( tBlock.getUnlocalizedName() + "." + tMetaID + ".name"); if (name.startsWith("Small")) if (data != 1) continue; packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID); - } - catch(Exception e) { + } catch (Exception e) { String name = tBlock.getUnlocalizedName() + "."; if (name.contains(".small.")) if (data != 1) continue; packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID); } } - } - else if (tBlock instanceof BlockBaseOre) { - Short packaged = 0; - Material m = ((BlockBaseOre) tBlock).getMaterialEx(); - packaged = GTppHelper.encodeoresGTpp.get(m); - try { - packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, (short) (packaged+7000)); - } - catch(Exception e) { - - } - } - else if (data == 1) { + } else if (Loader.isModLoaded("miscutils") && GTppHelper.isGTppBlock(tBlock)) { + short meta = GTppHelper.getGTppMeta(tBlock); + packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, meta); + } else if (Loader.isModLoaded("bartworks") && BartWorksHelper.isOre(tBlock)) { + packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, BartWorksHelper.getMetaFromBlock(c, x, y, z, tBlock)); + } else if (data == 1) { ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { - try { - packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, (short)tAssotiation.mMaterial.mMaterial.mMetaItemSubID); - } - catch (Exception e) - { - - } + packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, (short) tAssotiation.mMaterial.mMaterial.mMetaItemSubID); } } break; case 2: - if(( x == 0 ) || ( z == 0 )){ //Skip doing the locations with the grid on them. + if ((x == 0) || (z == 0)) { //Skip doing the locations with the grid on them. break; } FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(c.xPosition * 16 + x, c.zPosition * 16 + z), -1); @@ -160,8 +143,8 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) polution); break; } - if (data > 1) - break; + if (data > 1) + break; } } } diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java index e9419e310e..4a8655360f 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java @@ -1,12 +1,10 @@ package com.detrav.items.behaviours; -import java.util.HashMap; -import java.util.Random; -import java.util.SplittableRandom; - import com.detrav.DetravScannerMod; import com.detrav.items.DetravMetaGeneratedTool01; - +import com.detrav.utils.BartWorksHelper; +import com.detrav.utils.GTppHelper; +import cpw.mods.fml.common.Loader; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.items.GT_MetaBase_Item; @@ -18,7 +16,6 @@ import gregtech.common.GT_UndergroundOil; import gregtech.common.blocks.GT_Block_Ores_Abstract; import gregtech.common.blocks.GT_TileEntity_Ores; import gregtech.common.items.behaviors.Behaviour_None; -import gtPlusPlus.core.block.base.BlockBaseOre; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -31,6 +28,9 @@ import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.fluids.FluidStack; +import java.util.HashMap; +import java.util.SplittableRandom; + /** * Created by wital_000 on 19.03.2016. */ @@ -216,10 +216,12 @@ public class BehaviourDetravToolProPick extends Behaviour_None { addOreToHashMap(name, aPlayer); } } - } else if (tBlock instanceof BlockBaseOre) { - String name = tBlock.getLocalizedName(); - addOreToHashMap(name, aPlayer); - + } else if (Loader.isModLoaded("miscutils") && GTppHelper.isGTppBlock(tBlock) ) { + String name = GTppHelper.getGTppVeinName(tBlock); + if (!name.isEmpty()) + addOreToHashMap(name, aPlayer); + } else if (Loader.isModLoaded("bartworks") && BartWorksHelper.isOre(tBlock)){ + addOreToHashMap(GT_LanguageManager.getTranslation("bw.blockores.01." + ((BartWorksHelper.getMetaFromBlock(aChunk,x,y,z,tBlock))*-1) + ".name"), aPlayer); } else if (data == 1) { tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { diff --git a/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java index ad92dd8932..52b8627944 100644 --- a/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java +++ b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java @@ -13,6 +13,8 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; +import static com.detrav.DetravScannerMod.DEBUGBUILD; + /** * Created by wital_000 on 18.03.2016. */ @@ -25,7 +27,8 @@ public class ProcessingDetravToolProPick implements gregtech.api.interfaces.IOre public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if(!aPrefix.doGenerateItem(aMaterial)) return; - + if (DEBUGBUILD) + return; //ULV disabled //GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(0, 1, aMaterial, Materials.Lead, null), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SHE","CPC","PXP",'E',OreDictionary.getOres("cellSulfuricAcid").get(0),'S',OreDictionary.getOres("cellHydroxide").get(0),'H',OrePrefixes.toolHeadDrill.get(aMaterial),'P',OrePrefixes.plate.get(aMaterial),'C',OrePrefixes.circuit.get(Materials.Primitive),'X',gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.Sensor_ULV}); GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(2, 1, aMaterial, Materials.Steel, null), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SHE","CPC","PXP",'E',OreDictionary.getOres("cellSulfuricAcid").get(0),'S',OreDictionary.getOres("cellHydroxide").get(0),'H',OrePrefixes.toolHeadDrill.get(aMaterial),'P',OrePrefixes.plate.get(aMaterial),'C',OrePrefixes.circuit.get(Materials.Basic),'X',ItemList.Sensor_LV}); diff --git a/src/main/java/com/detrav/net/DetravProPickPacket00.java b/src/main/java/com/detrav/net/DetravProPickPacket00.java index 337fb0eddc..703ae581c4 100644 --- a/src/main/java/com/detrav/net/DetravProPickPacket00.java +++ b/src/main/java/com/detrav/net/DetravProPickPacket00.java @@ -4,6 +4,7 @@ import com.detrav.DetravScannerMod; import com.detrav.gui.DetravGuiProPick; import com.detrav.gui.textures.DetravMapTexture; import com.detrav.utils.GTppHelper; +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; @@ -36,8 +37,47 @@ public class DetravProPickPacket00 extends DetravPacket { public int size; public int ptype; HashMap<Byte,Short>[][] map = null; - static HashMap<Integer, short[]> fluidColors = null; - + public static HashMap<Integer, short[]> fluidColors = null; + + public static void reFillFluidColors(){ + if( fluidColors == null ) { // Should probably be put somewhere else, but I suck at Java + fluidColors = new HashMap<Integer, short[]>(); + + fluidColors.put( Materials.NatruralGas.mGas.getID(), new short[]{0x00,0xff,0xff} ); + fluidColors.put( Materials.OilLight.mFluid.getID(), new short[]{0xff,0xff,0x00} ); + fluidColors.put( Materials.OilMedium.mFluid.getID(), new short[]{0x00,0xFF,0x00} ); + fluidColors.put( Materials.OilHeavy.mFluid.getID(), new short[]{0xFF,0x00,0xFF} ); + fluidColors.put( Materials.Oil.mFluid.getID(), new short[]{0x00,0x00,0x00} ); + fluidColors.put( Materials.Helium_3.mGas.getID(), new short[]{0x80,0x20,0xe0} ); + fluidColors.put( Materials.SaltWater.mFluid.getID(), new short[]{0x80,0xff,0x80} ); + fluidColors.put( Materials.Naquadah.getMolten(0).getFluid().getID(), new short[]{0x20,0x20,0x20} ); + fluidColors.put( Materials.NaquadahEnriched.getMolten(0).getFluid().getID(), new short[]{0x60,0x60,0x60} ); + fluidColors.put( Materials.Lead.getMolten(0).getFluid().getID(), new short[]{0xd0,0xd0,0xd0} ); + fluidColors.put( Materials.Chlorobenzene.mFluid.getID(), new short[]{0x40,0x80,0x40} ); + fluidColors.put( FluidRegistry.getFluid("liquid_extra_heavy_oil").getID(), new short[]{0x00,0x00,0x50} ); + fluidColors.put( Materials.Oxygen.mGas.getID(), new short[]{0x40,0x40,0xA0} ); + fluidColors.put( Materials.Nitrogen.mGas.getID(), new short[]{0x00,0x80,0xd0} ); + fluidColors.put( Materials.Methane.mGas.getID(), new short[]{0x80,0x20,0x20} ); + fluidColors.put( Materials.Ethane.mGas.getID(), new short[]{0x40,0x80,0x20} ); + fluidColors.put( Materials.Ethylene.mGas.getID(), new short[]{0xd0,0xd0,0xd0} ); + fluidColors.put( Materials.LiquidAir.mFluid.getID(), new short[]{0x40,0x80,0x40} ); + fluidColors.put( FluidRegistry.LAVA.getID(), new short[]{0xFF,0x00,0x00} ); + +/* + Set set = fluidColors.entrySet(); + Iterator iterator = set.iterator(); + System.out.println( "DETRAV SCANNER DEBUG" ); + while(iterator.hasNext()) { + Map.Entry mentry = (Map.Entry) iterator.next(); + System.out.println( "key is: "+ (Integer)mentry.getKey() + " & Value is: " + + ((short[])mentry.getValue())[0] + " " + + ((short[])mentry.getValue())[1] + " " + + ((short[])mentry.getValue())[2] ); + } +*/ + } + } + @Override public int getPacketID() { return 0; @@ -159,23 +199,38 @@ public class DetravProPickPacket00 extends DetravPacket { } catch (Exception e) { tMaterial = null; } - if (meta<7000||meta>7500) { - if (tMaterial == null) { - exception++; - continue; - } - rgba = tMaterial.getRGBA(); - //ores.put(GT_Ore) - name = tMaterial.getLocalizedNameForItem(GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name")); - - raster.setSample(i, j, 0, rgba[0]); - raster.setSample(i, j, 1, rgba[1]); - raster.setSample(i, j, 2, rgba[2]); - raster.setSample(i, j, 3, 255); - if (!ores.containsKey(name)) - ores.put(name, (0xFF << 24) + ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF))); + if ((meta > 0 && meta<7000) || meta>7500) { + if (tMaterial == null) { + exception++; + continue; + } + rgba = tMaterial.getRGBA(); + //ores.put(GT_Ore) + + name = getLocalizedNameForItem(tMaterial.mDefaultLocalName, GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name")); + + raster.setSample(i, j, 0, rgba[0]); + raster.setSample(i, j, 1, rgba[1]); + raster.setSample(i, j, 2, rgba[2]); + raster.setSample(i, j, 3, 255); + if (!ores.containsKey(name)) + ores.put(name, (0xFF << 24) + ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF))); } - else{ + else if (meta<=0){ + name = GT_LanguageManager.getTranslation("bw.blockores.01." + (meta*-1) + ".name"); + rgba = new short[]{0,0,0,0}; + try { + rgba = Werkstoff.werkstoffHashMap.get((short) (meta*-1)).getRGBA(); + //name = getLocalizedNameForItem(Werkstoff.werkstoffHashMap.get((short) (meta - 7250)).getDefaultName(),GT_LanguageManager.getTranslation("bw.blockores.01." + (meta-7250) + ".name")); + } catch (Exception e){ + } + raster.setSample(i, j, 0, rgba[0]); + raster.setSample(i, j, 1, rgba[1]); + raster.setSample(i, j, 2, rgba[2]); + raster.setSample(i, j, 3, 255); + if (!ores.containsKey(name)) + ores.put(name, (0xFF << 24) + ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF))); + } else { if (pMaterial == null) { exception++; continue; @@ -191,7 +246,6 @@ public class DetravProPickPacket00 extends DetravPacket { if (!ores.containsKey(name)) ores.put(name, (0xFF << 24) + ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF))); } - } } if (playerI == i || playerJ == j) { @@ -207,41 +261,6 @@ public class DetravProPickPacket00 extends DetravPacket { } break; case 2: - if( fluidColors == null ) { // Should probably be put somewhere else, but I suck at Java - fluidColors = new HashMap<Integer, short[]>(); - - fluidColors.put( Materials.NatruralGas.mGas.getID(), new short[]{0x00,0xff,0xff} ); - fluidColors.put( Materials.OilLight.mFluid.getID(), new short[]{0xff,0xff,0x00} ); - fluidColors.put( Materials.OilMedium.mFluid.getID(), new short[]{0x00,0xFF,0x00} ); - fluidColors.put( Materials.OilHeavy.mFluid.getID(), new short[]{0xFF,0x00,0xFF} ); - fluidColors.put( Materials.Oil.mFluid.getID(), new short[]{0x00,0x00,0x00} ); - fluidColors.put( Materials.Helium_3.mGas.getID(), new short[]{0x80,0x20,0xe0} ); - fluidColors.put( Materials.SaltWater.mFluid.getID(), new short[]{0x80,0xff,0x80} ); - fluidColors.put( Materials.Naquadah.getMolten(0).getFluid().getID(), new short[]{0x20,0x20,0x20} ); - fluidColors.put( Materials.NaquadahEnriched.getMolten(0).getFluid().getID(), new short[]{0x60,0x60,0x60} ); - fluidColors.put( Materials.Lead.getMolten(0).getFluid().getID(), new short[]{0xd0,0xd0,0xd0} ); - fluidColors.put( Materials.Chlorobenzene.mFluid.getID(), new short[]{0x40,0x80,0x40} ); - fluidColors.put( FluidRegistry.getFluid("liquid_extra_heavy_oil").getID(), new short[]{0x00,0x00,0x50} ); - fluidColors.put( Materials.Oxygen.mGas.getID(), new short[]{0x40,0x40,0xA0} ); - fluidColors.put( Materials.Nitrogen.mGas.getID(), new short[]{0x00,0x80,0xd0} ); - fluidColors.put( Materials.Methane.mGas.getID(), new short[]{0x80,0x20,0x20} ); - fluidColors.put( Materials.Ethane.mGas.getID(), new short[]{0x40,0x80,0x20} ); - fluidColors.put( Materials.Ethylene.mGas.getID(), new short[]{0xd0,0xd0,0xd0} ); - fluidColors.put( Materials.LiquidAir.mFluid.getID(), new short[]{0x40,0x80,0x40} ); - -/* - Set set = fluidColors.entrySet(); - Iterator iterator = set.iterator(); - System.out.println( "DETRAV SCANNER DEBUG" ); - while(iterator.hasNext()) { - Map.Entry mentry = (Map.Entry) iterator.next(); - System.out.println( "key is: "+ (Integer)mentry.getKey() + " & Value is: " + - ((short[])mentry.getValue())[0] + " " + - ((short[])mentry.getValue())[1] + " " + - ((short[])mentry.getValue())[2] ); - } -*/ - } short[] metas = new short[2]; for (int i = 0; i < wh; i++) @@ -353,6 +372,9 @@ public class DetravProPickPacket00 extends DetravPacket { return ores; } + private static String getLocalizedNameForItem(String mDefaultLocalName, String aFormat) { + return String.format(aFormat.replace("%s", "%temp").replace("%material", "%s"), mDefaultLocalName).replace("%temp", "%s"); + } public int getSize() { return (size*2+1)*16; diff --git a/src/main/java/com/detrav/utils/BartWorksHelper.java b/src/main/java/com/detrav/utils/BartWorksHelper.java new file mode 100644 index 0000000000..5143571087 --- /dev/null +++ b/src/main/java/com/detrav/utils/BartWorksHelper.java @@ -0,0 +1,17 @@ +package com.detrav.utils; + +import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_Ores; +import net.minecraft.block.Block; +import net.minecraft.world.chunk.Chunk; + +public class BartWorksHelper { + + public static boolean isOre(Block tBlock){ + return tBlock instanceof BW_MetaGenerated_Ores; + } + + public static short getMetaFromBlock(Chunk c, int x, int y, int z, Block tBlock){ + return (short) (tBlock.getDamageValue(c.worldObj,c.xPosition * 16 + x, y, c.zPosition * 16 + z)*-1); + } + +} diff --git a/src/main/java/com/detrav/utils/FluidColors.java b/src/main/java/com/detrav/utils/FluidColors.java new file mode 100644 index 0000000000..d70a348fcc --- /dev/null +++ b/src/main/java/com/detrav/utils/FluidColors.java @@ -0,0 +1,85 @@ +package com.detrav.utils; + +import gregtech.api.enums.Materials; +import net.minecraftforge.fluids.FluidRegistry; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.SplittableRandom; + +public class FluidColors { + + public static final HashMap<Integer, Integer> COLORS = new HashMap<Integer, Integer>(); //contains all FluidIDs and their color counterpath + public static final ArrayList<Integer> USEDC = new ArrayList<Integer>(); //contains all used Colors + + + public static synchronized void setup_colors_from_fluid_registry(){ //should populate COLORS with all the fluids from the Fluid registry and an unique color + if (FluidRegistry.getMaxID()>0){ + for (int i = 0; i < FluidRegistry.getMaxID(); i++) { + if(!USEDC.contains(FluidRegistry.getFluid(i).getColor())) { + USEDC.add(FluidRegistry.getFluid(i).getColor()); + COLORS.put(i,FluidRegistry.getFluid(i).getColor()); + }else{ + int nuclor=getnucolor(); + USEDC.add(nuclor); + COLORS.put(i,nuclor); + } + + } + } + } + + public static synchronized void setup_gt_colors(){ //should populate COLORS with all the fluids from the Materials and an unique color + for (Materials M : Materials.getAll()){ + final int LCOLOR = M.getRGBA()[0]<<24 | M.getRGBA()[1]<<16 | M.getRGBA()[2]<<8 | M.getRGBA()[3]; + + if ( M.mHasGas || //if Material has a Gas + (M.mFluid != null && !M.mFluid.equals(Materials._NULL.mFluid)) || //or a fluid + (M.getMolten(0).getFluid() != null && !M.getMolten(0).equals(Materials._NULL.mFluid))) //or can be molten add it here + if (!addnucolor(M,LCOLOR)){ + boolean nosucess; + do { + nosucess=!addnucolor(M,getnucolor()); + }while (nosucess); + } + } + } + + /** + * + * @return a new and unique color + */ + private static synchronized int getnucolor(){ //gets a new unique color + int nucolor = makenu(); + return !USEDC.contains(nucolor) ? nucolor : getnucolor(); //if the color already is in the list, recall this method and get a new random color. + } + + /** + * + * @return a new random color + */ + private static synchronized int makenu() { + return new SplittableRandom().nextInt(0,256)<<24 & 0xFF | //r + new SplittableRandom().nextInt(0,256)<<16 & 0xFF | //g + new SplittableRandom().nextInt(0,256)<<8 & 0xFF | //b + new SplittableRandom().nextInt(0,256) & 0xFF; //a + } + + /** + * Should add a new and unique Color linked to a Material + * @return if the color was added + */ + private static synchronized boolean addnucolor(Materials M, int color){ + if (!USEDC.contains(color)){ + USEDC.add(color); + if(M.mHasGas) + COLORS.put(M.mGas.getID(), color); + else if (M.mFluid != null && !M.mFluid.equals(Materials._NULL.mFluid)) + COLORS.put(M.mFluid.getID(), color); + else if (M.getMolten(0).getFluid() != null && !M.getMolten(0).equals(Materials._NULL.mFluid)) + COLORS.put(M.getMolten(0).getFluid().getID(), color); + return true; + } + return false; + } +} diff --git a/src/main/java/com/detrav/utils/GTppHelper.java b/src/main/java/com/detrav/utils/GTppHelper.java index e3704671e4..bcd94466f2 100644 --- a/src/main/java/com/detrav/utils/GTppHelper.java +++ b/src/main/java/com/detrav/utils/GTppHelper.java @@ -1,10 +1,11 @@ package com.detrav.utils;
-import java.util.HashMap;
-
-import com.detrav.DetravScannerMod;
-
+import cpw.mods.fml.common.Loader;
+import gtPlusPlus.core.block.base.BlockBaseOre;
import gtPlusPlus.core.material.Material;
+import net.minecraft.block.Block;
+
+import java.util.HashMap;
/**
* Created by bartimaeusnek on 19.04.2018.
@@ -26,4 +27,18 @@ public class GTppHelper { }
}
+
+ public static boolean isGTppBlock(Block tBlock){
+ return tBlock instanceof BlockBaseOre;
+ }
+
+
+ public static short getGTppMeta(Block tBlock){
+ return (short) (GTppHelper.encodeoresGTpp.get(((BlockBaseOre) tBlock).getMaterialEx()) +7000);
+ }
+
+ public static String getGTppVeinName(Block tBlock){
+ return tBlock.getLocalizedName();
+ }
+
}
|