obligatory beach episode

This commit is contained in:
HbmMods 2026-07-09 21:33:49 +02:00
parent c13fba0d22
commit 775126f0ba
35 changed files with 106 additions and 53 deletions

View File

@ -73,7 +73,7 @@
* Standard control units now use rubber instead of speed I upgrades
* Advanced control units now use hardplastics instead of speed III upgrades
* Quantum computers now use speed III upgrades instead of overdrive I
* Updated electric furnace GUI
* Updated electric furnace, burner press and electric press GUIs
* The RoR terminal can now accept RoR controller input, allowing the terminal screen to be written directly and RoR terminal commands to be executed via incoming RoR signals
* The last part seems redundant, why would you need to send RoR by sending RoR? The answer being, the terminal can be toggled to send polling signals, which will run independently of the source
* For AUTOCALs, this means that they can now send polling signals "in parallel", i.e. independently of the code that actually runs on said AUTOCAL, by simply toggling polling on a terminal
@ -82,6 +82,11 @@
* 1/3 of glyphids do not have this behavior, this means that larger groups of glyphids cannot be trapped indefinitely by triggering target changes on purpose
* Pedestal blocks fitted with charms now have a 200x200 block square area around them where the charm effect of repelling meteors applies to all players
* Pedestal blocks fitted with golden defusers now have a 50x50 block area around them where creepers are automatically defused
* Disabled GTNH-NEI filter drag functionality because GTNH-NEI breaks the pattern slots of the new pneumatics stuff and the person who added it originally was too bald to fix it despite being told multiple times
* 70k it's 70k and he's bald bald haha bald head
* baldie baldie hahaha he bald he has the no of hair
* follically challenged baldie bald head
* Increased flue gas burn value from 10kTU to 25kTU
## Fixed
* Fixed AUTOCAL's number comparison functions not working with variable substitution as advertised
@ -97,3 +102,4 @@
* Fixed meteorite sword localization still being broken
* Fixed missing localization on the FM radio
* Fixed mufflers not working on large doors
* Fixed the electric press not displaying the currently pressed item in the model

View File

@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
mod_build_number=5719
mod_build_number=5751
credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\

View File

