aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/detrav/items/behaviours
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/com/detrav/items/behaviours
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/com/detrav/items/behaviours')
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java253
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java421
2 files changed, 0 insertions, 674 deletions
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java
deleted file mode 100644
index d99a8ceec6..0000000000
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java
+++ /dev/null
@@ -1,253 +0,0 @@
-package com.detrav.items.behaviours;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.init.Blocks;
-import net.minecraft.item.ItemStack;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.ChatComponentText;
-import net.minecraft.util.StatCollector;
-import net.minecraft.world.World;
-import net.minecraft.world.chunk.Chunk;
-import net.minecraftforge.fluids.FluidStack;
-
-import com.detrav.DetravScannerMod;
-import com.detrav.items.DetravMetaGeneratedTool01;
-import com.detrav.net.DetravNetwork;
-import com.detrav.net.ProspectingPacket;
-import com.detrav.utils.BartWorksHelper;
-import com.detrav.utils.GTppHelper;
-import com.sinthoras.visualprospecting.VisualProspecting_API;
-
-import cpw.mods.fml.common.Loader;
-import gregtech.api.items.GT_MetaBase_Item;
-import gregtech.api.objects.ItemData;
-import gregtech.api.util.GT_LanguageManager;
-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;
-
-/**
- * Created by wital_000 on 19.03.2016.
- */
-public class BehaviourDetravToolElectricProspector extends BehaviourDetravToolProspector {
-
- public BehaviourDetravToolElectricProspector(int aCosts) {
- super(aCosts);
- }
-
- public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
- if (!aWorld.isRemote) {
- int data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack)
- .intValue();
- if (aPlayer.isSneaking()) {
- data++;
- if (data > 3) data = 0;
- switch (data) {
- case 0:
- aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.0")));
- break;
- case 1:
- aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.1")));
- break;
- case 2:
- aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.2")));
- break;
- case 3:
- aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.3")));
- break;
- default:
- aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.error")));
- break;
- }
- DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, (long) data);
- return super.onItemRightClick(aItem, aStack, aWorld, aPlayer);
- }
-
- final DetravMetaGeneratedTool01 tool = (DetravMetaGeneratedTool01) aItem;
- final int cX = ((int) aPlayer.posX) >> 4;
- final int cZ = ((int) aPlayer.posZ) >> 4;
- int size = aItem.getHarvestLevel(aStack, "") + 1;
- final List<Chunk> chunks = new ArrayList<>();
- aPlayer.addChatMessage(new ChatComponentText("Scanning..."));
-
- for (int i = -size; i <= size; i++)
- for (int j = -size; j <= size; j++) if (i != -size && i != size && j != -size && j != size)
- chunks.add(aWorld.getChunkFromChunkCoords(cX + i, cZ + j));
- size = size - 1;
-
- final ProspectingPacket packet = new ProspectingPacket(
- cX,
- cZ,
- (int) aPlayer.posX,
- (int) aPlayer.posZ,
- size,
- data);
- final String small_ore_keyword = StatCollector.translateToLocal("detrav.scanner.small_ore.keyword");
- for (Chunk c : chunks) {
- for (int x = 0; x < 16; x++) for (int z = 0; z < 16; z++) {
- final int ySize = c.getHeightValue(x, z);
- for (int y = 1; y < ySize; y++) {
- switch (data) {
- case 0:
- case 1:
- final 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 instanceof GT_TileEntity_Ores)
- && ((GT_TileEntity_Ores) tTileEntity).mNatural) {
- tMetaID = (short) ((GT_TileEntity_Ores) tTileEntity).getMetaData();
- try {
- String name = GT_LanguageManager
- .getTranslation(tBlock.getUnlocalizedName() + "." + tMetaID + ".name");
- if (data != 1 && name.startsWith(small_ore_keyword)) continue;
- packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID);
- } catch (Exception e) {
- String name = tBlock.getUnlocalizedName() + ".";
- if (data != 1 && name.contains(".small.")) continue;
- packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID);
- }
- }
- } else if (DetravScannerMod.isGTppLoaded && GTppHelper.isGTppBlock(tBlock)) {
- packet.addBlock(
- c.xPosition * 16 + x,
- y,
- c.zPosition * 16 + z,
- GTppHelper.getGTppMeta(tBlock));
- } else if (DetravScannerMod.isBartWorksLoaded && BartWorksHelper.isOre(tBlock)) {
- if (data != 1 && BartWorksHelper.isSmallOre(tBlock)) continue;
- 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"))) {
- 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.
- break;
- }
- FluidStack fStack = GT_UndergroundOil.undergroundOil(
- aWorld.getChunkFromBlockCoords(c.xPosition * 16 + x, c.zPosition * 16 + z),
- -1);
- if (fStack.amount > 0) {
- packet.addBlock(
- c.xPosition * 16 + x,
- 1,
- c.zPosition * 16 + z,
- (short) fStack.getFluidID());
- packet
- .addBlock(c.xPosition * 16 + x, 2, c.zPosition * 16 + z, (short) fStack.amount);
- }
- break;
- case 3:
- float polution = (float) getPolution(
- aWorld,
- c.xPosition * 16 + x,
- c.zPosition * 16 + z);
- polution /= 2000000;
- polution *= -0xFF;
- if (polution > 0xFF) polution = 0xFF;
- polution = 0xFF - polution;
- packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) polution);
- break;
- }
- if (data > 1) break;
- }
- }
- }
- packet.level = ((DetravMetaGeneratedTool01) aItem).getHarvestLevel(aStack, "");
- DetravNetwork.INSTANCE.sendToPlayer(packet, (EntityPlayerMP) aPlayer);
- if (!aPlayer.capabilities.isCreativeMode) tool.doDamage(aStack, this.mCosts * chunks.size());
-
- if (Loader.isModLoaded("visualprospecting")) {
- if (data == 0 || data == 1) {
- VisualProspecting_API.LogicalServer.sendProspectionResultsToClient(
- (EntityPlayerMP) aPlayer,
- VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius(
- aWorld.provider.dimensionId,
- (int) aPlayer.posX,
- (int) aPlayer.posZ,
- size * 16),
- new ArrayList<>());
- } else if (data == 2) {
- VisualProspecting_API.LogicalServer.sendProspectionResultsToClient(
- (EntityPlayerMP) aPlayer,
- new ArrayList<>(),
- VisualProspecting_API.LogicalServer.prospectUndergroundFluidsWithingRadius(
- aWorld,
- (int) aPlayer.posX,
- (int) aPlayer.posZ,
- size * 16));
- }
- }
- }
- return super.onItemRightClick(aItem, aStack, aWorld, aPlayer);
- }
-
- void addChatMassageByValue(EntityPlayer aPlayer, int value, String name) {
- if (value < 0) {
- aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name));
- } else if (value < 1) {
- aPlayer
- .addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6")));
- } else aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name + " " + value));
- }
-
- public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
- int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) {
- long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack);
- if (data < 2) {
- if (aWorld.getBlock(aX, aY, aZ) == Blocks.bedrock) {
- if (!aWorld.isRemote) {
- FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1);
- addChatMassageByValue(aPlayer, fStack.amount, fStack.getLocalizedName());
- if (!aPlayer.capabilities.isCreativeMode)
- ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts);
- }
- return true;
- } else {
- if (!aWorld.isRemote) {
- prospectSingleChunk((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld, aX, aY, aZ);
- }
- return true;
- }
- }
- if (data < 3) if (!aWorld.isRemote) {
- FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1);
- addChatMassageByValue(aPlayer, fStack.amount, fStack.getLocalizedName());
- if (!aPlayer.capabilities.isCreativeMode) ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts);
- return true;
- }
- if (!aWorld.isRemote) {
- int polution = getPolution(aWorld, aX, aZ);
- addChatMassageByValue(aPlayer, polution, "Pollution");
- }
- return true;
- }
-
-}
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java
deleted file mode 100644
index 66ef237593..0000000000
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java
+++ /dev/null
@@ -1,421 +0,0 @@
-package com.detrav.items.behaviours;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.SplittableRandom;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-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.util.StatCollector;
-import net.minecraft.world.World;
-import net.minecraft.world.chunk.Chunk;
-import net.minecraftforge.fluids.FluidStack;
-
-import com.detrav.DetravScannerMod;
-import com.detrav.items.DetravMetaGeneratedTool01;
-import com.detrav.utils.BartWorksHelper;
-import com.detrav.utils.GTppHelper;
-import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
-import com.sinthoras.visualprospecting.VisualProspecting_API;
-
-import cpw.mods.fml.common.Loader;
-import cpw.mods.fml.common.registry.LanguageRegistry;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
-import gregtech.api.items.GT_MetaBase_Item;
-import gregtech.api.objects.ItemData;
-import gregtech.api.util.GT_LanguageManager;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.common.GT_Pollution;
-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;
-
-/**
- * Created by wital_000 on 19.03.2016.
- */
-public class BehaviourDetravToolProspector extends Behaviour_None {
-
- static final int[] DISTANCEINTS = new int[] { 0, 4, 25, 64 };
- int distTextIndex;
-
- HashMap<String, Integer> ores;
- int badluck;
-
- protected final int mCosts;
-
- static final String CHAT_MSG_SEPARATOR = "--------------------";
-
- public BehaviourDetravToolProspector(int aCosts) {
- mCosts = aCosts;
- }
-
- public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
- int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) {
-
- SplittableRandom aRandom = new SplittableRandom();
- int chance = ((1 + aStack.getItemDamage()) * 8) > 100 ? 100 : (1 + aStack.getItemDamage()) * 8;
-
- if (aWorld.isRemote) return false;
-
- if (aWorld.getBlock(aX, aY, aZ) == Blocks.bedrock) {
- if (!aWorld.isRemote && aRandom.nextInt(100) < chance) {
- FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1);
- addChatMassageByValue(aPlayer, fStack.amount / 2, "a Fluid");// fStack.getLocalizedName());
- /*
- * boolean fluid = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1)!=null
- * &&GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1).getFluid()!=null; if
- * (fluid) aPlayer.addChatMessage(new
- * ChatComponentText(EnumChatFormatting.GREEN+"You found some liquid.")); else
- * aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+"You found no liquid."));
- */
- if (!aPlayer.capabilities.isCreativeMode)
- ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts);
-
- if (Loader.isModLoaded("visualprospecting")) {
- VisualProspecting_API.LogicalServer.sendProspectionResultsToClient(
- (EntityPlayerMP) aPlayer,
- new ArrayList<>(),
- VisualProspecting_API.LogicalServer
- .prospectUndergroundFluidsWithingRadius(aWorld, (int) aPlayer.posX, (int) aPlayer.posZ, 0));
- }
- }
- return true;
- }
- if (aWorld.getBlock(aX, aY, aZ)
- .getMaterial() == Material.rock
- || aWorld.getBlock(aX, aY, aZ)
- .getMaterial() == Material.ground
- || aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockOres1) {
- if (!aWorld.isRemote) {
- prospectChunks((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld, aX, aY, aZ, aRandom, chance);
- }
- return true;
- }
- return false;
- }
-
- protected void prospectChunks(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
- int aY, int aZ, SplittableRandom aRandom, int chance) {
- int bX = aX;
- int bZ = aZ;
-
- badluck = 0;
- ores = new HashMap<>();
-
- int range = ((DetravMetaGeneratedTool01) aItem).getHarvestLevel(aStack, "") / 2 + (aStack.getItemDamage() / 4);
- if ((range % 2) == 0) {
- range += 1; // kinda not needed here, divide takes it out, but we put it back in with the range+1 in the
- // loop
- }
- range = range / 2; // Convert range from diameter to radius
-
- aPlayer.addChatMessage(
- new ChatComponentText(
- EnumChatFormatting.GOLD + GT_LanguageManager.sEnglishFile
- .get("LanguageFile", "gt.scanner.prospecting", "Prospecting at ")
- .getString() + EnumChatFormatting.BLUE + "(" + bX + ", " + bZ + ")"));
- for (int x = -(range); x < (range + 1); ++x) {
- aX = bX + (x * 16);
- for (int z = -(range); z < (range + 1); ++z) {
-
- aZ = bZ + (z * 16);
- int dist = x * x + z * z;
-
- for (distTextIndex = 0; distTextIndex < DISTANCEINTS.length; distTextIndex++) {
- if (dist <= DISTANCEINTS[distTextIndex]) {
- break;
- }
- }
- if (DetravScannerMod.DEBUG_ENABLED) aPlayer.addChatMessage(
- new ChatComponentText(
- EnumChatFormatting.YELLOW + "Chunk at "
- + aX
- + "|"
- + aZ
- + " to "
- + (aX + 16)
- + "|"
- + (aZ + 16)
- + StatCollector.translateToLocal("detrav.scanner.distance.texts." + distTextIndex)));
- processOreProspecting(
- (DetravMetaGeneratedTool01) aItem,
- aStack,
- aPlayer,
- aWorld.getChunkFromBlockCoords(aX, aZ),
- aWorld.getTileEntity(aX, aY, aZ),
- GT_OreDictUnificator.getAssociation(
- new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))),
- aRandom,
- chance);
- }
- }
-
- // List to hold unsorted scanner messages
- List<ChatComponentText> oreMessages = new ArrayList<ChatComponentText>();
-
- for (String key : ores.keySet()) {
- int value = ores.get(key);
- appendChatMessageByValue(oreMessages, aPlayer, value, key);
- }
-
- // Define sort order by distance
- List<String> sortOrder = Arrays.asList(
- StatCollector.translateToLocal("detrav.scanner.distance.texts.4"),
- StatCollector.translateToLocal("detrav.scanner.distance.texts.3"),
- StatCollector.translateToLocal("detrav.scanner.distance.texts.2"),
- StatCollector.translateToLocal("detrav.scanner.distance.texts.1"),
- StatCollector.translateToLocal("detrav.scanner.distance.texts.0"));
-
- List<ChatComponentText> oreMessagesSorted = new ArrayList<ChatComponentText>();
- oreMessagesSorted.add(new ChatComponentText(CHAT_MSG_SEPARATOR));
-
- // Sort ore messages by distance, separated by -----
- for (String oreFrequency : sortOrder) {
- for (ChatComponentText msg : oreMessages) {
- if (msg.getChatComponentText_TextValue()
- .contains(oreFrequency)) {
- oreMessagesSorted.add(msg);
- }
- }
-
- // Only append ----- separator if text has been added
- if (!oreMessagesSorted.get(oreMessagesSorted.size() - 1)
- .getChatComponentText_TextValue()
- .contains(CHAT_MSG_SEPARATOR)) {
- oreMessagesSorted.add(new ChatComponentText(CHAT_MSG_SEPARATOR));
- }
- }
-
- if (badluck == 0) {
- oreMessages.add(
- new ChatComponentText(
- EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.success")));
- } else {
- oreMessages.add(
- new ChatComponentText(
- EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.fail")
- .replace("%badluck", Integer.toString(badluck))));
- }
-
- // Print the sorted messages
- for (ChatComponentText msg : oreMessagesSorted) {
- aPlayer.addChatMessage(msg);
- }
-
- if (Loader.isModLoaded("visualprospecting")) {
- VisualProspecting_API.LogicalServer.sendProspectionResultsToClient(
- (EntityPlayerMP) aPlayer,
- VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius(
- aWorld.provider.dimensionId,
- (int) aPlayer.posX,
- (int) aPlayer.posZ,
- range * 16),
- new ArrayList<>());
- }
- }
-
- // Used by Electric scanner when scanning the chunk whacked by the scanner. 100% chance find rate
- protected void prospectSingleChunk(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld,
- int aX, int aY, int aZ) {
- ores = new HashMap<>();
- aPlayer.addChatMessage(
- new ChatComponentText(
- EnumChatFormatting.GOLD + StatCollector.translateToLocal(
- "detrav.scanner.prospecting") + EnumChatFormatting.BLUE + "(" + aX + ", " + aZ + ")"));
- processOreProspecting(
- (DetravMetaGeneratedTool01) aItem,
- aStack,
- aPlayer,
- aWorld.getChunkFromBlockCoords(aX, aZ),
- aWorld.getTileEntity(aX, aY, aZ),
- GT_OreDictUnificator
- .getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))),
- new SplittableRandom(),
- 1000);
-
- for (String key : ores.keySet()) {
- int value = ores.get(key);
- addChatMassageByValue(aPlayer, value, key);
- }
-
- if (Loader.isModLoaded("visualprospecting")) {
- VisualProspecting_API.LogicalServer.sendProspectionResultsToClient(
- (EntityPlayerMP) aPlayer,
- VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius(
- aWorld.provider.dimensionId,
- (int) aPlayer.posX,
- (int) aPlayer.posZ,
- 0),
- new ArrayList<>());
- }
- }
-
- protected void processOreProspecting(DetravMetaGeneratedTool01 aItem, ItemStack aStack, EntityPlayer aPlayer,
- Chunk aChunk, TileEntity aTileEntity, ItemData tAssotiation, SplittableRandom aRandom, int chance)// TileEntity
- // aTileEntity)
- {
- if (aTileEntity != null) {
- if (aTileEntity instanceof GT_TileEntity_Ores) {
- GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) aTileEntity;
- short meta = gt_entity.getMetaData();
- String format = LanguageRegistry.instance()
- .getStringLocalization("gt.blockores." + meta + ".name");
- String name = Materials.getLocalizedNameForItem(format, meta % 1000);
- addOreToHashMap(name, aPlayer);
- if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts);
- return;
- }
- } else if (tAssotiation != null) {
- try {
- String name = tAssotiation.toString();
- addChatMassageByValue(aPlayer, -1, name);
- if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts);
- return;
- } catch (Exception e) {
- addChatMassageByValue(aPlayer, -1, "ERROR, lol ^_^");
- }
- } else if (aRandom.nextInt(100) < chance) {
- final int data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack)
- .intValue();
- final String small_ore_keyword = StatCollector.translateToLocal("detrav.scanner.small_ore.keyword");
- for (int x = 0; x < 16; x++) for (int z = 0; z < 16; z++) {
- int ySize = aChunk.getHeightValue(x, z);
- for (int y = 1; y < ySize; y++) {
-
- Block tBlock = aChunk.getBlock(x, y, z);
- short tMetaID = (short) aChunk.getBlockMetadata(x, y, z);
- if (tBlock instanceof GT_Block_Ores_Abstract) {
- TileEntity tTileEntity = aChunk.getTileEntityUnsafe(x, y, z);
- if ((tTileEntity instanceof GT_TileEntity_Ores)
- && ((GT_TileEntity_Ores) tTileEntity).mNatural) {
- tMetaID = (short) ((GT_TileEntity_Ores) tTileEntity).getMetaData();
- try {
- String format = LanguageRegistry.instance()
- .getStringLocalization(tBlock.getUnlocalizedName() + "." + tMetaID + ".name");
- String name = Materials.getLocalizedNameForItem(format, tMetaID % 1000);
- if (data != 1 && name.startsWith(small_ore_keyword)) continue;
- addOreToHashMap(name, aPlayer);
- } catch (Exception e) {
- String name = tBlock.getUnlocalizedName() + ".";
- if (data != 1 && name.contains(".small.")) continue;
- addOreToHashMap(name, aPlayer);
- }
- }
- } else if (DetravScannerMod.isGTppLoaded && GTppHelper.isGTppBlock(tBlock)) {
- String name = GTppHelper.getGTppVeinName(tBlock);
- if (!name.isEmpty()) addOreToHashMap(name, aPlayer);
- } else if (DetravScannerMod.isBartWorksLoaded && BartWorksHelper.isOre(tBlock)) {
- if (data != 1 && BartWorksHelper.isSmallOre(tBlock)) continue;
- final Werkstoff werkstoff = Werkstoff.werkstoffHashMap.getOrDefault(
- (short) ((BartWorksHelper.getMetaFromBlock(aChunk, x, y, z, tBlock)) * -1),
- null);
- String type = BartWorksHelper.isSmallOre(tBlock) ? "oreSmall" : "ore";
- String translated = GT_LanguageManager.getTranslation("bw.blocktype." + type);
- addOreToHashMap(translated.replace("%material", werkstoff.getLocalizedName()), aPlayer);
- } else if (data == 1) {
- tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID));
- if ((tAssotiation != null) && (tAssotiation.mPrefix.toString()
- .startsWith("ore"))) {
- try {
- try {
- tMetaID = (short) tAssotiation.mMaterial.mMaterial.mMetaItemSubID;
- String format = LanguageRegistry.instance()
- .getStringLocalization("gt.blockores." + tMetaID + ".name");
- String name = Materials.getLocalizedNameForItem(format, tMetaID % 1000);
- addOreToHashMap(name, aPlayer);
- } catch (Exception e1) {
- String name = tAssotiation.toString();
- addOreToHashMap(name, aPlayer);
- }
- } catch (Exception ignored) {}
- }
- }
-
- }
- }
-
- if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts);
-
- return;
- } else {
- if (DetravScannerMod.DEBUG_ENABLED)
- aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + " Failed on this chunk"));
- badluck++;
- if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts / 4);
- }
- // addChatMassageByValue(aPlayer,0,null);
- }
-
- void addOreToHashMap(String orename, EntityPlayer aPlayer) {
- String oreDistance = orename + StatCollector.translateToLocal("detrav.scanner.distance.texts." + distTextIndex); // orename
- // +
- // the
- // textual
- // distance
- // of
- // the
- // ore
- if (!ores.containsKey(oreDistance)) {
- if (DetravScannerMod.DEBUG_ENABLED) aPlayer
- .addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + " Adding to oremap " + oreDistance));
- ores.put(oreDistance, 1);
- } else {
- int val = ores.get(oreDistance);
- ores.put(oreDistance, val + 1);
- }
- }
-
- void addChatMassageByValue(EntityPlayer aPlayer, int value, String name) {
- if (value < 0) {
- aPlayer.addChatMessage(
- new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name));
- } else if (value < 1) {
- aPlayer
- .addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.0")));
- } else if (value < 10) aPlayer.addChatMessage(
- new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.1")));
- else if (value < 30) aPlayer.addChatMessage(
- new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.2")));
- else if (value < 60) aPlayer.addChatMessage(
- new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.3")));
- else if (value < 100) aPlayer.addChatMessage(
- new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.4")));
- else aPlayer.addChatMessage(
- new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5")));
- }
-
- // Same as addChatMassageByValue but appends to a list of chat messages and spelled correctly
- void appendChatMessageByValue(List<ChatComponentText> chatMessageList, EntityPlayer aPlayer, int value,
- String name) {
- if (value < 0) {
- chatMessageList
- .add(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name));
- } else if (value < 1) {
- chatMessageList.add(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.0")));
- } else if (value < 10) chatMessageList
- .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.1")));
- else if (value < 30) chatMessageList
- .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.2")));
- else if (value < 60) chatMessageList
- .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.3")));
- else if (value < 100) chatMessageList
- .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.4")));
- else chatMessageList
- .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5")));
- }
-
- public static int getPolution(World aWorld, int aX, int aZ) {
- return GT_Pollution.getPollution(aWorld.getChunkFromBlockCoords(aX, aZ));
- }
-}