aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2017-04-28 21:35:08 +0300
committerDetrav <witalyezep@gmail.com>2017-04-28 21:35:08 +0300
commit557800c60c0da88743201196d72f553c91b619e5 (patch)
tree39ef70e9f9669e71242c4b22e257b05f0095a09d /src/main/java
parent2ed91d30a1720e7ccb27eaf58fd77ef92422154a (diff)
downloadGT5-Unofficial-557800c60c0da88743201196d72f553c91b619e5.tar.gz
GT5-Unofficial-557800c60c0da88743201196d72f553c91b619e5.tar.bz2
GT5-Unofficial-557800c60c0da88743201196d72f553c91b619e5.zip
* Updated logic of adv miner 2
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/detrav/DetravScannerMod.java2
-rw-r--r--src/main/java/com/detrav/enums/DetravItemList.java3
-rw-r--r--src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java55
-rw-r--r--src/main/java/com/detrav/proxies/CommonProxy.java1
-rw-r--r--src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_AdvMiner2.java191
5 files changed, 195 insertions, 57 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java
index 8835012e66..e512c1cbaf 100644
--- a/src/main/java/com/detrav/DetravScannerMod.java
+++ b/src/main/java/com/detrav/DetravScannerMod.java
@@ -23,7 +23,7 @@ import net.minecraftforge.common.config.Configuration;
public class DetravScannerMod
{
public static final String MODID = "detravscannermod";
- public static final String VERSION = "0.40";
+ public static final String VERSION = "0.41";
public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab();
diff --git a/src/main/java/com/detrav/enums/DetravItemList.java b/src/main/java/com/detrav/enums/DetravItemList.java
index 6ea3eb5bcf..8b66ceb98e 100644
--- a/src/main/java/com/detrav/enums/DetravItemList.java
+++ b/src/main/java/com/detrav/enums/DetravItemList.java
@@ -18,7 +18,8 @@ public enum DetravItemList implements IItemContainer {
Solar_Boiler_Low,
Solar_Boiler_Medium,
Solar_Boiler_High,
- DetravAdvancedMiner2;
+ DetravAdvancedMiner2,
+ ConfiguredCircuit;
private ItemStack mStack;
diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java
index 46af98e605..6f0f278726 100644
--- a/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java
+++ b/src/main/java/com/detrav/items/DetravMetaGeneratedItem01.java
@@ -8,6 +8,12 @@ import com.detrav.enums.DetravSimpleItems;
import com.detrav.enums.Textures01;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.IIconContainer;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+
+import java.util.List;
/**
* Created by wital_000 on 19.03.2016.
@@ -23,6 +29,7 @@ public class DetravMetaGeneratedItem01 extends DetravMetaGeneratedItem {
this.setCreativeTab(DetravScannerMod.TAB_DETRAV);
int tLastID;
DetravItemList.Shape_Extruder_ProPick.set(addItem(tLastID = 0, "Extruder Shape (Prospector's Pick Head)", "Extruder Shape for making Prospector's Picks", new Object[0]));
+ DetravItemList.ConfiguredCircuit.set(addItem(tLastID = 1, "Configured Circuit", "", new Object[0]));
//DetravItemList.Anvil.set(addItem(tLastID = 1, "Detrav Anvil","",new Object[0]));
//addItemBehavior(tLastID,new BahaviourDetravAnvil());
}
@@ -35,4 +42,52 @@ public class DetravMetaGeneratedItem01 extends DetravMetaGeneratedItem {
public boolean doesShowInCreative(DetravSimpleItems aPrefix, Materials aMaterial, boolean aDoShowAllItems) {
return aDoShowAllItems || !aPrefix.name().startsWith("toolHead");
}
+
+ public boolean isConfiguredCircuit(ItemStack aStack)
+ {
+ return aStack.getUnlocalizedName().indexOf("gt.detrav.metaitem.01." + (mOffset+1)) == 0;
+ }
+
+
+
+ public void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) {
+ int tOffset = aList.size();
+ String name = aStack.getUnlocalizedName();
+ String num = name.substring("gt.detrav.metaitem.01.".length());
+ int meta = Integer.parseInt(num) - mOffset;
+ switch (meta) {
+ case 1: {
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if (aNBT != null) {
+ NBTTagCompound detravPosition = aNBT.getCompoundTag("DetravPosition");
+ if (detravPosition != null) {
+ tOffset = addToList(tOffset, aList, detravPosition, "Finished", false);
+ tOffset = addToList(tOffset, aList, detravPosition, "Percent", true);
+ tOffset = addToList(tOffset, aList, detravPosition, "XCurrent", true);
+ tOffset = addToList(tOffset, aList, detravPosition, "ZCurrent", true);
+ tOffset = addToList(tOffset, aList, detravPosition, "XFrom", true);
+ tOffset = addToList(tOffset, aList, detravPosition, "XTo", true);
+ tOffset = addToList(tOffset, aList, detravPosition, "ZFrom", true);
+ tOffset = addToList(tOffset, aList, detravPosition, "ZTo", true);
+ tOffset = addToList(tOffset, aList, detravPosition, "Configurated", false);
+ }
+ }
+ }
+ break;
+ }
+ }
+
+ public int addToList(int tOffset, List aList, NBTTagCompound tag,String name, boolean integer) {
+ if (!tag.hasKey(name))
+ return tOffset;
+ if (integer) {
+ int value = tag.getInteger(name);
+ aList.add(tOffset, EnumChatFormatting.WHITE + name + " = " + value);
+ } else {
+ if (tag.getBoolean(name)) {
+ aList.add(tOffset, EnumChatFormatting.WHITE + name + EnumChatFormatting.GRAY);
+ }
+ }
+ return tOffset + 1;
+ }
}
diff --git a/src/main/java/com/detrav/proxies/CommonProxy.java b/src/main/java/com/detrav/proxies/CommonProxy.java
index 32dfc87801..a2ee6d47b0 100644
--- a/src/main/java/com/detrav/proxies/CommonProxy.java
+++ b/src/main/java/com/detrav/proxies/CommonProxy.java
@@ -67,6 +67,7 @@ public class CommonProxy implements IGuiHandler {
GT_ModHandler.addShapelessCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(10,1, Materials.Wood,Materials.Wood, null ),
new Object[]{Ic2Items.treetap,Ic2Items.rubberWood,Ic2Items.resin});
+ GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Integrated.get(1), new Object[]{ DetravItemList.ConfiguredCircuit } );
//DetravCraftingEventHandler.register();
DetravEntityDropEvent.register();
DetravLevelUpEvent.register();
diff --git a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_AdvMiner2.java b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_AdvMiner2.java
index 921fde6330..ba668389d4 100644
--- a/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_AdvMiner2.java
+++ b/src/main/java/com/detrav/tileentities/Detrav_MetaTileEntity_AdvMiner2.java
@@ -3,6 +3,9 @@ package com.detrav.tileentities;
/**
* Created by Detrav on 13.12.2016.
*/
+import com.detrav.enums.DetravItemList;
+import com.detrav.items.DetravMetaGeneratedItem01;
+import com.detrav.items.DetravMetaGeneratedTool01;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
@@ -30,10 +33,12 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
+import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
import java.util.ArrayList;
+import java.util.zip.Inflater;
public class Detrav_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBlockBase {
@@ -73,6 +78,8 @@ public class Detrav_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBloc
return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "AdvMiner2.png");
}
+
+
@Override
public boolean checkRecipe(ItemStack aStack) {
@@ -93,18 +100,23 @@ public class Detrav_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBloc
depleteInput(tFluid);
long tVoltage = getMaxInputVoltage();
- if (getBaseMetaTileEntity().getRandomNumber(10) <= 4) {
+ if (getBaseMetaTileEntity().getRandomNumber(10) <= 4 &&
+ DetravMetaGeneratedItem01.INSTANCE.isConfiguredCircuit(mInventory[1])) {
+
if (mMineList.isEmpty()) {
int x = getXCurrent();
int z = getZCurrent();
World w = getBaseMetaTileEntity().getWorld();
if(w==null) return false;
+ Chunk c = w.getChunkProvider().provideChunk(x>>4,z>>4);
+ x = x & 15;
+ z = z & 15;
for(int yLevel = getBaseMetaTileEntity().getYCoord() - 1; yLevel>1; yLevel --)
{
- Block tBlock = w.getBlock(x,yLevel,z);
- int tMetaID = w.getBlockMetadata(x,yLevel,z);
+ Block tBlock = c.getBlock(x,yLevel,z);
+ int tMetaID = c.getBlockMetadata(x,yLevel,z);
if (tBlock instanceof GT_Block_Ores_Abstract) {
- TileEntity tTileEntity = w.getTileEntity(x,yLevel,z);
+ TileEntity tTileEntity = c.getTileEntityUnsafe(x,yLevel,z);
if ((tTileEntity!=null)
&& (tTileEntity instanceof GT_TileEntity_Ores)
&& ((GT_TileEntity_Ores) tTileEntity).mNatural == true
@@ -209,56 +221,121 @@ public class Detrav_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBloc
return true;
}
+
+
+
private boolean moveFirst() {
int circuit_config = 1;
- if (mInventory[1] == null && !mInventory[1].getUnlocalizedName().startsWith("gt.integrated_circuit")) return false;
+ if (mInventory[1] == null)
+ return false;
+ if (mInventory[1].stackSize > 1) return false;
+ if (mInventory[1].getUnlocalizedName().startsWith("gt.integrated_circuit")) {
+ circuit_config = mInventory[1].getItemDamage();
+ circuit_config *= 2;
+ circuit_config++;
+ {
+ ItemStack aCircuit = mInventory[1];
+ NBTTagCompound aNBT = aCircuit.getTagCompound();
+ if (aNBT == null) {
+ aNBT = new NBTTagCompound();
+ NBTTagCompound detravPosition = new NBTTagCompound();
+ aNBT.setTag("DetravPosition", detravPosition);
+ aCircuit.setTagCompound(aNBT);
+ }
- circuit_config = mInventory[1].getItemDamage();
+ NBTTagCompound detravPosition = aNBT.getCompoundTag("DetravPosition");
+ if (detravPosition == null) {
+ detravPosition = new NBTTagCompound();
+ aNBT.setTag("DetravPosition", detravPosition);
+ }
- ItemStack aCircuit = mInventory[1];
-
- circuit_config *= 2;
- circuit_config++;
- //in here if circuit is empty set data to chunk
- boolean configurated = false;
+ int x_from = ((getBaseMetaTileEntity().getXCoord() >> 4) - circuit_config + 1) * 16 - 16 * 3;
+ int x_to = ((getBaseMetaTileEntity().getXCoord() >> 4) + circuit_config) * 16 + 16 * 3;
+ int z_from = ((getBaseMetaTileEntity().getZCoord() >> 4) - circuit_config + 1) * 16 - 16 * 3;
+ int z_to = ((getBaseMetaTileEntity().getZCoord() >> 4) + circuit_config) * 16 + 16 * 3;
- NBTTagCompound aNBT = aCircuit.getTagCompound();
- if(aNBT == null) {
- aNBT = new NBTTagCompound();
- NBTTagCompound detravPosition = new NBTTagCompound();
- aNBT.setTag("DetravPosition", detravPosition);
- aCircuit.setTagCompound(aNBT);
- }
-
- NBTTagCompound detravPosition = aNBT.getCompoundTag("DetravPosition");
- if (detravPosition == null ) {
- detravPosition = new NBTTagCompound();
- aNBT.setTag("DetravPosition", detravPosition);
+ int x_current = x_from;
+ int z_current = z_from;
+
+ if(!detravPosition.hasKey("Configured")) {
+ detravPosition.setBoolean("Configured", true);
+ detravPosition.setInteger("XCurrent",x_current);
+ detravPosition.setInteger("ZCurrent",z_current);
+ }
+ else
+ {
+ if(detravPosition.hasKey("XCurrent"))
+ x_current = detravPosition.getInteger("XCurrent");
+ if(detravPosition.hasKey("ZCurrent"))
+ z_current = detravPosition.getInteger("ZCurrent");
+ }
+
+ World aWorld = getBaseMetaTileEntity().getWorld();
+ IChunkProvider provider = aWorld.getChunkProvider();
+ for (int i = x_current; i <= x_to; i += 16)
+ for (int j = z_current; j <= z_to; j += 16) {
+ if (!provider.provideChunk(i >> 4, j >> 4).isTerrainPopulated) {
+ provider.populate(provider, (i >> 4), (j >> 4) );
+ detravPosition.setInteger("XCurrent",i);
+ detravPosition.setInteger("ZCurrent",j);
+ return true;
+ }
+ }
+
+ }
+ {
+ mInventory[1] = DetravItemList.ConfiguredCircuit.get(1);
+ ItemStack aCircuit = mInventory[1];
+
+ //in here if circuit is empty set data to chunk
+
+
+ NBTTagCompound aNBT = aCircuit.getTagCompound();
+ if (aNBT == null) {
+ aNBT = new NBTTagCompound();
+ NBTTagCompound detravPosition = new NBTTagCompound();
+ aNBT.setTag("DetravPosition", detravPosition);
+ aCircuit.setTagCompound(aNBT);
+ }
+
+ NBTTagCompound detravPosition = aNBT.getCompoundTag("DetravPosition");
+ if (detravPosition == null) {
+ detravPosition = new NBTTagCompound();
+ aNBT.setTag("DetravPosition", detravPosition);
+ }
+
+
+ int x_from = ((getBaseMetaTileEntity().getXCoord() >> 4) - circuit_config + 1) * 16;
+ int x_to = ((getBaseMetaTileEntity().getXCoord() >> 4) + circuit_config) * 16;
+ int x_current = x_from;
+ int z_from = ((getBaseMetaTileEntity().getZCoord() >> 4) - circuit_config + 1) * 16;
+ int z_to = ((getBaseMetaTileEntity().getZCoord() >> 4) + circuit_config) * 16;
+ int z_current = z_from;
+
+ detravPosition.setInteger("XFrom", x_from);
+ detravPosition.setInteger("XTo", x_to);
+ detravPosition.setInteger("XCurrent", x_current);
+ detravPosition.setInteger("ZFrom", z_from);
+ detravPosition.setInteger("ZTo", z_to);
+ detravPosition.setInteger("ZCurrent", z_current);
+
+ }
}
- configurated = detravPosition.hasKey("Configurated") && detravPosition.getBoolean("Configurated");
-
- if(!configurated)
- {
- configurated = true;
- int x_from = ((getBaseMetaTileEntity().getXCoord() >> 4) - circuit_config+1) * 16;
- int x_to = ((getBaseMetaTileEntity().getXCoord() >> 4) + circuit_config) * 16;
- int x_current = x_from;
- int z_from = ((getBaseMetaTileEntity().getZCoord() >> 4) - circuit_config+1) * 16;
- int z_to = ((getBaseMetaTileEntity().getZCoord() >> 4) + circuit_config) * 16;
- int z_current = z_from;
-
- detravPosition.setInteger("XFrom",x_from);
- detravPosition.setInteger("XTo",x_to);
- detravPosition.setInteger("XCurrent",x_current);
- detravPosition.setInteger("ZFrom",z_from);
- detravPosition.setInteger("ZTo",z_to);
- detravPosition.setInteger("ZCurrent",z_current);
-
- detravPosition.setBoolean("Configurated",configurated);
+ if (DetravMetaGeneratedItem01.INSTANCE.isConfiguredCircuit(mInventory[1])) {
+ NBTTagCompound aNBT = mInventory[1].getTagCompound();
+ if (aNBT == null) {
+ return false;
+ }
+
+ NBTTagCompound detravPosition = aNBT.getCompoundTag("DetravPosition");
+ if (detravPosition == null) {
+ return false;
+ }
+ if (detravPosition.hasKey("Finished"))
+ return !detravPosition.getBoolean("Finished");
+ return true;
}
- if(detravPosition.hasKey("Finished"))
- configurated = !detravPosition.getBoolean("Finished");
- return configurated;
+ return false;
}
private int getXCurrent()
@@ -317,20 +394,24 @@ public class Detrav_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBloc
if(z_current < z_to)
z_current++;
- else
- {
- if(x_current < x_to)
- {
+ else {
+ if (x_current < x_to) {
z_current = z_from;
x_current++;
- }
- else
- {
- detravPosition.setBoolean("Finished",true);
+ } else {
+ detravPosition.setBoolean("Finished", true);
+ if (detravPosition.hasKey("Percent"))
+ detravPosition.removeTag("Percent");
return false;
}
}
+ detravPosition.setInteger("Percent", (int)(
+ ((float)(z_current - z_from + (x_current - x_from) * (z_to - z_from )))
+ * 100f
+ /((float)( (x_to - x_from + 1 )*(z_to-z_from)))));
+
+
detravPosition.setInteger("XCurrent",x_current);
detravPosition.setInteger("ZCurrent",z_current);