mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Add a new "unsiphonable" fluid trait instead of using a static list
This commit is contained in:
parent
05a087bce4
commit
72a252194a
@ -185,6 +185,7 @@ public class Fluids {
|
||||
public static final FT_NoID NOID = new FT_NoID();
|
||||
public static final FT_Delicious DELICIOUS = new FT_Delicious();
|
||||
public static final FT_Leaded LEADED = new FT_Leaded();
|
||||
public static final FT_Unsiphonable UNSIPHONABLE = new FT_Unsiphonable();
|
||||
|
||||
public static void init() {
|
||||
|
||||
@ -202,11 +203,11 @@ public class Fluids {
|
||||
*/
|
||||
|
||||
NONE = new FluidType("NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE);
|
||||
WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||
STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).addTraits(GASEOUS);
|
||||
HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).addTraits(GASEOUS);
|
||||
SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).addTraits(GASEOUS);
|
||||
ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(GASEOUS);
|
||||
WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, UNSIPHONABLE);
|
||||
STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).addTraits(GASEOUS, UNSIPHONABLE);
|
||||
HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).addTraits(GASEOUS, UNSIPHONABLE);
|
||||
SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).addTraits(GASEOUS, UNSIPHONABLE);
|
||||
ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(GASEOUS, UNSIPHONABLE);
|
||||
COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||
LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID, VISCOUS);
|
||||
DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS);
|
||||
|
||||
@ -38,6 +38,7 @@ public abstract class FluidTrait {
|
||||
traitNameMap.put("pheromone", FT_Pheromone.class);
|
||||
traitNameMap.put("noid", FT_NoID.class);
|
||||
traitNameMap.put("nocontainer", FT_NoContainer.class);
|
||||
traitNameMap.put("unsiphonable", FT_Unsiphonable.class);
|
||||
}
|
||||
|
||||
/** Important information that should always be displayed */
|
||||
|
||||
@ -62,6 +62,12 @@ public class FluidTraitSimple {
|
||||
}
|
||||
}
|
||||
|
||||
public static class FT_Unsiphonable extends FluidTrait {
|
||||
@Override public void addInfoHidden(List<String> info) {
|
||||
info.add(EnumChatFormatting.BLUE + "[Ignored by siphon]");
|
||||
}
|
||||
}
|
||||
|
||||
public static class FT_NoID extends FluidTrait { }
|
||||
public static class FT_NoContainer extends FluidTrait { }
|
||||
}
|
||||
|
||||
@ -2,14 +2,11 @@ package com.hbm.items.machine;
|
||||
|
||||
import com.hbm.util.CompatExternal;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.hbm.inventory.FluidContainer;
|
||||
import com.hbm.inventory.FluidContainerRegistry;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Unsiphonable;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.tool.ItemPipette;
|
||||
|
||||
@ -22,15 +19,6 @@ import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemFluidSiphon extends Item {
|
||||
|
||||
private static List<FluidType> IGNORED_FLUIDS = Arrays.asList(
|
||||
Fluids.WATER,
|
||||
Fluids.SPENTSTEAM,
|
||||
Fluids.STEAM,
|
||||
Fluids.HOTSTEAM,
|
||||
Fluids.SUPERHOTSTEAM,
|
||||
Fluids.ULTRAHOTSTEAM
|
||||
);
|
||||
|
||||
@Override
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) {
|
||||
@ -50,11 +38,12 @@ public class ItemFluidSiphon extends Item {
|
||||
// After we successfully siphon any fluid from a tank, we stop further processing, multiple fluid types require multiple clicks
|
||||
for (FluidTank tank : tanks) {
|
||||
if (tank.getFill() <= 0) continue;
|
||||
if (IGNORED_FLUIDS.contains(tank.getTankType())) continue;
|
||||
|
||||
ItemStack availablePipette = null;
|
||||
FluidType tankType = tank.getTankType();
|
||||
|
||||
if (tankType.hasTrait(FT_Unsiphonable.class)) continue;
|
||||
|
||||
for (int j = 0; j < player.inventory.mainInventory.length; j++) {
|
||||
ItemStack inventoryStack = player.inventory.mainInventory[j];
|
||||
if (inventoryStack == null) continue;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user