fixes, plushies

This commit is contained in:
Bob 2024-08-05 00:47:32 +02:00
parent 522c4e1b24
commit 9ebcab3244
28 changed files with 932 additions and 34 deletions

View File

@ -1,8 +1,16 @@
## Changed
* The fluid burner, heat exchanging heater and cooling tower now use the single steel pipe items instead of the larger steel pipes
* Reduced the amount of condensers needed for crafting the cooling towers
* Liquefactors and solidifiers now have a base processing time of 5 seconds per operation (instead of 10)
* Added some info to the coltass about how the coltan deposit works
* Moced some NEI handlers around, fluid containers are now listed last and radiolysis is now listed right after cracking, since they have the same recipes
* The autocrafter's inputs are now limited to 4 items per slot
* Autocrafters can now receive stacked items again (except for items with containers), if they do not exceed the 4 item threshold
## Fixed
* Fixed crash caused by decontaminating items with the radiolysis machine
* Fixed ICFs not forming correctly depending on the orientation
* Fixed electrolyzer metal recipe config not working
* Fixed electrolyzer metal recipe config not working
* Fixed the meteor charms not working when used on helmets
* Fixed NEI handler for the ICF's consturction showing inconsistent values
* Fixed radiolysis recipes not showing up in NEI unless the usage recipes are loaded first

View File

@ -31,8 +31,4 @@ public abstract class BlockMulti extends BlockBase implements IBlockMulti {
list.add(new ItemStack(item, 1, i));
}
}
public String getUnlocalizedName(ItemStack stack) {
return this.getUnlocalizedName();
}
}

View File

@ -1,9 +1,20 @@
package com.hbm.blocks;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
public interface IBlockMulti {
public int getSubCount();
public default String getUnlocalizedName(ItemStack stack) {
return ((Block)this).getUnlocalizedName();
}
public default String getOverrideDisplayName(ItemStack stack) {
return null;
}
public default int rectify(int meta) {
return Math.abs(meta % getSubCount());
}

View File

@ -271,6 +271,7 @@ public class ModBlocks {
public static Block pedestal;
public static Block bobblehead;
public static Block snowglobe;
public static Block plushie;
public static Block hazmat;
@ -1454,6 +1455,7 @@ public class ModBlocks {
pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top");
bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron");
plushie = new BlockPlushie().setBlockName("plushie").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side");
hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat");
gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian");
@ -2600,6 +2602,7 @@ public class ModBlocks {
GameRegistry.registerBlock(pedestal, pedestal.getUnlocalizedName());
GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName());
GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName());
GameRegistry.registerBlock(plushie, ItemBlockBase.class, plushie.getUnlocalizedName());
GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName());
GameRegistry.registerBlock(deco_rbmk, deco_rbmk.getUnlocalizedName());
GameRegistry.registerBlock(deco_rbmk_smooth, deco_rbmk_smooth.getUnlocalizedName());

View File

@ -0,0 +1,172 @@
package com.hbm.blocks.generic;
import java.util.List;
import java.util.Random;
import com.hbm.blocks.IBlockMulti;
import com.hbm.blocks.ITooltipProvider;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.stats.StatList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
public class BlockPlushie extends BlockContainer implements IBlockMulti, ITooltipProvider {
public BlockPlushie() {
super(Material.cloth);
}
@Override public int getRenderType() { return -1; }
@Override public boolean isOpaqueCube() { return false; }
@Override public boolean renderAsNormalBlock() { return false; }
@Override public Item getItemDropped(int i, Random rand, int j) { return null; }
@Override
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) {
TileEntityPlushie entity = (TileEntityPlushie) world.getTileEntity(x, y, z);
if(entity != null) return new ItemStack(this, 1, entity.type.ordinal());
return super.getPickBlock(target, world, x, y, z, player);
}
@Override
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
if(!player.capabilities.isCreativeMode) {
harvesters.set(player);
if(!world.isRemote) {
TileEntityPlushie entity = (TileEntityPlushie) world.getTileEntity(x, y, z);
if(entity != null) {
EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal()));
item.motionX = 0;
item.motionY = 0;
item.motionZ = 0;
world.spawnEntityInWorld(item);
}
}
harvesters.set(null);
}
}
@Override
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
player.addExhaustion(0.025F);
}
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for(int i = 1; i < PlushieType.values().length; i++) list.add(new ItemStack(item, 1, i));
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) {
int meta = MathHelper.floor_double((double)((player.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15;
world.setBlockMetadataWithNotify(x, y, z, meta, 2);
TileEntityPlushie plushie = (TileEntityPlushie) world.getTileEntity(x, y, z);
plushie.type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length];
plushie.markDirty();
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityPlushie();
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) {
TileEntityPlushie plushie = (TileEntityPlushie) world.getTileEntity(x, y, z);
plushie.squishTimer = 11;
return true;
} else {
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.squeakyToy", 0.25F, 1F);
return true;
}
}
public static class TileEntityPlushie extends TileEntity {
public PlushieType type = PlushieType.NONE;
public int squishTimer;
@Override
public void updateEntity() {
if(squishTimer > 0) squishTimer--;
}
@Override
public Packet getDescriptionPacket() {
NBTTagCompound nbt = new NBTTagCompound();
this.writeToNBT(nbt);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt);
}
@Override
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
this.readFromNBT(pkt.func_148857_g());
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.type = PlushieType.values()[Math.abs(nbt.getByte("type")) % PlushieType.values().length];
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setByte("type", (byte) type.ordinal());
}
}
public static enum PlushieType {
NONE( "NONE", null),
YOMI( "Yomi", "Hi! Can I be your rabbit friend?"),
NUMBERNINE( "Number Nine", "None of y'all deserve coal.");
public String label;
public String inscription;
private PlushieType(String label, String inscription) {
this.label = label;
this.inscription = inscription;
}
}
@Override
public int getSubCount() {
return PlushieType.values().length;
}
@Override
public String getOverrideDisplayName(ItemStack stack) {
PlushieType type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length];
return StatCollector.translateToLocalFormatted(this.getUnlocalizedName() + ".name", type == PlushieType.NONE ? "" : type.label).trim();
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
PlushieType type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length];
if(type.inscription != null) list.add(type.inscription);
}
}

