mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
do you come from a vegetmite sandwich?
This commit is contained in:
parent
84326bedb4
commit
79351bbd0a
@ -1,6 +1,12 @@
|
||||
## Added
|
||||
* Creative klystron
|
||||
* Always outputs as much KyU as the most demanding existing recipe needs
|
||||
|
||||
## Changed
|
||||
* Updated chinese and russian localization
|
||||
* Increased density of osmiridium ores in tom craters considerably (from 1:500 to 1:200)
|
||||
* Added a new server setting called `ENABLE_MKU` to toggle contageon effects, spread and save (part of `/ntmserver`)
|
||||
* Extended logging now logs uses of MKU
|
||||
|
||||
## Fixed
|
||||
* Fixed missing battery socket tooltip
|
||||
@ -8,4 +14,5 @@
|
||||
* Fixed FEnSU not immediately applying the muffler effect when used
|
||||
* Fixed fluid counter valve not having a recipe
|
||||
* Fixed issue where `/ntmreload` would break registered fluids from addons
|
||||
* Fixed yet another issue regarding crates
|
||||
* Fixed yet another issue regarding crates
|
||||
* Fixed RBMK fluid heaters losing their tank types when unable to boil anything
|
||||
@ -13,6 +13,7 @@ import com.hbm.blocks.machine.fusion.MachineFusionBreeder;
|
||||
import com.hbm.blocks.machine.fusion.MachineFusionCollector;
|
||||
import com.hbm.blocks.machine.fusion.MachineFusionCoupler;
|
||||
import com.hbm.blocks.machine.fusion.MachineFusionKlystron;
|
||||
import com.hbm.blocks.machine.fusion.MachineFusionKlystronCreative;
|
||||
import com.hbm.blocks.machine.fusion.MachineFusionMHDT;
|
||||
import com.hbm.blocks.machine.fusion.MachineFusionTorus;
|
||||
import com.hbm.blocks.machine.pile.*;
|
||||
@ -901,6 +902,7 @@ public class ModBlocks {
|
||||
public static Block fusion_component;
|
||||
public static Block fusion_torus;
|
||||
public static Block fusion_klystron;
|
||||
public static Block fusion_klystron_creative;
|
||||
public static Block fusion_breeder;
|
||||
public static Block fusion_collector;
|
||||
public static Block fusion_boiler;
|
||||
@ -2039,6 +2041,7 @@ public class ModBlocks {
|
||||
fusion_component = new BlockFusionComponent().setBlockName("fusion_component").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_component");
|
||||
fusion_torus = new MachineFusionTorus().setBlockName("fusion_torus").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
fusion_klystron = new MachineFusionKlystron().setBlockName("fusion_klystron").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
fusion_klystron_creative = new MachineFusionKlystronCreative().setBlockName("fusion_klystron_creative").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
fusion_breeder = new MachineFusionBreeder().setBlockName("fusion_breeder").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
fusion_collector = new MachineFusionCollector().setBlockName("fusion_collector").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
fusion_boiler = new MachineFusionBoiler().setBlockName("fusion_boiler").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
@ -3419,6 +3422,7 @@ public class ModBlocks {
|
||||
register(fusion_component);
|
||||
register(fusion_torus);
|
||||
register(fusion_klystron);
|
||||
register(fusion_klystron_creative);
|
||||
register(fusion_breeder);
|
||||
register(fusion_collector);
|
||||
register(fusion_boiler);
|
||||
|
||||
@ -33,15 +33,8 @@ public class MachineFusionKlystron extends BlockDummyable implements ITooltipPro
|
||||
return super.standardOpenBehavior(world, x, y, z, player, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] { 3, 0, 4, 3, 2, 2 };
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 3;
|
||||
}
|
||||
@Override public int[] getDimensions() { return new int[] { 3, 0, 4, 3, 2, 2 }; }
|
||||
@Override public int getOffset() { return 3; }
|
||||
|
||||
@Override
|
||||
public boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
package com.hbm.blocks.machine.fusion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.tileentity.machine.fusion.TileEntityFusionKlystronCreative;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineFusionKlystronCreative extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public MachineFusionKlystronCreative() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityFusionKlystronCreative();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public int[] getDimensions() { return new int[] { 3, 0, 4, 3, 2, 2 }; }
|
||||
@Override public int getOffset() { return 3; }
|
||||
|
||||
@Override
|
||||
public boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
return super.checkRequirement(world, x, y, z, dir, o) &&
|
||||
MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -3, 4, 3, 1, 1}, x, y, z, dir);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y, z + dir.offsetZ * o, new int[] {4, -3, 4, 3, 1, 1}, this, dir);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
@ -20,6 +20,7 @@ public class ServerConfig extends RunningConfig {
|
||||
public static ConfigWrapper<Boolean> CRATE_OPEN_HELD = new ConfigWrapper(true);
|
||||
public static ConfigWrapper<Boolean> CRATE_KEEP_CONTENTS = new ConfigWrapper(true);
|
||||
public static ConfigWrapper<Integer> ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2);
|
||||
public static ConfigWrapper<Boolean> ENABLE_MKU = new ConfigWrapper(true);
|
||||
|
||||
private static void initDefaults() {
|
||||
configMap.put("DAMAGE_COMPATIBILITY_MODE", DAMAGE_COMPATIBILITY_MODE);
|
||||
@ -32,6 +33,7 @@ public class ServerConfig extends RunningConfig {
|
||||
configMap.put("CRATE_OPEN_HELD", CRATE_OPEN_HELD);
|
||||
configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS);
|
||||
configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE);
|
||||
configMap.put("ENABLE_MKU", ENABLE_MKU);
|
||||
}
|
||||
|
||||
/** Initializes defaults, then reads the config file if it exists, then writes the config file. */
|
||||
|
||||
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.hbm.config.RadiationConfig;
|
||||
import com.hbm.config.ServerConfig;
|
||||
import com.hbm.entity.mob.EntityDuck;
|
||||
import com.hbm.handler.threading.PacketThreading;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
@ -261,6 +262,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
|
||||
/// CONTAGION ///
|
||||
public static int getContagion(EntityLivingBase entity) {
|
||||
if(!ServerConfig.ENABLE_MKU.get()) return 0;
|
||||
return getData(entity).contagion;
|
||||
}
|
||||
|
||||
@ -315,7 +317,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
props.setFloat("hfr_digamma", digamma);
|
||||
props.setInteger("hfr_asbestos", asbestos);
|
||||
props.setInteger("hfr_bomb", bombTimer);
|
||||
props.setInteger("hfr_contagion", contagion);
|
||||
if(ServerConfig.ENABLE_MKU.get()) props.setInteger("hfr_contagion", contagion);
|
||||
props.setInteger("hfr_blacklung", blacklung);
|
||||
props.setInteger("hfr_oil", oil);
|
||||
props.setInteger("hfr_fire", fire);
|
||||
@ -343,7 +345,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
digamma = props.getFloat("hfr_digamma");
|
||||
asbestos = props.getInteger("hfr_asbestos");
|
||||
bombTimer = props.getInteger("hfr_bomb");
|
||||
contagion = props.getInteger("hfr_contagion");
|
||||
if(ServerConfig.ENABLE_MKU.get()) contagion = props.getInteger("hfr_contagion");
|
||||
blacklung = props.getInteger("hfr_blacklung");
|
||||
oil = props.getInteger("hfr_oil");
|
||||
fire = props.getInteger("hfr_fire");
|
||||
|
||||
@ -6,6 +6,7 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.config.RadiationConfig;
|
||||
import com.hbm.config.ServerConfig;
|
||||
import com.hbm.config.WorldConfig;
|
||||
import com.hbm.entity.mob.EntityCreeperNuclear;
|
||||
import com.hbm.entity.mob.EntityDuck;
|
||||
@ -371,6 +372,7 @@ public class EntityEffectHandler {
|
||||
}
|
||||
|
||||
private static void handleContagion(EntityLivingBase entity) {
|
||||
if(!ServerConfig.ENABLE_MKU.get()) return;
|
||||
|
||||
World world = entity.worldObj;
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ import net.minecraft.item.ItemStack;
|
||||
public class FusionRecipes extends GenericRecipes<FusionRecipe> {
|
||||
|
||||
public static final FusionRecipes INSTANCE = new FusionRecipes();
|
||||
public long maxInput;
|
||||
|
||||
@Override public int inputItemLimit() { return 0; }
|
||||
@Override public int inputFluidLimit() { return 3; }
|
||||
@ -120,6 +121,18 @@ public class FusionRecipes extends GenericRecipes<FusionRecipe> {
|
||||
.outputItems(new ItemStack(ModItems.powder_gold))); // eough
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerPost() {
|
||||
super.registerPost();
|
||||
|
||||
this.maxInput = 0;
|
||||
|
||||
// set max value for creative klystron
|
||||
for(FusionRecipe recipe : this.recipeOrderedList) {
|
||||
if(recipe.ignitionTemp > this.maxInput) this.maxInput = recipe.ignitionTemp;
|
||||
}
|
||||
}
|
||||
|
||||
// foresight! yeah!
|
||||
@Override
|
||||
public void readExtraData(JsonElement element, FusionRecipe recipe) {
|
||||
|
||||
@ -3,12 +3,16 @@ package com.hbm.items.special;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.config.VersatileConfig;
|
||||
import com.hbm.extprop.HbmLivingProps;
|
||||
import com.hbm.handler.ArmorModHandler;
|
||||
import com.hbm.interfaces.Spaghetti;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
|
||||
import api.hbm.fluidmk2.IFillableItem;
|
||||
@ -336,6 +340,9 @@ public class ItemSyringe extends Item {
|
||||
HbmLivingProps.setContagion(entity, 3 * 60 * 60 * 20);
|
||||
world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F);
|
||||
stack.stackSize--;
|
||||
|
||||
if(GeneralConfig.enableExtendedLogging)
|
||||
MainRegistry.logger.log(Level.INFO, "[MKU] " + entityPlayer.getCommandSenderName() + " used an MKU syringe!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -430,6 +430,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionTorusStruct.class, new RenderFusionTorusMultiblock());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionTorus.class, new RenderFusionTorus());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionKlystron.class, new RenderFusionKlystron());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionKlystronCreative.class, new RenderFusionKlystronCreative());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionBreeder.class, new RenderFusionBreeder());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionCollector.class, new RenderFusionCollector());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionBoiler.class, new RenderFusionBoiler());
|
||||
|
||||
@ -720,6 +720,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation fusion_plasma_glow_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/plasma_glow.png");
|
||||
public static final ResourceLocation fusion_plasma_sparkle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/plasma_sparkle.png");
|
||||
public static final ResourceLocation fusion_klystron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/klystron.png");
|
||||
public static final ResourceLocation fusion_klystron_creative_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/klystron_creative.png");
|
||||
public static final ResourceLocation fusion_breeder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/breeder.png");
|
||||
public static final ResourceLocation fusion_collector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/collector.png");
|
||||
public static final ResourceLocation fusion_boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/boiler.png");
|
||||
|
||||
@ -0,0 +1,79 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.tileentity.machine.fusion.TileEntityFusionKlystronCreative;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderFusionKlystronCreative extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
switch(tile.getBlockMetadata() - BlockDummyable.offset) {
|
||||
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
TileEntityFusionKlystronCreative klystron = (TileEntityFusionKlystronCreative) tile;
|
||||
|
||||
GL11.glTranslated(-1, 0, 0);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.fusion_klystron_creative_tex);
|
||||
ResourceManager.fusion_klystron.renderPart("Klystron");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
float rot = klystron.prevFan + (klystron.fan - klystron.prevFan) * interp;
|
||||
GL11.glTranslated(0, 2.5, 0);
|
||||
GL11.glRotated(rot, 1, 0, 0);
|
||||
GL11.glTranslated(0, -2.5, 0);
|
||||
ResourceManager.fusion_klystron.renderPart("Rotor");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.fusion_klystron_creative);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -3, 1);
|
||||
GL11.glScaled(3.5, 3.5, 3.5);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
GL11.glRotatef(90, 0F, 1F, 0F);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.fusion_klystron_creative_tex);
|
||||
ResourceManager.fusion_klystron.renderPart("Klystron");
|
||||
double rot = (System.currentTimeMillis() / 10) % 360D;
|
||||
GL11.glTranslated(0, 2.5, 0);
|
||||
GL11.glRotated(rot, 1, 0, 0);
|
||||
GL11.glTranslated(0, -2.5, 0);
|
||||
ResourceManager.fusion_klystron.renderPart("Rotor");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}};
|
||||
}
|
||||
}
|
||||
@ -418,6 +418,7 @@ public class TileMappings {
|
||||
put(TileEntityFusionTorusStruct.class, "tileentity_fusion_torus_struct");
|
||||
put(TileEntityFusionTorus.class, "tileentity_fusion_torus");
|
||||
put(TileEntityFusionKlystron.class, "tileentity_fusion_klystron");
|
||||
put(TileEntityFusionKlystronCreative.class, "tileentity_fusion_klystron_creative");
|
||||
put(TileEntityFusionBreeder.class, "tileentity_fusion_breeder");
|
||||
put(TileEntityFusionCollector.class, "tileentity_fusion_collector");
|
||||
put(TileEntityFusionBoiler.class, "tileentity_fusion_boiler");
|
||||
|
||||
@ -34,6 +34,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
@ -102,36 +103,8 @@ public class TileEntityFusionKlystron extends TileEntityMachineBase implements I
|
||||
|
||||
if(output < outputTarget / 50) output = 0;
|
||||
|
||||
if(klystronNode == null || klystronNode.expired) {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite();
|
||||
klystronNode = UniNodespace.getNode(worldObj, xCoord + dir.offsetX * 4, yCoord + 2, zCoord + dir.offsetZ * 4, KlystronNetworkProvider.THE_PROVIDER);
|
||||
|
||||
if(klystronNode == null) {
|
||||
klystronNode = new GenNode(KlystronNetworkProvider.THE_PROVIDER,
|
||||
new BlockPos(xCoord + dir.offsetX * 4, yCoord + 2, zCoord + dir.offsetZ * 4))
|
||||
.setConnections(new DirPos(xCoord + dir.offsetX * 5, yCoord + 2, zCoord + dir.offsetZ * 5, dir));
|
||||
|
||||
UniNodespace.createNode(worldObj, klystronNode);
|
||||
}
|
||||
}
|
||||
|
||||
if(klystronNode.net != null) klystronNode.net.addProvider(this);
|
||||
|
||||
if(klystronNode != null && klystronNode.net != null) {
|
||||
KlystronNetwork net = (KlystronNetwork) klystronNode.net;
|
||||
|
||||
for(Object o : net.receiverEntries.entrySet()) {
|
||||
Entry e = (Entry) o;
|
||||
if(e.getKey() instanceof TileEntityFusionTorus) { // replace this with an interface should we ever get more acceptors
|
||||
TileEntityFusionTorus torus = (TileEntityFusionTorus) e.getKey();
|
||||
|
||||
if(torus.isLoaded() && !torus.isInvalid()) { // check against zombie network members
|
||||
torus.klystronEnergy += this.output;
|
||||
break; // we only do one anyway
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.klystronNode = handleKNode(klystronNode, this);
|
||||
provideKyU(klystronNode, this.output);
|
||||
|
||||
this.networkPackNT(100);
|
||||
|
||||
@ -173,6 +146,56 @@ public class TileEntityFusionKlystron extends TileEntityMachineBase implements I
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Ensures the k-node exists, is loaded, and the klystron is a provider in the k-net. Returns a new klystron node if none existed, or the previous one. */
|
||||
public static GenNode handleKNode(GenNode klystronNode, TileEntity that) {
|
||||
|
||||
World worldObj = that.getWorldObj();
|
||||
int xCoord = that.xCoord;
|
||||
int yCoord = that.yCoord;
|
||||
int zCoord = that.zCoord;
|
||||
|
||||
if(klystronNode == null || klystronNode.expired) {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(that.getBlockMetadata() - 10).getOpposite();
|
||||
klystronNode = UniNodespace.getNode(worldObj, xCoord + dir.offsetX * 4, yCoord + 2, zCoord + dir.offsetZ * 4, KlystronNetworkProvider.THE_PROVIDER);
|
||||
|
||||
if(klystronNode == null) {
|
||||
klystronNode = new GenNode(KlystronNetworkProvider.THE_PROVIDER,
|
||||
new BlockPos(xCoord + dir.offsetX * 4, yCoord + 2, zCoord + dir.offsetZ * 4))
|
||||
.setConnections(new DirPos(xCoord + dir.offsetX * 5, yCoord + 2, zCoord + dir.offsetZ * 5, dir));
|
||||
|
||||
UniNodespace.createNode(worldObj, klystronNode);
|
||||
}
|
||||
}
|
||||
|
||||
if(klystronNode.net != null) klystronNode.net.addProvider(that);
|
||||
|
||||
return klystronNode;
|
||||
}
|
||||
|
||||
/** Provides klystron energy to the k-net of the supplied k-node, returns true is a connection is established */
|
||||
public static boolean provideKyU(GenNode klystronNode, long output) {
|
||||
boolean connected = false;
|
||||
|
||||
if(klystronNode != null && klystronNode.net != null) {
|
||||
KlystronNetwork net = (KlystronNetwork) klystronNode.net;
|
||||
|
||||
for(Object o : net.receiverEntries.entrySet()) {
|
||||
Entry e = (Entry) o;
|
||||
if(e.getKey() instanceof TileEntityFusionTorus) { // replace this with an interface should we ever get more acceptors
|
||||
TileEntityFusionTorus torus = (TileEntityFusionTorus) e.getKey();
|
||||
|
||||
if(torus.isLoaded() && !torus.isInvalid()) { // check against zombie network members
|
||||
torus.klystronEnergy += output;
|
||||
connected = true;
|
||||
break; // we only do one anyway
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return connected;
|
||||
}
|
||||
|
||||
public DirPos[] getConPos() {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
|
||||
@ -0,0 +1,137 @@
|
||||
package com.hbm.tileentity.machine.fusion;
|
||||
|
||||
import com.hbm.inventory.recipes.FusionRecipes;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.sound.AudioWrapper;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
|
||||
public class TileEntityFusionKlystronCreative extends TileEntityLoadedBase {
|
||||
|
||||
protected GenNode klystronNode;
|
||||
|
||||
public float fan;
|
||||
public float prevFan;
|
||||
public float fanSpeed;
|
||||
public static final float FAN_ACCELERATION = 0.125F;
|
||||
|
||||
public boolean isConnected = false;
|
||||
|
||||
private AudioWrapper audio;
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
this.klystronNode = TileEntityFusionKlystron.handleKNode(klystronNode, this);
|
||||
this.isConnected = TileEntityFusionKlystron.provideKyU(klystronNode, FusionRecipes.INSTANCE.maxInput);
|
||||
|
||||
this.networkPackNT(100);
|
||||
|
||||
} else {
|
||||
|
||||
if(this.isConnected) this.fanSpeed += FAN_ACCELERATION;
|
||||
else this.fanSpeed -= FAN_ACCELERATION;
|
||||
|
||||
this.fanSpeed = MathHelper.clamp_float(this.fanSpeed, 0F, 5F);
|
||||
|
||||
this.prevFan = this.fan;
|
||||
this.fan += this.fanSpeed;
|
||||
|
||||
if(this.fan >= 360F) {
|
||||
this.fan -= 360F;
|
||||
this.prevFan -= 360F;
|
||||
}
|
||||
|
||||
if(this.fanSpeed > 0 && MainRegistry.proxy.me().getDistanceSq(xCoord + 0.5, yCoord + 2.5, zCoord + 0.5) < 30 * 30) {
|
||||
|
||||
float speed = this.fanSpeed / 5F;
|
||||
|
||||
if(audio == null) {
|
||||
audio = MainRegistry.proxy.getLoopedSound("hbm:block.fel", xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, getVolume(speed), 15F, speed, 20);
|
||||
audio.startSound();
|
||||
} else {
|
||||
audio.updateVolume(getVolume(speed));
|
||||
audio.updatePitch(speed);
|
||||
audio.keepAlive();
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if(audio != null) {
|
||||
if(audio.isPlaying()) audio.stopSound();
|
||||
audio = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload() {
|
||||
super.onChunkUnload();
|
||||
|
||||
if(audio != null) {
|
||||
audio.stopSound();
|
||||
audio = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
|
||||
if(audio != null) {
|
||||
audio.stopSound();
|
||||
audio = null;
|
||||
}
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
if(this.klystronNode != null) UniNodespace.destroyNode(worldObj, klystronNode);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(ByteBuf buf) {
|
||||
super.serialize(buf);
|
||||
buf.writeBoolean(isConnected);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(ByteBuf buf) {
|
||||
super.deserialize(buf);
|
||||
this.isConnected = buf.readBoolean();
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 4,
|
||||
yCoord,
|
||||
zCoord - 4,
|
||||
xCoord + 5,
|
||||
yCoord + 5,
|
||||
zCoord + 5
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
}
|
||||
@ -68,7 +68,9 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I
|
||||
feed.setFill(feed.getFill() - step.amountReq * ops);
|
||||
steam.setFill(steam.getFill() + step.amountProduced * ops);
|
||||
this.heat -= (step.heatReq * ops / TU_PER_DEGREE) * trait.getEfficiency(HeatingType.HEATEXCHANGER);
|
||||
} else {
|
||||
}
|
||||
|
||||
if(eff <= 0) {
|
||||
feed.setTankType(Fluids.NONE);
|
||||
steam.setTankType(Fluids.NONE);
|
||||
}
|
||||
|
||||
@ -4333,6 +4333,8 @@ tile.fusion_hatch.name=Fusionsreaktorzugriffsluke
|
||||
tile.fusion_heater.name=Plasmaerhitzer-Komponente
|
||||
tile.fusion_klystron.name=Klystron
|
||||
tile.fusion_klystron.desc=Energiequelle für einen Fusionsreaktor.$Benötigt Kühlung mittles Druckluft.
|
||||
tile.fusion_klystron_creative.name=Kreativ-Klystron
|
||||
tile.fusion_klystron_creative.desc=Erzeugt unendlich viel Klystron-Energie.
|
||||
tile.fusion_mhdt.name=MHD-Turbine
|
||||
tile.fusion_mhdt.desc=Wandelt Plasmaenergie in verwendbare$elektrische Energie um. Effizienter als ein$konventioneller Boiler.$Benötigt Kühlung!
|
||||
tile.fusion_motor.name=Magnetmotorstück
|
||||
|
||||
@ -5588,6 +5588,8 @@ tile.fusion_hatch.name=Duct Deco Block
|
||||
tile.fusion_heater.name=Plasma Heater Component
|
||||
tile.fusion_klystron.name=Klystron
|
||||
tile.fusion_klystron.desc=Power source for fusion reactors.$Requires cooling via compressed air.
|
||||
tile.fusion_klystron_creative.name=Creative Klystron
|
||||
tile.fusion_klystron_creative.desc=Provides infinite klystron energy.
|
||||
tile.fusion_mhdt.name=MHD Turbine
|
||||
tile.fusion_mhdt.desc=Turns plasma energy into usable$electricity directly. More efficient$than a conventional boiler.$Requires cooling!
|
||||
tile.fusion_motor.name=Magnet Motor Piece
|
||||
|
||||
@ -1,535 +0,0 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'bale.blend'
|
||||
# www.blender.org
|
||||
o Cylinder
|
||||
v 0.000000 1.000000 -0.500000
|
||||
v 0.000000 1.000000 0.750000
|
||||
v 0.250000 0.933013 -0.500000
|
||||
v 0.250000 0.933013 0.750000
|
||||
v 0.433013 0.750000 -0.500000
|
||||
v 0.433013 0.750000 0.750000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 0.750000
|
||||
v 0.433013 0.250000 -0.500000
|
||||
v 0.433013 0.250000 0.750000
|
||||
v 0.250000 0.066987 -0.500000
|
||||
v 0.250000 0.066987 0.750000
|
||||
v 0.000000 -0.000000 -0.500000
|
||||
v 0.000000 0.000000 0.750000
|
||||
v -0.250000 0.066987 -0.500000
|
||||
v -0.250000 0.066987 0.750000
|
||||
v -0.433013 0.250000 -0.500000
|
||||
v -0.433013 0.250000 0.750000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 0.750000
|
||||
v -0.433013 0.750000 -0.500000
|
||||
v -0.433013 0.750000 0.750000
|
||||
v -0.250000 0.933012 -0.500000
|
||||
v -0.250000 0.933013 0.750000
|
||||
v 0.187500 0.824760 1.000000
|
||||
v 0.000000 0.875000 1.000000
|
||||
v 0.324760 0.687500 1.000000
|
||||
v 0.375000 0.500000 1.000000
|
||||
v 0.324760 0.312500 1.000000
|
||||
v 0.187500 0.175241 1.000000
|
||||
v 0.000000 0.125000 1.000000
|
||||
v -0.187500 0.175241 1.000000
|
||||
v -0.324759 0.312500 1.000000
|
||||
v -0.375000 0.500000 1.000000
|
||||
v -0.324760 0.687500 1.000000
|
||||
v -0.187500 0.824759 1.000000
|
||||
v 0.000000 0.500000 1.150000
|
||||
v 0.000000 0.825000 -1.150000
|
||||
v 0.162500 0.781458 -1.150000
|
||||
v 0.281458 0.662500 -1.150000
|
||||
v 0.325000 0.500000 -1.150000
|
||||
v 0.281458 0.337500 -1.150000
|
||||
v 0.162500 0.218542 -1.150000
|
||||
v 0.000000 0.175000 -1.150000
|
||||
v -0.162500 0.218542 -1.150000
|
||||
v -0.281458 0.337500 -1.150000
|
||||
v -0.325000 0.500000 -1.150000
|
||||
v -0.281458 0.662500 -1.150000
|
||||
v -0.162500 0.781458 -1.150000
|
||||
v -0.500000 0.075000 -0.950000
|
||||
v 0.500000 0.075000 -0.950000
|
||||
v -0.500000 0.925000 -0.950000
|
||||
v 0.500000 0.925000 -0.950000
|
||||
v -0.425000 0.000000 -0.950000
|
||||
v 0.425000 0.000000 -0.950000
|
||||
v -0.425000 1.000000 -0.950000
|
||||
v 0.425000 1.000000 -0.950000
|
||||
v -0.425000 0.925000 -0.950000
|
||||
v 0.425000 0.925000 -0.950000
|
||||
v -0.425000 0.075000 -0.950000
|
||||
v 0.425000 0.075000 -0.950000
|
||||
v -0.500000 0.925000 -1.200000
|
||||
v -0.500000 0.075000 -1.200000
|
||||
v 0.425000 0.925000 -1.200000
|
||||
v 0.425000 0.075000 -1.200000
|
||||
v 0.500000 0.075000 -1.200000
|
||||
v 0.500000 0.925000 -1.200000
|
||||
v -0.425000 0.925000 -1.200000
|
||||
v -0.425000 0.075000 -1.200000
|
||||
v -0.425000 -0.000000 -1.200000
|
||||
v 0.425000 -0.000000 -1.200000
|
||||
v 0.425000 1.000000 -1.200000
|
||||
v -0.425000 1.000000 -1.200000
|
||||
v -0.459619 0.075736 -1.000000
|
||||
v 0.424264 0.959619 -1.000000
|
||||
v -0.459619 0.075736 -1.150000
|
||||
v 0.424264 0.959619 -1.150000
|
||||
v -0.424264 0.040381 -1.000000
|
||||
v 0.459619 0.924264 -1.000000
|
||||
v -0.424264 0.040381 -1.150000
|
||||
v 0.459619 0.924264 -1.150000
|
||||
v 0.000000 0.825000 -1.200000
|
||||
v 0.162500 0.781458 -1.200000
|
||||
v 0.281458 0.662500 -1.200000
|
||||
v 0.325000 0.500000 -1.200000
|
||||
v 0.281458 0.337500 -1.200000
|
||||
v 0.162500 0.218542 -1.200000
|
||||
v 0.000000 0.175000 -1.200000
|
||||
v -0.162500 0.218542 -1.200000
|
||||
v -0.281458 0.337500 -1.200000
|
||||
v -0.325000 0.500000 -1.200000
|
||||
v -0.281458 0.662500 -1.200000
|
||||
v -0.162500 0.781458 -1.200000
|
||||
v -0.424264 0.959619 -1.000000
|
||||
v 0.459619 0.075736 -1.000000
|
||||
v -0.424264 0.959619 -1.150000
|
||||
v 0.459619 0.075736 -1.150000
|
||||
v -0.459619 0.924264 -1.000000
|
||||
v 0.424264 0.040381 -1.000000
|
||||
v -0.459619 0.924264 -1.150000
|
||||
v 0.424264 0.040381 -1.150000
|
||||
vt 0.788698 0.361775
|
||||
vt 0.510343 0.361775
|
||||
vt 0.510343 0.304140
|
||||
vt 0.510343 0.246505
|
||||
vt 0.788698 0.246505
|
||||
vt 0.510343 0.188870
|
||||
vt 0.788698 0.188870
|
||||
vt 0.510343 0.131235
|
||||
vt 0.510343 0.073600
|
||||
vt 0.788698 0.073600
|
||||
vt 0.510343 0.015964
|
||||
vt 0.788698 0.015964
|
||||
vt 0.788698 0.707585
|
||||
vt 0.510343 0.707585
|
||||
vt 0.510343 0.649950
|
||||
vt 0.788698 0.649950
|
||||
vt 0.510343 0.592315
|
||||
vt 0.510343 0.534680
|
||||
vt 0.788698 0.534680
|
||||
vt 0.510343 0.477045
|
||||
vt 0.788698 0.477045
|
||||
vt 0.448519 0.124030
|
||||
vt 0.448519 0.080804
|
||||
vt 0.510343 0.419410
|
||||
vt 0.788698 0.419410
|
||||
vt 0.938258 0.198956
|
||||
vt 0.938258 0.236419
|
||||
vt 0.448519 0.181665
|
||||
vt 0.448519 0.138439
|
||||
vt 0.448519 0.412206
|
||||
vt 0.448519 0.354571
|
||||
vt 0.448519 0.311344
|
||||
vt 0.448519 0.239300
|
||||
vt 0.448519 0.196074
|
||||
vt 0.448519 0.469841
|
||||
vt 0.448519 0.296935
|
||||
vt 0.448519 0.253709
|
||||
vt 0.448519 0.527476
|
||||
vt 0.448519 0.484250
|
||||
vt 0.448519 0.585111
|
||||
vt 0.448519 0.541885
|
||||
vt 0.448519 0.642746
|
||||
vt 0.448519 0.599520
|
||||
vt 0.448519 0.700381
|
||||
vt 0.448519 0.657155
|
||||
vt 0.448519 0.066395
|
||||
vt 0.361215 0.678768
|
||||
vt 0.361214 0.621133
|
||||
vt 0.361215 0.563498
|
||||
vt 0.361215 0.505863
|
||||
vt 0.361215 0.448228
|
||||
vt 0.448519 0.426615
|
||||
vt 0.361215 0.390593
|
||||
vt 0.448519 0.368979
|
||||
vt 0.361215 0.332957
|
||||
vt 0.448519 0.023169
|
||||
vt 0.361215 0.044782
|
||||
vt 0.361214 0.102417
|
||||
vt 0.361215 0.160052
|
||||
vt 0.361215 0.217687
|
||||
vt 0.361215 0.275322
|
||||
vt 0.938258 0.141321
|
||||
vt 0.949392 0.141321
|
||||
vt 0.949392 0.178784
|
||||
vt 0.938258 0.429496
|
||||
vt 0.938258 0.466959
|
||||
vt 0.788698 0.304140
|
||||
vt 0.938258 0.256591
|
||||
vt 0.938258 0.487131
|
||||
vt 0.788698 0.592315
|
||||
vt 0.938258 0.544766
|
||||
vt 0.938258 0.602401
|
||||
vt 0.938258 0.639864
|
||||
vt 0.938258 0.660037
|
||||
vt 0.938258 0.697499
|
||||
vt 0.938258 0.026051
|
||||
vt 0.938258 0.063514
|
||||
vt 0.938258 0.083686
|
||||
vt 0.938258 0.121149
|
||||
vt 0.788698 0.131235
|
||||
vt 0.938258 0.178784
|
||||
vt 0.938258 0.371861
|
||||
vt 0.938258 0.409324
|
||||
vt 0.938258 0.314226
|
||||
vt 0.938258 0.351689
|
||||
vt 0.680346 0.943229
|
||||
vt 0.680346 0.959931
|
||||
vt 0.491064 0.959931
|
||||
vt 0.680346 0.753947
|
||||
vt 0.491064 0.753947
|
||||
vt 0.491064 0.737246
|
||||
vt 0.491064 0.943229
|
||||
vt 0.474362 0.943229
|
||||
vt 0.474362 0.753947
|
||||
vt 0.697047 0.753947
|
||||
vt 0.680346 0.737246
|
||||
vt 0.697047 0.943229
|
||||
vt 0.932691 0.959931
|
||||
vt 0.743409 0.959931
|
||||
vt 0.743409 0.943229
|
||||
vt 0.932691 0.737246
|
||||
vt 0.932691 0.753947
|
||||
vt 0.743409 0.753947
|
||||
vt 0.949392 0.753947
|
||||
vt 0.949392 0.943229
|
||||
vt 0.932691 0.943229
|
||||
vt 0.726707 0.753947
|
||||
vt 0.743409 0.737246
|
||||
vt 0.726707 0.943229
|
||||
vt 0.190552 0.394528
|
||||
vt 0.190552 0.205246
|
||||
vt 0.246223 0.205246
|
||||
vt 0.331554 0.228866
|
||||
vt 0.275883 0.228866
|
||||
vt 0.275883 0.205247
|
||||
vt 0.331554 0.418148
|
||||
vt 0.275883 0.418148
|
||||
vt 0.331554 0.631049
|
||||
vt 0.275883 0.631049
|
||||
vt 0.275883 0.441767
|
||||
vt 0.190551 0.015964
|
||||
vt 0.246223 0.015964
|
||||
vt 0.331554 0.867570
|
||||
vt 0.275883 0.867570
|
||||
vt 0.275883 0.843951
|
||||
vt 0.190552 0.583811
|
||||
vt 0.246223 0.583811
|
||||
vt 0.246223 0.773093
|
||||
vt 0.331554 0.654669
|
||||
vt 0.275883 0.654669
|
||||
vt 0.331554 0.205247
|
||||
vt 0.275883 0.015964
|
||||
vt 0.331554 0.843951
|
||||
vt 0.331554 0.441767
|
||||
vt 0.246223 0.394528
|
||||
vt 0.053199 0.941767
|
||||
vt 0.331554 0.941767
|
||||
vt 0.331554 0.975170
|
||||
vt 0.053199 0.930633
|
||||
vt 0.331554 0.930633
|
||||
vt 0.053198 0.897230
|
||||
vt 0.331554 0.897230
|
||||
vt 0.053199 0.975170
|
||||
vt 0.331554 0.986304
|
||||
vt 0.127488 0.015964
|
||||
vt 0.127488 0.294321
|
||||
vt 0.116354 0.294321
|
||||
vt 0.116354 0.015964
|
||||
vt 0.082952 0.294321
|
||||
vt 0.039809 0.445063
|
||||
vt 0.142160 0.342712
|
||||
vt 0.160891 0.412619
|
||||
vt 0.949392 0.429496
|
||||
vt 0.949392 0.466959
|
||||
vt 0.949392 0.314226
|
||||
vt 0.949392 0.351689
|
||||
vt 0.949392 0.602401
|
||||
vt 0.949392 0.639864
|
||||
vt 0.949392 0.083686
|
||||
vt 0.949392 0.121149
|
||||
vt 0.949392 0.371861
|
||||
vt 0.949392 0.409324
|
||||
vt 0.949392 0.256591
|
||||
vt 0.949392 0.294054
|
||||
vt 0.949392 0.544766
|
||||
vt 0.949392 0.582229
|
||||
vt 0.949392 0.026051
|
||||
vt 0.949392 0.198956
|
||||
vt 0.949392 0.236419
|
||||
vt 0.949392 0.487131
|
||||
vt 0.949392 0.524594
|
||||
vt 0.949392 0.660037
|
||||
vt 0.949392 0.697499
|
||||
vt 0.160891 0.015964
|
||||
vt 0.160891 0.294321
|
||||
vt 0.082951 0.015964
|
||||
vt 0.071817 0.294321
|
||||
vt 0.938258 0.294054
|
||||
vt 0.938258 0.524594
|
||||
vt 0.938258 0.582229
|
||||
vt 0.190551 0.773093
|
||||
vt 0.331554 0.015964
|
||||
vt 0.053199 0.986304
|
||||
vt 0.142160 0.445063
|
||||
vt 0.109716 0.463794
|
||||
vt 0.072253 0.463794
|
||||
vt 0.021078 0.412619
|
||||
vt 0.021078 0.375156
|
||||
vt 0.039809 0.342712
|
||||
vt 0.072253 0.323981
|
||||
vt 0.109716 0.323981
|
||||
vt 0.160891 0.375156
|
||||
vt 0.949392 0.063513
|
||||
vt 0.071817 0.015964
|
||||
vn 0.258800 0.965900 0.000000
|
||||
vn 0.707100 0.707100 0.000000
|
||||
vn 0.965900 0.258800 0.000000
|
||||
vn 0.965900 -0.258800 0.000000
|
||||
vn 0.707100 -0.707100 0.000000
|
||||
vn 0.258800 -0.965900 0.000000
|
||||
vn -0.258800 -0.965900 0.000000
|
||||
vn -0.707100 -0.707100 0.000000
|
||||
vn -0.965900 -0.258800 0.000000
|
||||
vn -0.965900 0.258800 -0.000000
|
||||
vn 0.636700 -0.636700 0.434900
|
||||
vn -0.258800 0.965900 -0.000000
|
||||
vn -0.707100 0.707100 -0.000000
|
||||
vn 0.934800 0.250500 -0.251700
|
||||
vn 0.869800 -0.233100 0.434900
|
||||
vn -0.233100 0.869800 0.434900
|
||||
vn 0.233100 0.869800 0.434900
|
||||
vn 0.869800 0.233100 0.434900
|
||||
vn -0.636700 0.636700 0.434900
|
||||
vn 0.636700 0.636700 0.434900
|
||||
vn -0.869800 0.233100 0.434900
|
||||
vn -0.869800 -0.233100 0.434900
|
||||
vn -0.636700 -0.636700 0.434900
|
||||
vn -0.233100 -0.869800 0.434900
|
||||
vn 0.233100 -0.869800 0.434900
|
||||
vn -0.099000 -0.369600 0.923900
|
||||
vn -0.270500 -0.270500 0.923900
|
||||
vn -0.369600 -0.099000 0.923900
|
||||
vn -0.369600 0.099000 0.923900
|
||||
vn -0.270500 0.270500 0.923900
|
||||
vn -0.099000 0.369600 0.923900
|
||||
vn 0.099000 0.369600 0.923900
|
||||
vn 0.099000 -0.369600 0.923900
|
||||
vn 0.270500 -0.270500 0.923900
|
||||
vn 0.369600 -0.099000 0.923900
|
||||
vn 0.369600 0.099000 0.923900
|
||||
vn 0.270500 0.270500 0.923900
|
||||
vn -0.684300 0.684300 -0.251700
|
||||
vn 0.684300 0.684300 -0.251700
|
||||
vn -0.934800 0.250500 -0.251700
|
||||
vn -0.934800 -0.250500 -0.251700
|
||||
vn -0.684300 -0.684300 -0.251700
|
||||
vn -0.250500 -0.934800 -0.251700
|
||||
vn 0.250500 -0.934800 -0.251700
|
||||
vn 0.684300 -0.684300 -0.251700
|
||||
vn 0.934800 -0.250500 -0.251700
|
||||
vn -0.250500 0.934800 -0.251700
|
||||
vn 0.250500 0.934800 -0.251700
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 -0.000000 -1.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
s off
|
||||
f 1/1/1 2/2/1 4/3/1
|
||||
f 4/3/2 6/4/2 5/5/2
|
||||
f 5/5/3 6/4/3 8/6/3
|
||||
f 7/7/4 8/6/4 10/8/4
|
||||
f 10/8/5 12/9/5 11/10/5
|
||||
f 12/9/6 14/11/6 13/12/6
|
||||
f 13/13/7 14/14/7 16/15/7
|
||||
f 15/16/8 16/15/8 18/17/8
|
||||
f 18/17/9 20/18/9 19/19/9
|
||||
f 20/18/10 22/20/10 21/21/10
|
||||
f 10/8/11 29/22/11 30/23/11
|
||||
f 24/24/12 2/2/12 1/1/12
|
||||
f 22/20/13 24/24/13 23/25/13
|
||||
f 7/7/14 41/26/14 40/27/14
|
||||
f 8/6/15 28/28/15 29/29/15
|
||||
f 2/2/16 24/24/16 36/30/16
|
||||
f 2/2/17 26/31/17 25/32/17
|
||||
f 6/4/18 27/33/18 28/34/18
|
||||
f 24/24/19 22/20/19 35/35/19
|
||||
f 4/3/20 25/36/20 27/37/20
|
||||
f 20/18/21 34/38/21 35/39/21
|
||||
f 18/17/22 33/40/22 34/41/22
|
||||
f 16/15/23 32/42/23 33/43/23
|
||||
f 14/14/24 31/44/24 32/45/24
|
||||
f 14/11/25 12/9/25 30/46/25
|
||||
f 31/44/26 37/47/26 32/45/26
|
||||
f 32/42/27 37/48/27 33/43/27
|
||||
f 33/40/28 37/49/28 34/41/28
|
||||
f 34/38/29 37/50/29 35/39/29
|
||||
f 35/35/30 37/51/30 36/52/30
|
||||
f 36/30/31 37/53/31 26/54/31
|
||||
f 26/31/32 37/55/32 25/32/32
|
||||
f 31/56/33 30/46/33 37/57/33
|
||||
f 29/22/34 37/58/34 30/23/34
|
||||
f 28/28/35 37/59/35 29/29/35
|
||||
f 27/33/36 37/60/36 28/34/36
|
||||
f 25/36/37 37/61/37 27/37/37
|
||||
f 42/62/4 86/63/4 85/64/4
|
||||
f 23/25/38 49/65/38 48/66/38
|
||||
f 3/67/39 5/5/39 40/68/39
|
||||
f 19/19/40 21/21/40 48/69/40
|
||||
f 17/70/41 19/19/41 47/71/41
|
||||
f 17/70/42 46/72/42 45/73/42
|
||||
f 15/16/43 45/74/43 44/75/43
|
||||
f 13/12/44 44/76/44 43/77/44
|
||||
f 11/10/45 43/78/45 42/79/45
|
||||
f 9/80/46 42/62/46 41/81/46
|
||||
f 1/1/47 38/82/47 49/83/47
|
||||
f 3/67/48 39/84/48 38/85/48
|
||||
f 61/86/49 51/87/49 53/88/49
|
||||
f 60/89/49 58/90/49 52/91/49
|
||||
f 59/92/49 57/93/49 56/94/49
|
||||
f 53/88/49 57/93/49 59/92/49
|
||||
f 56/94/49 52/91/49 58/90/49
|
||||
f 54/95/49 60/89/49 50/96/49
|
||||
f 51/87/49 61/86/49 55/97/49
|
||||
f 60/89/49 54/95/49 55/97/49
|
||||
f 67/98/50 66/99/50 65/100/50
|
||||
f 62/101/50 68/102/50 69/103/50
|
||||
f 73/104/50 72/105/50 64/106/50
|
||||
f 67/98/50 64/106/50 72/105/50
|
||||
f 73/104/50 68/102/50 62/101/50
|
||||
f 70/107/50 63/108/50 69/103/50
|
||||
f 66/99/50 71/109/50 65/100/50
|
||||
f 71/109/50 70/107/50 69/103/50
|
||||
f 58/110/51 60/111/51 69/112/51
|
||||
f 50/113/8 63/114/8 70/115/8
|
||||
f 52/116/52 62/117/52 63/114/52
|
||||
f 57/118/53 72/119/53 73/120/53
|
||||
f 61/121/53 65/122/53 69/112/53
|
||||
f 55/123/5 71/124/5 66/125/5
|
||||
f 59/126/52 64/127/52 65/128/52
|
||||
f 53/129/2 67/130/2 72/119/2
|
||||
f 54/131/54 70/115/54 71/132/54
|
||||
f 53/129/51 51/133/51 66/125/51
|
||||
f 56/134/13 73/120/13 62/117/13
|
||||
f 58/110/54 68/135/54 64/127/54
|
||||
f 77/136/13 76/137/13 74/138/13
|
||||
f 81/139/50 80/140/50 76/137/50
|
||||
f 79/141/5 78/142/5 80/140/5
|
||||
f 75/143/49 74/138/49 78/144/49
|
||||
f 101/145/50 100/146/50 96/147/50
|
||||
f 97/148/2 96/147/2 94/149/2
|
||||
f 85/150/50 91/151/50 93/152/50
|
||||
f 49/65/13 93/153/13 92/154/13
|
||||
f 39/84/1 83/155/1 82/156/1
|
||||
f 46/72/8 90/157/8 89/158/8
|
||||
f 43/78/5 87/159/5 86/160/5
|
||||
f 38/82/12 82/161/12 93/162/12
|
||||
f 40/68/2 84/163/2 83/164/2
|
||||
f 47/71/9 91/165/9 90/166/9
|
||||
f 43/77/6 44/76/6 88/167/6
|
||||
f 41/26/3 85/168/3 84/169/3
|
||||
f 48/69/10 92/170/10 91/171/10
|
||||
f 45/74/7 89/172/7 88/173/7
|
||||
f 99/174/8 98/175/8 100/146/8
|
||||
f 95/176/49 94/149/49 98/177/49
|
||||
f 3/67/1 1/1/1 4/3/1
|
||||
f 3/67/2 4/3/2 5/5/2
|
||||
f 7/7/3 5/5/3 8/6/3
|
||||
f 9/80/4 7/7/4 10/8/4
|
||||
f 9/80/5 10/8/5 11/10/5
|
||||
f 11/10/6 12/9/6 13/12/6
|
||||
f 15/16/7 13/13/7 16/15/7
|
||||
f 17/70/8 15/16/8 18/17/8
|
||||
f 17/70/9 18/17/9 19/19/9
|
||||
f 19/19/10 20/18/10 21/21/10
|
||||
f 12/9/11 10/8/11 30/23/11
|
||||
f 23/25/12 24/24/12 1/1/12
|
||||
f 21/21/13 22/20/13 23/25/13
|
||||
f 5/5/14 7/7/14 40/27/14
|
||||
f 10/8/15 8/6/15 29/29/15
|
||||
f 26/54/16 2/2/16 36/30/16
|
||||
f 4/3/17 2/2/17 25/32/17
|
||||
f 8/6/18 6/4/18 28/34/18
|
||||
f 36/52/19 24/24/19 35/35/19
|
||||
f 6/4/20 4/3/20 27/37/20
|
||||
f 22/20/21 20/18/21 35/39/21
|
||||
f 20/18/22 18/17/22 34/41/22
|
||||
f 18/17/23 16/15/23 33/43/23
|
||||
f 16/15/24 14/14/24 32/45/24
|
||||
f 31/56/25 14/11/25 30/46/25
|
||||
f 41/81/4 42/62/4 85/64/4
|
||||
f 21/21/38 23/25/38 48/66/38
|
||||
f 39/178/39 3/67/39 40/68/39
|
||||
f 47/179/40 19/19/40 48/69/40
|
||||
f 46/180/41 17/70/41 47/71/41
|
||||
f 15/16/42 17/70/42 45/73/42
|
||||
f 13/13/43 15/16/43 44/75/43
|
||||
f 11/10/44 13/12/44 43/77/44
|
||||
f 9/80/45 11/10/45 42/79/45
|
||||
f 7/7/46 9/80/46 41/81/46
|
||||
f 23/25/47 1/1/47 49/83/47
|
||||
f 1/1/48 3/67/48 38/85/48
|
||||
f 59/92/49 61/86/49 53/88/49
|
||||
f 50/96/49 60/89/49 52/91/49
|
||||
f 58/90/49 59/92/49 56/94/49
|
||||
f 61/86/49 60/89/49 55/97/49
|
||||
f 64/106/50 67/98/50 65/100/50
|
||||
f 63/108/50 62/101/50 69/103/50
|
||||
f 68/102/50 73/104/50 64/106/50
|
||||
f 65/100/50 71/109/50 69/103/50
|
||||
f 68/135/51 58/110/51 69/112/51
|
||||
f 54/131/8 50/113/8 70/115/8
|
||||
f 50/113/52 52/116/52 63/114/52
|
||||
f 56/134/53 57/118/53 73/120/53
|
||||
f 60/111/53 61/121/53 69/112/53
|
||||
f 51/133/5 55/123/5 66/125/5
|
||||
f 61/181/52 59/126/52 65/128/52
|
||||
f 57/118/2 53/129/2 72/119/2
|
||||
f 55/182/54 54/131/54 71/132/54
|
||||
f 67/130/51 53/129/51 66/125/51
|
||||
f 52/116/13 56/134/13 62/117/13
|
||||
f 59/126/54 58/110/54 64/127/54
|
||||
f 75/143/13 77/136/13 74/138/13
|
||||
f 77/136/50 81/139/50 76/137/50
|
||||
f 81/139/5 79/141/5 80/140/5
|
||||
f 79/183/49 75/143/49 78/144/49
|
||||
f 97/148/50 101/145/50 96/147/50
|
||||
f 95/176/2 97/148/2 94/149/2
|
||||
f 93/152/50 82/184/50 85/150/50
|
||||
f 83/185/50 84/186/50 85/150/50
|
||||
f 85/150/50 86/187/50 87/188/50
|
||||
f 87/188/50 88/189/50 89/190/50
|
||||
f 89/190/50 90/191/50 91/151/50
|
||||
f 91/151/50 92/192/50 93/152/50
|
||||
f 82/184/50 83/185/50 85/150/50
|
||||
f 85/150/50 87/188/50 89/190/50
|
||||
f 89/190/50 91/151/50 85/150/50
|
||||
f 48/66/13 49/65/13 92/154/13
|
||||
f 38/85/1 39/84/1 82/156/1
|
||||
f 45/73/8 46/72/8 89/158/8
|
||||
f 42/79/5 43/78/5 86/160/5
|
||||
f 49/83/12 38/82/12 93/162/12
|
||||
f 39/178/2 40/68/2 83/164/2
|
||||
f 46/180/9 47/71/9 90/166/9
|
||||
f 87/193/6 43/77/6 88/167/6
|
||||
f 40/27/3 41/26/3 84/169/3
|
||||
f 47/179/10 48/69/10 91/171/10
|
||||
f 44/75/7 45/74/7 88/173/7
|
||||
f 101/145/8 99/174/8 100/146/8
|
||||
f 99/194/49 95/176/49 98/177/49
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 28 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.3 KiB |
Loading…
x
Reference in New Issue
Block a user