@ -1907,11 +1907,11 @@ public class ModBlocks {
pneumatic_tube = new PneumoTube().setBlockName("pneumatic_tube").setStepSound(ModSoundTypes.pipe).setHardness(2F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_tube");
pneumatic_tube_paintable = new PneumoTubePaintableBlock().setBlockName("pneumatic_tube_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
pneumatic_storage_access = new PneumoStorageAccess().setBlockName("pneumatic_storage_access").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_access");
pneumatic_storage_clutter = new PneumoStorageClutter().setBlockName("pneumatic_storage_clutter").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_clutter");
pneumatic_storage_mono = new PneumoStorageMono().setBlockName("pneumatic_storage_mono").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_mono");
pneumatic_storage_importer = new PneumoStorageImporter().setBlockName("pneumatic_storage_importer").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_importer");
pneumatic_storage_exporter = new PneumoStorageExporter().setBlockName("pneumatic_storage_exporter").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_exporter");
pneumatic_storage_access = new PneumoStorageAccess().setBlockName("pneumatic_storage_access").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_access");
pneumatic_storage_clutter = new PneumoStorageClutter().setBlockName("pneumatic_storage_clutter").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_clutter");
pneumatic_storage_mono = new PneumoStorageMono().setBlockName("pneumatic_storage_mono").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_mono");
pneumatic_storage_importer = new PneumoStorageImporter().setBlockName("pneumatic_storage_importer").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_importer");
pneumatic_storage_exporter = new PneumoStorageExporter().setBlockName("pneumatic_storage_exporter").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_exporter");
chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain");

View File

@ -208,7 +208,7 @@ public class BlockPedestal extends BlockContainer {
if(this.item != null) {
if(item.getItem() == ModItems.protection_charm) pushPedestalEntry(worldObj, PedestalEntryType.CHARM_OF_PROTECTION, xCoord, yCoord, zCoord);
if(item.getItem() == ModItems.meteor_charm) pushPedestalEntry(worldObj, PedestalEntryType.METEORITE_CHARM, xCoord, yCoord, zCoord);
if(worldObj.getTotalWorldTime() % 60 == 0 && item.getItem() == ModItems.defuser) castrateCreepers();
if(worldObj.getTotalWorldTime() % 60 == 0 && item.getItem() == ModItems.defuser_gold) castrateCreepers();
}
}
}

View File

@ -41,9 +41,11 @@ public class PressRecipeHandler extends TemplateRecipeHandler implements ICompat
return "pressing";
}
public LinkedList<RecipeTransferRect> transferRectsRec = new LinkedList<RecipeTransferRect>();
public LinkedList<RecipeTransferRect> transferRectsGui = new LinkedList<RecipeTransferRect>();
public LinkedList<RecipeTransferRect> transferRectsPress = new LinkedList<RecipeTransferRect>();
public LinkedList<RecipeTransferRect> transferRectsEPress = new LinkedList<RecipeTransferRect>();
public LinkedList<Class<? extends GuiContainer>> guiRec = new LinkedList<Class<? extends GuiContainer>>();
public LinkedList<Class<? extends GuiContainer>> guiGui = new LinkedList<Class<? extends GuiContainer>>();
public LinkedList<Class<? extends GuiContainer>> guiPress = new LinkedList<Class<? extends GuiContainer>>();
public LinkedList<Class<? extends GuiContainer>> guiEPress = new LinkedList<Class<? extends GuiContainer>>();
public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe {
PositionedStack input;
@ -130,21 +132,24 @@ public class PressRecipeHandler extends TemplateRecipeHandler implements ICompat
@Override
public Class<? extends GuiContainer> getGuiClass() {
// return GUIMachineShredder.class;
return null;
}
@Override
public void loadTransferRects() {
transferRectsGui = new LinkedList<RecipeTransferRect>();
guiGui = new LinkedList<Class<? extends GuiContainer>>();
transferRectsPress = new LinkedList<RecipeTransferRect>();
transferRectsEPress = new LinkedList<RecipeTransferRect>();
guiPress = new LinkedList<Class<? extends GuiContainer>>();
guiEPress = new LinkedList<Class<? extends GuiContainer>>();
transferRects.add(new RecipeTransferRect(new Rectangle(74 + 6, 23, 24, 18), "pressing"));
transferRectsGui.add(new RecipeTransferRect(new Rectangle(74 + 6 + 18, 23, 24, 18), "pressing"));
guiGui.add(GUIMachinePress.class);
guiGui.add(GUIMachineEPress.class);
transferRectsPress.add(new RecipeTransferRect(new Rectangle(74 + 6 + 18, 23, 24, 18), "pressing"));
transferRectsEPress.add(new RecipeTransferRect(new Rectangle(13 + 6 + 18, 23, 24, 18), "pressing"));
guiPress.add(GUIMachinePress.class);
guiEPress.add(GUIMachineEPress.class);
RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects);
RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui);
RecipeTransferRectHandler.registerRectsToGuis(guiPress, transferRectsPress);
RecipeTransferRectHandler.registerRectsToGuis(guiEPress, transferRectsEPress);
}
@Override

View File

@ -23,24 +23,24 @@ private TileEntityMachineEPress nukeBoy;
nukeBoy = tedf;
//Battery
this.addSlotToContainer(new Slot(tedf, 0, 44, 53));
this.addSlotToContainer(new Slot(tedf, 0, 152, 54));
//Stamp
this.addSlotToContainer(new Slot(tedf, 1, 80, 17));
this.addSlotToContainer(new Slot(tedf, 1, 19, 15));
//Input
this.addSlotToContainer(new Slot(tedf, 2, 80, 53));
this.addSlotToContainer(new Slot(tedf, 2, 19, 51));
//Output
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 3, 140, 35));
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 3, 79, 33));
//Upgrade
this.addSlotToContainer(new SlotUpgrade(tedf, 4, 44, 21));
this.addSlotToContainer(new SlotUpgrade(tedf, 4, 111, 32));
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162));
}
}

View File