View File

@ -35,6 +35,7 @@ public class EntityMovingItem extends EntityMovingConveyorObject implements ICon
public boolean interactFirst(EntityPlayer player) {
if(!worldObj.isRemote && player.inventory.addItemStackToInventory(this.getItemStack().copy())) {
player.inventoryContainer.detectAndSendChanges();
this.setDead();
}

View File

@ -202,15 +202,17 @@ public class BossSpawnHandler {
boolean repell = false;
boolean strike = true;
if(p.getCurrentArmor(2) != null && ArmorModHandler.hasMods(p.getCurrentArmor(2))) {
ItemStack mod = ArmorModHandler.pryMods(p.getCurrentArmor(2))[ArmorModHandler.helmet_only];
if(mod != null) {
if(mod.getItem() == ModItems.protection_charm) {
repell = true;
}
if(mod.getItem() == ModItems.meteor_charm) {
strike = false;
for(int i = 0; i < 4; i++) {
ItemStack armor = p.getCurrentArmor(i);
if(armor != null && ArmorModHandler.hasMods(armor)) {
for(int j = 0; j < 8; j++) {
ItemStack mod = ArmorModHandler.pryMods(armor)[j];
if(mod != null) {
if(mod.getItem() == ModItems.protection_charm) repell = true;
if(mod.getItem() == ModItems.meteor_charm) strike = false;
}
}
}
}

View File

@ -105,7 +105,7 @@ public class ConstructionHandler extends NEIUniversalHandler {
ItemStack[] icf = new ItemStack[] {
new ItemStack(ModBlocks.icf_component, 50, 0),
ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 240, 3), EnumChatFormatting.RED + "3x64 + 48"),
ItemStackUtil.addTooltipToStack(Mats.MAT_DURA.make(ModItems.bolt, 960), EnumChatFormatting.RED + "9x64"),
ItemStackUtil.addTooltipToStack(Mats.MAT_DURA.make(ModItems.bolt, 960), EnumChatFormatting.RED + "15x64"),
ItemStackUtil.addTooltipToStack(Mats.MAT_STEEL.make(ModItems.plate_cast, 240), EnumChatFormatting.RED + "3x64 + 48"),
ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 117, 1), EnumChatFormatting.RED + "64 + 53"),
ItemStackUtil.addTooltipToStack(Mats.MAT_BBRONZE.make(ModItems.plate_cast, 117), EnumChatFormatting.RED + "64 + 53"),

View File

@ -14,7 +14,6 @@ import com.hbm.inventory.gui.GUIRadiolysis;
import com.hbm.inventory.recipes.RadiolysisRecipes;
import com.hbm.lib.RefStrings;
import codechicken.nei.NEIServerUtils;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import net.minecraft.client.gui.inventory.GuiContainer;
@ -95,7 +94,7 @@ public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements IC
HashMap<Object, Object[]> recipes = (HashMap<Object, Object[]>) RadiolysisRecipes.getRecipesForNEI();
for(Entry<Object, Object[]> recipe : recipes.entrySet()) {
if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[1], result))
if(compareFluidStacks((ItemStack)recipe.getValue()[0], result) || compareFluidStacks((ItemStack)recipe.getValue()[1], result))
this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1]));
}
}
@ -115,10 +114,14 @@ public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements IC
HashMap<Object, Object[]> recipes = (HashMap<Object, Object[]>) RadiolysisRecipes.getRecipesForNEI();
for(Entry<Object, Object[]> recipe : recipes.entrySet()) {
if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getKey(), ingredient))
if(compareFluidStacks((ItemStack)recipe.getKey(), ingredient))
this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1]));
}
}
private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) {
return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage();
}
@Override
public void drawExtras(int recipe) {

View File

@ -1,8 +1,10 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotPattern;
import com.hbm.items.ModItems;
import com.hbm.tileentity.machine.TileEntityMachineAutocrafter;
import api.hbm.energymk2.IBatteryItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Slot;
@ -88,6 +90,33 @@ public class ContainerAutocrafter extends ContainerBase {
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
return null;
ItemStack rStack = null;
Slot slot = (Slot) this.inventorySlots.get(index);
if(slot != null && slot.getHasStack()) {
ItemStack stack = slot.getStack();
rStack = stack.copy();
if(index <= 20 && index >= 10) {
if(!this.mergeItemStack(stack, 21, this.inventorySlots.size(), true)) {
return null;
}
} else if(index > 20){
if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) {
if(!this.mergeItemStack(stack, 20, 21, false)) return null;
} else {
return null;
}
}
if(stack.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
}
return rStack;
}
}

View File

@ -2,7 +2,6 @@ package com.hbm.items.block;
import java.util.List;
import com.hbm.blocks.BlockMulti;
import com.hbm.blocks.IBlockMulti;
import com.hbm.blocks.IPersistentInfoProvider;
import com.hbm.blocks.ITooltipProvider;
@ -18,6 +17,7 @@ import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
public class ItemBlockBase extends ItemBlock {
@ -41,14 +41,25 @@ public class ItemBlockBase extends ItemBlock {
@Override
public String getUnlocalizedName(ItemStack stack) {
if(field_150939_a instanceof BlockMulti) {
return ((BlockMulti)field_150939_a).getUnlocalizedName(stack);
if(field_150939_a instanceof IBlockMulti) {
return ((IBlockMulti) field_150939_a).getUnlocalizedName(stack);
} else if(field_150939_a instanceof BlockMetalFence) {
return ((BlockMetalFence)field_150939_a).getUnlocalizedName(stack); // I considered reworking IBlockMulti instead but there are like a bajillion implementers
return ((BlockMetalFence) field_150939_a).getUnlocalizedName(stack); // I considered reworking IBlockMulti instead but there are like a bajillion implementers
} else {
return super.getUnlocalizedName(stack);
}
}
@Override
public String getItemStackDisplayName(ItemStack stack) {
if(field_150939_a instanceof IBlockMulti) {
String override = ((IBlockMulti) field_150939_a).getOverrideDisplayName(stack);
if(override != null) {
return override;
}
}
return ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim();
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {

View File

@ -1,5 +1,6 @@
package com.hbm.items.tool;
import java.util.List;
import java.util.Random;
import com.hbm.main.MainRegistry;
@ -12,6 +13,7 @@ import net.minecraft.client.renderer.texture.TextureCompass;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.texture.TextureUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -24,6 +26,14 @@ public class ItemColtanCompass extends Item {
public int lastZ = 0;
public long lease = 0;
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add("Points towards the coltan deposit.");
list.add("The deposit is a large area where coltan ore spawns like standard ore,");
list.add("it's not one large blob of ore on that exact location, dipshit.");
}
@Override
public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) {

View File

@ -53,6 +53,7 @@ import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter;
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal;
import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie;
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight;
import com.hbm.blocks.machine.MachineFan.TileEntityFan;
@ -192,6 +193,7 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPedestal.class, new RenderPedestalTile());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlushie.class, new RenderPlushie());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLantern.class, new RenderLantern());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLanternBehemoth.class, new RenderLanternBehemoth());

View File

@ -5,6 +5,7 @@ import java.util.List;
import codechicken.nei.recipe.*;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre;
import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie;
import com.hbm.config.CustomMachineConfigJSON;
import com.hbm.handler.nei.CustomMachineHandler;
import com.hbm.items.ModItems;
@ -104,6 +105,21 @@ public class NEIConfig implements IConfigureNEI {
}
});
API.registerHighlightIdentifier(ModBlocks.plushie, new IHighlightHandler() {
@Override public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) {
int x = mop.blockX;
int y = mop.blockY;
int z = mop.blockZ;
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof TileEntityPlushie) {
TileEntityPlushie plush = (TileEntityPlushie) te;
return new ItemStack(ModBlocks.plushie, 1, plush.type.ordinal());
}
return null;
}
@Override public List<String> handleTextData(ItemStack itemStack, World world, EntityPlayer player, MovingObjectPosition mop, List<String> currenttip, Layout layout) { return currenttip; }
});
}
public static void registerHandler(Object o) {

View File

@ -16,6 +16,8 @@ public class NEIRegistry {
if(!handlers.isEmpty()) return handlers;
handlers.add(new AnvilRecipeHandler());
handlers.add(new SmithingRecipeHandler());
handlers.add(new AlloyFurnaceRecipeHandler());
handlers.add(new ShredderRecipeHandler());
handlers.add(new PressRecipeHandler());
@ -27,6 +29,7 @@ public class NEIRegistry {
handlers.add(new RefineryRecipeHandler());
handlers.add(new VacuumRecipeHandler());
handlers.add(new CrackingHandler());
handlers.add(new RadiolysisRecipeHandler());
handlers.add(new ReformingHandler());
handlers.add(new HydrotreatingHandler());
handlers.add(new ChemplantRecipeHandler());
@ -35,11 +38,7 @@ public class NEIRegistry {
handlers.add(new FusionRecipeHandler());
handlers.add(new HadronRecipeHandler());
handlers.add(new SILEXRecipeHandler());
handlers.add(new SmithingRecipeHandler());
handlers.add(new AnvilRecipeHandler());
handlers.add(new FuelPoolHandler());
handlers.add(new FluidRecipeHandler());
handlers.add(new RadiolysisRecipeHandler());
handlers.add(new CrucibleSmeltingHandler());
handlers.add(new CrucibleAlloyingHandler());
handlers.add(new CrucibleCastingHandler());
@ -66,6 +65,9 @@ public class NEIRegistry {
handlers.add(new ExposureChamberHandler());
handlers.add(new ArcFurnaceSolidHandler());
handlers.add(new ArcFurnaceFluidHandler());
//this shit comes last
handlers.add(new FluidRecipeHandler());
return handlers;
}

View File

@ -0,0 +1,138 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockPlushie.PlushieType;
import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.render.loader.HFRWavefrontObject;
import com.hbm.render.util.HorsePronter;
import com.hbm.util.EnumUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.model.IModelCustom;
public class RenderPlushie extends TileEntitySpecialRenderer implements IItemRendererProvider {
public static final IModelCustom yomiModel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/yomi.obj"), false).asVBO();
public static final ResourceLocation yomiTex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/yomi.png");
public static final ResourceLocation numbernineTex = new ResourceLocation(RefStrings.MODID, "textures/models/horse/numbernine.png");
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y, z + 0.5);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0);
TileEntityPlushie te = (TileEntityPlushie) tile;
if(te.squishTimer > 0) {
double squish = te.squishTimer - interp;
GL11.glScaled(1, 1 + (-(Math.sin(squish)) * squish) * 0.025, 1);
}
switch(te.type) {
case NONE: break;
case YOMI: GL11.glScaled(0.5, 0.5, 0.5); break;
case NUMBERNINE: GL11.glScaled(0.75, 0.75, 0.75); break;
}
renderPlushie(te.type);
GL11.glPopMatrix();
}
public static void renderPlushie(PlushieType type) {
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
switch(type) {
case NONE: break;
case YOMI:
Minecraft.getMinecraft().getTextureManager().bindTexture(yomiTex);
yomiModel.renderAll();
break;
case NUMBERNINE:
GL11.glRotated(90, 0, 1, 0);
GL11.glRotated(15, -1, 0, 0);
GL11.glTranslated(0, -0.25, 0.75);
Minecraft.getMinecraft().getTextureManager().bindTexture(numbernineTex);
HorsePronter.reset();
double r = 45;
HorsePronter.pose(HorsePronter.id_body, 0, -r, 0);
HorsePronter.pose(HorsePronter.id_tail, 0, 60, 90);
HorsePronter.pose(HorsePronter.id_lbl, 0, -75 + r, 35);
HorsePronter.pose(HorsePronter.id_rbl, 0, -75 + r, -35);
HorsePronter.pose(HorsePronter.id_lfl, 0, r - 25, 5);
HorsePronter.pose(HorsePronter.id_rfl, 0, r - 25, -5);
HorsePronter.pose(HorsePronter.id_head, 0, r + 15, 0);
HorsePronter.pront();
GL11.glRotated(15, 1, 0, 0);
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glTranslated(0, 1, -0.6875);
double s = 1.125D;
GL11.glScaled(0.0625 * s, 0.0625 * s, 0.0625 * s);
GL11.glRotated(180, 1, 0, 0);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.no9);
ResourceManager.armor_no9.renderPart("Helmet");
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.no9_insignia);
ResourceManager.armor_no9.renderPart("Insignia");
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glPopMatrix();
ItemStack stack = new ItemStack(ModItems.cigarette);
double scale = 0.25;
GL11.glTranslated(-0.06, 1.13, -0.42);
GL11.glScaled(scale, scale, scale);
GL11.glRotated(90, 0, -1, 0);
GL11.glRotated(60, 0, 0, -1);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationItemsTexture);
IIcon icon = stack.getIconIndex();
ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
break;
}
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.plushie);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -6, 0);
GL11.glScaled(6, 6, 6);
}
public void renderCommonWithStack(ItemStack item) {
GL11.glTranslated(0, 0.25, 0);
GL11.glEnable(GL11.GL_CULL_FACE);
PlushieType type = EnumUtil.grabEnumSafely(PlushieType.class, item.getItemDamage());
switch(type) {
case NONE: break;
case YOMI: GL11.glScaled(1.25, 1.25, 1.25); break;
case NUMBERNINE: GL11.glTranslated(0, 0.25, 0.25); GL11.glScaled(1.25, 1.25, 1.25); break;
}
renderPlushie(type);
}};
}
}

View File

@ -13,7 +13,6 @@ import com.hbm.util.EnumUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@ -28,7 +27,6 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemR
public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png");
public static final ResourceLocation glass = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_glass.png");
public static final ResourceLocation features = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_features.png");
public static RenderBlocks renderer = new RenderBlocks();
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {

View File

@ -13,6 +13,7 @@ import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner;
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre;
import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal;
import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie;
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter;
import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF;
@ -206,6 +207,7 @@ public class TileMappings {
put(TileEntityPedestal.class, "tileentity_ntm_pedestal");
put(TileEntityBobble.class, "tileentity_ntm_bobblehead");
put(TileEntitySnowglobe.class, "tileentity_ntm_snowglobe");
put(TileEntityPlushie.class, "tileentity_ntm_plushie");
put(TileEntityEmitter.class, "tileentity_ntm_emitter");
put(TileEntityDoorGeneric.class, "tileentity_ntm_door");

View File

@ -197,9 +197,8 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack) {
//automatically prohibit any stacked item, items can only be added one by one
if(stack.stackSize > 1)
return false;
//automatically prohibit stacked container items
if(stack.stackSize > 1 && stack.getItem().hasContainerItem(stack)) return false;
//only allow insertion for the nine recipe slots
if(slot < 10 || slot > 18)
@ -209,6 +208,10 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
if(slots[slot - 10] == null)
return false;
//do not permit total stacking beyond 4 items
if(slots[slot] != null && slots[slot].stackSize + stack.stackSize > 4) return false;
if(stack.stackSize > 4) return false;
//let's find all slots that this item could potentially go in
List<Integer> validSlots = new ArrayList();
for(int i = 0; i < 9; i++) {
@ -354,5 +357,6 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
inv.setInventorySlotContents(slot, new ItemStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getInteger("meta")));
nextMode(slot);
tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile);
updateTemplateGrid();
}
}

