buffed combustion engines and geothermal w/ lava, more slime w/ beheader

This commit is contained in:
Boblet 2021-11-29 16:22:22 +01:00
parent 816db93991
commit bc3fd09b44
6 changed files with 113 additions and 112 deletions

View File

@ -19,7 +19,9 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntityMagmaCube;
import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntitySlime;
import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
@ -287,6 +289,10 @@ public abstract class WeaponAbility {
living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F); living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F);
} else if(living instanceof EntityCreeper) { } else if(living instanceof EntityCreeper) {
living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F); living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F);
} else if(living instanceof EntityMagmaCube) {
living.entityDropItem(new ItemStack(Items.magma_cream, 3), 0.0F);
} else if(living instanceof EntitySlime) {
living.entityDropItem(new ItemStack(Items.slime_ball, 3), 0.0F);
} else if(living instanceof EntityPlayer) { } else if(living instanceof EntityPlayer) {
ItemStack head = new ItemStack(Items.skull, 1, 3); ItemStack head = new ItemStack(Items.skull, 1, 3);

View File

@ -1,15 +1,23 @@
package com.hbm.inventory.gui; package com.hbm.inventory.gui;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map.Entry;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.inventory.FluidTank; import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerMachineDiesel; import com.hbm.inventory.container.ContainerMachineDiesel;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineDiesel; import com.hbm.tileentity.machine.TileEntityMachineDiesel;
import com.hbm.util.I18nUtil;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
public class GUIMachineDiesel extends GuiInfoContainer { public class GUIMachineDiesel extends GuiInfoContainer {
@ -32,20 +40,17 @@ public class GUIMachineDiesel extends GuiInfoContainer {
diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.powerCap); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.powerCap);
String[] text = new String[] { "Accepted Fuels:", List<String> text = new ArrayList();
" Diesel (500 HE/t)", text.add(EnumChatFormatting.YELLOW + "Accepted Fuels:");
" Petroil (300 HE/t)",
" Biofuel (400 HE/t)", for(Entry<FluidType, Integer> entry : TileEntityMachineDiesel.fuels.entrySet()) {
" Ethanol (200 HE/t)", text.add(" " + I18nUtil.resolveKey(entry.getKey().getUnlocalizedName()) + " (" + entry.getValue() + " HE/t)");
" LPG (450 HE/t)", }
" Hydrogen (10 HE/t)", this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text.toArray(new String[0]));
" Leaded Gasoline (1500 HE/t)",
" NITAN Superfuel (5000 HE/t)" };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text);
String[] text1 = new String[] { "Fuel consumption rate:", String[] text1 = new String[] { "Fuel consumption rate:",
" 10 mB/t", " 1 mB/t",
" 200 mB/s", " 20 mB/s",
"(Consumption rate is constant)" }; "(Consumption rate is constant)" };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1);

View File

@ -1,15 +1,23 @@
package com.hbm.inventory.gui; package com.hbm.inventory.gui;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.inventory.FluidTank; import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerMachineSelenium; import com.hbm.inventory.container.ContainerMachineSelenium;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineDiesel;
import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine;
import com.hbm.util.I18nUtil;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
public class GUIMachineSelenium extends GuiInfoContainer { public class GUIMachineSelenium extends GuiInfoContainer {
@ -31,26 +39,23 @@ public class GUIMachineSelenium extends GuiInfoContainer {
diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, diFurnace.power, diFurnace.powerCap); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, diFurnace.power, diFurnace.powerCap);
List<String> text = new ArrayList();
text.add(EnumChatFormatting.YELLOW + "Accepted Fuels:");
String[] text = new String[] { "Accepted Fuels:", for(Entry<FluidType, Integer> entry : TileEntityMachineDiesel.fuels.entrySet()) {
" Industrial Oil (50 HE/t)", text.add(" " + I18nUtil.resolveKey(entry.getKey().getUnlocalizedName()) + " (" + entry.getValue() + " HE/t)");
" Heating Oil (75 HE/t)", }
" Hydrogen (500 HE/t)",
" Diesel (225 HE/t)", text.add(EnumChatFormatting.ITALIC + "(These numbers are base values,");
" Kerosene (300 HE/t)", text.add(EnumChatFormatting.ITALIC + "actual output is based");
" Reclaimed Oil (100 HE/t)", text.add(EnumChatFormatting.ITALIC + "on piston count)");
" Petroil (125 HE/t)",
" Biofuel (200 HE/t)", this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text.toArray(new String[0]));
" Leaded Gasoline (700 HE/t)",
" NITAN Superfuel (2500 HE/t)",
"(These numbers are base values,",
"actual output is based",
"on piston count)" };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text);
String[] text1 = new String[] { "Fuel consumption rate:", String[] text1 = new String[] { "Fuel consumption rate:",
" 5 mB/t", " 1 mB/t",
" 100 mB/s", " 20 mB/s",
"(Consumption rate per piston)" }; "(Consumption rate per piston)" };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1);

View File

@ -28,52 +28,12 @@ public class TileEntityMachineAmgen extends TileEntity implements IEnergyGenerat
if(block == ModBlocks.machine_amgen) { if(block == ModBlocks.machine_amgen) {
float rad = ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord); float rad = ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord);
power += rad; power += rad;
ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, 5F); ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, 5F);
} else if(block == ModBlocks.machine_geo) { } else if(block == ModBlocks.machine_geo) {
this.checkGeoInteraction(xCoord, yCoord + 1, zCoord);
Block b = worldObj.getBlock(xCoord, yCoord - 1, zCoord); this.checkGeoInteraction(xCoord, yCoord - 1, zCoord);
if(b == ModBlocks.geysir_water) {
power += 75;
} else if(b == ModBlocks.geysir_chlorine) {
power += 100;
} else if(b == ModBlocks.geysir_vapor) {
power += 50;
} else if(b == ModBlocks.geysir_nether) {
power += 500;
} else if(b == Blocks.lava) {
power += 100;
if(worldObj.rand.nextInt(1200) == 0) {
worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.obsidian);
}
} else if(b == Blocks.flowing_lava) {
power += 25;
if(worldObj.rand.nextInt(600) == 0) {
worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.cobblestone);
}
}
b = worldObj.getBlock(xCoord, yCoord + 1, zCoord);
if(b == Blocks.lava) {
power += 100;
if(worldObj.rand.nextInt(1200) == 0) {
worldObj.setBlock(xCoord, yCoord + 1, zCoord, Blocks.obsidian);
}
} else if(b == Blocks.flowing_lava) {
power += 25;
if(worldObj.rand.nextInt(600) == 0) {
worldObj.setBlock(xCoord, yCoord + 1, zCoord, Blocks.cobblestone);
}
}
} }
if(power > maxPower) if(power > maxPower)
@ -83,6 +43,33 @@ public class TileEntityMachineAmgen extends TileEntity implements IEnergyGenerat
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
} }
} }
private void checkGeoInteraction(int x, int y, int z) {
Block b = worldObj.getBlock(x, y, z);
if(b == ModBlocks.geysir_water) {
power += 75;
} else if(b == ModBlocks.geysir_chlorine) {
power += 100;
} else if(b == ModBlocks.geysir_vapor) {
power += 50;
} else if(b == ModBlocks.geysir_nether) {
power += 500;
} else if(b == Blocks.lava) {
power += 100;
if(worldObj.rand.nextInt(6000) == 0) {
worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.obsidian);
}
} else if(b == Blocks.flowing_lava) {
power += 25;
if(worldObj.rand.nextInt(3000) == 0) {
worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.cobblestone);
}
}
}
@Override @Override
public long getPower() { public long getPower() {

View File

@ -1,6 +1,7 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.FluidTypeHandler.FluidType;
@ -132,25 +133,23 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE
return getHEFromFuel() > 0; return getHEFromFuel() > 0;
} }
public static final HashMap<FluidType, Integer> fuels = new HashMap();
static {
fuels.put(FluidType.HYDROGEN, 10);
fuels.put(FluidType.DIESEL, 500);
fuels.put(FluidType.PETROIL, 300);
fuels.put(FluidType.BIOFUEL, 400);
fuels.put(FluidType.GASOLINE, 1500);
fuels.put(FluidType.NITAN, 5000);
fuels.put(FluidType.LPG, 450);
fuels.put(FluidType.ETHANOL, 200);
}
public int getHEFromFuel() { public int getHEFromFuel() {
FluidType type = tank.getTankType(); FluidType type = tank.getTankType();
if(type.name().equals(FluidType.HYDROGEN.name())) Integer value = fuels.get(type);
return 10; return value != null ? value : null;
if(type.name().equals(FluidType.DIESEL.name()))
return 500;
if(type.name().equals(FluidType.PETROIL.name()))
return 300;
if(type.name().equals(FluidType.BIOFUEL.name()))
return 400;
if(type.name().equals(FluidType.GASOLINE.name()))
return 1500;
if(type.name().equals(FluidType.NITAN.name()))
return 5000;
if(type.name().equals(FluidType.LPG.name()))
return 450;
if(type.name().equals(FluidType.ETHANOL.name()))
return 200;
return 0;
} }
public void generate() { public void generate() {
@ -166,7 +165,7 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE
if (soundCycle >= 3) if (soundCycle >= 3)
soundCycle = 0; soundCycle = 0;
tank.setFill(tank.getFill() - 10); tank.setFill(tank.getFill() - 1);
if (tank.getFill() < 0) if (tank.getFill() < 0)
tank.setFill(0); tank.setFill(0);

View File

@ -1,6 +1,7 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.FluidTypeHandler.FluidType;
@ -255,29 +256,27 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide
return getHEFromFuel() > 0; return getHEFromFuel() > 0;
} }
public static final HashMap<FluidType, Integer> fuels = new HashMap();
static {
fuels.put(FluidType.SMEAR, 50);
fuels.put(FluidType.HEATINGOIL, 75);
fuels.put(FluidType.HYDROGEN, 5);
fuels.put(FluidType.DIESEL, 225);
fuels.put(FluidType.KEROSENE, 300);
fuels.put(FluidType.RECLAIMED, 100);
fuels.put(FluidType.PETROIL, 125);
fuels.put(FluidType.BIOFUEL, 200);
fuels.put(FluidType.GASOLINE, 700);
fuels.put(FluidType.NITAN, 2500);
fuels.put(FluidType.LPG, 200);
fuels.put(FluidType.ETHANOL, 75);
}
public int getHEFromFuel() { public int getHEFromFuel() {
FluidType type = tank.getTankType(); FluidType type = tank.getTankType();
if(type.name().equals(FluidType.SMEAR.name())) Integer value = fuels.get(type);
return 50; return value != null ? value : null;
if(type.name().equals(FluidType.HEATINGOIL.name()))
return 75;
if(type.name().equals(FluidType.HYDROGEN.name()))
return 5;
if(type.name().equals(FluidType.DIESEL.name()))
return 225;
if(type.name().equals(FluidType.KEROSENE.name()))
return 300;
if(type.name().equals(FluidType.RECLAIMED.name()))
return 100;
if(type.name().equals(FluidType.PETROIL.name()))
return 125;
if(type.name().equals(FluidType.BIOFUEL.name()))
return 200;
if(type.name().equals(FluidType.GASOLINE.name()))
return 700;
if(type.name().equals(FluidType.NITAN.name()))
return 2500;
return 0;
} }
public void generate() { public void generate() {
@ -294,8 +293,8 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide
if (soundCycle >= 3) if (soundCycle >= 3)
soundCycle = 0; soundCycle = 0;
tank.setFill(tank.getFill() - this.pistonCount * 5); tank.setFill(tank.getFill() - this.pistonCount);
if (tank.getFill() < 0) if(tank.getFill() < 0)
tank.setFill(0); tank.setFill(0);
power += getHEFromFuel() * Math.pow(this.pistonCount, 1.15D); power += getHEFromFuel() * Math.pow(this.pistonCount, 1.15D);