more capacitors, rail stuff

This commit is contained in:
Bob 2023-06-10 16:06:53 +02:00
parent 36655d25b5
commit 6710370f81
29 changed files with 580 additions and 92 deletions

View File

@ -6,12 +6,22 @@
* Mustard gas
* Euphemium capacitor
* Used for schrabidium transmutation, has infinite durability
* Capacitor blocks
* Like batteries without GUIs that are constantly in input/output mode
* Input is on the top of the capacitor block, for output the capacitor has to be placed onto a capaictor bus
* Capacitor buses have one side for the output, multiple buses can be chained up given they are placed in a straight line
* Incentivizes splitting the power grid, looping the output back into the input will yield the same weirdness as combining multiple IO energy storage blocks
* Desh bullet stamps
* Like regular bullets stamps but with infinite durability
## Changed
* Updated russian localization
* Mist now spawns cloud particles with the correct color instead of standard white
* HE artillery shells and rockets now turn blocks into slag
* The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds.
## Fixed
* Fixed the TOXIC trait not respecting protection when applying potion effects
* Fixed some armor recipes only accepting polymer and not bakelite
* Fixed some armor recipes only accepting polymer and not bakelite
* Fixed turbofans not sucking in players
* Fixed NTM skybox not applying to superflat worlds

View File

@ -490,12 +490,10 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return;
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
if(tile == null) return;
x = tile.xCoord;
y = tile.yCoord;
z = tile.zCoord;
x = pos[0];
y = pos[1];
z = pos[2];
EntityPlayer player = event.player;
float interp = event.partialTicks;
@ -503,9 +501,11 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) interp;
double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp;
float exp = 0.002F;
int meta = world.getBlockMetadata(x, y, z);
ICustomBlockHighlight.setup();
for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(tile.getBlockMetadata() - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1);
for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(meta - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1);
ICustomBlockHighlight.cleanup();
}
}

View File

@ -760,6 +760,8 @@ public class ModBlocks {
public static Block capacitor_bus;
public static Block capacitor_copper;
public static Block capacitor_gold;
public static Block capacitor_niobium;
public static Block capacitor_tantalium;
public static Block machine_coal_off;
public static Block machine_coal_on;
@ -1886,6 +1888,8 @@ public class ModBlocks {
capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper");
capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block");
capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium");
capacitor_tantalium = new MachineCapacitor(Material.iron, 100_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium");
machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
@ -3203,6 +3207,8 @@ public class ModBlocks {
register(capacitor_bus);
register(capacitor_copper);
register(capacitor_gold);
register(capacitor_niobium);
register(capacitor_tantalium);
GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName());
GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName());
GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName());

View File

@ -3,8 +3,11 @@ package com.hbm.blocks.machine;
import java.util.ArrayList;
import java.util.List;
import org.lwjgl.input.Keyboard;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.IPersistentInfoProvider;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.INBTPacketReceiver;
@ -33,7 +36,7 @@ import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider {
public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider, ITooltipProvider {
@SideOnly(Side.CLIENT) public IIcon iconTop;
@SideOnly(Side.CLIENT) public IIcon iconSide;
@ -93,6 +96,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
int charge = (int) Math.floor(percent * 10_000D);
int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8);
text.add("&[" + color + "&]" + (charge / 100D) + "%");
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + "+" + BobMathUtil.getShortNumber(battery.powerReceived) + "HE/t");
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + "-" + BobMathUtil.getShortNumber(battery.powerSent) + "HE/t");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
@ -101,6 +106,18 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(persistentTag.getLong("maxPower")) + "HE");
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) {
for(String s : I18nUtil.resolveKeyArray("tile.capacitor.desc")) list.add(EnumChatFormatting.YELLOW + s);
} else {
list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" +
EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" +
EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info");
}
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
@ -132,6 +149,9 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
public long power;
protected long maxPower;
public long prevPower;
public long powerReceived;
public long powerSent;
public TileEntityCapacitor() { }
@ -143,6 +163,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
public void updateEntity() {
if(!worldObj.isRemote) {
long gain = power - prevPower;
ForgeDirection opp = ForgeDirection.getOrientation(this.getBlockMetadata());
ForgeDirection dir = opp.getOpposite();
@ -165,23 +187,32 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
pos = pos.offset(current);
}
long preSend = power;
if(pos != null && last != null) {
this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ());
this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), last);
}
long sent = preSend - power;
this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord+ opp.offsetY, zCoord + opp.offsetZ, opp);
NBTTagCompound data = new NBTTagCompound();
data.setLong("power", power);
data.setLong("maxPower", maxPower);
data.setLong("rec", gain);
data.setLong("sent", sent);
INBTPacketReceiver.networkPack(this, data, 15);
this.prevPower = power;
}
}
@Override
public void networkUnpack(NBTTagCompound nbt) {
this.power = nbt.getLong("power");
this.maxPower = nbt.getLong("maxPower");
this.powerReceived = nbt.getLong("rec");
this.powerSent = nbt.getLong("sent");
}
@Override

View File

@ -1,5 +1,8 @@
package com.hbm.blocks.machine;
import java.util.List;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings;
import api.hbm.energy.IEnergyConnectorBlock;
@ -10,13 +13,14 @@ import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock {
public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock, ITooltipProvider {
@SideOnly(Side.CLIENT) private IIcon topIcon;
@ -47,4 +51,9 @@ public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock
ForgeDirection busDir = ForgeDirection.getOrientation(meta);
return dir == busDir;
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
this.addStandardInfo(stack, player, list, ext);
}
}

View File

@ -100,7 +100,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM {
moveAngle -= angleOvershoot;
double lengthOvershoot = angleOvershoot * length90Deg / 90D;
info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle);
return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius);
return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius);
}
if(effAngle < 0) {
@ -108,13 +108,13 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM {
moveAngle -= angleOvershoot;
double lengthOvershoot = angleOvershoot * length90Deg / 90D;
info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle);
return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y, axisZ -rot.offsetZ * turnRadius);
return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y + 0.1875, axisZ -rot.offsetZ * turnRadius);
}
double radianChange = angularChange * Math.PI / 180D;
dist.rotateAroundY((float) radianChange);
return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord);
return Vec3.createVectorHelper(axisX + dist.xCoord, y + 0.1875, axisZ + dist.zCoord);
}
@Override

View File

@ -19,6 +19,11 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM {
public RailStandardRamp() {
super(Material.iron);
this.bounding.add(AxisAlignedBB.getBoundingBox(-2.5, 0.0, -1.5, -1.5, 0.1, 0.5));
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5, 0.0, -1.5, -0.5, 0.3, 0.5));
this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5, 0.0, -1.5, 0.5, 0.5, 0.5));
this.bounding.add(AxisAlignedBB.getBoundingBox(0.5, 0.0, -1.5, 1.5, 0.7, 0.5));
this.bounding.add(AxisAlignedBB.getBoundingBox(1.5, 0.0, -1.5, 2.5, 0.9, 0.5));
}
@Override
@ -92,7 +97,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM {
}
double dist = (cX + 0.5 - targetX + 2.5) / 5;
vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3);
vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1);
vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1) + 0.1875;
vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5;
info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed));
info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), cY + (motionX * speed > 0 ^ dir == Library.POS_X ? 1 : 0), cZ));
@ -107,7 +112,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM {
}
double dist = (cZ + 0.5 - targetZ + 2.5) / 5;
vec.xCoord = cX + 0.5 + rot.offsetX * 0.5;
vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1);
vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1) + 0.1875;
vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3);
info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed));
info.pos(new BlockPos(cX, cY + (motionZ * speed > 0 ^ dir == Library.POS_Z ? 1 : 0), cZ + (motionZ * speed > 0 ? 3 : -3)));

View File

@ -90,7 +90,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM {
info.yaw(90F);
}
vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3);
vec.yCoord = y;
vec.yCoord = y + 0.1875;
vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5;
info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed));
info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ));
@ -104,7 +104,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM {
info.yaw(180F);
}
vec.xCoord = cX + 0.5 + rot.offsetX * 0.5;
vec.yCoord = y;
vec.yCoord = y + 0.1875;
vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3);
info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed));
info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3)));

View File

@ -47,6 +47,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay {
private double trainYaw;
private double trainPitch;
private float movementYaw;
private float movementPitch;
@SideOnly(Side.CLIENT) private double velocityX;
@SideOnly(Side.CLIENT) private double velocityY;
@SideOnly(Side.CLIENT) private double velocityZ;
@ -179,6 +180,9 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay {
}
} else {
PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + this.rotationPitch).color(EnumChatFormatting.RED).flush(), 1),
new TargetPoint(dimension, posX, posY + 1, posZ, 50));
if(this.coupledFront != null && this.coupledFront.isDead) {
this.coupledFront = null;
@ -393,11 +397,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay {
this.motionY = this.velocityY;
this.motionZ = this.velocityZ;
this.trainYaw = this.movementYaw;
this.trainPitch = this.movementPitch;
}
@SideOnly(Side.CLIENT)
public void setVelocity(double mX, double mY, double mZ) {
this.movementYaw = (float) this.motionX * 360F;
this.movementPitch = (float) this.motionY * 360F;
this.velocityX = this.motionX = mX;
this.velocityY = this.motionY = mY;
this.velocityZ = this.motionZ = mZ;
@ -614,7 +620,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay {
Vec3 nextLoc = moving.getCouplingPos(nextCouple);
Vec3 delta = Vec3.createVectorHelper(prevLoc.xCoord - nextLoc.xCoord, 0, prevLoc.zCoord - nextLoc.zCoord);
double len = delta.lengthVector();
len *= 0.75; //suspension, causes movements to be less rigid
//len *= 0.25; //suspension, causes movements to be less rigid
len = (len / (0.5D / (len * len) + 1D)); //smart suspension
BlockPos anchor = new BlockPos(moving.posX, moving.posY, moving.posZ);
Vec3 trainPos = Vec3.createVectorHelper(moving.posX, moving.posY, moving.posZ);
float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc);
@ -740,15 +747,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay {
EntityRailCarBase first = this.trains[0];
for(int i = forward ? 0 : this.trains.length - 1; forward ? i < this.trains.length : i >= 0; i += forward ? 1 : -1) {
for(int i = !forward ? 0 : this.trains.length - 1; !forward ? i < this.trains.length : i >= 0; i += !forward ? 1 : -1) {
EntityRailCarBase current = this.trains[i];
if(previous == null) {
PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + current.getClass() + " " + origSpeed).color(EnumChatFormatting.RED).flush(), 1),
new TargetPoint(current.dimension, current.posX, current.posY + 1, current.posZ, 50));
boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null);
int sigNum = inReverse ? -1 : 1;
int sigNum = inReverse ? 1 : -1;
BlockPos anchor = current.getCurrentAnchorPos();
Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE));
@ -786,7 +791,10 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay {
current.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D;
current.prevRotationYaw = current.rotationYaw;
current.rotationYaw = current.movementYaw = generateYaw(frontPos, backPos);
Vec3 delta = Vec3.createVectorHelper(frontPos.xCoord - backPos.xCoord, frontPos.yCoord - backPos.yCoord, frontPos.zCoord - backPos.zCoord);
current.rotationPitch = current.movementPitch = (float) (Math.asin(delta.yCoord / delta.lengthVector()) * 180D / Math.PI);
current.motionX = current.rotationYaw / 360D; // hijacking this crap for easy syncing
current.motionY = current.rotationPitch / 360D;
current.velocityChanged = true;
}
}

View File

@ -173,6 +173,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo {
seat.setDead();
} else {
Vec3 rot = seats[i];
rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180));
rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180));
double x = renderX + rot.xCoord;
double y = renderY + rot.yCoord;
@ -188,6 +189,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo {
public void updateRiderPosition() {
Vec3 offset = getRiderSeatPosition();
offset.rotateAroundX((float) (this.rotationPitch * Math.PI / 180));
offset.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180));
if(this.riddenByEntity != null) {
@ -271,6 +273,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo {
//mmhmhmhm silky smooth
int index = this.dataWatcher.getWatchableObjectInt(4);
Vec3 rot = this.train.getPassengerSeats()[index];
rot.rotateAroundX((float) (train.rotationPitch * Math.PI / 180));
rot.rotateAroundY((float) (-train.rotationYaw * Math.PI / 180));
double x = train.renderX + rot.xCoord;
double y = train.renderY + rot.yCoord;

View File

@ -281,6 +281,11 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated });
addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_bus, 1), new Object[] { "PIP", "PIP", "PIP", 'P', ModItems.plate_polymer, 'I', MINGRADE.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_copper, 1), new Object[] { "PPP", "PCP", "WWW", 'P', STEEL.plate(), 'C', CU.block(), 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_gold, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_PLASTIC.ingot(), 'C', GOLD.block(), 'W', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace });
addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace });
addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off });

View File

@ -13,10 +13,6 @@ import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockAshes;
import com.hbm.blocks.rail.IRailNTM;
import com.hbm.blocks.rail.IRailNTM.MoveContext;
import com.hbm.blocks.rail.IRailNTM.RailCheckType;
import com.hbm.blocks.rail.IRailNTM.RailContext;
import com.hbm.config.GeneralConfig;
import com.hbm.entity.effect.EntityNukeTorex;
import com.hbm.entity.mob.EntityHunterChopper;
@ -70,7 +66,6 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace;
import com.hbm.util.I18nUtil;
import com.hbm.util.ItemStackUtil;
import com.hbm.util.LoggingUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.wiaj.GuiWorldInAJar;
import com.hbm.wiaj.cannery.CanneryBase;
import com.hbm.wiaj.cannery.Jars;
@ -953,22 +948,26 @@ public class ModEventHandlerClient {
if(event.phase == Phase.START && GeneralConfig.enableSkyboxes) {
World world = Minecraft.getMinecraft().theWorld;
if(world == null) return;
if(world != null && world.provider instanceof WorldProviderSurface) {
IRenderHandler sky = world.provider.getSkyRenderer();
IRenderHandler sky = world.provider.getSkyRenderer();
if(world.provider instanceof WorldProviderSurface) {
if(ImpactWorldHandler.getDustForClient(world) > 0 || ImpactWorldHandler.getFireForClient(world) > 0) {
//using a chainloader isn't necessary since none of the sky effects should render anyway
if(!(sky instanceof RenderNTMSkyboxImpact)) {
world.provider.setSkyRenderer(new RenderNTMSkyboxImpact());
return;
}
} else {
if(!(sky instanceof RenderNTMSkyboxChainloader)) {
world.provider.setSkyRenderer(new RenderNTMSkyboxChainloader(sky));
}
}
}
if(world.provider.dimensionId == 0) {
if(!(sky instanceof RenderNTMSkyboxChainloader)) {
world.provider.setSkyRenderer(new RenderNTMSkyboxChainloader(sky));
}
}
}

View File

@ -37,7 +37,11 @@ public class RenderTrainCargoTram extends Render {
float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720;
GL11.glRotated(-yawInterp, 0, 1, 0);
GL11.glRotated(-entity.rotationPitch, 0, 0, 1);
float pitch = entity.rotationPitch;
float prevPitch = entity.prevRotationPitch;
float pitchInterp = prevPitch + (pitch - prevPitch) * interp;
GL11.glRotated(-pitchInterp, 1, 0, 0);
GL11.glDisable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.train_tram);

View File

@ -3,6 +3,7 @@ package com.hbm.render.entity.item;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.train.EntityRailCarBase;
import com.hbm.main.ResourceManager;
import net.minecraft.client.renderer.entity.Render;
@ -18,6 +19,18 @@ public class RenderTrainCargoTramTrailer extends Render {
@Override
public void doRender(Entity entity, double x, double y, double z, float swing, float interp) {
GL11.glPushMatrix();
EntityRailCarBase train = (EntityRailCarBase) entity;
double iX = train.prevPosX + (train.posX - train.prevPosX) * interp;
double iY = train.prevPosY + (train.posY - train.prevPosY) * interp;
double iZ = train.prevPosZ + (train.posZ - train.prevPosZ) * interp;
double rX = train.lastRenderX + (train.renderX - train.lastRenderX) * interp;
double rY = train.lastRenderY + (train.renderY - train.lastRenderY) * interp;
double rZ = train.lastRenderZ + (train.renderZ - train.lastRenderZ) * interp;
x -= iX - rX;
y -= iY - rY;
z -= iZ - rZ;
GL11.glTranslated(x, y, z);
float yaw = entity.rotationYaw;
@ -29,7 +42,11 @@ public class RenderTrainCargoTramTrailer extends Render {
float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720;
GL11.glRotated(-yawInterp, 0, 1, 0);
GL11.glRotated(-entity.rotationPitch, 0, 0, 1);
float pitch = entity.rotationPitch;
float prevPitch = entity.prevRotationPitch;
float pitchInterp = prevPitch + (pitch - prevPitch) * interp;
GL11.glRotated(-pitchInterp, 1, 0, 0);
GL11.glDisable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.tram_trailer);

View File

@ -326,9 +326,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements
* Otherwise this could lead to desync since the motion is never sent form the server
*/
if(tank.getFill() > 0 && !MainRegistry.proxy.me().capabilities.isCreativeMode) {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata());
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
double minX = this.xCoord + 0.5 - dir.offsetX * 3.5 - rot.offsetX * 1.5;
double maxX = this.xCoord + 0.5 - dir.offsetX * 19.5 + rot.offsetX * 1.5;
double minZ = this.zCoord + 0.5 - dir.offsetZ * 3.5 - rot.offsetZ * 1.5;

View File

@ -16,7 +16,6 @@ import net.minecraft.block.BlockWeb;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemDoor;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;

View File

@ -3586,6 +3586,12 @@ tile.c4.name=C4
tile.cable_detector.name=Redstone-Stromschalter
tile.cable_diode.name=Rote Kupferdiode
tile.cable_switch.name=Stromschalter
tile.capacitor_bus.name=Kondensator-Bus
tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie aneinandergereit werden
tile.capacitor_copper.name=Kupferkondensator
tile.capacitor_gold.name=Goldkondensator
tile.capacitor_niobium.name=Niobkondensator
tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus
tile.charge_c4.name=Abrissladung
tile.charge_dynamite.name=Zeitbombe
tile.charge_miner.name=Bergbauladung mit Zeitzünder

View File

@ -4404,6 +4404,12 @@ tile.c4.name=C-4
tile.cable_detector.name=Redstone Power Switch
tile.cable_diode.name=Red Copper Diode
tile.cable_switch.name=Power Switch
tile.capacitor_bus.name=Capacitor Bus
tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line
tile.capacitor_copper.name=Copper Capacitor
tile.capacitor_gold.name=Golden Capacitor
tile.capacitor_niobium.name=Niobium Capacitor
tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus
tile.charge_c4.name=Demolition Charge
tile.charge_dynamite.name=Time Bomb
tile.charge_miner.name=Timed Mining Charge

View File

@ -13,10 +13,10 @@ v -1.000000 0.700000 -0.812500
v 1.000000 0.700000 -0.812500
v -1.000000 0.700000 -1.187500
v 1.000000 0.700000 -1.187500
v -1.000000 0.800000 -1.812500
v 1.000000 0.800000 -1.812500
v -1.000000 0.800000 -2.187500
v 1.000000 0.800000 -2.187500
v -1.000000 0.900000 -1.812500
v 1.000000 0.900000 -1.812500
v -1.000000 0.900000 -2.187500
v 1.000000 0.900000 -2.187500
v -1.000000 0.100000 2.187500
v 1.000000 0.100000 2.187500
v -1.000000 0.100000 1.812500
@ -29,10 +29,10 @@ v -1.000000 0.762500 -1.187500
v -1.000000 0.762500 -0.812500
v 1.000000 0.762500 -0.812500
v 1.000000 0.762500 -1.187500
v -1.000000 0.862500 -2.187500
v -1.000000 0.862500 -1.812500
v 1.000000 0.862500 -1.812500
v 1.000000 0.862500 -2.187500
v -1.000000 0.962500 -2.187500
v -1.000000 0.962500 -1.812500
v 1.000000 0.962500 -1.812500
v 1.000000 0.962500 -2.187500
v -1.000000 0.162500 1.812500
v -1.000000 0.162500 2.187500
v 1.000000 0.162500 2.187500
@ -121,22 +121,22 @@ v -0.937500 0.825000 -0.937500
v -0.625000 0.825000 -0.937500
v -0.937500 0.825000 -1.062500
v -0.625000 0.825000 -1.062500
v 0.625000 0.862500 -1.937500
v 0.937500 0.862500 -1.937500
v 0.625000 0.862500 -2.062500
v 0.937500 0.862500 -2.062500
v 0.625000 0.925000 -1.937500
v 0.937500 0.925000 -1.937500
v 0.625000 0.925000 -2.062500
v 0.937500 0.925000 -2.062500
v -0.937500 0.862500 -1.937500
v -0.625000 0.862500 -1.937500
v -0.937500 0.862500 -2.062500
v -0.625000 0.862500 -2.062500
v -0.937500 0.925000 -1.937500
v -0.625000 0.925000 -1.937500
v -0.937500 0.925000 -2.062500
v -0.625000 0.925000 -2.062500
v 0.625000 0.962500 -1.937500
v 0.937500 0.962500 -1.937500
v 0.625000 0.962500 -2.062500
v 0.937500 0.962500 -2.062500
v 0.625000 1.025000 -1.937500
v 0.937500 1.025000 -1.937500
v 0.625000 1.025000 -2.062500
v 0.937500 1.025000 -2.062500
v -0.937500 0.962500 -1.937500
v -0.625000 0.962500 -1.937500
v -0.937500 0.962500 -2.062500
v -0.625000 0.962500 -2.062500
v -0.937500 1.025000 -1.937500
v -0.625000 1.025000 -1.937500
v -0.937500 1.025000 -2.062500
v -0.625000 1.025000 -2.062500
v -0.812500 0.862500 -1.500000
v -0.812500 0.662500 -0.500000
v -0.812500 0.462500 0.500000
@ -169,6 +169,86 @@ v -0.750000 0.987500 -1.500000
v -0.750000 0.787500 -0.500000
v -0.750000 0.587500 0.500000
v -0.750000 0.387500 1.500000
v 0.625000 0.900000 -1.875000
v 0.875000 0.900000 -1.875000
v 0.625000 0.900000 -2.125000
v 0.875000 0.900000 -2.125000
v 0.625000 -0.037500 -2.125000
v 0.625000 -0.037500 -1.875000
v 0.875000 -0.037500 -1.875000
v 0.875000 -0.037500 -2.125000
v -0.875000 0.900000 -1.875000
v -0.625000 0.900000 -1.875000
v -0.875000 0.900000 -2.125000
v -0.625000 0.900000 -2.125000
v -0.875000 -0.037500 -2.125000
v -0.875000 -0.037500 -1.875000
v -0.625000 -0.037500 -1.875000
v -0.625000 -0.037500 -2.125000
v 0.625000 0.700000 -0.875000
v 0.875000 0.700000 -0.875000
v 0.625000 0.700000 -1.125000
v 0.875000 0.700000 -1.125000
v 0.625000 -0.050000 -1.125000
v 0.625000 -0.050000 -0.875000
v 0.875000 -0.050000 -0.875000
v 0.875000 -0.050000 -1.125000
v -0.875000 0.700000 -0.875000
v -0.625000 0.700000 -0.875000
v -0.875000 0.700000 -1.125000
v -0.625000 0.700000 -1.125000
v -0.875000 -0.050000 -1.125000
v -0.875000 -0.050000 -0.875000
v -0.625000 -0.050000 -0.875000
v -0.625000 -0.050000 -1.125000
v 0.625000 0.500000 0.125000
v 0.875000 0.500000 0.125000
v 0.625000 0.500000 -0.125000
v 0.875000 0.500000 -0.125000
v 0.625000 0.000000 -0.125000
v 0.625000 0.000000 0.125000
v 0.875000 0.000000 0.125000
v 0.875000 0.000000 -0.125000
v -0.875000 0.500000 0.125000
v -0.625000 0.500000 0.125000
v -0.875000 0.500000 -0.125000
v -0.625000 0.500000 -0.125000
v -0.875000 0.000000 -0.125000
v -0.875000 0.000000 0.125000
v -0.625000 0.000000 0.125000
v -0.625000 0.000000 -0.125000
v 0.625000 0.300000 1.125000
v 0.875000 0.300000 1.125000
v 0.625000 0.300000 0.875000
v 0.875000 0.300000 0.875000
v 0.625000 -0.012500 0.875000
v 0.625000 -0.012500 1.125000
v 0.875000 -0.012500 1.125000
v 0.875000 -0.012500 0.875000
v -0.875000 0.300000 1.125000
v -0.625000 0.300000 1.125000
v -0.875000 0.300000 0.875000
v -0.625000 0.300000 0.875000
v -0.875000 -0.012500 0.875000
v -0.875000 -0.012500 1.125000
v -0.625000 -0.012500 1.125000
v -0.625000 -0.012500 0.875000
v 0.625000 0.100000 2.125000
v 0.875000 0.100000 2.125000
v 0.625000 0.100000 1.875000
v 0.875000 0.100000 1.875000
v 0.625000 -0.025000 1.875000
v 0.625000 -0.025000 2.125000
v 0.875000 -0.025000 2.125000
v 0.875000 -0.025000 1.875000
v -0.875000 0.100000 2.125000
v -0.625000 0.100000 2.125000
v -0.875000 0.100000 1.875000
v -0.625000 0.100000 1.875000
v -0.875000 -0.025000 1.875000
v -0.875000 -0.025000 2.125000
v -0.625000 -0.025000 2.125000
v -0.625000 -0.025000 1.875000
vt -0.000000 0.000000
vt 0.187500 1.000000
vt -0.000000 1.000000
@ -471,6 +551,156 @@ vt 0.593750 0.156250
vt 0.593750 0.656250
vt 0.593750 0.156250
vt 0.593750 0.656250
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.156250 0.468750
vt 0.031250 0.968750
vt 0.156250 0.968750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.843750
vt 0.156250 0.843750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.156250 0.468750
vt 0.031250 0.718750
vt 0.156250 0.718750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.156250 0.468750
vt 0.031250 0.625000
vt 0.156250 0.625000
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.031250 0.968750
vt 0.156250 0.843750
vt 0.031250 0.843750
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.156250 0.468750
vt 0.031250 0.531250
vt 0.156250 0.531250
vt 0.406250 -0.000000
vt 0.187500 1.000000
vt 0.187500 1.000000
@ -500,6 +730,56 @@ vt 0.593750 0.656250
vt 0.593750 0.656250
vt 0.593750 0.656250
vt 0.593750 0.656250
vt 0.156250 0.968750
vt 0.156250 0.968750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.156250 0.968750
vt 0.156250 0.968750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.156250 0.968750
vt 0.156250 0.968750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.156250 0.968750
vt 0.156250 0.968750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.156250 0.968750
vt 0.156250 0.968750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vt 0.031250 0.468750
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn -1.0000 0.0000 0.0000
@ -633,6 +913,56 @@ f 44/267/5 152/95/5 144/265/5
f 144/270/5 151/286/5 143/268/5
f 143/273/5 150/283/5 142/271/5
f 142/276/5 149/280/5 141/274/5
f 181/303/2 183/304/2 182/305/2
f 173/306/2 175/307/2 174/308/2
f 176/309/6 171/310/6 172/311/6
f 174/312/4 170/313/4 169/314/4
f 175/315/5 172/316/5 170/317/5
f 173/318/3 169/319/3 171/320/3
f 184/321/6 179/322/6 180/323/6
f 182/324/4 178/325/4 177/326/4
f 183/327/5 180/328/5 178/329/5
f 181/330/3 177/331/3 179/332/3
f 197/333/2 199/334/2 198/335/2
f 189/336/2 191/337/2 190/338/2
f 192/339/6 187/340/6 188/341/6
f 190/342/4 186/343/4 185/344/4
f 191/345/5 188/346/5 186/347/5
f 189/348/3 185/349/3 187/350/3
f 200/351/6 195/352/6 196/353/6
f 198/354/4 194/355/4 193/356/4
f 199/357/5 196/358/5 194/359/5
f 197/360/3 193/361/3 195/362/3
f 213/363/2 215/364/2 214/365/2
f 205/366/2 207/367/2 206/368/2
f 208/369/6 203/370/6 204/371/6
f 206/372/4 202/373/4 201/374/4
f 207/375/5 204/376/5 202/377/5
f 205/378/3 201/379/3 203/380/3
f 216/381/6 211/382/6 212/383/6
f 214/384/4 210/385/4 209/386/4
f 215/387/5 212/388/5 210/389/5
f 213/390/3 209/391/3 211/392/3
f 229/393/2 231/394/2 230/395/2
f 221/396/2 223/397/2 222/398/2
f 224/399/6 219/400/6 220/401/6
f 222/402/4 218/403/4 217/404/4
f 223/405/5 220/406/5 218/407/5
f 221/408/3 217/409/3 219/410/3
f 232/411/6 227/412/6 228/413/6
f 230/414/4 226/415/4 225/416/4
f 231/417/5 228/418/5 226/419/5
f 229/420/3 225/421/3 227/422/3
f 245/423/2 247/424/2 246/425/2
f 237/426/2 239/427/2 238/428/2
f 240/429/6 235/430/6 236/431/6
f 238/432/4 234/433/4 233/434/4
f 239/435/5 236/436/5 234/437/5
f 237/438/3 233/439/3 235/440/3
f 248/441/6 243/442/6 244/443/6
f 246/444/4 242/445/4 241/446/4
f 247/447/5 244/448/5 242/449/5
f 245/450/3 241/451/3 243/452/3
f 2/1/1 1/70/1 4/2/1
f 7/4/2 8/71/2 6/5/2
f 11/7/2 12/45/2 10/8/2
@ -643,38 +973,38 @@ f 27/19/1 28/44/1 25/20/1
f 31/22/1 32/74/1 29/23/1
f 35/25/1 36/49/1 33/26/1
f 39/28/1 40/79/1 37/29/1
f 17/31/3 34/303/3 33/32/3
f 10/34/4 27/304/4 26/35/4
f 18/37/4 35/305/4 34/38/4
f 12/40/5 28/306/5 27/41/5
f 20/42/5 36/307/5 35/43/5
f 17/31/3 34/453/3 33/32/3
f 10/34/4 27/454/4 26/35/4
f 18/37/4 35/455/4 34/38/4
f 12/40/5 28/456/5 27/41/5
f 20/42/5 36/457/5 35/43/5
f 11/7/6 25/20/6 28/44/6
f 5/46/3 3/308/3 4/47/3
f 5/46/3 3/458/3 4/47/3
f 19/13/6 33/26/6 36/49/6
f 13/51/3 30/309/3 29/52/3
f 6/54/4 2/310/4 3/55/4
f 21/57/3 38/311/3 37/58/3
f 14/60/4 31/312/4 30/61/4
f 8/63/5 1/313/5 2/64/5
f 22/65/4 39/314/4 38/66/4
f 16/68/5 32/315/5 31/69/5
f 13/51/3 30/459/3 29/52/3
f 6/54/4 2/460/4 3/55/4
f 21/57/3 38/461/3 37/58/3
f 14/60/4 31/462/4 30/61/4
f 8/63/5 1/463/5 2/64/5
f 22/65/4 39/464/4 38/66/4
f 16/68/5 32/465/5 31/69/5
f 7/4/6 4/2/6 1/70/6
f 24/72/5 40/316/5 39/73/5
f 24/72/5 40/466/5 39/73/5
f 15/10/6 29/23/6 32/74/6
f 9/76/3 26/317/3 25/77/3
f 9/76/3 26/467/3 25/77/3
f 23/16/6 37/29/6 40/79/6
f 141/81/5 149/277/5 46/82/5
f 145/84/3 47/247/3 43/85/3
f 153/87/3 49/318/3 51/88/3
f 46/90/4 51/319/4 49/91/4
f 153/87/3 49/468/3 51/88/3
f 46/90/4 51/469/4 49/91/4
f 48/93/7 52/288/7 160/94/7
f 42/83/8 49/320/8 153/96/8
f 44/97/6 50/321/6 52/98/6
f 42/83/8 49/470/8 153/96/8
f 44/97/6 50/471/6 52/98/6
f 53/100/5 55/246/5 165/101/5
f 45/103/7 56/258/7 168/104/7
f 43/106/8 53/100/8 161/102/8
f 47/108/6 55/322/6 53/109/6
f 41/111/4 54/323/4 56/112/4
f 47/108/6 55/472/6 53/109/6
f 41/111/4 54/473/4 56/112/4
f 61/114/3 63/117/3 59/115/3
f 63/117/6 64/123/6 60/118/6
f 62/120/4 61/114/4 57/121/4
@ -737,18 +1067,18 @@ f 164/257/5 168/104/5 56/258/5
f 163/259/5 167/255/5 168/260/5
f 162/261/5 166/252/5 167/262/5
f 161/263/5 165/249/5 166/264/5
f 144/265/8 156/324/8 50/266/8
f 143/268/8 155/325/8 156/269/8
f 142/271/8 154/326/8 155/272/8
f 141/274/8 153/327/8 154/275/8
f 144/265/8 156/474/8 50/266/8
f 143/268/8 155/475/8 156/269/8
f 142/271/8 154/476/8 155/272/8
f 141/274/8 153/477/8 154/275/8
f 149/277/7 157/89/7 51/88/7
f 150/278/7 158/294/7 157/279/7
f 151/281/7 159/292/7 158/282/7
f 152/284/7 160/290/7 159/285/7
f 50/287/3 156/328/3 160/94/3
f 156/289/3 155/329/3 159/285/3
f 155/291/3 154/330/3 158/282/3
f 154/293/3 153/331/3 157/279/3
f 50/287/3 156/478/3 160/94/3
f 156/289/3 155/479/3 159/285/3
f 155/291/3 154/480/3 158/282/3
f 154/293/3 153/481/3 157/279/3
f 45/103/3 148/105/3 140/295/3
f 148/254/3 147/256/3 139/297/3
f 147/251/3 146/253/3 138/299/3
@ -757,3 +1087,53 @@ f 44/267/5 48/93/5 152/95/5
f 144/270/5 152/284/5 151/286/5
f 143/273/5 151/281/5 150/283/5
f 142/276/5 150/278/5 149/280/5
f 181/303/2 184/482/2 183/304/2
f 173/306/2 176/483/2 175/307/2
f 176/309/6 173/484/6 171/310/6
f 174/312/4 175/485/4 170/313/4
f 175/315/5 176/486/5 172/316/5
f 173/318/3 174/487/3 169/319/3
f 184/321/6 181/488/6 179/322/6
f 182/324/4 183/489/4 178/325/4
f 183/327/5 184/490/5 180/328/5
f 181/330/3 182/491/3 177/331/3
f 197/333/2 200/492/2 199/334/2
f 189/336/2 192/493/2 191/337/2
f 192/339/6 189/494/6 187/340/6
f 190/342/4 191/495/4 186/343/4
f 191/345/5 192/496/5 188/346/5
f 189/348/3 190/497/3 185/349/3
f 200/351/6 197/498/6 195/352/6
f 198/354/4 199/499/4 194/355/4
f 199/357/5 200/500/5 196/358/5
f 197/360/3 198/501/3 193/361/3
f 213/363/2 216/502/2 215/364/2
f 205/366/2 208/503/2 207/367/2
f 208/369/6 205/504/6 203/370/6
f 206/372/4 207/505/4 202/373/4
f 207/375/5 208/506/5 204/376/5
f 205/378/3 206/507/3 201/379/3
f 216/381/6 213/508/6 211/382/6
f 214/384/4 215/509/4 210/385/4
f 215/387/5 216/510/5 212/388/5
f 213/390/3 214/511/3 209/391/3
f 229/393/2 232/512/2 231/394/2
f 221/396/2 224/513/2 223/397/2
f 224/399/6 221/514/6 219/400/6
f 222/402/4 223/515/4 218/403/4
f 223/405/5 224/516/5 220/406/5
f 221/408/3 222/517/3 217/409/3
f 232/411/6 229/518/6 227/412/6
f 230/414/4 231/519/4 226/415/4
f 231/417/5 232/520/5 228/418/5
f 229/420/3 230/521/3 225/421/3
f 245/423/2 248/522/2 247/424/2
f 237/426/2 240/523/2 239/427/2
f 240/429/6 237/524/6 235/430/6
f 238/432/4 239/525/4 234/433/4
f 239/435/5 240/526/5 236/436/5
f 237/438/3 238/527/3 233/439/3
f 248/441/6 245/528/6 243/442/6
f 246/444/4 247/529/4 242/445/4
f 247/447/5 248/530/5 244/448/5
f 245/450/3 246/531/3 241/451/3

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B