View File

@ -44,7 +44,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen
public static final int usageBase = 500;
public int usage;
public int progress;
public static final int processTimeBase = 200;
public static final int processTimeBase = 100;
public int processTime;
public FluidTank tank;

View File

@ -42,7 +42,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement
public static final int usageBase = 500;
public int usage;
public int progress;
public static final int processTimeBase = 200;
public static final int processTimeBase = 100;
public int processTime;
public FluidTank tank;

View File

@ -4535,6 +4535,7 @@ tile.plant_tall.cd4.name=Senf-Weide (Reif)
tile.plant_tall.weed.name=Hanf
tile.plasma.name=Plasma
tile.plasma_heater.name=Plasmaerhitzer
tile.plushie.name=%s Plüschfigur
tile.pole_satellite_receiver.name=Satellitenschüssel
tile.pole_top.name=Antennenspitze
tile.press_preheater.name=Presse-Vorheizer

View File

@ -5614,6 +5614,7 @@ tile.plant_tall.cd4.name=Mustard Willow (Mature)
tile.plant_tall.weed.name=Hemp
tile.plasma.name=Plasma
tile.plasma_heater.name=Plasma Heater
tile.plushie.name=%s Plushie
tile.pole_satellite_receiver.name=Satellite Dish
tile.pole_top.name=Antenna Top
tile.press_preheater.name=Burner Press Preheater

View File