@ -17,7 +17,7 @@ public class ContainerPneumoStorageExporter extends ContainerBase {
this.addSlotToContainer(new SlotPattern(exporter, i, 17 + (i % 3) * 18, 17 + (i / 3) * 18).allowStackSize());
}
addSlots(exporter, 9, 80, 17, 3, 3);
addTakeOnlySlots(exporter, 9, 80, 17, 3, 3);
playerInv(invPlayer, 103);
}
@ -41,4 +41,33 @@ public class ContainerPneumoStorageExporter extends ContainerBase {
slot.putStack(held);
return ret;
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack slotOriginal = null;
Slot slot = (Slot) this.inventorySlots.get(index);
if(slot != null && slot.getHasStack()) {
ItemStack slotStack = slot.getStack();
slotOriginal = slotStack.copy();
if(index <= tile.getSizeInventory() - 1) {
if(!this.mergeItemStack(slotStack, tile.getSizeInventory(), this.inventorySlots.size(), true)) {
return null;
}
} else {
return null;
}
if(slotStack.stackSize == 0) {
slot.putStack(null);
} else {
slot.onSlotChanged();
}
slot.onPickupFromSlot(player, slotStack);
}
return slotOriginal;
}
}

View File

@ -412,7 +412,7 @@ public class Fluids {
CONCRETE = new FluidType("CONCRETE", 0xA2A2A2, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
DHC = new FluidType("DHC", 0xD2AFFF, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS);
AIRBLAST = new FluidType("AIRBLAST", 0xFFDADA, 0, 3, 0, EnumSymbol.NONE).setTemp(1_200).addTraits(GASEOUS);
FLUE = new FluidType(155, "FLUE", 0x131313, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFF4545, 0xFFE97F)).addTraits(new FT_Flammable(10_000), GASEOUS, new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS).release(PollutionType.SOOT, SOOT_GAS * 25));
FLUE = new FluidType(155, "FLUE", 0x131313, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFF4545, 0xFFE97F)).addTraits(new FT_Flammable(25_000), GASEOUS, new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS).release(PollutionType.SOOT, SOOT_GAS * 25));
// ^ ^ ^ ^ ^ ^ ^ ^
//ADD NEW FLUIDS HERE

View File

@ -20,14 +20,14 @@ public class GUIMachineEPress extends GuiInfoContainer {
press = tedf;
this.xSize = 176;
this.ySize = 166;
this.ySize = 186;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 69 - 52, 16, 52, press.power, press.maxPower);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 52 - 34, 16, 34, press.power, press.maxPower);
}
@Override
@ -44,10 +44,10 @@ public class GUIMachineEPress extends GuiInfoContainer {
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int i = (int) (press.power * 52 / press.maxPower);
drawTexturedModalRect(guiLeft + 17, guiTop + 69 - i, 176, 52 - i, 16, i);
int i = (int) (press.power * 34 / press.maxPower);
drawTexturedModalRect(guiLeft + 152, guiTop + 52 - i, 176, 34 - i, 16, i);
int k = (int) (press.renderPress * 16 / press.maxPress);
this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 192, 0, 18, k);
this.drawTexturedModalRect(guiLeft + 18, guiTop + 33, 192, 0, 18, k);
}
}

View File

