aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-10-08 12:34:14 +0300
committerDetrav <witalyezep@gmail.com>2016-10-08 12:34:14 +0300
commit4de7488fccd683d09060e92216d1d11e87430450 (patch)
tree40aa5b040762d88c113ef4f3631b9ab6c15a1a04 /src/main/java
parentfa0a61aaf937955fbc42018f2f601be82e1db1d8 (diff)
downloadGT5-Unofficial-4de7488fccd683d09060e92216d1d11e87430450.tar.gz
GT5-Unofficial-4de7488fccd683d09060e92216d1d11e87430450.tar.bz2
GT5-Unofficial-4de7488fccd683d09060e92216d1d11e87430450.zip
Updated propick to new oil map and polution posability
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java60
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java2
-rw-r--r--src/main/java/com/detrav/net/DetravProPickPacket00.java171
3 files changed, 158 insertions, 75 deletions
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
index 1fe38299b8..977ac9bc9a 100644
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
+++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
@@ -32,24 +32,30 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
if (!aWorld.isRemote) {
- long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack);
+ int data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack).intValue();
//Проверяем если нажат шифт
if (aPlayer.isSneaking()) {
- switch ((int)data)
+ data++;
+ if(data>3) data = 0;
+ switch (data)
{
case 0:
- aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore (with small), Any Rock Block"));
- DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 1);
+ aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore, Any Rock Block"));
break;
case 1:
+ aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore (with small), Any Rock Block"));
+ break;
+ case 2:
aPlayer.addChatMessage(new ChatComponentText("Set Mode: Oil, Any Block"));
- DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 2);
+ break;
+ case 3:
+ aPlayer.addChatMessage(new ChatComponentText("Set Mode: Pollution, Any Block"));
break;
default:
- aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore, Any Rock Block"));
- DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, 0);
+ aPlayer.addChatMessage(new ChatComponentText("Set Mode: ERROR"));
break;
}
+ DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, (long)data);
return super.onItemRightClick(aItem, aStack, aWorld, aPlayer);
}
@@ -69,6 +75,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
size = size - 1;
//c.gene
DetravProPickPacket00 packet = new DetravProPickPacket00();
+ packet.ptype = (int)data;
packet.chunkX = cX;
packet.chunkZ = cZ;
packet.size = size;
@@ -77,25 +84,30 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
for (int z = 0; z < 16; z++) {
int ySize = c.getHeightValue(x, z);
for (int y = 1; y < ySize; y++) {
- if(data < 2) {
- Block b = c.getBlock(x, y, z);
- if (b == GregTech_API.sBlockOres1) {
- TileEntity entity = c.getTileEntityUnsafe(x, y, z);
- if (entity != null && entity instanceof GT_TileEntity_Ores) {
- GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) entity;
- String name = GT_LanguageManager.getTranslation(
- b.getUnlocalizedName() + "." + gt_entity.getMetaData() + ".name");
- if (name.startsWith("Small")) if(data!=1) continue;
- packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, gt_entity.getMetaData());
+ switch (data) {
+ case 0:
+ case 1:
+ Block b = c.getBlock(x, y, z);
+ if (b == GregTech_API.sBlockOres1) {
+ TileEntity entity = c.getTileEntityUnsafe(x, y, z);
+ if (entity != null && entity instanceof GT_TileEntity_Ores) {
+ GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) entity;
+ String name = GT_LanguageManager.getTranslation(
+ b.getUnlocalizedName() + "." + gt_entity.getMetaData() + ".name");
+ if (name.startsWith("Small")) if (data != 1) continue;
+ packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, gt_entity.getMetaData());
+ }
}
- }
- }
- else {
- FluidStack fStack = getUndergroundOil(aWorld, c.xPosition * 16 + x, c.zPosition * 16 + z);
- if (fStack.amount > 50000)
- packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, (short)-fStack.getFluidID());
- break;
+ break;
+ case 2:
+ FluidStack fStack = getUndergroundOil(aWorld, c.xPosition * 16 + x, c.zPosition * 16 + z);
+ if (fStack.amount > 10000) {
+ packet.addBlock(c.xPosition * 16 + x, 2, c.zPosition * 16 + z, (short) (fStack.amount/5000));
+ packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) fStack.getFluidID());
+ }
+ 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 f33d88555d..90655483cd 100644
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
+++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
@@ -79,7 +79,7 @@ public class BehaviourDetravToolProPick extends Behaviour_None {
return;
}
} else if (aRandom.nextInt(10) < 4) {
- long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack);
+ int data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack).intValue();
HashMap<String, Integer> ores = new HashMap<String, Integer>();
for (int x = 0; x < 16; x++)
for (int z = 0; z < 16; z++) {
diff --git a/src/main/java/com/detrav/net/DetravProPickPacket00.java b/src/main/java/com/detrav/net/DetravProPickPacket00.java
index 460d96e846..a46e9d9f4d 100644
--- a/src/main/java/com/detrav/net/DetravProPickPacket00.java
+++ b/src/main/java/com/detrav/net/DetravProPickPacket00.java
@@ -9,6 +9,9 @@ import com.google.common.io.ByteStreams;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;
@@ -22,6 +25,7 @@ public class DetravProPickPacket00 extends DetravPacket {
public int chunkX;
public int chunkZ;
public int size;
+ public int ptype;
HashMap<Byte,Short>[][] map = null;
@Override
@@ -34,6 +38,7 @@ public class DetravProPickPacket00 extends DetravPacket {
@Override
public byte[] encode() {
ByteArrayDataOutput tOut = ByteStreams.newDataOutput(1);
+ tOut.writeInt(ptype);
tOut.writeInt(level);
tOut.writeInt(chunkX);
tOut.writeInt(chunkZ);
@@ -63,6 +68,7 @@ public class DetravProPickPacket00 extends DetravPacket {
@Override
public Object decode(ByteArrayDataInput aData) {
DetravProPickPacket00 packet = new DetravProPickPacket00();
+ packet.ptype = aData.readInt();
packet.level = aData.readInt();
packet.chunkX = aData.readInt();
packet.chunkZ = aData.readInt();
@@ -115,61 +121,126 @@ public class DetravProPickPacket00 extends DetravPacket {
if(ores == null) ores = new HashMap<String, Integer>();
int exception = 0;
- for(int i =0; i<wh; i++)
- for(int j =0; j<wh; j++) {
- if (map[i][j] == null)
- {
- raster.setSample(i,j,0,255);
- raster.setSample(i,j,1,255);
- raster.setSample(i,j,2,255);
- raster.setSample(i,j,3,255);
- }
- else
- {
- for(short meta : map[i][j].values()) {
- String name;
- short[] rgba;
- if(meta>=0) {
- //Пока только по одному буду
- Materials tMaterial = GregTech_API.sGeneratedMaterials[meta % 1000];
- if(tMaterial == null) { exception++; continue;}
- rgba = tMaterial.getRGBA();
- //ores.put(GT_Ore)
- name = GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name");
+ switch (ptype) {
+ case 0:
+ case 1:
+ for (int i = 0; i < wh; i++)
+ for (int j = 0; j < wh; j++) {
+ if (map[i][j] == null) {
+ raster.setSample(i, j, 0, 255);
+ raster.setSample(i, j, 1, 255);
+ raster.setSample(i, j, 2, 255);
+ raster.setSample(i, j, 3, 255);
+ } else {
+ for (short meta : map[i][j].values()) {
+ String name;
+ short[] rgba;
+ //Пока только по одному буду
+ Materials tMaterial = GregTech_API.sGeneratedMaterials[meta % 1000];
+ if (tMaterial == null) {
+ exception++;
+ continue;
+ }
+ rgba = tMaterial.getRGBA();
+ //ores.put(GT_Ore)
+ name = 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
- {
- name = String.valueOf(meta);
- rgba = new short[4];
- rgba[0] =(short)( 255/(-meta + 1));
- rgba[1] =(short)( 255/(-meta + 1));
- rgba[2] =(short)( 255/(-meta + 1));
- rgba[3] =(short)( 255 );
+ }
+ if (playerI == i || playerJ == j) {
+ raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
+ if ((i - 15) % 16 == 0 || (j - 15) % 16 == 0) {
+ raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
+ }
+ break;
+ case 2:
+ int gasId = Materials.NatruralGas.mGas.getID();
+ short[] gas_rgba = new short[]{ 0,0xFF,0xFF};
+ int oilLightId = Materials.OilLight.mFluid.getID();
+ short[] oilLight_rgba = new short[]{ 0xFF,0xFF,0};
+ int oilMediumId = Materials.OilMedium.mFluid.getID();
+ short[] oilMedium_rgba = new short[]{ 0,0xFF,0};
+ int oilHeavyId = Materials.OilHeavy.mFluid.getID();
+ short[] oilHeavy_rgba = new short[]{ 0xFF,0,0xFF};
+ int oilId = Materials.Oil.mFluid.getID();
+ short[] oil_rgba = new short[]{ 0,0,0};
+ short[] metas = new short[2];
+ for (int i = 0; i < wh; i++)
+ for (int j = 0; j < wh; j++) {
+ if (map[i][j] == null) {
+ raster.setSample(i, j, 0, 255);
+ raster.setSample(i, j, 1, 255);
+ raster.setSample(i, j, 2, 255);
+ raster.setSample(i, j, 3, 255);
+ } else {
+ metas[0] = map[i][j].get(Byte.valueOf((byte)1));
+ metas[1] = map[i][j].get(Byte.valueOf((byte)2));
+ metas[1] = (short)(metas[1]/2 + 20);
+ if(metas[1] >0xFF) metas[1] = 0xFF;
+ String name = null;
+ short[] rgba = null;
+ if (metas[0] == gasId) {
+ name = "NatruralGas";
+ rgba = gas_rgba.clone();
+ } else if (metas[0] == oilLightId) {
+ name = "OilLight";
+ rgba = oilLight_rgba.clone();
+ } else if (metas[0] == oilMediumId) {
+ name = "OilMedium";
+ rgba = oilMedium_rgba.clone();
+ } else if (metas[0] == oilHeavyId) {
+ name = "OilHeavy";
+ rgba = oilHeavy_rgba.clone();
+ } else if (metas[0] == oilId) {
+ name = "Oil";
+ rgba = oil_rgba.clone();
+ }
+ if (rgba == null) continue;
+ if (name == null) continue;
+ if (!ores.containsKey(name))
+ ores.put(name, (0xFF << 24) + ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF)));
- }
+ for( int z = 0; z<3; z++) {
+ rgba[z] = (short) (rgba[z] + (0xFF - metas[1]));
+ if(rgba[z]>0xFF) rgba[z] = 0xFF;
+ }
- 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)));
+ 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 (playerI == i || playerJ == j) {
+ raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
+ if ((i - 15) % 16 == 0 || (j - 15) % 16 == 0) {
+ raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
}
- }
- if(playerI == i || playerJ == j)
- {
- raster.setSample(i,j,0,(raster.getSample(i,j,0)+255)/2);
- raster.setSample(i,j,1,raster.getSample(i,j,1)/2);
- raster.setSample(i,j,2,raster.getSample(i,j,2)/2);
- }
- if((i-15)%16 == 0 || (j-15)%16 == 0)
- {
- raster.setSample(i,j,0,raster.getSample(i,j,0)/2);
- raster.setSample(i,j,1,raster.getSample(i,j,1)/2);
- raster.setSample(i,j,2,raster.getSample(i,j,2)/2);
- }
- }
+ break;
+ default:
+ DetravScannerMod.proxy.sendPlayerExeption("Not been realized YET!");
+ break;
+ }
DetravScannerMod.proxy.sendPlayerExeption("null matertial exception: " + exception);
/*try {
File outputfile = new File("saved.png");