@ -0,0 +1,487 @@
# Blender v2.79 (sub 0) OBJ File: 'yomi.blend'
# www.blender.org
o Plane
v -0.250000 1.187500 0.250000
v 0.250000 1.187500 0.250000
v -0.250000 1.187500 -0.250000
v 0.250000 1.187500 -0.250000
v 0.250000 1.000000 0.187500
v 0.250000 1.000000 -0.187500
v 0.125000 0.750000 0.187500
v 0.125000 0.750000 -0.187500
v 0.125000 1.000000 0.187500
v 0.125000 1.000000 -0.187500
v 0.156375 0.937500 -0.031250
v 0.156375 0.937500 0.031250
v 0.156375 1.000000 0.031250
v 0.156375 1.000000 -0.031250
v 0.125000 0.875000 -0.031250
v 0.125000 0.875000 -0.187500
v 0.125000 1.000000 -0.031250
v 0.187500 1.000000 -0.031250
v 0.187500 1.000000 -0.187500
v 0.187500 0.875000 -0.187500
v 0.187500 0.875000 -0.031250
v 0.125000 1.000000 0.031250
v 0.125000 0.875000 0.031250
v 0.125000 0.875000 0.187500
v 0.187500 0.875000 0.187500
v 0.187500 0.875000 0.031250
v 0.187500 1.000000 0.031250
v 0.187500 1.000000 0.187500
v -0.187500 0.750000 0.187500
v -0.187500 0.750000 -0.187500
v -0.250000 0.625000 -0.250000
v -0.250000 0.625000 0.250000
v 0.250000 0.625000 0.250000
v 0.250000 0.625000 0.187500
v 0.250000 0.625000 -0.250000
v 0.250000 0.625000 -0.187500
v -0.187500 0.625000 -0.187500
v -0.187500 0.625000 0.187500
v -0.218750 0.750000 -0.218750
v -0.218750 0.750000 0.218750
v 0.218750 0.750000 0.218750
v 0.218750 0.750000 -0.218750
v -0.218750 0.562500 0.218750
v 0.218750 0.562500 0.218750
v 0.218750 0.562500 -0.218750
v -0.218750 0.562500 -0.218750
v -0.187500 0.562500 -0.187500
v -0.187500 0.562500 0.187500
v 0.187500 0.562500 0.187500
v 0.187500 0.562500 -0.187500
v -0.187500 0.062500 0.250000
v 0.187500 0.062500 0.250000
v 0.187500 0.062500 -0.250000
v -0.187500 0.062500 -0.250000
v -0.031250 1.187500 0.218750
v 0.031250 1.187500 0.218750
v -0.031250 1.187500 0.031250
v 0.031250 1.187500 0.031250
v -0.031250 1.812500 0.031250
v -0.031250 1.812500 0.218750
v 0.031250 1.812500 0.218750
v 0.031250 1.812500 0.031250
v -0.031250 1.187500 -0.031250
v 0.031250 1.187500 -0.031250
v -0.031250 1.187500 -0.218750
v 0.031250 1.187500 -0.218750
v -0.031250 1.812500 -0.218750
v -0.031250 1.812500 -0.031250
v 0.031250 1.812500 -0.031250
v 0.031250 1.812500 -0.218750
v -0.062500 0.000000 -0.062500
v 0.437500 0.000000 -0.062500
v -0.062500 0.000000 -0.187500
v 0.437500 0.000000 -0.187500
v -0.062500 0.125000 -0.187500
v -0.062500 0.125000 -0.062500
v 0.437500 0.125000 -0.062500
v 0.437500 0.125000 -0.187500
v 0.562500 0.000000 -0.062500
v 0.562500 0.000000 -0.187500
v 0.562500 0.312500 -0.062500
v 0.562500 0.312500 -0.187500
v -0.062500 0.000000 0.187500
v 0.437500 0.000000 0.187500
v -0.062500 0.000000 0.062500
v 0.437500 0.000000 0.062500
v -0.062500 0.125000 0.062500
v -0.062500 0.125000 0.187500
v 0.437500 0.125000 0.187500
v 0.437500 0.125000 0.062500
v 0.562500 0.000000 0.187500
v 0.562500 0.000000 0.062500
v 0.562500 0.312500 0.187500
v 0.562500 0.312500 0.062500
v -0.062500 0.562500 -0.099112
v -0.062500 0.650888 -0.187500
v -0.062500 0.208947 -0.452665
v -0.062500 0.297335 -0.541053
v 0.062500 0.562500 -0.099112
v 0.062500 0.650888 -0.187500
v 0.062500 0.208947 -0.452665
v 0.062500 0.297335 -0.541053
v -0.062500 0.562500 0.099112
v -0.062500 0.650888 0.187500
v -0.062500 0.208947 0.452665
v -0.062500 0.297335 0.541053
v 0.062500 0.562500 0.099112
v 0.062500 0.650888 0.187500
v 0.062500 0.208947 0.452665
v 0.062500 0.297335 0.541053
v 0.135000 0.859375 0.078125
v 0.135000 0.765625 0.078125
v 0.135000 0.859375 -0.078125
v 0.135000 0.765625 -0.078125
vt 0.166667 0.809524
vt 0.333333 1.000000
vt 0.166667 1.000000
vt 0.166667 0.595238
vt 0.187500 0.738095
vt 0.000000 0.595238
vt 0.000000 0.809524
vt 0.333333 0.595238
vt 0.500000 0.809524
vt 0.333333 0.809524
vt 0.312500 0.690476
vt 0.312500 0.738095
vt 0.166667 0.809524
vt 0.166667 0.857143
vt 0.062500 0.857143
vt 0.187500 0.595238
vt 0.187500 0.690476
vt 0.395833 0.523810
vt 0.416667 0.547619
vt 0.395833 0.547619
vt 0.447917 0.547619
vt 0.500000 0.523810
vt 0.500000 0.547619
vt 0.312500 0.428571
vt 0.333333 0.404762
vt 0.437500 0.595238
vt 0.416667 0.547619
vt 0.437500 0.547619
vt 0.187500 0.476190
vt 0.312500 0.595238
vt 0.500000 0.595238
vt 0.447917 0.595238
vt 0.395833 0.547619
vt 0.416667 0.595238
vt 0.395833 0.595238
vt 0.333333 0.547619
vt 0.385417 0.523810
vt 0.385417 0.547619
vt 0.385417 0.595238
vt 0.333333 0.595238
vt 0.479167 0.809524
vt 0.437500 0.857143
vt 0.333333 0.809524
vt 0.312500 0.476190
vt 0.500000 0.595238
vt 0.666667 0.809524
vt 0.291667 0.238095
vt 0.145833 0.404762
vt 0.145833 0.238095
vt 0.145833 0.000000
vt 0.291667 0.166667
vt 0.145833 0.166667
vt -0.000000 0.238095
vt 0.437500 0.166667
vt 0.437500 0.238095
vt 0.583333 0.166667
vt 0.583333 0.238095
vt 0.833333 0.333333
vt 0.708333 0.476190
vt 0.708333 0.333333
vt 0.687500 0.000000
vt 0.854167 0.142857
vt 0.687500 0.142857
vt 0.833333 0.476190
vt 0.687500 0.666667
vt 0.541667 0.333333
vt 1.000000 0.476190
vt 0.354167 0.476190
vt 0.437500 0.500000
vt 0.354167 0.500000
vt 0.354167 0.476190
vt 0.437500 0.500000
vt 0.354167 0.500000
vt 0.458333 0.238095
vt 0.437500 0.476190
vt 0.437500 0.238095
vt 0.354167 0.238095
vt 0.333333 0.476190
vt 0.333333 0.238095
vt 0.427083 0.238095
vt 0.364583 0.476190
vt 0.364583 0.238095
vt 0.531250 0.238095
vt 0.468750 0.476190
vt 0.468750 0.238095
vt 0.458333 0.238095
vt 0.437500 0.476190
vt 0.437500 0.238095
vt 0.354167 0.238095
vt 0.333333 0.476190
vt 0.333333 0.238095
vt 0.427083 0.238095
vt 0.364583 0.476190
vt 0.364583 0.238095
vt 0.531250 0.238095
vt 0.468750 0.476190
vt 0.468750 0.238095
vt 0.791667 0.857143
vt 0.833333 0.666667
vt 0.833333 0.857143
vt 0.708333 0.666667
vt 0.750000 0.857143
vt 0.708333 0.857143
vt 0.750000 0.666667
vt 0.791667 0.666667
vt 0.666667 0.666667
vt 0.666667 0.857143
vt 0.833333 0.714286
vt 0.875000 0.666667
vt 0.875000 0.785714
vt 0.708333 0.904762
vt 0.750000 0.904762
vt 0.916667 0.666667
vt 0.875000 0.857143
vt 0.916667 0.785714
vt 0.916667 0.857143
vt 0.916667 0.619048
vt 0.875000 0.619048
vt 0.958333 0.714286
vt 0.958333 0.666667
vt 0.833333 0.857143
vt 0.791667 0.666667
vt 0.791667 0.857143
vt 0.750000 0.666667
vt 0.708333 0.857143
vt 0.750000 0.857143
vt 0.666667 0.857143
vt 0.708333 0.666667
vt 0.666667 0.666667
vt 0.958333 0.714286
vt 0.916667 0.666667
vt 0.916667 0.785714
vt 0.750000 0.904762
vt 0.708333 0.904762
vt 0.875000 0.666667
vt 0.916667 0.857143
vt 0.875000 0.785714
vt 0.875000 0.857143
vt 0.875000 0.619048
vt 0.916667 0.619048
vt 0.833333 0.714286
vt 0.833333 0.666667
vt 0.125000 0.595238
vt 0.166667 0.404762
vt 0.166667 0.595238
vt 0.083333 0.357143
vt 0.041667 0.404762
vt 0.041667 0.357143
vt 0.083333 0.404762
vt 0.041667 0.595238
vt -0.000000 0.595238
vt -0.000000 0.404762
vt 0.125000 0.404762
vt 0.083333 0.595238
vt 0.166667 0.404762
vt 0.125000 0.595238
vt 0.166667 0.595238
vt 0.041667 0.404762
vt 0.083333 0.357143
vt 0.041667 0.357143
vt 0.041667 0.595238
vt 0.083333 0.404762
vt -0.000000 0.595238
vt -0.000000 0.404762
vt 0.083333 0.595238
vt 0.125000 0.404762
vt 0.187500 0.428571
vt 0.166667 0.404762
vt 0.500000 0.523810
vt 0.604167 0.595238
vt 0.500000 0.595238
vt 0.187500 0.595238
vt 0.062500 0.952381
vt 0.020833 0.952381
vt 0.020833 0.809524
vt 0.416667 0.523810
vt 0.447917 0.523810
vt 0.312500 0.595238
vt 0.416667 0.595238
vt 0.416667 0.547619
vt 0.333333 0.523810
vt 0.479167 0.952381
vt 0.437500 0.952381
vt 0.333333 0.857143
vt 0.666667 0.595238
vt 0.291667 0.404762
vt 0.291667 0.000000
vt 0.000000 0.166667
vt 0.854167 0.000000
vt 0.854167 0.666667
vt 0.541667 0.476190
vt 1.000000 0.333333
vt 0.458333 0.476190
vt 0.427083 0.476190
vt 0.531250 0.476190
vt 0.458333 0.476190
vt 0.427083 0.476190
vt 0.531250 0.476190
vt 0.958333 0.666667
vt 0.604167 0.523810
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.1240 0.9923
vn 0.0000 0.1240 -0.9923
vn -0.8321 0.5547 0.0000
vn 0.0000 -0.7071 -0.7071
vn 0.0000 -0.7071 0.7071
vn 0.0000 0.7071 -0.7071
vn 0.0000 0.7071 0.7071
s off
f 2/1/1 3/2/1 1/3/1
f 33/4/2 5/5/2 2/1/2
f 32/6/3 2/1/3 1/7/3
f 35/8/4 3/9/4 4/10/4
f 5/5/5 10/11/5 6/12/5
f 38/13/4 29/14/4 7/15/4
f 7/16/2 10/11/2 9/17/2
f 12/18/2 14/19/2 13/20/2
f 21/21/5 16/22/5 20/23/5
f 35/8/5 37/24/5 31/25/5
f 18/26/3 15/27/3 21/28/3
f 29/29/5 8/30/5 7/16/5
f 21/21/2 19/31/2 18/32/2
f 26/33/4 22/34/4 27/35/4
f 25/36/5 23/37/5 26/38/5
f 25/36/2 27/39/2 28/40/2
f 36/41/3 8/42/3 37/43/3
f 29/29/2 37/24/2 30/44/2
f 31/45/6 1/46/6 3/9/6
f 42/47/1 40/48/1 41/49/1
f 43/50/5 45/51/5 44/52/5
f 40/53/3 44/52/3 41/49/3
f 41/49/2 45/51/2 42/47/2
f 42/47/4 46/54/4 39/55/4
f 39/55/6 43/56/6 40/57/6
f 50/58/1 48/59/1 49/60/1
f 51/61/5 53/62/5 52/63/5
f 47/64/6 51/65/6 48/59/6
f 48/59/7 52/66/7 49/60/7
f 49/60/2 53/62/2 50/58/2
f 50/58/8 54/67/8 47/64/8
f 69/68/1 67/69/1 68/70/1
f 61/71/1 59/72/1 60/73/1
f 57/74/4 62/75/4 58/76/4
f 56/77/3 60/78/3 55/79/3
f 58/80/2 61/81/2 56/82/2
f 55/83/6 59/84/6 57/85/6
f 65/86/4 70/87/4 66/88/4
f 64/89/3 68/90/3 63/91/3
f 66/92/2 69/93/2 64/94/2
f 63/95/6 67/96/6 65/97/6
f 73/98/5 72/99/5 71/100/5
f 77/101/1 75/102/1 76/103/1
f 73/98/4 78/104/4 74/105/4
f 72/106/3 76/103/3 71/107/3
f 77/108/3 79/109/3 81/110/3
f 71/111/6 75/102/6 73/112/6
f 80/113/2 81/110/2 79/109/2
f 77/114/9 82/115/9 78/116/9
f 74/117/5 79/109/5 72/118/5
f 78/119/4 80/113/4 74/120/4
f 85/121/5 84/122/5 83/123/5
f 89/124/1 87/125/1 88/126/1
f 85/127/4 90/128/4 86/129/4
f 84/122/3 88/126/3 83/123/3
f 89/130/3 91/131/3 93/132/3
f 83/133/6 87/125/6 85/134/6
f 92/135/2 93/132/2 91/131/2
f 89/136/9 94/137/9 90/138/9
f 86/139/5 91/131/5 84/140/5
f 90/141/4 92/135/4 86/142/4
f 96/143/6 97/144/6 95/145/6
f 98/146/10 101/147/10 97/148/10
f 102/149/2 99/150/2 101/147/2
f 101/147/11 95/151/11 97/152/11
f 98/153/12 100/154/12 102/149/12
f 105/155/6 104/156/6 103/157/6
f 109/158/11 106/159/11 105/160/11
f 107/161/2 110/162/2 109/158/2
f 103/163/10 109/158/10 105/164/10
f 108/165/13 106/166/13 110/162/13
f 6/12/2 2/1/2 5/5/2
f 6/12/2 35/8/2 4/10/2
f 38/167/5 33/4/5 32/168/5
f 38/167/5 31/25/5 37/24/5
f 112/169/2 113/170/2 111/171/2
f 2/1/1 4/10/1 3/2/1
f 33/4/2 34/172/2 5/5/2
f 32/6/3 33/4/3 2/1/3
f 35/8/4 31/45/4 3/9/4
f 5/5/5 9/17/5 10/11/5
f 9/173/4 5/174/4 7/15/4
f 5/174/4 34/175/4 7/15/4
f 34/175/4 38/13/4 7/15/4
f 7/16/2 8/30/2 10/11/2
f 12/18/2 11/176/2 14/19/2
f 21/21/5 15/177/5 16/22/5
f 35/8/5 36/178/5 37/24/5
f 18/26/3 17/179/3 15/27/3
f 29/29/5 30/44/5 8/30/5
f 21/21/2 20/23/2 19/31/2
f 26/33/4 23/180/4 22/34/4
f 25/36/5 24/181/5 23/37/5
f 25/36/2 26/38/2 27/39/2
f 36/41/3 6/182/3 8/42/3
f 6/182/3 10/183/3 8/42/3
f 8/42/3 30/184/3 37/43/3
f 29/29/2 38/167/2 37/24/2
f 31/45/6 32/185/6 1/46/6
f 42/47/1 39/186/1 40/48/1
f 43/50/5 46/187/5 45/51/5
f 40/53/3 43/188/3 44/52/3
f 41/49/2 44/52/2 45/51/2
f 42/47/4 45/51/4 46/54/4
f 39/55/6 46/54/6 43/56/6
f 50/58/1 47/64/1 48/59/1
f 51/61/5 54/189/5 53/62/5
f 47/64/6 54/190/6 51/65/6
f 48/59/7 51/191/7 52/66/7
f 49/60/2 52/63/2 53/62/2
f 50/58/8 53/192/8 54/67/8
f 69/68/1 70/87/1 67/69/1
f 61/71/1 62/75/1 59/72/1
f 57/74/4 59/193/4 62/75/4
f 56/77/3 61/71/3 60/78/3
f 58/80/2 62/194/2 61/81/2
f 55/83/6 60/195/6 59/84/6
f 65/86/4 67/196/4 70/87/4
f 64/89/3 69/68/3 68/90/3
f 66/92/2 70/197/2 69/93/2
f 63/95/6 68/198/6 67/96/6
f 73/98/5 74/105/5 72/99/5
f 77/101/1 78/104/1 75/102/1
f 73/98/4 75/102/4 78/104/4
f 72/106/3 77/101/3 76/103/3
f 77/108/3 72/99/3 79/109/3
f 71/111/6 76/103/6 75/102/6
f 80/113/2 82/115/2 81/110/2
f 77/114/9 81/110/9 82/115/9
f 74/117/5 80/113/5 79/109/5
f 78/119/4 82/115/4 80/113/4
f 85/121/5 86/142/5 84/122/5
f 89/124/1 90/128/1 87/125/1
f 85/127/4 87/125/4 90/128/4
f 84/122/3 89/124/3 88/126/3
f 89/130/3 84/199/3 91/131/3
f 83/133/6 88/126/6 87/125/6
f 92/135/2 94/137/2 93/132/2
f 89/136/9 93/132/9 94/137/9
f 86/139/5 92/135/5 91/131/5
f 90/141/4 94/137/4 92/135/4
f 96/143/6 98/153/6 97/144/6
f 98/146/10 102/149/10 101/147/10
f 102/149/2 100/154/2 99/150/2
f 101/147/11 99/150/11 95/151/11
f 98/153/12 96/143/12 100/154/12
f 105/155/6 106/166/6 104/156/6
f 109/158/11 110/162/11 106/159/11
f 107/161/2 108/165/2 110/162/2
f 103/163/10 107/161/10 109/158/10
f 108/165/13 104/156/13 106/166/13
f 6/12/2 4/10/2 2/1/2
f 6/12/2 36/178/2 35/8/2
f 38/167/5 34/172/5 33/4/5
f 38/167/5 32/168/5 31/25/5
f 112/169/2 114/200/2 113/170/2

View File

@ -64,6 +64,7 @@
"block.fusionReactorRunning": {"category": "block", "sounds": [{"name": "block/fusionReactorSpin", "stream": false}]},
"block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]},
"block.hephaestusRunning": {"category": "block", "sounds": [{"name": "block/hephaestusRunning", "stream": false}]},
"block.squeakyToy": {"category": "block", "sounds": [{"name": "block/squeakyToy", "stream": false}]},
"door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]},
"door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]},

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B