mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
GUI fluid identifier
This commit is contained in:
parent
d3e713f977
commit
bd66140b54
@ -1723,6 +1723,8 @@ public class GUIHandler implements IGuiHandler {
|
||||
return new GUIScreenBobble((TileEntityBobble) world.getTileEntity(x, y, z));
|
||||
case ModItems.guiID_item_holo_image:
|
||||
return new GUIScreenHolotape();
|
||||
case ModItems.guiID_item_fluid:
|
||||
return new GUIScreenFluid(player);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
174
src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java
Normal file
174
src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java
Normal file
@ -0,0 +1,174 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemFluidIDMulti;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.NBTItemControlPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIScreenFluid extends GuiScreen {
|
||||
|
||||
protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/machine/gui_fluid.png");
|
||||
protected int xSize = 176;
|
||||
protected int ySize = 178;
|
||||
protected int guiLeft;
|
||||
protected int guiTop;
|
||||
private GuiTextField search;
|
||||
|
||||
private final EntityPlayer player;
|
||||
private FluidType primary = Fluids.NONE;
|
||||
private FluidType secondary = Fluids.NONE;
|
||||
private FluidType[] searchArray = new FluidType[9];
|
||||
|
||||
public GUIScreenFluid(EntityPlayer player) {
|
||||
this.player = player;
|
||||
|
||||
Keyboard.enableRepeatEvents(true);
|
||||
this.search = new GuiTextField(this.fontRendererObj, guiLeft + 46, guiTop + 10, 86, 12);
|
||||
this.search.setTextColor(-1);
|
||||
this.search.setDisabledTextColour(-1);
|
||||
this.search.setEnableBackgroundDrawing(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
this.drawDefaultBackground();
|
||||
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateScreen() {
|
||||
if(player.getHeldItem() == null || player.getHeldItem().getItem() != ModItems.fluid_identifier_multi)
|
||||
player.closeScreen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
this.guiLeft = (this.width - this.xSize) / 2;
|
||||
this.guiTop = (this.height - this.ySize) / 2;
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.fluid_identifier_multi) {
|
||||
this.primary = ItemFluidIDMulti.getType(player.getHeldItem(), true);
|
||||
this.secondary = ItemFluidIDMulti.getType(player.getHeldItem(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int i, int j, int button) {
|
||||
|
||||
for(int k = 0; k < this.searchArray.length; k++) {
|
||||
|
||||
if(this.searchArray[k] == null)
|
||||
return;
|
||||
|
||||
if(7 + k * 18 <= i && 7 + k * 18 + 18 > i && 29 < j && 29 + 18 >= j) {
|
||||
if(button == 0) {
|
||||
this.primary = this.searchArray[k];
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setInteger("primary", this.primary.getID());
|
||||
PacketDispatcher.wrapper.sendToServer(new NBTItemControlPacket(data));
|
||||
} else if(button == 1) {
|
||||
this.secondary = this.searchArray[k];
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setInteger("secondary", this.secondary.getID());
|
||||
PacketDispatcher.wrapper.sendToServer(new NBTItemControlPacket(data));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
this.search.drawTextBox();
|
||||
|
||||
for(int k = 0; k < this.searchArray.length; k++) {
|
||||
|
||||
if(this.searchArray[k] == null)
|
||||
return;
|
||||
|
||||
if(7 + k * 18 <= i && 7 + k * 18 + 18 > i && 29 < j && 29 + 18 >= j)
|
||||
func_146283_a(Arrays.asList(new String[] { I18nUtil.resolveKey(this.searchArray[k].getUnlocalizedName()) }), i, j);
|
||||
}
|
||||
}
|
||||
|
||||
protected void drawGuiContainerBackgroundLayer(float f, int i, int j) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
if(this.search.isFocused())
|
||||
drawTexturedModalRect(guiLeft + 43, guiTop + 7, 166, 54, 90, 18);
|
||||
|
||||
for(int k = 0; k < this.searchArray.length; k++) {
|
||||
FluidType type = this.searchArray[k];
|
||||
|
||||
if(type == null)
|
||||
return;
|
||||
|
||||
Color color = new Color(type.getColor());
|
||||
GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
|
||||
drawTexturedModalRect(guiLeft + 12 + k * 18, guiTop + 30, 12 + k * 18, 56, 8, 14);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
|
||||
if(type == this.primary && type == this.secondary) {
|
||||
drawTexturedModalRect(guiLeft + 7 + k * 18, guiTop + 29, 176, 36, 18, 18);
|
||||
} else if(type == this.primary) {
|
||||
drawTexturedModalRect(guiLeft + 7 + k * 18, guiTop + 29, 176, 0, 18, 18);
|
||||
} else if(type == this.secondary) {
|
||||
drawTexturedModalRect(guiLeft + 7 + k * 18, guiTop + 29, 176, 18, 18, 18);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void keyTyped(char c, int key) {
|
||||
|
||||
if(this.search.textboxKeyTyped(c, key)) {
|
||||
updateSearch();
|
||||
} else {
|
||||
super.keyTyped(c, key);
|
||||
}
|
||||
|
||||
if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) {
|
||||
this.mc.thePlayer.closeScreen();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateSearch() {
|
||||
this.searchArray = new FluidType[9];
|
||||
|
||||
int next = 0;
|
||||
String subs = this.search.getText().toLowerCase();
|
||||
|
||||
for(FluidType type : Fluids.getInNiceOrder()) {
|
||||
String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase();
|
||||
|
||||
if(name.contains(subs) && !type.hasNoID()) {
|
||||
this.searchArray[next] = type;
|
||||
next++;
|
||||
|
||||
if(next >= 9)
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
src/main/java/com/hbm/items/IItemControlReceiver.java
Normal file
9
src/main/java/com/hbm/items/IItemControlReceiver.java
Normal file
@ -0,0 +1,9 @@
|
||||
package com.hbm.items;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public interface IItemControlReceiver {
|
||||
|
||||
public void receiveControl(ItemStack stack, NBTTagCompound data);
|
||||
}
|
||||
@ -1228,6 +1228,7 @@ public class ModItems {
|
||||
public static Item chemistry_template;
|
||||
public static Item chemistry_icon;
|
||||
public static Item fluid_identifier;
|
||||
public static Item fluid_identifier_multi;
|
||||
public static Item fluid_icon;
|
||||
public static Item siren_track;
|
||||
public static Item fluid_duct;
|
||||
@ -2540,6 +2541,7 @@ public class ModItems {
|
||||
public static Item digamma_up_on_top;
|
||||
|
||||
public static final int guiID_item_folder = 1099;
|
||||
public static final int guiID_item_fluid = 1100;
|
||||
public static final int guiID_item_designator = 10100;
|
||||
public static final int guiID_item_sat_interface = 10101;
|
||||
public static final int guiID_item_box = 10102;
|
||||
@ -4793,6 +4795,7 @@ public class ModItems {
|
||||
chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":chemistry_template");
|
||||
chemistry_icon = new ItemChemistryIcon().setUnlocalizedName("chemistry_icon").setMaxStackSize(1).setCreativeTab(null);
|
||||
fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier");
|
||||
fluid_identifier_multi = new ItemFluidIDMulti().setUnlocalizedName("fluid_identifier_multi").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier_multi");
|
||||
fluid_icon = new ItemFluidIcon().setUnlocalizedName("fluid_icon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":fluid_icon");
|
||||
fluid_tank_empty = new Item().setUnlocalizedName("fluid_tank_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank");
|
||||
fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank");
|
||||
@ -6592,6 +6595,7 @@ public class ModItems {
|
||||
//Machine Templates
|
||||
GameRegistry.registerItem(siren_track, siren_track.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_identifier, fluid_identifier.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_identifier_multi, fluid_identifier_multi.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_icon, fluid_icon.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_duct, fluid_duct.getUnlocalizedName());
|
||||
GameRegistry.registerItem(assembly_template, assembly_template.getUnlocalizedName());
|
||||
|
||||
142
src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java
Normal file
142
src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java
Normal file
@ -0,0 +1,142 @@
|
||||
package com.hbm.items.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.IItemControlReceiver;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IItemControlReceiver {
|
||||
|
||||
IIcon overlayIcon;
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
|
||||
if(!world.isRemote && !player.isSneaking()) {
|
||||
FluidType primary = getType(stack, true);
|
||||
FluidType secondary = getType(stack, false);
|
||||
setType(stack, secondary, true);
|
||||
setType(stack, primary, false);
|
||||
world.playSoundAtEntity(player, "random.orb", 0.25F, 1.25F);
|
||||
}
|
||||
|
||||
if(world.isRemote && player.isSneaking()) {
|
||||
player.openGui(MainRegistry.instance, ModItems.guiID_item_fluid, world, 0, 0, 0);
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receiveControl(ItemStack stack, NBTTagCompound data) {
|
||||
if(data.hasKey("primary")) {
|
||||
setType(stack, Fluids.fromID(data.getInteger("primary")), true);
|
||||
}
|
||||
if(data.hasKey("secondary")) {
|
||||
setType(stack, Fluids.fromID(data.getInteger("secondary")), false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||
|
||||
if(!(stack.getItem() instanceof ItemFluidIdentifier))
|
||||
return;
|
||||
|
||||
list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info"));
|
||||
list.add(" " + I18n.format(getType(stack, true).getUnlocalizedName()));
|
||||
list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info2"));
|
||||
list.add(" " + I18n.format(getType(stack, false).getUnlocalizedName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getContainerItem(ItemStack stack) {
|
||||
return stack.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasContainerItem() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doesContainerItemLeaveCraftingGrid(ItemStack stack) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidType getType(World world, int x, int y, int z, ItemStack stack) {
|
||||
return getType(stack, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doesSneakBypassUse(World world, int x, int y, int z, EntityPlayer player) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean requiresMultipleRenderPasses() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister p_94581_1_) {
|
||||
super.registerIcons(p_94581_1_);
|
||||
|
||||
this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_identifier_overlay");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIconFromDamageForRenderPass(int pass, int meta) {
|
||||
return pass == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(pass, meta);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int getColorFromItemStack(ItemStack stack, int pass) {
|
||||
if(pass == 0) {
|
||||
return 16777215;
|
||||
} else {
|
||||
int j = getType(stack, true).getColor();
|
||||
|
||||
if(j < 0) {
|
||||
j = 16777215;
|
||||
}
|
||||
|
||||
return j;
|
||||
}
|
||||
}
|
||||
|
||||
public static void setType(ItemStack stack, FluidType type, boolean primary) {
|
||||
if(!stack.hasTagCompound())
|
||||
stack.stackTagCompound = new NBTTagCompound();
|
||||
|
||||
stack.stackTagCompound.setInteger("fluid" + (primary ? 1 : 2), type.getID());
|
||||
}
|
||||
|
||||
public static FluidType getType(ItemStack stack, boolean primary) {
|
||||
if(!stack.hasTagCompound())
|
||||
return Fluids.NONE;
|
||||
|
||||
int type = stack.stackTagCompound.getInteger("fluid" + (primary ? 1 : 2));
|
||||
return Fluids.fromID(type);
|
||||
}
|
||||
}
|
||||
79
src/main/java/com/hbm/packet/NBTItemControlPacket.java
Normal file
79
src/main/java/com/hbm/packet/NBTItemControlPacket.java
Normal file
@ -0,0 +1,79 @@
|
||||
package com.hbm.packet;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.hbm.items.IItemControlReceiver;
|
||||
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
|
||||
public class NBTItemControlPacket implements IMessage {
|
||||
|
||||
PacketBuffer buffer;
|
||||
|
||||
public NBTItemControlPacket() { }
|
||||
|
||||
public NBTItemControlPacket(NBTTagCompound nbt) {
|
||||
|
||||
this.buffer = new PacketBuffer(Unpooled.buffer());
|
||||
|
||||
try {
|
||||
buffer.writeNBTTagCompoundToBuffer(nbt);
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
|
||||
if (buffer == null) {
|
||||
buffer = new PacketBuffer(Unpooled.buffer());
|
||||
}
|
||||
buffer.writeBytes(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
|
||||
if (buffer == null) {
|
||||
buffer = new PacketBuffer(Unpooled.buffer());
|
||||
}
|
||||
buf.writeBytes(buffer);
|
||||
}
|
||||
|
||||
public static class Handler implements IMessageHandler<NBTItemControlPacket, IMessage> {
|
||||
|
||||
@Override
|
||||
public IMessage onMessage(NBTItemControlPacket m, MessageContext ctx) {
|
||||
|
||||
EntityPlayer p = ctx.getServerHandler().playerEntity;
|
||||
|
||||
try {
|
||||
|
||||
NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer();
|
||||
|
||||
if(nbt != null) {
|
||||
ItemStack held = p.getHeldItem();
|
||||
|
||||
if(held != null && held.getItem() instanceof IItemControlReceiver) {
|
||||
((IItemControlReceiver) held.getItem()).receiveControl(held, nbt);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -99,6 +99,8 @@ public class PacketDispatcher {
|
||||
wrapper.registerMessage(ExplosionKnockbackPacket.Handler.class, ExplosionKnockbackPacket.class, i++, Side.CLIENT);
|
||||
//just go fuck yourself already
|
||||
wrapper.registerMessage(ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.Handler.class, ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.class, i++, Side.CLIENT);
|
||||
//Packet to send NBT data from clients to the serverside held item
|
||||
wrapper.registerMessage(NBTItemControlPacket.Handler.class, NBTItemControlPacket.class, i++, Side.SERVER);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1352,6 +1352,9 @@ item.fluid_identifier.info=Universelle Flüssigkeits-Kennzeichnung für:
|
||||
item.fluid_identifier.usage0=Rechtsklicke Rohre, um ihnen die jeweilige Flüssigkeit zuzuweisen.
|
||||
item.fluid_identifier.usage1=Shift-rechtsklicke Rohre, um angeschlossene Rohre mit
|
||||
item.fluid_identifier.usage2=einer maximalen Reichweite von 64 Rohren zuzuweisen.
|
||||
item.fluid_identifier_multi.name=Multi-Flüssigkeits-Kennzeichnung
|
||||
item.fluid_identifier_multi.info=Universelle Flüssigkeits-Kennzeichnung für:
|
||||
item.fluid_identifier_multi.info2=Sekundärer Typ:
|
||||
item.fluid_tank_empty.name=Leere universelle Flüssigkeitszelle
|
||||
item.fluid_tank_full.name=Universelle Flüssigkeitszelle:
|
||||
item.fluid_tank_lead_empty.name=Leere Gefahrenstoffzelle
|
||||
|
||||
@ -1584,6 +1584,9 @@ item.fluid_identifier.info=Universal fluid identifier for:
|
||||
item.fluid_identifier.usage0=Right click fluid ducts to designate them for that fluid.
|
||||
item.fluid_identifier.usage1=Shift right click fluid ducts to designate adjacent ducts
|
||||
item.fluid_identifier.usage2=up to a maximum range of 64 ducts.
|
||||
item.fluid_identifier_multi.name=Multi Fluid Identifier
|
||||
item.fluid_identifier_multi.info=Universal fluid identifier for:
|
||||
item.fluid_identifier_multi.info2=Secondary type:
|
||||
item.fluid_tank_empty.name=Empty Universal Fluid Tank
|
||||
item.fluid_tank_full.name=Universal Fluid Tank:
|
||||
item.fluid_tank_lead_empty.name=Empty Hazardous Material Tank
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/machine/gui_fluid.png
Normal file
BIN
src/main/resources/assets/hbm/textures/gui/machine/gui_fluid.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 284 B |
Loading…
x
Reference in New Issue
Block a user