geiger tick now uses new rad system, adjusted trefoil HUD symbol

This commit is contained in:
HbmMods 2018-11-21 18:28:24 +01:00
parent 347c0596a0
commit 3ecc2ff135
3 changed files with 19 additions and 108 deletions

View File

@ -6,6 +6,7 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.items.ModItems;
import com.hbm.saveddata.RadiationSavedData;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
@ -14,6 +15,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import scala.Int;
public class ItemGeigerCounter extends Item {
@ -35,17 +37,17 @@ public class ItemGeigerCounter extends Item {
if(x > 0) {
List<Integer> list = new ArrayList<Integer>();
if(x < 30)
if(x < 10)
list.add(1);
if(x > 10 && x < 40)
if(x > 5 && x < 15)
list.add(2);
if(x > 30 && x < 60)
if(x > 10 && x < 20)
list.add(3);
if(x > 50 && x < 80)
if(x > 15 && x < 25)
list.add(4);
if(x > 70 && x < 100)
if(x > 20 && x < 30)
list.add(5);
if(x > 90)
if(x > 25)
list.add(6);
world.playSoundAtEntity(entity, "hbm:item.geiger" + list.get(rand.nextInt(list.size())), 1.0F, 1.0F);
@ -70,92 +72,15 @@ public class ItemGeigerCounter extends Item {
}
public static int check(World world, int x, int y, int z, int radius) {
int rads = 0;
int r = radius;
int r2 = r * r;
int r22 = r2 / 2;
for (int xx = -r; xx < r; xx++) {
int X = xx + x;
int XX = xx * xx;
for (int yy = -r; yy < r; yy++) {
int Y = yy + y;
int YY = XX + yy * yy;
for (int zz = -r; zz < r; zz++) {
int Z = zz + z;
int ZZ = YY + zz * zz;
if(ZZ < r22 / 3) {
rads += getRad(world.getBlock(X, Y, Z), 3);
} else if(ZZ < r22 / 3 * 2) {
rads += getRad(world.getBlock(X, Y, Z), 2);
} else if(ZZ < r22) {
rads += getRad(world.getBlock(X, Y, Z), 1);
}
}
}
}
RadiationSavedData data = RadiationSavedData.getData(world);
Chunk chunk = world.getChunkFromBlockCoords(x, z);
int rads = (int)Math.ceil(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition));
return rads;
}
//level 1: farthest, 3: nearest
public static int getRad(Block b, int level) {
int i = 0;
if(b == ModBlocks.waste_trinitite) {
i = 2;
}
if(b == ModBlocks.waste_trinitite_red) {
i = 2;
}
if(b == ModBlocks.ore_uranium) {
i = 1;
}
if(b == ModBlocks.ore_nether_plutonium) {
i = 10;
}
if(b == ModBlocks.block_trinitite) {
i = 20;
}
if(b == ModBlocks.block_waste) {
i = 25;
}
if(b == ModBlocks.waste_earth) {
i = 2;
}
if(b == ModBlocks.waste_mycelium) {
i = 7;
}
if(b == ModBlocks.block_uranium) {
i = 10;
}
if(b == ModBlocks.yellow_barrel) {
i = 30;
}
if(b == ModBlocks.block_yellowcake) {
i = 2;
}
if(b == ModBlocks.sellafield_0) {
i = 10;
}
if(b == ModBlocks.sellafield_1) {
i = 20;
}
if(b == ModBlocks.sellafield_2) {
i = 30;
}
if(b == ModBlocks.sellafield_3) {
i = 40;
}
if(b == ModBlocks.sellafield_4) {
i = 50;
}
if(b == ModBlocks.sellafield_core) {
i = 500;
}
return i * level;
}
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2)
{

View File

@ -36,27 +36,13 @@ public class ModEventHandlerClient {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if(player.inventory.hasItem(ModItems.geiger_counter)) {
float rads = 0;
for(int i = 0; i < player.inventory.getSizeInventory(); i++) {
if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == ModItems.geiger_counter) {
rads = ItemGeigerCounter.getInt(player.inventory.getStackInSlot(i), "ticker");
break;
}
}
////TEST
float abs = 0;
RadEntitySavedData data = RadEntitySavedData.getData(player.worldObj);
rads = data.getRadFromEntity(player);
////TEST
//if(player.worldObj.rand.nextInt(100) == 0)
// System.out.println(rads);
RenderScreenOverlay.renderRadCounter(event.resolution, rads, Minecraft.getMinecraft().ingameGUI);
}
}

View File

@ -53,13 +53,13 @@ public class RenderScreenOverlay {
gui.drawTexturedModalRect(posX, posY, 0, 0, 94, 18);
gui.drawTexturedModalRect(posX + 1, posY + 1, 1, 19, bar, 16);
if(radiation >= maxRad * 0.75) {
if(radiation >= 25) {
gui.drawTexturedModalRect(posX + length + 2, posY - 18, 36, 36, 18, 18);
} else if(radiation >= maxRad * 0.5) {
} else if(radiation >= 10) {
gui.drawTexturedModalRect(posX + length + 2, posY - 18, 18, 36, 18, 18);
} else if(radiation >= maxRad * 0.25) {
} else if(radiation >= 2.5) {
gui.drawTexturedModalRect(posX + length + 2, posY - 18, 0, 36, 18, 18);
}