@ -68,7 +68,7 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer {
if(furnace.getWorldObj().getBlock(furnace.xCoord, furnace.yCoord, furnace.zCoord) == ModBlocks.machine_electric_furnace_on) {
drawTexturedModalRect(guiLeft + 45, guiTop + 20, 192, 12, 18, 16);
drawTexturedModalRect(guiLeft + 45, guiTop + 47, 192, 36, 18, 16);
drawTexturedModalRect(guiLeft + 46, guiTop + 47, 192, 28, 18, 16);
}
int p = furnace.getProgressScaled(28);

View File

@ -341,7 +341,24 @@ public abstract class GuiInfoContainer extends GuiContainer implements INEIGuiHa
@Override
@Optional.Method(modid = "NotEnoughItems")
public boolean handleDragNDrop(GuiContainer gui, int x, int y, ItemStack stack, int button) {
if(gui instanceof GuiInfoContainer && stack != null){
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
// BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD! BALD!
/*if(gui instanceof GuiInfoContainer && stack != null){
Slot slot = getSlotAtPosition(x,y);
if(slot instanceof SlotPattern){
if(inventorySlots instanceof ContainerBase) {
@ -357,7 +374,7 @@ public abstract class GuiInfoContainer extends GuiContainer implements INEIGuiHa
return true;
}
}
}
}*/
return false;
}
//all credits for impl to GTNH's EnderCore fork

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (5719)";
public static final String VERSION = "1.0.27 BETA (5751)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -43,7 +43,8 @@ public class ItemRenderLibrary {
renderers.put(Item.getItemFromBlock(ModBlocks.machine_cyclotron), new ItemRenderBase() {
public void renderInventory() {
GL11.glScaled(2.25, 2.25, 2.25);
GL11.glTranslated(0, -1, 0);
GL11.glScaled(2.75, 2.75, 2.75);
}
public void renderCommon() {
GL11.glShadeModel(GL11.GL_SMOOTH);

View File

@ -80,14 +80,10 @@ public class RenderEPress extends TileEntitySpecialRenderer {
GL11.glRotatef(180, 0F, 1F, 0F);
switch(tileentity.getBlockMetadata() - BlockDummyable.offset) {
case 2:
GL11.glRotatef(270, 0F, 1F, 0F); break;
case 4:
GL11.glRotatef(0, 0F, 1F, 0F); break;
case 3:
GL11.glRotatef(90, 0F, 1F, 0F); break;
case 5:
GL11.glRotatef(180, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 4: GL11.glRotatef(0, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(180, 0F, 1F, 0F); break;
}
GL11.glRotatef(90, 0F, 1F, 0F);

View File

@ -666,7 +666,7 @@ public abstract class DoorDecl {
return null;
}
@Override public int timeToOpen() { return 120; }
@Override public int timeToOpen() { return 60; }
@Override public int[][] getDoorOpenRanges() { return new int[][] { { -1, -1, 0, 3, 3, 1 } }; }
@Override public int[] getDimensions() { return new int[] { 2, 0, 0, 0, 1, 1 }; }

View File

@ -147,10 +147,7 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE
super.serialize(buf);
buf.writeLong(power);
buf.writeInt(press);
if (slots[2] == null)
buf.writeShort(-1); // indicate that the NBT doesn't actually exist to avoid null pointer errors.
else
BufferUtil.writeNBT(buf, slots[2].stackTagCompound);
BufferUtil.writeItemStack(buf, slots[2]);
}
@Override
@ -158,9 +155,7 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE
super.deserialize(buf);
this.power = buf.readLong();
this.syncPress = buf.readInt();
NBTTagCompound stack = BufferUtil.readNBT(buf);
this.syncStack = ItemStack.loadItemStackFromNBT(stack);
this.syncStack = BufferUtil.readItemStack(buf);
this.turnProgress = 2;
}

View File

@ -359,7 +359,8 @@ container.paSource=Teilchenquelle
container.plasmaHeater=Plasmaerhitzer
container.pneumoStorageAccess=PLS Zugangsterminal
container.pneumoStorageClutter=PLS Gerümpelkiste
container.pneumoStorageImporter=PSN Importer
container.pneumoStorageExporter=PLS Exporter
container.pneumoStorageImporter=PLS Importer
container.pneumoStorageMono=PLS Massenspeicher
container.pneumoTube=Rohrpost
container.press=Befeuerte Presse
@ -4742,6 +4743,7 @@ tile.plasma_heater.name=Plasmaerhitzer
tile.plushie.name=%s Plüschfigur
tile.pneumatic_storage_access.name=Pneumatisches Lagersystem - Zugangsterminal
tile.pneumatic_storage_clutter.name=Pneumatisches Lagersystem - Gerümpelkiste
tile.pneumatic_storage_exporter.name=Pneumatisches Lagersystem - Exporter
tile.pneumatic_storage_importer.name=Pneumatisches Lagersystem - Importer
tile.pneumatic_storage_mono.name=Pneumatisches Lagersystem - Massenspeicher
tile.pneumatic_tube.name=Rohrpost

View File

@ -761,6 +761,7 @@ container.paSource=Particle Source
container.plasmaHeater=Plasma Heater
container.pneumoStorageAccess=PSN Access Terminal
container.pneumoStorageClutter=PSN Clutter Storage
container.pneumoStorageExporter=PSN Exporter
container.pneumoStorageImporter=PSN Importer
container.pneumoStorageMono=PSN Bulk Storage
container.pneumoTube=Pneumatic Tube
@ -6003,6 +6004,7 @@ tile.plasma_heater.name=Plasma Heater
tile.plushie.name=%s Plushie
tile.pneumatic_storage_access.name=Pneumatic Storage Network - Access Terminal
tile.pneumatic_storage_clutter.name=Pneumatic Storage Network - Clutter Storage
tile.pneumatic_storage_exporter.name=Pneumatic Storage Network - Exporter
tile.pneumatic_storage_importer.name=Pneumatic Storage Network - Importer
tile.pneumatic_storage_mono.name=Pneumatic Storage Network - Bulk Storage
tile.pneumatic_tube.name=Pneumatic Tube

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 B

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 B

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB