more capacitors, rail stuff
12
changelog
@ -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
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)));
|
||||
|
||||
@ -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)));
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 });
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 187 B |
|
After Width: | Height: | Size: 280 B |
|
After Width: | Height: | Size: 378 B |
|
After Width: | Height: | Size: 226 B |
|
After Width: | Height: | Size: 555 B |
|
After Width: | Height: | Size: 174 B |
|
After Width: | Height: | Size: 272 B |
|
After Width: | Height: | Size: 327 B |
|
After Width: | Height: | Size: 182 B |