mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-03-11 20:25:36 +00:00
Merge branch 'master' into conccoloredcrack
This commit is contained in:
commit
dc6faed2d9
81
changelog
81
changelog
@ -1,71 +1,16 @@
|
||||
## Added
|
||||
* Lightstone
|
||||
* Stylish stone variant that can be crafted from regular stone and limestone powder
|
||||
* Added a few new structures
|
||||
* Aircraft carriers, beached boats and oil rigs
|
||||
* Aircraft carriers can spawn naval mines, which behave like landmines
|
||||
* New weapon mods
|
||||
* The laser rifle now has a shotgun barrel, extended capacitor and automatic receiver
|
||||
* Compact compressor
|
||||
* Only a third as tall as the regular compressor with a footprint less than twice as wide
|
||||
* Comes with a frame that allows for stacking of multiple compressors without it looking ugly
|
||||
* Otherwise identical to the regular compressor
|
||||
* Pneumatic tubes
|
||||
* Allows instant item transport without laggy entities
|
||||
* Requires compressed air to work, air compression determines the max range (10 - 1,000m)
|
||||
* Has various filter and order options
|
||||
* Muffler compatible
|
||||
* Air intake
|
||||
* Simple machine that uses 100HE/t to produce 1B of compressed air
|
||||
* Also looks really cool to have on the roof of factories
|
||||
|
||||
## Changed
|
||||
* Updated russian and chinese localizations
|
||||
* .75 bolts now work as advertised
|
||||
* Updated lead pipe texture
|
||||
* Removed recipes from a few ancient melee weapons, as well as the creative tab listing
|
||||
* Removed flat magnets
|
||||
* Taint should now also affect non-solid blocks that are full cubes
|
||||
* Reduced the AoE size of 7.62mm, .50 BMG and 10 gauge explosive projectiles
|
||||
* Removed the old gun mechanism items, turrets now use the new cast parts
|
||||
* A secret weapon and its variant have become craftable
|
||||
* NEI now shows RBMK fuel rod recycling and cooling
|
||||
* Removed most of the old unused siege mobs
|
||||
* Two weapons with built-in scopes now use the scope item in the crafting recipe
|
||||
* Updated the FLEIJA model
|
||||
* Cokers can now have their stats read with OC
|
||||
* NEI now shows recycling for RBMK fuel rods, and cooling for rods that can't be recycled due to being too hot
|
||||
* Taint can now replace any block, not just full cubes
|
||||
* Placing conveyor belts now creates a draggable ghost that will automatically attempt to pathfind towards the destination
|
||||
* Lifts and chutes are placed automatically, meaning they no longer need crafting recipes
|
||||
* Changed the optimized receiver generic gun mod to +15% damage
|
||||
* The xenon chemical plant recipes as well as biogas now require compressed air instead of no fluid at all
|
||||
* Removed old unused radar configs
|
||||
* The .22 SMG no longer comes with a silencer, instead a silencer can be attached as a weapon mod
|
||||
* Updated RT generator's GUI
|
||||
* Armor resistance stats are now configurable using `hbmArmor.json`
|
||||
* The config's format is a bit fragile, check the log when making changes to see if it fails loading
|
||||
* If the config fails to load, it will default to standard values
|
||||
* Also works with `/ntmreload`
|
||||
* Removed the unused transition hatch block
|
||||
* Removed the nuclear furnace (it was already deprecated months ago)
|
||||
* The diesel generator now uses a much more pleasant sound loop instead of the deafening vanilla fireworks pop noise
|
||||
* Renamed "heavy infinite water barrel" to "large infinite water barrel" because somehow people found that confusing
|
||||
* Trenchmaster armor now has the fast reload and more ammo traits again
|
||||
* Fast reload now also plays the animation twice as fast
|
||||
* More ammo does not apply to weapons that can only hold one round, like nuke and rocket launchers
|
||||
* Ace of spades now works as advertised again
|
||||
* Clay tablets now have "pools", tablets obtained from a black room no longer shows recipes for things not related to black rooms
|
||||
* Pedestal crafting extras `GOOD_KARMA` and `BAD_KARMA` are now properly implemented
|
||||
* If you don't know what this means, just ignore it
|
||||
* Pneumatic tubes now have a special case when supplying autocrafters, they will only send single items since larger stacks are not accepted
|
||||
* Simplified turbofan recipe
|
||||
* Solar boilers will now show a tooltip when they are too cold
|
||||
|
||||
## Fixed
|
||||
* Fixed taint destroying bedrock
|
||||
* Fixed ferrouranium plate not being castable
|
||||
* Fixed bayonet not rendering properly in third person
|
||||
* Fixed xenon poison gauge in the RBMK control panel not showing up on columns (oops)
|
||||
* Fixed hitscan projectiles colliding with dead mobs
|
||||
* Fixed GL state leak caused by blocks with a look overlay
|
||||
* Fixed issues with the new crate functionality
|
||||
* Fixed dupe regarding the toolbox
|
||||
* Fixed dummies with no OC components taking up a ton of component slots
|
||||
* Fixed infested glyphids spawning maggots also on the clientside, creating unkillable ghosts
|
||||
* Fixed top left column not being selectable in the RBMK console
|
||||
* Fixed CIWS hitrate config being read wrong
|
||||
* Fixed DANI having broken equip animations
|
||||
* Fixed break-action revolver cocking sound not syncing up with the animation
|
||||
* Fixed NBT name collision between ReaSim steam/water values and non-ReaSim steam/water tanks, causing incorrect data to be loaded when using non-ReaSim boilers with ReaSim enabled
|
||||
* Fixed gun equip animation not playing in certain circumstances
|
||||
* Fixed fatal gamebreaking hard drive corrupting issue where taurun leggings were misspelled
|
||||
* Fixed minor display issue where compressed air ducts would visually connect to non-ejector pneumatic tubes
|
||||
* Fixed special creeper types being able to spawn in other dimensions
|
||||
@ -1,6 +1,6 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=5298
|
||||
mod_build_number=5299
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
|
||||
@ -851,11 +851,7 @@ public class ModBlocks {
|
||||
public static Block machine_transformer_dnt;
|
||||
public static Block machine_transformer_dnt_20;
|
||||
|
||||
public static Block bomb_multi_large;
|
||||
public static final int guiID_bomb_multi_large = 18;
|
||||
|
||||
public static Block machine_solar_boiler;
|
||||
public static final int guiID_solar_boiler = 18;
|
||||
public static Block solar_mirror;
|
||||
|
||||
public static Block struct_launcher;
|
||||
|
||||
@ -53,7 +53,7 @@ public class BlockLanternBehemoth extends BlockDummyable implements IToolable, I
|
||||
|
||||
if(didRepair) {
|
||||
HbmPlayerProps data = HbmPlayerProps.getData(player);
|
||||
data.reputation++;
|
||||
if(data.reputation < 25) data.reputation++;
|
||||
}
|
||||
|
||||
return didRepair;
|
||||
|
||||
@ -64,7 +64,8 @@ public class BlockMultiSlab extends BlockSlab implements IStepTickReceiver {
|
||||
return new ItemStack(Item.getItemFromBlock(single != null ? single : this), 2, (meta & 7) % slabMaterials.length);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Item getItem(World world, int x, int y, int z) {
|
||||
return Item.getItemFromBlock(single != null ? single : this);
|
||||
}
|
||||
@ -81,6 +82,7 @@ public class BlockMultiSlab extends BlockSlab implements IStepTickReceiver {
|
||||
return (super.getDamageValue(world, x, y, z) & 7) % slabMaterials.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
|
||||
|
||||
|
||||
@ -8,7 +8,6 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
// kinda ugly solution, but no other stairs use metadata-dependent blocks anyway. feel free to refactor/merge them once needed
|
||||
public class BlockMultiSlabMeta extends BlockMultiSlab {
|
||||
|
||||
public int[] metas;
|
||||
@ -41,9 +40,9 @@ public class BlockMultiSlabMeta extends BlockMultiSlab {
|
||||
return block.getIcon(side, metas[meta]);
|
||||
}
|
||||
|
||||
//blocks don't have meta-dependent unlocalized names by default, so we have to do this ugly solution
|
||||
@Override
|
||||
public String func_150002_b(int meta) {
|
||||
meta = (meta & 7) % slabMaterials.length;
|
||||
return super.func_150002_b(meta) + "." + metas[meta];
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.extprop.HbmPlayerProps;
|
||||
import com.hbm.inventory.recipes.PedestalRecipes;
|
||||
import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe;
|
||||
import com.hbm.lib.RefStrings;
|
||||
@ -58,26 +59,10 @@ public class BlockPedestal extends BlockContainer {
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||
return true;
|
||||
}
|
||||
@Override public int getRenderType() { return renderID; }
|
||||
@Override public boolean isOpaqueCube() { return false; }
|
||||
@Override public boolean renderAsNormalBlock() { return false; }
|
||||
@Override @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { return true; }
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
@ -133,9 +118,11 @@ public class BlockPedestal extends BlockContainer {
|
||||
TileEntityPedestal se = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 2 + ForgeDirection.EAST.offsetX * 2, y, z + ForgeDirection.SOUTH.offsetZ * 2 + ForgeDirection.EAST.offsetZ * 2));
|
||||
|
||||
TileEntityPedestal[] tileArray = new TileEntityPedestal[] {nw, n, ne, w, center, e, sw, s, se};
|
||||
List<EntityPlayer> nearbyPlayers = world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(20, 20, 20));
|
||||
|
||||
outer: for(PedestalRecipe recipe : PedestalRecipes.recipes) {
|
||||
|
||||
/// EXTRA CONDITIONS ///
|
||||
if(recipe.extra == recipe.extra.FULL_MOON) {
|
||||
if(world.getCelestialAngle(0) < 0.35 || world.getCelestialAngle(0) > 0.65) continue;
|
||||
if(world.provider.getMoonPhase(world.getWorldInfo().getWorldTime()) != 0) continue;
|
||||
@ -150,6 +137,19 @@ public class BlockPedestal extends BlockContainer {
|
||||
if(world.getCelestialAngle(0) > 0.15 && world.getCelestialAngle(0) < 0.85) continue;
|
||||
}
|
||||
|
||||
if(recipe.extra == recipe.extra.BAD_KARMA) {
|
||||
boolean matches = false;
|
||||
for(EntityPlayer player : nearbyPlayers) if(HbmPlayerProps.getData(player).reputation <= -10) { matches = true; break; }
|
||||
if(!matches) continue;
|
||||
}
|
||||
|
||||
if(recipe.extra == recipe.extra.GOOD_KARMA) {
|
||||
boolean matches = false;
|
||||
for(EntityPlayer player : nearbyPlayers) if(HbmPlayerProps.getData(player).reputation >= 10) { matches = true; break; }
|
||||
if(!matches) continue;
|
||||
}
|
||||
|
||||
/// CHECK ITEMS ///
|
||||
for(int i = 0; i < 9; i++) {
|
||||
ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null;
|
||||
if(pedestal == null && recipe.input[i] != null) continue outer;
|
||||
@ -159,6 +159,7 @@ public class BlockPedestal extends BlockContainer {
|
||||
if(!recipe.input[i].matchesRecipe(pedestal, true) || recipe.input[i].stacksize != pedestal.stackSize) continue outer;
|
||||
}
|
||||
|
||||
/// REMOVE ITEMS ///
|
||||
for(int i = 0; i < 9; i++) {
|
||||
if(i == 4) continue;
|
||||
ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null;
|
||||
@ -168,6 +169,7 @@ public class BlockPedestal extends BlockContainer {
|
||||
world.markBlockForUpdate(tileArray[i].xCoord, tileArray[i].yCoord, tileArray[i].zCoord);
|
||||
}
|
||||
|
||||
/// PRODUCE RESULT ///
|
||||
center.item = recipe.output.copy();
|
||||
center.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
@ -191,10 +193,7 @@ public class BlockPedestal extends BlockContainer {
|
||||
|
||||
public ItemStack item;
|
||||
|
||||
@Override
|
||||
public boolean canUpdate() {
|
||||
return false;
|
||||
}
|
||||
@Override public boolean canUpdate() { return false; }
|
||||
|
||||
@Override
|
||||
public Packet getDescriptionPacket() {
|
||||
|
||||
@ -87,13 +87,13 @@ public class DungeonSpawner extends BlockContainer {
|
||||
int z = tile.zCoord;
|
||||
if(tile.phase == 0) {
|
||||
if(world.getTotalWorldTime() % 20 != 0) return false;
|
||||
return !world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(20, 10, 20)).isEmpty();
|
||||
//return !world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(20, 10, 20)).isEmpty();
|
||||
}
|
||||
if(tile.phase < 3) {
|
||||
if(world.getTotalWorldTime() % 20 != 0 || tile.timer < 60) return false;
|
||||
return world.getEntitiesWithinAABB(EntityUndeadSoldier.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(50, 20, 50)).isEmpty();
|
||||
//return world.getEntitiesWithinAABB(EntityUndeadSoldier.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(50, 20, 50)).isEmpty();
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
};
|
||||
|
||||
public static Consumer<TileEntityDungeonSpawner> PHASE_TEST = (tile) -> {
|
||||
|
||||
@ -5,6 +5,7 @@ import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntitySolarBoiler;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.I18nUtil;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@ -74,6 +75,10 @@ public class MachineSolarBoiler extends BlockDummyable implements ILookOverlay {
|
||||
for(int i = 0; i < tanks.length; i++)
|
||||
text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tanks[i].getTankType().getLocalizedName() + ": " + tanks[i].getFill() + "/" + tanks[i].getMaxFill() + "mB");
|
||||
|
||||
if(boiler.heat < 50) {
|
||||
text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]Too cold!");
|
||||
}
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,6 +35,16 @@ public class BlockConveyorChute extends BlockConveyorBase implements IToolable {
|
||||
return super.getTravelLocation(world, x, y, z, itemPos, speed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getInputDirection(World world, int x, int y, int z) {
|
||||
return ForgeDirection.UP;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getOutputDirection(World world, int x, int y, int z) {
|
||||
return ForgeDirection.DOWN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
|
||||
@ -21,6 +21,16 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockConveyorLift extends BlockConveyorBase implements IToolable {
|
||||
|
||||
@Override
|
||||
public ForgeDirection getInputDirection(World world, int x, int y, int z) {
|
||||
return ForgeDirection.DOWN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getOutputDirection(World world, int x, int y, int z) {
|
||||
return ForgeDirection.UP;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
|
||||
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.lib.RefStrings;
|
||||
@ -13,7 +12,6 @@ import com.hbm.tileentity.network.TileEntityPneumoTube;
|
||||
import com.hbm.util.Compat;
|
||||
|
||||
import api.hbm.block.IToolable;
|
||||
import api.hbm.fluidmk2.IFluidConnectorBlockMK2;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -33,7 +31,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class PneumoTube extends BlockContainer implements IToolable, IFluidConnectorBlockMK2, ITooltipProvider {
|
||||
public class PneumoTube extends BlockContainer implements IToolable, ITooltipProvider {
|
||||
|
||||
@SideOnly(Side.CLIENT) public IIcon baseIcon;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconIn;
|
||||
@ -176,7 +174,8 @@ public class PneumoTube extends BlockContainer implements IToolable, IFluidConne
|
||||
float lower = 0.3125F;
|
||||
float upper = 0.6875F;
|
||||
|
||||
TileEntityPneumoTube tube = (TileEntityPneumoTube) world.getTileEntity(x, y, z);
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
TileEntityPneumoTube tube = tile instanceof TileEntityPneumoTube ? (TileEntityPneumoTube) tile : null;
|
||||
|
||||
boolean nX = canConnectTo(world, x, y, z, Library.NEG_X) || canConnectToAir(world, x, y, z, Library.NEG_X);
|
||||
boolean pX = canConnectTo(world, x, y, z, Library.POS_X) || canConnectToAir(world, x, y, z, Library.POS_X);
|
||||
@ -209,7 +208,8 @@ public class PneumoTube extends BlockContainer implements IToolable, IFluidConne
|
||||
}
|
||||
|
||||
public boolean canConnectToAir(IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
|
||||
TileEntityPneumoTube tube = (TileEntityPneumoTube) world.getTileEntity(x, y, z);
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
TileEntityPneumoTube tube = te instanceof TileEntityPneumoTube ? (TileEntityPneumoTube) te : null;
|
||||
if(tube != null) {
|
||||
if(!tube.isCompressor()) return false;
|
||||
if(tube.ejectionDir == dir || tube.insertionDir == dir) return false;
|
||||
@ -219,12 +219,6 @@ public class PneumoTube extends BlockContainer implements IToolable, IFluidConne
|
||||
return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, Fluids.AIR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
|
||||
TileEntityPneumoTube tube = (TileEntityPneumoTube) world.getTileEntity(x, y, z);
|
||||
return tube != null && tube.isCompressor();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
|
||||
@ -30,6 +30,7 @@ public class ClientConfig extends RunningConfig {
|
||||
public static ConfigWrapper<Boolean> NUKE_HUD_FLASH = new ConfigWrapper(true);
|
||||
public static ConfigWrapper<Boolean> NUKE_HUD_SHAKE = new ConfigWrapper(true);
|
||||
public static ConfigWrapper<Boolean> RENDER_REEDS = new ConfigWrapper(!Compat.isModLoaded(Compat.MOD_ANG));
|
||||
public static ConfigWrapper<Boolean> NEI_HIDE_SECRETS = new ConfigWrapper(true);
|
||||
|
||||
private static void initDefaults() {
|
||||
configMap.put("GEIGER_OFFSET_HORIZONTAL", GEIGER_OFFSET_HORIZONTAL);
|
||||
@ -49,6 +50,7 @@ public class ClientConfig extends RunningConfig {
|
||||
configMap.put("NUKE_HUD_FLASH", NUKE_HUD_FLASH);
|
||||
configMap.put("NUKE_HUD_SHAKE", NUKE_HUD_SHAKE);
|
||||
configMap.put("RENDER_REEDS", RENDER_REEDS);
|
||||
configMap.put("NEI_HIDE_SECRETS", NEI_HIDE_SECRETS);
|
||||
}
|
||||
|
||||
/** Initializes defaults, then reads the config file if it exists, then writes the config file. */
|
||||
|
||||
@ -71,7 +71,6 @@ public class EntityMappings {
|
||||
addEntity(EntityMissileRain.class, "entity_missile_rain", 1000);
|
||||
addEntity(EntityMissileDrill.class, "entity_missile_drill", 1000);
|
||||
addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000);
|
||||
addEntity(EntityMIRV.class, "entity_mirvlet", 1000);
|
||||
addEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 1000);
|
||||
addEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 500);
|
||||
addEntity(EntityGrenadeTau.class, "entity_grenade_tau", 500);
|
||||
@ -106,7 +105,6 @@ public class EntityMappings {
|
||||
addEntity(EntityNukeExplosionMK5.class, "entity_nuke_mk5", 1000);
|
||||
addEntity(EntityCloudFleijaRainbow.class, "entity_cloud_rainbow", 1000);
|
||||
addEntity(EntityExplosiveBeam.class, "entity_beam_bomb", 1000);
|
||||
addEntity(EntityAAShell.class, "entity_aa_shell", 1000);
|
||||
addEntity(EntityMissileTest.class, "entity_missile_test_mk2", 1000);
|
||||
addEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 1000);
|
||||
addEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 1000);
|
||||
@ -214,7 +212,6 @@ public class EntityMappings {
|
||||
addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false);
|
||||
addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false);
|
||||
addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false);
|
||||
addEntity(TrainTunnelBore.class, "entity_ntm_tunnel_bore", 250, false);
|
||||
|
||||
addEntity(EntityDisperserCanister.class, "entity_disperser", 250);
|
||||
addEntity(EntityWaypoint.class, "entity_waypoint", 250, false);
|
||||
|
||||
@ -1,77 +0,0 @@
|
||||
package com.hbm.entity.missile;
|
||||
|
||||
import com.hbm.config.BombConfig;
|
||||
import com.hbm.entity.effect.EntityNukeTorex;
|
||||
import com.hbm.entity.logic.EntityNukeExplosionMK5;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.entity.projectile.EntityThrowable;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityMIRV extends EntityThrowable {
|
||||
|
||||
public EntityMIRV(World p_i1582_1_) {
|
||||
super(p_i1582_1_);
|
||||
this.ignoreFrustumCheck = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
this.prevPosX = this.posX;
|
||||
this.prevPosY = this.posY;
|
||||
this.prevPosZ = this.posZ;
|
||||
|
||||
this.posX += this.motionX;
|
||||
this.posY += this.motionY;
|
||||
this.posZ += this.motionZ;
|
||||
|
||||
this.motionY -= 0.03;
|
||||
|
||||
this.rotation();
|
||||
|
||||
if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) {
|
||||
if(!this.worldObj.isRemote) {
|
||||
worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.mirvRadius, posX, posY, posZ));
|
||||
EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.mirvRadius);
|
||||
}
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
protected void rotation() {
|
||||
float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
|
||||
this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
|
||||
|
||||
for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) {
|
||||
;
|
||||
}
|
||||
|
||||
while(this.rotationPitch - this.prevRotationPitch >= 180.0F) {
|
||||
this.prevRotationPitch += 360.0F;
|
||||
}
|
||||
|
||||
while(this.rotationYaw - this.prevRotationYaw < -180.0F) {
|
||||
this.prevRotationYaw -= 360.0F;
|
||||
}
|
||||
|
||||
while(this.rotationYaw - this.prevRotationYaw >= 180.0F) {
|
||||
this.prevRotationYaw += 360.0F;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onImpact(MovingObjectPosition p_70184_1_) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean isInRangeToRenderDist(double distance) {
|
||||
return distance < 500000;
|
||||
}
|
||||
|
||||
}
|
||||
@ -33,7 +33,7 @@ public class EntityCreeperGold extends EntityCreeper {
|
||||
|
||||
@Override
|
||||
public boolean getCanSpawnHere() {
|
||||
return super.getCanSpawnHere() && this.posY <= 40;
|
||||
return super.getCanSpawnHere() && this.posY <= 40 && this.dimension == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -26,6 +26,11 @@ public class EntityCreeperPhosgene extends EntityCreeper {
|
||||
return super.attackEntityFrom(source, amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getCanSpawnHere() {
|
||||
return super.getCanSpawnHere() && this.dimension == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void func_146077_cc() {
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ public class EntityCreeperVolatile extends EntityCreeper {
|
||||
|
||||
@Override
|
||||
public boolean getCanSpawnHere() {
|
||||
return super.getCanSpawnHere() && this.posY <= 40;
|
||||
return super.getCanSpawnHere() && this.posY <= 40 && this.dimension == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,113 +0,0 @@
|
||||
package com.hbm.entity.projectile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityAAShell extends Entity {
|
||||
|
||||
public int speedOverride = 1;
|
||||
public int fuse = 5;
|
||||
public int dFuse = 30;
|
||||
|
||||
public EntityAAShell(World p_i1582_1_) {
|
||||
super(p_i1582_1_);
|
||||
rotation();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void entityInit() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void readEntityFromNBT(NBTTagCompound p_70037_1_) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
if(fuse > 0)
|
||||
fuse --;
|
||||
|
||||
if(dFuse > 0) {
|
||||
dFuse --;
|
||||
} else {
|
||||
explode();
|
||||
return;
|
||||
}
|
||||
|
||||
this.lastTickPosX = this.prevPosX = this.posX;
|
||||
this.lastTickPosY = this.prevPosY = this.posY;
|
||||
this.lastTickPosZ = this.prevPosZ = this.posZ;
|
||||
|
||||
|
||||
for(int i = 0; i < 5; i++) {
|
||||
|
||||
this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ);
|
||||
|
||||
rotation();
|
||||
|
||||
if(fuse == 0) {
|
||||
List<Entity> list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(this.posX - 5, this.posY - 5, this.posZ - 5, this.posX + 5, this.posY + 5, this.posZ + 5));
|
||||
for(Entity e : list) {
|
||||
float size = e.width * e.width * e.height;
|
||||
if(size >= 0.5) {
|
||||
explode();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(worldObj.getBlock((int)posX, (int)posY, (int)posZ).getMaterial() != Material.air) {
|
||||
explode();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void rotation() {
|
||||
float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
|
||||
this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
|
||||
|
||||
for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
while (this.rotationPitch - this.prevRotationPitch >= 180.0F)
|
||||
{
|
||||
this.prevRotationPitch += 360.0F;
|
||||
}
|
||||
|
||||
while (this.rotationYaw - this.prevRotationYaw < -180.0F)
|
||||
{
|
||||
this.prevRotationYaw -= 360.0F;
|
||||
}
|
||||
|
||||
while (this.rotationYaw - this.prevRotationYaw >= 180.0F)
|
||||
{
|
||||
this.prevRotationYaw += 360.0F;
|
||||
}
|
||||
}
|
||||
|
||||
private void explode() {
|
||||
worldObj.createExplosion(null, posX, posY, posZ, 20, true);
|
||||
ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, posZ, 35);
|
||||
if(rand.nextInt(15) == 0)
|
||||
ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, 5 + rand.nextInt(11));
|
||||
else if(rand.nextInt(15) == 0)
|
||||
ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX * 2, motionY * 2, motionZ * 2, 5 + rand.nextInt(11), 0.15);
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
@ -1,54 +0,0 @@
|
||||
package com.hbm.entity.train;
|
||||
|
||||
import com.hbm.blocks.rail.IRailNTM.TrackGauge;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TrainTunnelBore extends EntityRailCarRidable {
|
||||
|
||||
public TrainTunnelBore(World world) {
|
||||
super(world);
|
||||
this.setSize(6F, 4F);
|
||||
}
|
||||
|
||||
@Override public double getPoweredAcceleration() { return 0.01; }
|
||||
@Override public double getPassivBrake() { return 0.95; }
|
||||
@Override public boolean shouldUseEngineBrake(EntityPlayer player) { return Math.abs(this.engineSpeed) < 0.1; }
|
||||
@Override public double getMaxPoweredSpeed() { return 0.5; }
|
||||
@Override public double getMaxRailSpeed() { return 1; }
|
||||
|
||||
@Override public TrackGauge getGauge() { return TrackGauge.STANDARD; }
|
||||
@Override public double getLengthSpan() { return 2.5; }
|
||||
@Override public double getCollisionSpan() { return 4.5; }
|
||||
@Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.0, 2.375, -2.375); }
|
||||
@Override public boolean shouldRiderSit() { return true; }
|
||||
@Override public int getSizeInventory() { return 0; }
|
||||
@Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTunnelBore"; }
|
||||
@Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; }
|
||||
|
||||
@Override public boolean canAccelerate() { return true; }
|
||||
@Override public Vec3[] getPassengerSeats() { return new Vec3[0]; }
|
||||
|
||||
@Override
|
||||
public DummyConfig[] getDummies() {
|
||||
return new DummyConfig[] {
|
||||
new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 2.5)),
|
||||
new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 1.25)),
|
||||
new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 0)),
|
||||
new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, -1.25)),
|
||||
new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, -2.5))
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean attackEntityFrom(DamageSource source, float amount) {
|
||||
if(!this.worldObj.isRemote && !this.isDead) {
|
||||
this.setDead();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -22,7 +22,6 @@ import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.VersatileConfig;
|
||||
import com.hbm.entity.grenade.EntityGrenadeASchrab;
|
||||
import com.hbm.entity.grenade.EntityGrenadeNuclear;
|
||||
import com.hbm.entity.missile.EntityMIRV;
|
||||
import com.hbm.entity.projectile.EntityBulletBaseNT;
|
||||
import com.hbm.entity.projectile.EntityExplosiveBeam;
|
||||
import com.hbm.interfaces.Spaghetti;
|
||||
@ -103,7 +102,6 @@ public class ExplosionNukeGeneric {
|
||||
private static boolean isExplosionExempt(Entity e) {
|
||||
|
||||
if (e instanceof EntityOcelot ||
|
||||
e instanceof EntityMIRV ||
|
||||
e instanceof EntityGrenadeASchrab ||
|
||||
e instanceof EntityGrenadeNuclear ||
|
||||
e instanceof EntityExplosiveBeam ||
|
||||
|
||||
@ -24,15 +24,9 @@ public class ContainerCraneExtractor extends ContainerBase {
|
||||
this.addSlotToContainer(new SlotPattern(extractor, j + i * 3, 71 + j * 18, 17 + i * 18));
|
||||
}
|
||||
}
|
||||
/*
|
||||
//buffer
|
||||
for(int i = 0; i < 3; i++) {
|
||||
for(int j = 0; j < 3; j++) {
|
||||
this.addSlotToContainer(new Slot(extractor, 9 + j + i * 3, 8 + j * 18, 17 + i * 18));
|
||||
}
|
||||
}*/
|
||||
addSlots(extractor,9,8,17,3,3);
|
||||
|
||||
//buffer
|
||||
addSlots(extractor,9,8,17,3,3);
|
||||
|
||||
//upgrades
|
||||
this.addSlotToContainer(new SlotUpgrade(extractor, 18, 152, 23));
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@ -26,6 +27,7 @@ public class GUIScreenClayTablet extends GuiScreen {
|
||||
protected int ySize = 84;
|
||||
protected int guiLeft;
|
||||
protected int guiTop;
|
||||
protected int tabletMeta = 0;
|
||||
|
||||
protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/guide_pedestal.png");
|
||||
|
||||
@ -49,29 +51,36 @@ public class GUIScreenClayTablet extends GuiScreen {
|
||||
|
||||
protected void drawGuiContainerBackgroundLayer(float f, int i, int j) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
if(player.getHeldItem() != null) tabletMeta = player.getHeldItem().getItemDamage();
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().hasTagCompound() && player.getHeldItem().stackTagCompound.hasKey("tabletSeed") && !PedestalRecipes.recipes.isEmpty()) {
|
||||
int tabletOffset = tabletMeta == 1 ? 84 : 0;
|
||||
int iconOffset = tabletMeta == 1 ? 16 : 0;
|
||||
float revealChance = tabletMeta == 1 ? 0.25F : 0.5F;
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, tabletOffset, xSize, ySize);
|
||||
|
||||
ArrayList<PedestalRecipe> recipeSet = PedestalRecipes.recipeSets[Math.abs(tabletMeta) % PedestalRecipes.recipeSets.length];
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().hasTagCompound() && player.getHeldItem().stackTagCompound.hasKey("tabletSeed") && !recipeSet.isEmpty()) {
|
||||
Random rand = new Random(player.getHeldItem().stackTagCompound.getLong("tabletSeed"));
|
||||
PedestalRecipe recipe = PedestalRecipes.recipes.get(rand.nextInt(PedestalRecipes.recipes.size()));
|
||||
PedestalRecipe recipe = recipeSet.get(rand.nextInt(recipeSet.size()));
|
||||
|
||||
if(recipe.extra == recipe.extra.FULL_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 32, 16, 16);
|
||||
if(recipe.extra == recipe.extra.NEW_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 48, 16, 16);
|
||||
if(recipe.extra == recipe.extra.SUN) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 64, 16, 16);
|
||||
if(recipe.extra == recipe.extra.FULL_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142 + iconOffset, 32, 16, 16);
|
||||
if(recipe.extra == recipe.extra.NEW_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142 + iconOffset, 48, 16, 16);
|
||||
if(recipe.extra == recipe.extra.SUN) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142 + iconOffset, 64, 16, 16);
|
||||
|
||||
for(int l = 0; l < 3; l++) {
|
||||
for(int r = 0; r < 3; r++) {
|
||||
if(rand.nextBoolean()) {
|
||||
drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16);
|
||||
if(rand.nextFloat() > revealChance) {
|
||||
drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142 + iconOffset, 16, 16, 16);
|
||||
} else {
|
||||
|
||||
AStack ingredient = recipe.input[r + l * 3];
|
||||
|
||||
if(ingredient == null) {
|
||||
drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 0, 16, 16);
|
||||
drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142 + iconOffset, 0, 16, 16);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -124,7 +133,7 @@ public class GUIScreenClayTablet extends GuiScreen {
|
||||
|
||||
for(int l = 0; l < 3; l++) {
|
||||
for(int r = 0; r < 3; r++) {
|
||||
drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16);
|
||||
drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142 + iconOffset, 16, 16, 16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,6 +70,7 @@ public class MatDistribution extends SerializableRecipe {
|
||||
registerOre(OreDictManager.IRON.ore(), MAT_IRON, INGOT.q(2), MAT_TITANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1));
|
||||
registerOre(OreDictManager.TI.ore(), MAT_TITANIUM, INGOT.q(2), MAT_IRON, NUGGET.q(3), MAT_STONE, QUART.q(1));
|
||||
registerOre(OreDictManager.W.ore(), MAT_TUNGSTEN, INGOT.q(2), MAT_STONE, QUART.q(1));
|
||||
registerOre(OreDictManager.AL.ore(), MAT_ALUMINIUM, INGOT.q(2), MAT_SODIUM, NUGGET.q(3), MAT_STONE, QUART.q(1));
|
||||
}
|
||||
|
||||
registerOre(OreDictManager.COAL.ore(), MAT_CARBON, GEM.q(3), MAT_STONE, QUART.q(1));
|
||||
|
||||
@ -142,7 +142,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new OreDictStack(DURA.pipe(), 4), new OreDictStack(MINGRADE.ingot(), 12), new OreDictStack(MINGRADE.wireFine(), 24), },500);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 6) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 3) }, 300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()), },500);
|
||||
|
||||
@ -28,76 +28,86 @@ import net.minecraft.item.ItemStack;
|
||||
public class PedestalRecipes extends SerializableRecipe {
|
||||
|
||||
public static List<PedestalRecipe> recipes = new ArrayList();
|
||||
public static ArrayList<PedestalRecipe>[] recipeSets = new ArrayList[2];
|
||||
|
||||
static { for(int i = 0; i < recipeSets.length; i++) recipeSets[i] = new ArrayList(); }
|
||||
|
||||
@Override
|
||||
public void registerDefaults() {
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_light_revolver_dani),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_light_revolver_dani),
|
||||
null, new OreDictStack(PB.plate()), null,
|
||||
new OreDictStack(GOLD.plate()), new ComparableStack(ModItems.gun_light_revolver), new OreDictStack(GOLD.plate()),
|
||||
null, new OreDictStack(PB.plate()), null));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_maresleg_broken),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_maresleg_broken),
|
||||
new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire),
|
||||
new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModItems.gun_maresleg), new OreDictStack(WEAPONSTEEL.plate()),
|
||||
new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire)));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_lilmac),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_lilmac),
|
||||
null, new ComparableStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SCOPE), null,
|
||||
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.gun_heavy_revolver), new OreDictStack(WEAPONSTEEL.plate()),
|
||||
null, new OreDictStack(BONE.grip()), new ComparableStack(Items.apple, 3)));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_protege),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_protege),
|
||||
new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16),
|
||||
new ComparableStack(ModItems.scrap_nuclear), new ComparableStack(ModItems.gun_heavy_revolver), new ComparableStack(ModItems.scrap_nuclear),
|
||||
new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16)));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker),
|
||||
new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.JIZZ), new OreDictStack(GOLD.plateCast()),
|
||||
new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()),
|
||||
new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.stick_dynamite), new OreDictStack(GOLD.plateCast()))
|
||||
.extra(PedestalExtraCondition.SUN));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_autoshotgun_sexy),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_autoshotgun_sexy),
|
||||
new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16),
|
||||
new ComparableStack(ModItems.card_qos), new ComparableStack(ModItems.gun_autoshotgun), new ComparableStack(ModItems.card_aos),
|
||||
new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16)));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_minigun_lacunae),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_minigun_lacunae),
|
||||
null, new ComparableStack(ModItems.powder_magic, 4), null,
|
||||
new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.gun_minigun), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL),
|
||||
null, new ComparableStack(ModItems.powder_magic, 4), null)
|
||||
.extra(PedestalExtraCondition.FULL_MOON));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_folly),
|
||||
new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL),
|
||||
new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16),
|
||||
new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL))
|
||||
.extra(PedestalExtraCondition.FULL_MOON));
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_folly),
|
||||
new ComparableStack(ModItems.item_secret, 4, EnumSecretType.FOLLY), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.FOLLY),
|
||||
new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16),
|
||||
new ComparableStack(ModItems.item_secret, 4, EnumSecretType.FOLLY), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.FOLLY))
|
||||
.extra(PedestalExtraCondition.FULL_MOON).set(1));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_aberrator),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_aberrator),
|
||||
null, new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), null,
|
||||
new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new OreDictStack(BIGMT.mechanism(), 4), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR),
|
||||
null, new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), null));
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_aberrator_eott),
|
||||
null, new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), null).set(1));
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.gun_aberrator_eott),
|
||||
new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR),
|
||||
new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new OreDictStack(BIGMT.mechanism(), 16), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR),
|
||||
new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR)));
|
||||
new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR))
|
||||
.extra(PedestalExtraCondition.GOOD_KARMA).set(1));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_SM.ordinal()),
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_SM.ordinal()),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1),
|
||||
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModBlocks.moon_turf), new ComparableStack(ModItems.powder_magic),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1))
|
||||
.extra(PedestalExtraCondition.FULL_MOON));
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_NUKE.ordinal()),
|
||||
.extra(PedestalExtraCondition.FULL_MOON).set(1));
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_NUKE.ordinal()),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1),
|
||||
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.ammo_standard, 4, EnumAmmo.NUKE_HIGH), new ComparableStack(ModItems.powder_magic),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1))
|
||||
.extra(PedestalExtraCondition.FULL_MOON));
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 5, EnumAmmoSecret.P35_800.ordinal()),
|
||||
.extra(PedestalExtraCondition.FULL_MOON).set(1));
|
||||
register(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 5, EnumAmmoSecret.P35_800.ordinal()),
|
||||
null, null, null,
|
||||
null, new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), null,
|
||||
null, null, null));
|
||||
null, null, null).set(1));
|
||||
}
|
||||
|
||||
public static void register(PedestalRecipe recipe) {
|
||||
recipes.add(recipe);
|
||||
int set = Math.abs(recipe.recipeSet) % recipeSets.length;
|
||||
recipeSets[set].add(recipe);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -113,6 +123,7 @@ public class PedestalRecipes extends SerializableRecipe {
|
||||
@Override
|
||||
public void deleteRecipes() {
|
||||
recipes.clear();
|
||||
for(int i = 0; i < recipeSets.length; i++) recipeSets[i].clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -137,6 +148,10 @@ public class PedestalRecipes extends SerializableRecipe {
|
||||
rec.extra = PedestalExtraCondition.valueOf(obj.get("extra").getAsString());
|
||||
}
|
||||
|
||||
if(obj.has("set")) {
|
||||
rec.recipeSet = obj.get("set").getAsInt();
|
||||
}
|
||||
|
||||
this.recipes.add(rec);
|
||||
}
|
||||
|
||||
@ -158,6 +173,7 @@ public class PedestalRecipes extends SerializableRecipe {
|
||||
writer.endArray();
|
||||
|
||||
writer.name("extra").value(rec.extra.name());
|
||||
if(rec.recipeSet != 0) writer.name("set").value(rec.recipeSet);
|
||||
}
|
||||
|
||||
public static enum PedestalExtraCondition {
|
||||
@ -167,6 +183,7 @@ public class PedestalRecipes extends SerializableRecipe {
|
||||
public static class PedestalRecipe {
|
||||
public ItemStack output;
|
||||
public AStack[] input;
|
||||
public int recipeSet = 0;
|
||||
public PedestalExtraCondition extra = PedestalExtraCondition.NONE;
|
||||
|
||||
public PedestalRecipe(ItemStack output, AStack... input) {
|
||||
@ -178,5 +195,10 @@ public class PedestalRecipes extends SerializableRecipe {
|
||||
this.extra = extra;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PedestalRecipe set(int set) {
|
||||
this.recipeSet = set;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemRTGPelletDepleted;
|
||||
import com.hbm.items.tool.ItemBlowtorch;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.util.WeightedRandomChestContent;
|
||||
|
||||
@ -27,6 +28,7 @@ public class ItemPoolsComponent {
|
||||
public static final String POOL_METEOR_SAFE = "POOL_METEOR_SAFE";
|
||||
public static final String POOL_OIL_RIG = "POOL_OIL_RIG";
|
||||
public static final String POOL_RTG = "POOL_RTG";
|
||||
public static final String POOL_REPAIR_MATERIALS = "POOL_REPAIR_MATERIALS";
|
||||
|
||||
public static void init() {
|
||||
|
||||
@ -219,5 +221,24 @@ public class ItemPoolsComponent {
|
||||
weighted(ModItems.pellet_rtg_weak,0, 0, 1, 1),
|
||||
};
|
||||
}};
|
||||
|
||||
new ItemPool(POOL_REPAIR_MATERIALS) {{
|
||||
this.pool = new WeightedRandomChestContent[] {
|
||||
weighted(ModItems.ingot_aluminium, 0, 2, 8, 3),
|
||||
weighted(ModItems.ingot_steel, 0, 0, 12, 4),
|
||||
weighted(ModItems.plate_aluminium, 0, 5, 12, 3),
|
||||
weighted(ModItems.plate_iron, 0, 6, 16, 3),
|
||||
weighted(ModItems.plate_steel, 0, 2, 12, 2),
|
||||
weighted(ModItems.ingot_tungsten, 0, 0, 2, 1),
|
||||
weighted(ModBlocks.deco_aluminium, 0, 12, 24, 4),
|
||||
weighted(ModBlocks.deco_steel, 0, 5, 12, 2),
|
||||
weighted(ModBlocks.block_aluminium, 0, 0, 2, 1),
|
||||
weighted(ModBlocks.block_steel, 0, 0, 1, 1),
|
||||
weighted(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3),
|
||||
weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 2, 4),
|
||||
weighted(ModItems.circuit, EnumCircuitType.ANALOG.ordinal(), 1, 3, 5),
|
||||
weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 3),
|
||||
};
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,10 +79,14 @@ public class ItemEnums {
|
||||
}
|
||||
|
||||
public static enum EnumSecretType {
|
||||
CANISTER, CONTROLLER, SELENIUM_STEEL, ABERRATOR
|
||||
CANISTER, CONTROLLER, SELENIUM_STEEL, ABERRATOR, FOLLY
|
||||
}
|
||||
|
||||
public static enum EnumCasingType {
|
||||
SMALL, LARGE, SMALL_STEEL, LARGE_STEEL, SHOTSHELL, BUCKSHOT, BUCKSHOT_ADVANCED
|
||||
}
|
||||
|
||||
public static enum EnumIngotMetal {
|
||||
INGOT, COUNTER, KEY, BEACON, CASING, CLOCKWORK, BAR, DETECTOR
|
||||
}
|
||||
}
|
||||
|
||||
@ -343,6 +343,7 @@ public class ModItems {
|
||||
public static Item safety_fuse;
|
||||
public static Item part_generic;
|
||||
public static Item item_secret;
|
||||
public static Item ingot_metal;
|
||||
public static Item chemical_dye;
|
||||
public static Item crayon;
|
||||
|
||||
@ -2369,6 +2370,7 @@ public class ModItems {
|
||||
safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse");
|
||||
part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic");
|
||||
item_secret = new ItemEnumMulti(EnumSecretType.class, true, true).setUnlocalizedName("item_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":item_secret");
|
||||
ingot_metal = new ItemEnumMulti(EnumIngotMetal.class, true, true).setUnlocalizedName("ingot_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_metal");
|
||||
chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye");
|
||||
crayon = new ItemCrayon().setUnlocalizedName("crayon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crayon");
|
||||
|
||||
@ -2433,7 +2435,6 @@ public class ModItems {
|
||||
ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite");
|
||||
ingot_biorubber = new ItemCustomLore().setUnlocalizedName("ingot_biorubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_biorubber");
|
||||
ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber");
|
||||
//ingot_pet = new ItemCustomLore().setUnlocalizedName("ingot_pet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pet");
|
||||
ingot_pc = new ItemCustomLore().setUnlocalizedName("ingot_pc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pc");
|
||||
ingot_pvc = new ItemCustomLore().setUnlocalizedName("ingot_pvc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pvc");
|
||||
ingot_desh = new ItemCustomLore().setUnlocalizedName("ingot_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_desh");
|
||||
@ -5574,6 +5575,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(crayon, crayon.getUnlocalizedName());
|
||||
GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName());
|
||||
GameRegistry.registerItem(item_secret, item_secret.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_metal, ingot_metal.getUnlocalizedName());
|
||||
GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName());
|
||||
GameRegistry.registerItem(sawblade, sawblade.getUnlocalizedName());
|
||||
@ -6569,7 +6571,6 @@ public class ModItems {
|
||||
GameRegistry.registerItem(schrabidium_hammer, schrabidium_hammer.getUnlocalizedName());
|
||||
GameRegistry.registerItem(shimmer_sledge, shimmer_sledge.getUnlocalizedName());
|
||||
GameRegistry.registerItem(shimmer_axe, shimmer_axe.getUnlocalizedName());
|
||||
//GameRegistry.registerItem(pch, pch.getUnlocalizedName()); //sike, nevermind
|
||||
GameRegistry.registerItem(wood_gavel, wood_gavel.getUnlocalizedName());
|
||||
GameRegistry.registerItem(lead_gavel, lead_gavel.getUnlocalizedName());
|
||||
GameRegistry.registerItem(diamond_gavel, diamond_gavel.getUnlocalizedName());
|
||||
|
||||
@ -3,7 +3,10 @@ package com.hbm.items.armor;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.extprop.HbmPlayerProps;
|
||||
import com.hbm.handler.ArmorModHandler;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.render.model.ModelArmorTrenchmaster;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -11,6 +14,7 @@ import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
|
||||
@ -43,7 +47,7 @@ public class ArmorTrenchmaster extends ArmorFSB {
|
||||
super.addInformation(stack, player, list, ext);
|
||||
|
||||
//list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload"));
|
||||
//list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo"));
|
||||
list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -83,4 +87,17 @@ public class ArmorTrenchmaster extends ArmorFSB {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isTrenchMaster(EntityPlayer player) {
|
||||
return player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() == ModItems.trenchmaster_plate && ArmorFSB.hasFSBArmor(player);
|
||||
}
|
||||
|
||||
public static boolean hasAoS(EntityPlayer player) {
|
||||
if(player.inventory.armorInventory[3] != null) {
|
||||
ItemStack[] mods = ArmorModHandler.pryMods(player.inventory.armorInventory[3]);
|
||||
ItemStack helmet = mods[ArmorModHandler.helmet_only];
|
||||
return helmet != null && helmet.getItem() == ModItems.card_aos;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,10 +4,11 @@ import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.effect.EntityVortex;
|
||||
import com.hbm.entity.missile.EntityMIRV;
|
||||
import com.hbm.entity.projectile.EntityBoxcar;
|
||||
import com.hbm.entity.projectile.EntityMeteor;
|
||||
import com.hbm.explosion.ExplosionChaos;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.interfaces.Spaghetti;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
@ -23,14 +24,13 @@ import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@Spaghetti("why do you even exist")
|
||||
public class ItemGlitch extends Item implements IBatteryItem {
|
||||
|
||||
public ItemGlitch()
|
||||
{
|
||||
this.maxStackSize = 1;
|
||||
this.setMaxDamage(1);
|
||||
}
|
||||
|
||||
public ItemGlitch() {
|
||||
this.maxStackSize = 1;
|
||||
this.setMaxDamage(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
@ -152,7 +152,7 @@ public class ItemGlitch extends Item implements IBatteryItem {
|
||||
world.spawnEntityInWorld(vortex);
|
||||
break;
|
||||
case 28:
|
||||
EntityMIRV mirv = new EntityMIRV(world);
|
||||
EntityMeteor mirv = new EntityMeteor(world);
|
||||
mirv.posX = player.posX;
|
||||
mirv.posY = player.posY + 100;
|
||||
mirv.posZ = player.posZ;
|
||||
|
||||
@ -8,7 +8,6 @@ import com.hbm.blocks.rail.IRailNTM.RailCheckType;
|
||||
import com.hbm.entity.train.EntityRailCarBase;
|
||||
import com.hbm.entity.train.TrainCargoTram;
|
||||
import com.hbm.entity.train.TrainCargoTramTrailer;
|
||||
import com.hbm.entity.train.TrainTunnelBore;
|
||||
import com.hbm.items.ItemEnumMulti;
|
||||
import com.hbm.util.EnumUtil;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
@ -45,8 +44,7 @@ public class ItemTrain extends ItemEnumMulti {
|
||||
|
||||
// Engine Gauge Max Speed Accel. Eng. Brake Parking Brake
|
||||
CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes"),
|
||||
CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"),
|
||||
TUNNEL_BORE(TrainTunnelBore.class, "NONE", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes");
|
||||
CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No");
|
||||
|
||||
public Class<? extends EntityRailCarBase> train;
|
||||
public String engine;
|
||||
|
||||
@ -1,14 +1,17 @@
|
||||
package com.hbm.items.tool;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.network.BlockConveyorBase;
|
||||
import com.hbm.blocks.network.BlockConveyorBendable;
|
||||
import com.hbm.blocks.network.BlockCraneBase;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.render.util.RenderOverhead;
|
||||
import com.hbm.util.I18nUtil;
|
||||
import com.hbm.wiaj.WorldInAJar;
|
||||
@ -32,11 +35,12 @@ import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.MovingObjectPosition.MovingObjectType;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import net.minecraftforge.common.ForgeHooks;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.event.world.BlockEvent;
|
||||
|
||||
public class ItemConveyorWand extends Item {
|
||||
public class ItemConveyorWand extends Item implements ILookOverlay {
|
||||
|
||||
public ItemConveyorWand() {
|
||||
setHasSubtypes(true);
|
||||
@ -307,6 +311,8 @@ public class ItemConveyorWand extends Item {
|
||||
// In creative, auto delete connected conveyors
|
||||
@Override
|
||||
public boolean onBlockStartBreak(ItemStack stack, int x, int y, int z, EntityPlayer playerEntity) {
|
||||
if(!playerEntity.isSneaking()) return false;
|
||||
|
||||
World world = playerEntity.worldObj;
|
||||
Block block = world.getBlock(x, y, z);
|
||||
|
||||
@ -316,9 +322,11 @@ public class ItemConveyorWand extends Item {
|
||||
EntityPlayerMP player = (EntityPlayerMP) playerEntity;
|
||||
|
||||
if(!world.isRemote && block instanceof BlockConveyorBase) {
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
breakExtra(world, player, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, 32);
|
||||
}
|
||||
BlockConveyorBase conveyor = (BlockConveyorBase) block;
|
||||
ForgeDirection input = conveyor.getInputDirection(world, x, y, z);
|
||||
ForgeDirection output = conveyor.getOutputDirection(world, x, y, z);
|
||||
breakExtra(world, player, x + input.offsetX, y + input.offsetY, z + input.offsetZ, 32);
|
||||
breakExtra(world, player, x + output.offsetX, y + output.offsetY, z + output.offsetZ, 32);
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -332,6 +340,10 @@ public class ItemConveyorWand extends Item {
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if(!(block instanceof BlockConveyorBase)) return;
|
||||
|
||||
BlockConveyorBase conveyor = (BlockConveyorBase) block;
|
||||
ForgeDirection input = conveyor.getInputDirection(world, x, y, z);
|
||||
ForgeDirection output = conveyor.getOutputDirection(world, x, y, z);
|
||||
|
||||
BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, player.theItemInWorldManager.getGameType(), player, x, y, z);
|
||||
if(event.isCanceled())
|
||||
return;
|
||||
@ -342,10 +354,8 @@ public class ItemConveyorWand extends Item {
|
||||
}
|
||||
|
||||
player.playerNetServerHandler.sendPacket(new S23PacketBlockChange(x, y, z, world));
|
||||
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
breakExtra(world, player, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, depth);
|
||||
}
|
||||
breakExtra(world, player, x + input.offsetX, y + input.offsetY, z + input.offsetZ, depth);
|
||||
breakExtra(world, player, x + output.offsetX, y + output.offsetY, z + output.offsetZ, depth);
|
||||
}
|
||||
|
||||
// attempts to construct a conveyor between two points, including bends, lifts, and chutes
|
||||
@ -392,7 +402,7 @@ public class ItemConveyorWand extends Item {
|
||||
ForgeDirection horDir = dir == ForgeDirection.UP || dir == ForgeDirection.DOWN ? ForgeDirection.getOrientation(getFacingMeta(player)).getOpposite() : dir;
|
||||
|
||||
// Initial dropdown to floor level, if possible
|
||||
if(y > ty) {
|
||||
if(hasVertical && y > ty) {
|
||||
if(routeWorld.getBlock(x, y - 1, z).isReplaceable(routeWorld, x, y - 1, z)) {
|
||||
dir = ForgeDirection.DOWN;
|
||||
}
|
||||
@ -492,4 +502,18 @@ public class ItemConveyorWand extends Item {
|
||||
return Math.abs(x1 - x2) + Math.abs(y1 - y2) + Math.abs(z1 - z2);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
EntityPlayer player = MainRegistry.proxy.me();
|
||||
if(player == null || !player.isSneaking() || !player.capabilities.isCreativeMode) return;
|
||||
|
||||
Block block = world.getBlock(x, y, z);
|
||||
if(block instanceof BlockConveyorBase) {
|
||||
List<String> text = new ArrayList<>();
|
||||
text.add("Break whole conveyor line");
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(block.getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -7,7 +7,6 @@ import org.lwjgl.input.Mouse;
|
||||
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.entity.projectile.EntityBulletBaseNT;
|
||||
import com.hbm.handler.ArmorModHandler;
|
||||
import com.hbm.handler.BulletConfigSyncingUtil;
|
||||
import com.hbm.handler.BulletConfiguration;
|
||||
import com.hbm.handler.CasingEjector;
|
||||
@ -17,8 +16,7 @@ import com.hbm.interfaces.IHoldableWeapon;
|
||||
import com.hbm.interfaces.IItemHUD;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.items.IEquipReceiver;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.armor.ArmorFSB;
|
||||
import com.hbm.items.armor.ArmorTrenchmaster;
|
||||
import com.hbm.items.weapon.sedna.Crosshair;
|
||||
import com.hbm.lib.HbmCollection;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
@ -50,6 +48,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
|
||||
@Deprecated
|
||||
public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEquipReceiver {
|
||||
|
||||
public GunConfiguration mainConfig;
|
||||
@ -590,8 +589,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu
|
||||
config = altConfig;
|
||||
|
||||
if(hasInfinity(stack, config)) return;
|
||||
if(isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return;
|
||||
if(hasAoS(player) && player.getRNG().nextInt(3) == 0) return;
|
||||
if(ArmorTrenchmaster.isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return;
|
||||
if(ArmorTrenchmaster.hasAoS(player) && player.getRNG().nextInt(3) == 0) return;
|
||||
|
||||
if(config.reloadType != GunConfiguration.RELOAD_NONE) {
|
||||
setMag(stack, getMag(stack) - 1);
|
||||
@ -842,20 +841,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu
|
||||
GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig;
|
||||
int cycle = config.reloadDuration;
|
||||
if (getMag(stack) == 0) cycle += config.emptyReloadAdditionalDuration;
|
||||
if(isTrenchMaster(player)) return Math.max(1, cycle / 2);
|
||||
if(ArmorTrenchmaster.isTrenchMaster(player)) return Math.max(1, cycle / 2);
|
||||
return cycle;
|
||||
}
|
||||
|
||||
public static boolean isTrenchMaster(EntityPlayer player) {
|
||||
return player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() == ModItems.trenchmaster_plate && ArmorFSB.hasFSBArmor(player);
|
||||
}
|
||||
|
||||
public static boolean hasAoS(EntityPlayer player) {
|
||||
if(player.inventory.armorInventory[3] != null) {
|
||||
ItemStack[] mods = ArmorModHandler.pryMods(player.inventory.armorInventory[3]);
|
||||
ItemStack helmet = mods[ArmorModHandler.helmet_only];
|
||||
return helmet != null && helmet.getItem() == ModItems.card_aos;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.gui.GUIWeaponTable;
|
||||
import com.hbm.items.IEquipReceiver;
|
||||
import com.hbm.items.IKeybindReceiver;
|
||||
import com.hbm.items.armor.ArmorTrenchmaster;
|
||||
import com.hbm.items.weapon.sedna.hud.IHUDComponent;
|
||||
import com.hbm.items.weapon.sedna.mags.IMagazine;
|
||||
import com.hbm.items.weapon.sedna.mods.WeaponModManager;
|
||||
@ -320,7 +321,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I
|
||||
return;
|
||||
}
|
||||
|
||||
for(int i = 0; i < confNo; i++) {
|
||||
for(int i = 0; i < confNo; i++) for(int k = 0; k == 0 || (k < 2 && ArmorTrenchmaster.isTrenchMaster(player) && this.getState(stack, i) == GunState.RELOADING); k++) {
|
||||
BiConsumer<ItemStack, LambdaContext> orchestra = configs[i].getOrchestra(stack);
|
||||
if(orchestra != null) orchestra.accept(stack, ctx[i]);
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.items.weapon.sedna.mags;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.armor.ArmorTrenchmaster;
|
||||
import com.hbm.items.tool.ItemCasingBag;
|
||||
import com.hbm.items.weapon.sedna.BulletConfig;
|
||||
import com.hbm.particle.SpentCasing;
|
||||
@ -58,4 +59,14 @@ public interface IMagazine<T> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean shouldUseUpTrenchie(IInventory inv) {
|
||||
if(inv instanceof InventoryPlayer) {
|
||||
InventoryPlayer invPlayer = (InventoryPlayer) inv;
|
||||
boolean trenchie = ArmorTrenchmaster.isTrenchMaster(invPlayer.player);
|
||||
boolean aos = ArmorTrenchmaster.hasAoS(invPlayer.player);
|
||||
if(trenchie || aos) return invPlayer.player.getRNG().nextInt(3) < 2;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,6 +29,7 @@ public class MagazineBelt implements IMagazine<BulletConfig> {
|
||||
@Override
|
||||
public void useUpAmmo(ItemStack stack, IInventory inventory, int amount) {
|
||||
if(inventory == null) return;
|
||||
if(!IMagazine.shouldUseUpTrenchie(inventory)) return;
|
||||
|
||||
BulletConfig first = this.getFirstConfig(stack, inventory);
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ public class MagazineFullReload extends MagazineSingleTypeBase {
|
||||
|
||||
if(config.ammo.matchesRecipe(slot, true)) {
|
||||
int alreadyLoaded = this.getAmount(stack, inventory);
|
||||
int wantsToLoad = (int) Math.ceil((double) this.getCapacity(stack) / (double) config.ammoReloadCount) - (alreadyLoaded / config.ammoReloadCount);
|
||||
int wantsToLoad = (int) Math.ceil((double) (this.getCapacity(stack) - alreadyLoaded) / (double) config.ammoReloadCount);
|
||||
int toLoad = Math.min(wantsToLoad, slot.stackSize);
|
||||
this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity));
|
||||
inventory.decrStackSize(i, toLoad);
|
||||
|
||||
@ -69,6 +69,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine<BulletConfig>
|
||||
|
||||
@Override
|
||||
public void useUpAmmo(ItemStack stack, IInventory inventory, int amount) {
|
||||
if(!IMagazine.shouldUseUpTrenchie(inventory) && getCapacity(stack) != 1) return;
|
||||
this.setAmount(stack, this.getAmount(stack, inventory) - amount);
|
||||
IMagazine.handleAmmoBag(inventory, this.getType(stack, inventory), amount);
|
||||
}
|
||||
|
||||
@ -278,18 +278,6 @@ public class HbmWorldGen implements IWorldGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
if(biome.temperature == 0.5F || biome.temperature == 2.0F) {
|
||||
if(WorldConfig.satelliteStructure > 0 && rand.nextInt(WorldConfig.satelliteStructure) == 0) {
|
||||
for(int a = 0; a < 1; a++) {
|
||||
int x = i + rand.nextInt(16);
|
||||
int z = j + rand.nextInt(16);
|
||||
int y = world.getHeightValue(x, z);
|
||||
|
||||
new Satellite().generate(world, rand, x, y, z);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!biome.canSpawnLightningBolt() && biome.temperature >= 1.5F) {
|
||||
if(rand.nextInt(200) == 0) {
|
||||
for(int a = 0; a < 1; a++) {
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||
public static final String VERSION = "1.0.27 BETA (5298)";
|
||||
public static final String VERSION = "1.0.27 BETA (5299)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -23,10 +23,7 @@ import com.hbm.entity.missile.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier0.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier1.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier2.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileBurst;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileDrill;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileInferno;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileRain;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.*;
|
||||
import com.hbm.entity.mob.*;
|
||||
import com.hbm.entity.mob.botprime.EntityBOTPrimeBody;
|
||||
@ -37,9 +34,7 @@ import com.hbm.entity.particle.*;
|
||||
import com.hbm.entity.projectile.*;
|
||||
import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity;
|
||||
import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity;
|
||||
import com.hbm.entity.train.TrainCargoTram;
|
||||
import com.hbm.entity.train.TrainCargoTramTrailer;
|
||||
import com.hbm.entity.train.TrainTunnelBore;
|
||||
import com.hbm.entity.train.*;
|
||||
import com.hbm.handler.CasingEjector;
|
||||
import com.hbm.handler.HbmKeybinds;
|
||||
import com.hbm.handler.HbmKeybinds.EnumKeybind;
|
||||
@ -595,7 +590,6 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMinerRocket.class, new RenderMinerRocket());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBobmazon.class, new RenderMinerRocket());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityTom.class, new RenderTom());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityAAShell.class, new RenderMirv());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityChopperMine.class, new RenderChopperMine());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityRubble.class, new RenderRubble());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityShrapnel.class, new RenderShrapnel());
|
||||
@ -682,7 +676,6 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileNuclear.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileVolcano.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsdayRusted.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz());
|
||||
@ -719,7 +712,6 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty());
|
||||
RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram());
|
||||
RenderingRegistry.registerEntityRenderingHandler(TrainCargoTramTrailer.class, new RenderTrainCargoTramTrailer());
|
||||
RenderingRegistry.registerEntityRenderingHandler(TrainTunnelBore.class, new RenderTunnelBore());
|
||||
//items
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage());
|
||||
|
||||
@ -299,6 +299,7 @@ public class MainRegistry {
|
||||
OreDictManager.registerOres();
|
||||
|
||||
if(WorldConfig.enableCraterBiomes) BiomeGenCraterBase.initDictionary();
|
||||
//BiomeGenNoMansLand.initDictionary();
|
||||
|
||||
aMatSchrab.customCraftingMaterial = ModItems.ingot_schrabidium;
|
||||
aMatHaz.customCraftingMaterial = ModItems.hazmat_cloth;
|
||||
|
||||
@ -7,8 +7,10 @@ import codechicken.nei.api.ItemInfo.Layout;
|
||||
import codechicken.nei.recipe.*;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie;
|
||||
import com.hbm.config.ClientConfig;
|
||||
import com.hbm.config.CustomMachineConfigJSON;
|
||||
import com.hbm.handler.nei.CustomMachineHandler;
|
||||
import com.hbm.items.ItemEnums.EnumIngotMetal;
|
||||
import com.hbm.items.ItemEnums.EnumSecretType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBattery;
|
||||
@ -36,17 +38,18 @@ public class NEIConfig implements IConfigureNEI {
|
||||
registerHandlerBypass(new CustomMachineHandler(conf));
|
||||
}
|
||||
|
||||
for(Item item : ItemGunBaseNT.secrets) {
|
||||
API.hideItem(new ItemStack(item));
|
||||
if(ClientConfig.NEI_HIDE_SECRETS.get()) {
|
||||
for(Item item : ItemGunBaseNT.secrets) API.hideItem(new ItemStack(item));
|
||||
for(int i = 0; i < EnumAmmoSecret.values().length; i++) API.hideItem(new ItemStack(ModItems.ammo_secret, 1, i));
|
||||
for(int i = 0; i < EnumSecretType.values().length; i++) API.hideItem(new ItemStack(ModItems.item_secret, 1, i));
|
||||
}
|
||||
|
||||
for(int i = 0; i < EnumAmmoSecret.values().length; i++) API.hideItem(new ItemStack(ModItems.ammo_secret, 1, i));
|
||||
for(int i = 0; i < EnumIngotMetal.values().length; i++) API.hideItem(new ItemStack(ModItems.ingot_metal, 1, i));
|
||||
|
||||
//Some things are even beyond my control...or are they?
|
||||
API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory));
|
||||
API.hideItem(ItemBattery.getFullBattery(ModItems.memory));
|
||||
|
||||
for(int i = 0; i < EnumSecretType.values().length; i++) API.hideItem(new ItemStack(ModItems.item_secret, 1, i));
|
||||
API.hideItem(new ItemStack(ModBlocks.machine_electric_furnace_on));
|
||||
API.hideItem(new ItemStack(ModBlocks.machine_difurnace_on));
|
||||
API.hideItem(new ItemStack(ModBlocks.machine_rtg_furnace_on));
|
||||
|
||||
@ -61,7 +61,7 @@ public class ResourceManager {
|
||||
public static final IModelCustom mine_ap = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ap_mine.obj")).asVBO();
|
||||
public static final IModelCustom mine_marelet = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/marelet.obj")).asVBO();
|
||||
public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj"));
|
||||
public static final IModelCustom mine_naval = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/NMine.obj")).asVBO();
|
||||
public static final IModelCustom mine_naval = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/naval_mine.obj")).asVBO();
|
||||
|
||||
|
||||
//Oil Pumps
|
||||
@ -225,7 +225,6 @@ public class ResourceManager {
|
||||
public static final IModelCustom sphere_ruv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_ruv.obj"));
|
||||
public static final IModelCustom sphere_iuv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_iuv.obj"));
|
||||
public static final IModelCustom sphere_uv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_uv.obj"));
|
||||
public static final IModelCustom sphere_uv_anim = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_uv.hmf"));
|
||||
|
||||
//Meteor
|
||||
public static final IModelCustom meteor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/meteor.obj"));
|
||||
@ -268,7 +267,7 @@ public class ResourceManager {
|
||||
//Bombs
|
||||
public static final IModelCustom bomb_gadget = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/gadget.obj")).asVBO();
|
||||
public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/LilBoy1.obj"));
|
||||
public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asVBO();
|
||||
public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fat_man.obj")).asVBO();
|
||||
public static final IModelCustom bomb_mike = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ivymike.obj"));
|
||||
public static final IModelCustom bomb_tsar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")).asVBO();
|
||||
public static final IModelCustom bomb_prototype = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Prototype.obj"));
|
||||
@ -277,7 +276,6 @@ public class ResourceManager {
|
||||
public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj"));
|
||||
public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj"));
|
||||
public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO();
|
||||
public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj")).asVBO();
|
||||
public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO();
|
||||
|
||||
//Satellites
|
||||
@ -728,7 +726,6 @@ public class ResourceManager {
|
||||
public static final ResourceLocation n45_stand_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n45_stand.png");
|
||||
public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_chain.png");
|
||||
public static final ResourceLocation fstbmb_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fstbmb.png");
|
||||
public static final ResourceLocation dud_tex = new ResourceLocation(RefStrings.MODID, "textures/models/BalefireCrashed.png");
|
||||
public static final ResourceLocation dud_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_balefire.png");
|
||||
|
||||
//Satellites
|
||||
@ -1103,7 +1100,6 @@ public class ResourceManager {
|
||||
public static final IModelCustom duchessgambit = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/duchessgambit.obj"));
|
||||
public static final IModelCustom building = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/building.obj"));
|
||||
public static final IModelCustom torpedo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/torpedo.obj"));
|
||||
public static final IModelCustom rpc = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rpc.obj"));
|
||||
public static final IModelCustom tom_main = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/tom_main.obj"));
|
||||
public static final IModelCustom tom_flame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/tom_flame.hmf"));
|
||||
public static final IModelCustom nikonium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/nikonium.obj"));
|
||||
@ -1210,7 +1206,6 @@ public class ResourceManager {
|
||||
public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj"));
|
||||
public static final IModelCustom train_cargo_tram = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram.obj"));
|
||||
public static final IModelCustom train_cargo_tram_trailer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram_trailer.obj"));
|
||||
public static final IModelCustom tunnel_bore = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/vehicles/tunnel_bore.obj"));
|
||||
|
||||
//Drones
|
||||
public static final IModelCustom delivery_drone = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/drone.obj"));
|
||||
@ -1218,8 +1213,6 @@ public class ResourceManager {
|
||||
////Texture Entities
|
||||
|
||||
//Blast
|
||||
public static final ResourceLocation fireball = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball.png");
|
||||
public static final ResourceLocation balefire = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire.png");
|
||||
public static final ResourceLocation tomblast = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/tomblast.png");
|
||||
|
||||
//Boxcar
|
||||
@ -1256,39 +1249,37 @@ public class ResourceManager {
|
||||
public static final ResourceLocation c130_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/c130_0.png");
|
||||
|
||||
//Missiles
|
||||
public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2.png");
|
||||
public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_inc.png");
|
||||
public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_cl.png");
|
||||
public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png");
|
||||
public static final ResourceLocation missileV2_decoy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_decoy.png");
|
||||
public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png");
|
||||
public static final ResourceLocation missileStealth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_stealth.png");
|
||||
public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong.png");
|
||||
public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_emp.png");
|
||||
public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_inc.png");
|
||||
public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_cl.png");
|
||||
public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_bu.png");
|
||||
public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge.png");
|
||||
public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_inc.png");
|
||||
public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_cl.png");
|
||||
public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_bu.png");
|
||||
public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_nuclear.png");
|
||||
public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_thermo.png");
|
||||
public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_tectonic.png");
|
||||
public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday.png");
|
||||
public static final ResourceLocation missileDoomsdayRusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday_weathered.png");
|
||||
public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_taint.png");
|
||||
public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileShuttle.png");
|
||||
public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro.png");
|
||||
public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileCarrier.png");
|
||||
public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileBooster.png");
|
||||
public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_v2.png");
|
||||
public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_v2_inc.png");
|
||||
public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_v2_cl.png");
|
||||
public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_v2_bu.png");
|
||||
public static final ResourceLocation missileV2_decoy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_v2_decoy.png");
|
||||
public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_abm.png");
|
||||
public static final ResourceLocation missileStealth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_stealth.png");
|
||||
public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_strong.png");
|
||||
public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_strong_emp.png");
|
||||
public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_strong_inc.png");
|
||||
public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_strong_cl.png");
|
||||
public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_strong_bu.png");
|
||||
public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_huge.png");
|
||||
public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_huge_inc.png");
|
||||
public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_huge_cl.png");
|
||||
public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_huge_bu.png");
|
||||
public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_atlas_nuclear.png");
|
||||
public static final ResourceLocation missileThermo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_atlas_thermo.png");
|
||||
public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_atlas_tectonic.png");
|
||||
public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_atlas_doomsday.png");
|
||||
public static final ResourceLocation missileDoomsdayRusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_atlas_doomsday_weathered.png");
|
||||
public static final ResourceLocation missileMicroTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_micro_taint.png");
|
||||
public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_micro.png");
|
||||
public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_micro_bhole.png");
|
||||
public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_micro_schrab.png");
|
||||
public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_micro_emp.png");
|
||||
public static final ResourceLocation missileMicroTest_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_test.png");
|
||||
public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile/missile_shuttle.png");
|
||||
public static final ResourceLocation minerRocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/minerRocket.png");
|
||||
public static final ResourceLocation bobmazon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bobmazon.png");
|
||||
public static final ResourceLocation siege_dropship_tex = new ResourceLocation(RefStrings.MODID, "textures/models/siege_dropship.png");
|
||||
public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_bhole.png");
|
||||
public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_schrab.png");
|
||||
public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_emp.png");
|
||||
public static final ResourceLocation missileMicroTest_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_test.png");
|
||||
|
||||
public static final ResourceLocation soyuz_engineblock = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/engineblock.png");
|
||||
public static final ResourceLocation soyuz_bottomstage = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/bottomstage.png");
|
||||
|
||||
@ -60,6 +60,7 @@ public class StructureManager {
|
||||
public static final NBTStructure oil_rig = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/oil_rig.nbt"));
|
||||
public static final NBTStructure beached_patrol = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/beached_patrol.nbt"));
|
||||
public static final NBTStructure lighthouse = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/lighthouse.nbt"));
|
||||
public static final NBTStructure dish = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/dish.nbt"));
|
||||
|
||||
// public static final NBTStructure test_rot = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/test-rot.nbt"));
|
||||
// public static final NBTStructure test_jigsaw = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/test-jigsaw.nbt"));
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.packet.toclient;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import com.hbm.items.armor.ArmorTrenchmaster;
|
||||
import com.hbm.items.weapon.ItemGunBase;
|
||||
import com.hbm.items.weapon.sedna.GunConfig;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
@ -105,6 +106,7 @@ public class GunAnimationPacket implements IMessage {
|
||||
|
||||
if(animation != null) {
|
||||
boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY;
|
||||
if(isReloadAnimation && ArmorTrenchmaster.isTrenchMaster(player)) animation.setTimeMult(0.5D);
|
||||
HbmAnimations.hotbar[slot][0] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, type, isReloadAnimation && base.mainConfig.reloadAnimationsSequential);
|
||||
}
|
||||
|
||||
@ -143,6 +145,7 @@ public class GunAnimationPacket implements IMessage {
|
||||
Minecraft.getMinecraft().entityRenderer.itemRenderer.resetEquippedProgress();
|
||||
Minecraft.getMinecraft().entityRenderer.itemRenderer.itemToRender = stack;
|
||||
boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY;
|
||||
if(isReloadAnimation && ArmorTrenchmaster.isTrenchMaster(player)) animation.setTimeMult(0.5D);
|
||||
HbmAnimations.hotbar[slot][gunIndex] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, type, isReloadAnimation && config.getReloadAnimSequential(stack));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
package com.hbm.particle;
|
||||
|
||||
public class ParticleVortexCircle {
|
||||
|
||||
}
|
||||
@ -1,94 +0,0 @@
|
||||
package com.hbm.particle;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.particle.EntityFX;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ParticleVortexGlow extends EntityFX {
|
||||
|
||||
public static final ResourceLocation fresnel_ms = new ResourceLocation(RefStrings.MODID, "textures/particle/fresnel_ms.png");
|
||||
public float workingAlpha;
|
||||
|
||||
public ParticleVortexGlow(World worldIn, double posXIn, double posYIn, double posZIn, float scale) {
|
||||
super(worldIn, posXIn, posYIn, posZIn);
|
||||
this.particleScale = scale;
|
||||
}
|
||||
|
||||
public ParticleVortexGlow color(float colR, float colG, float colB, float colA) {
|
||||
this.particleRed = colR;
|
||||
this.particleGreen = colG;
|
||||
this.particleBlue = colB;
|
||||
this.particleAlpha = colA;
|
||||
workingAlpha = colA;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ParticleVortexGlow lifetime(int lifetime) {
|
||||
this.particleMaxAge = lifetime;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
this.particleAge++;
|
||||
if(this.particleAge >= this.particleMaxAge) {
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFXLayer() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderParticle(Tessellator tess, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) {
|
||||
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(fresnel_ms);
|
||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
|
||||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glDepthMask(false);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
||||
float timeScale = (this.particleAge + partialTicks) / (float) this.particleMaxAge;
|
||||
float shrink = MathHelper.clamp_float(1 - BobMathUtil.remap((float) MathHelper.clamp_float(timeScale, 0, 1), 0.6F, 1F, 0.6F, 1F), 0, 1);
|
||||
this.workingAlpha = shrink * particleAlpha;
|
||||
|
||||
float f4 = 0.1F * (this.particleScale + shrink * particleScale * 4);
|
||||
|
||||
float f5 = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) partialTicks - interpPosX);
|
||||
float f6 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) partialTicks - interpPosY);
|
||||
float f7 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTicks - interpPosZ);
|
||||
Vec3[] avec3d = new Vec3[] {
|
||||
Vec3.createVectorHelper((double) (-rotationX * f4 - rotationXY * f4), (double) (-rotationZ * f4), (double) (-rotationYZ * f4 - rotationXZ * f4)),
|
||||
Vec3.createVectorHelper((double) (-rotationX * f4 + rotationXY * f4), (double) (rotationZ * f4), (double) (-rotationYZ * f4 + rotationXZ * f4)),
|
||||
Vec3.createVectorHelper((double) (rotationX * f4 + rotationXY * f4), (double) (rotationZ * f4), (double) (rotationYZ * f4 + rotationXZ * f4)),
|
||||
Vec3.createVectorHelper((double) (rotationX * f4 - rotationXY * f4), (double) (-rotationZ * f4), (double) (rotationYZ * f4 - rotationXZ * f4))
|
||||
};
|
||||
|
||||
tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha);
|
||||
tess.setNormal(0.0F, 1.0F, 0.0F);
|
||||
tess.setBrightness(240);
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertexWithUV((double) f5 + avec3d[0].xCoord, (double) f6 + avec3d[0].yCoord, (double) f7 + avec3d[0].zCoord, 1, 1);
|
||||
tess.addVertexWithUV((double) f5 + avec3d[1].xCoord, (double) f6 + avec3d[1].yCoord, (double) f7 + avec3d[1].zCoord, 1, 0);
|
||||
tess.addVertexWithUV((double) f5 + avec3d[2].xCoord, (double) f6 + avec3d[2].yCoord, (double) f7 + avec3d[2].zCoord, 0, 0);
|
||||
tess.addVertexWithUV((double) f5 + avec3d[3].xCoord, (double) f6 + avec3d[3].yCoord, (double) f7 + avec3d[3].zCoord, 0, 1);
|
||||
|
||||
tess.draw();
|
||||
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glDepthMask(true);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
}
|
||||
}
|
||||
@ -1,119 +0,0 @@
|
||||
package com.hbm.particle;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.particle.EntityFX;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ParticleVortexParticle extends EntityFX {
|
||||
|
||||
public static final ResourceLocation fresnel_ms = new ResourceLocation(RefStrings.MODID, "textures/particle/fresnel_ms.png");
|
||||
|
||||
public float workingAlpha;
|
||||
public int timeUntilChange = 0;
|
||||
|
||||
public ParticleVortexParticle(World worldIn, double posXIn, double posYIn, double posZIn, float scale) {
|
||||
super(worldIn, posXIn, posYIn, posZIn);
|
||||
this.particleScale = scale;
|
||||
this.motionX = (rand.nextFloat() - 0.5) * 0.02;
|
||||
this.motionY = (rand.nextFloat() - 0.5) * 0.02;
|
||||
this.motionZ = (rand.nextFloat() - 0.5) * 0.02;
|
||||
timeUntilChange = rand.nextInt(5) + 1;
|
||||
}
|
||||
|
||||
public ParticleVortexParticle color(float colR, float colG, float colB, float colA) {
|
||||
this.particleRed = colR;
|
||||
this.particleGreen = colG;
|
||||
this.particleBlue = colB;
|
||||
this.particleAlpha = colA;
|
||||
workingAlpha = colA;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ParticleVortexParticle lifetime(int lifetime) {
|
||||
this.particleMaxAge = lifetime;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
|
||||
this.particleAge++;
|
||||
timeUntilChange--;
|
||||
|
||||
if(this.particleAge >= this.particleMaxAge) {
|
||||
this.setDead();
|
||||
}
|
||||
|
||||
this.prevPosX = posX;
|
||||
this.prevPosY = posY;
|
||||
this.prevPosZ = posZ;
|
||||
this.posX += this.motionX;
|
||||
this.posY += this.motionY;
|
||||
this.posZ += this.motionZ;
|
||||
|
||||
if(timeUntilChange == 0) {
|
||||
timeUntilChange = rand.nextInt(5) + 1;
|
||||
// Not quite as smooth as the actual noise I think xonotic uses, but
|
||||
// it's good enough.
|
||||
this.motionX = (rand.nextFloat() - 0.5) * 0.02;
|
||||
this.motionY = (rand.nextFloat() - 0.5) * 0.02;
|
||||
this.motionZ = (rand.nextFloat() - 0.5) * 0.02;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFXLayer() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderParticle(Tessellator tess, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) {
|
||||
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(fresnel_ms);
|
||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
|
||||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glDepthMask(false);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
||||
float timeScale = (this.particleAge + partialTicks) / (float) this.particleMaxAge;
|
||||
float shrink = MathHelper.clamp_float(1 - BobMathUtil.remap((float) MathHelper.clamp_float(timeScale, 0, 1), 0.6F, 1F, 0.6F, 1F), 0, 1);
|
||||
this.workingAlpha = shrink * particleAlpha;
|
||||
|
||||
float f4 = 0.1F * (this.particleScale + shrink * particleScale * 4);
|
||||
|
||||
float f5 = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) partialTicks - interpPosX);
|
||||
float f6 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) partialTicks - interpPosY);
|
||||
float f7 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTicks - interpPosZ);
|
||||
Vec3[] avec3d = new Vec3[] {
|
||||
Vec3.createVectorHelper((double) (-rotationX * f4 - rotationXY * f4), (double) (-rotationZ * f4), (double) (-rotationYZ * f4 - rotationXZ * f4)),
|
||||
Vec3.createVectorHelper((double) (-rotationX * f4 + rotationXY * f4), (double) (rotationZ * f4), (double) (-rotationYZ * f4 + rotationXZ * f4)),
|
||||
Vec3.createVectorHelper((double) (rotationX * f4 + rotationXY * f4), (double) (rotationZ * f4), (double) (rotationYZ * f4 + rotationXZ * f4)),
|
||||
Vec3.createVectorHelper((double) (rotationX * f4 - rotationXY * f4), (double) (-rotationZ * f4), (double) (rotationYZ * f4 - rotationXZ * f4))
|
||||
};
|
||||
|
||||
tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha);
|
||||
tess.setNormal(0.0F, 1.0F, 0.0F);
|
||||
tess.setBrightness(240);
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertexWithUV((double) f5 + avec3d[0].xCoord, (double) f6 + avec3d[0].yCoord, (double) f7 + avec3d[0].zCoord, 1, 1);
|
||||
tess.addVertexWithUV((double) f5 + avec3d[1].xCoord, (double) f6 + avec3d[1].yCoord, (double) f7 + avec3d[1].zCoord, 1, 0);
|
||||
tess.addVertexWithUV((double) f5 + avec3d[2].xCoord, (double) f6 + avec3d[2].yCoord, (double) f7 + avec3d[2].zCoord, 0, 0);
|
||||
tess.addVertexWithUV((double) f5 + avec3d[3].xCoord, (double) f6 + avec3d[3].yCoord, (double) f7 + avec3d[3].zCoord, 0, 1);
|
||||
|
||||
tess.draw();
|
||||
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glDepthMask(true);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
}
|
||||
}
|
||||
@ -64,6 +64,16 @@ public class BusAnimation {
|
||||
return animationBuses.get(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiplies all keyframe durations by the supplied double. Numbers below 1 make the animation play faster.
|
||||
* @param mult
|
||||
*/
|
||||
public void setTimeMult(double mult) {
|
||||
for(Entry<String, BusAnimationSequence> sequence : animationBuses.entrySet()) {
|
||||
sequence.getValue().multiplyTime(mult);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the state of a bus at a specified time
|
||||
* @param name the name of the bus in question
|
||||
@ -78,15 +88,6 @@ public class BusAnimation {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* reads all buses and checks if inbetween the last invocation and this one, a sound was scheduled
|
||||
* @param lastMillis the last time the bus was checked
|
||||
* @param millis the current time
|
||||
*/
|
||||
public void playPendingSounds(int lastMillis, int millis) {
|
||||
//TODO: pending
|
||||
}
|
||||
|
||||
public int getDuration() {
|
||||
return totalTime;
|
||||
}
|
||||
|
||||
@ -86,11 +86,25 @@ public class BusAnimationSequence {
|
||||
return hold(duration);
|
||||
}
|
||||
|
||||
public BusAnimationSequence multiplyTime(double mult) {
|
||||
|
||||
for(Dimension dim : Dimension.values()) {
|
||||
List<BusAnimationKeyframe> keyframes = transformKeyframes.get(dim.ordinal());
|
||||
for(BusAnimationKeyframe keyframe : keyframes) keyframe.duration *= mult;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/** Grabs the numerical value for the most recent keyframe on the given dimension */
|
||||
private double getLast(Dimension dim) {
|
||||
BusAnimationKeyframe frame = getLastFrame(dim);
|
||||
return frame != null ? frame.value : 0D;
|
||||
}
|
||||
|
||||
private BusAnimationKeyframe getLastFrame(Dimension dim) {
|
||||
List<BusAnimationKeyframe> keyframes = transformKeyframes.get(dim.ordinal());
|
||||
if(keyframes.isEmpty()) return 0D;
|
||||
return keyframes.get(keyframes.size() - 1).value;
|
||||
if(keyframes.isEmpty()) return null;
|
||||
return keyframes.get(keyframes.size() - 1);
|
||||
}
|
||||
|
||||
//all transformation data is absolute, additive transformations have not yet been implemented
|
||||
|
||||
@ -1,60 +0,0 @@
|
||||
package com.hbm.render.entity.item;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.entity.train.EntityRailCarBase;
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class RenderTunnelBore 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 - 0.0625D, z);
|
||||
|
||||
float yaw = entity.rotationYaw;
|
||||
float prevYaw = entity.prevRotationYaw;
|
||||
|
||||
if(yaw - prevYaw > 180) yaw -= 360;
|
||||
if(prevYaw - yaw > 180) prevYaw -= 360;
|
||||
|
||||
float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720;
|
||||
|
||||
GL11.glRotated(-yawInterp, 0, 1, 0);
|
||||
|
||||
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);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.universal);
|
||||
ResourceManager.tunnel_bore.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(Entity entity) {
|
||||
return ResourceManager.universal;
|
||||
}
|
||||
}
|
||||
@ -27,6 +27,7 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.Vec3;
|
||||
|
||||
@Deprecated
|
||||
public class RenderBullet extends Render {
|
||||
|
||||
private ModelBullet bullet;
|
||||
@ -124,46 +125,14 @@ public class RenderBullet extends Render {
|
||||
|
||||
private void renderRocket(int type) {
|
||||
|
||||
switch(type) {
|
||||
case 0:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocket.png")); break;
|
||||
case 1:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketHE.png")); break;
|
||||
case 2:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketIncendiary.png")); break;
|
||||
case 3:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketShrapnel.png")); break;
|
||||
case 4:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketEMP.png")); break;
|
||||
case 5:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketGlare.png")); break;
|
||||
case 6:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketSleek.png")); break;
|
||||
case 7:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketNuclear.png")); break;
|
||||
case 9:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketPhosphorus.png")); break;
|
||||
case 10:
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelRocketCanister.png")); break;
|
||||
}
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
GL11.glRotated(90, 0, 0, 1);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
|
||||
if(type == 8) {
|
||||
bindTexture(ResourceManager.rpc_tex);
|
||||
GL11.glScalef(0.25F, 0.25F, 0.25F);
|
||||
GL11.glRotatef(180, 1, 0, 0);
|
||||
ResourceManager.rpc.renderAll();
|
||||
return;
|
||||
} else {
|
||||
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
GL11.glRotated(90, 0, 0, 1);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.rocket_tex);
|
||||
ResourceManager.projectiles.renderPart("Rocket");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.rocket_tex);
|
||||
ResourceManager.projectiles.renderPart("Rocket");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
private void renderGrenade(int type) {
|
||||
@ -190,9 +159,9 @@ public class RenderBullet extends Render {
|
||||
switch(type) {
|
||||
case 0:
|
||||
bindTexture(ResourceManager.tom_flame_tex);
|
||||
ResourceManager.sphere_uv_anim.renderAll();
|
||||
ResourceManager.sphere_uv.renderAll();
|
||||
GL11.glScalef(0.3F, 0.3F, 0.3F);
|
||||
ResourceManager.sphere_uv_anim.renderAll();
|
||||
ResourceManager.sphere_uv.renderAll();
|
||||
GL11.glScalef(1F/0.3F, 1F/0.3F, 1F/0.3F);
|
||||
for(int i = 0; i < 5; i++)
|
||||
RenderSparks.renderSpark((int) (System.currentTimeMillis() / 100 + 100 * i), 0, 0, 0, 0.5F, 2, 2, 0x8080FF, 0xFFFFFF);
|
||||
|
||||
@ -1,41 +0,0 @@
|
||||
package com.hbm.render.entity.projectile;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
public class RenderMirv extends Render {
|
||||
|
||||
private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Mirv.obj");
|
||||
private IModelCustom boyModel;
|
||||
private ResourceLocation boyTexture;
|
||||
|
||||
public RenderMirv() {
|
||||
boyModel = AdvancedModelLoader.loadModel(objTesterModelRL);
|
||||
boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
|
||||
GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
|
||||
|
||||
bindTexture(boyTexture);
|
||||
boyModel.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
|
||||
return new ResourceLocation(RefStrings.MODID + ":textures/models/TheGadget3_.png");
|
||||
}
|
||||
}
|
||||
@ -31,7 +31,7 @@ public class RenderMissileNuclear extends Render {
|
||||
}
|
||||
|
||||
if(entity instanceof EntityMissileNuclear) bindTexture(ResourceManager.missileNuclear_tex);
|
||||
if(entity instanceof EntityMissileMirv) bindTexture(ResourceManager.missileMIRV_tex);
|
||||
if(entity instanceof EntityMissileMirv) bindTexture(ResourceManager.missileThermo_tex);
|
||||
if(entity instanceof EntityMissileDoomsday) bindTexture(ResourceManager.missileDoomsday_tex);
|
||||
if(entity instanceof EntityMissileDoomsdayRusted) bindTexture(ResourceManager.missileDoomsdayRusted_tex);
|
||||
if(entity instanceof EntityMissileVolcano) bindTexture(ResourceManager.missileVolcano_tex);
|
||||
|
||||
@ -42,7 +42,7 @@ public class RenderMissileTaint extends Render {
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
|
||||
if(p_110775_1_ instanceof EntityMissileTaint)
|
||||
return ResourceManager.missileTaint_tex;
|
||||
return ResourceManager.missileMicroTaint_tex;
|
||||
if(p_110775_1_ instanceof EntityMissileBHole)
|
||||
return ResourceManager.missileMicroBHole_tex;
|
||||
if(p_110775_1_ instanceof EntityMissileSchrabidium)
|
||||
|
||||
@ -62,12 +62,12 @@ public class ItemRenderLibrary {
|
||||
public void renderCommon() {
|
||||
GL11.glScaled(0.25, 0.25, 0.25);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.iter_glass); ResourceManager.iter.renderPart("Windows");
|
||||
bindTexture(ResourceManager.iter_motor); ResourceManager.iter.renderPart("Motors");
|
||||
bindTexture(ResourceManager.iter_rails); ResourceManager.iter.renderPart("Rails");
|
||||
bindTexture(ResourceManager.iter_toroidal); ResourceManager.iter.renderPart("Toroidal");
|
||||
bindTexture(ResourceManager.iter_torus); ResourceManager.iter.renderPart("Torus");
|
||||
bindTexture(ResourceManager.iter_solenoid); ResourceManager.iter.renderPart("Solenoid");
|
||||
bindTexture(ResourceManager.iter_glass); ResourceManager.iter.renderPart("Windows");
|
||||
bindTexture(ResourceManager.iter_motor); ResourceManager.iter.renderPart("Motors");
|
||||
bindTexture(ResourceManager.iter_rails); ResourceManager.iter.renderPart("Rails");
|
||||
bindTexture(ResourceManager.iter_toroidal); ResourceManager.iter.renderPart("Toroidal");
|
||||
bindTexture(ResourceManager.iter_torus); ResourceManager.iter.renderPart("Torus");
|
||||
bindTexture(ResourceManager.iter_solenoid); ResourceManager.iter.renderPart("Solenoid");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
@ -76,10 +76,11 @@ public class ItemRenderLibrary {
|
||||
GL11.glTranslated(0, -4, 0);
|
||||
GL11.glScaled(4.5, 4.5, 4.5);
|
||||
}
|
||||
|
||||
public void renderCommon() {
|
||||
bindTexture(ResourceManager.press_body_tex); ResourceManager.press_body.renderAll();
|
||||
bindTexture(ResourceManager.press_body_tex); ResourceManager.press_body.renderAll();
|
||||
GL11.glTranslated(0, 0.5, 0);
|
||||
bindTexture(ResourceManager.press_head_tex); ResourceManager.press_head.renderAll();
|
||||
bindTexture(ResourceManager.press_head_tex); ResourceManager.press_head.renderAll();
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.machine_epress), new ItemRenderBase() {
|
||||
@ -87,10 +88,11 @@ public class ItemRenderLibrary {
|
||||
GL11.glTranslated(0, -4, 0);
|
||||
GL11.glScaled(4.5, 4.5, 4.5);
|
||||
}
|
||||
|
||||
public void renderCommon() {
|
||||
bindTexture(ResourceManager.epress_body_tex); ResourceManager.epress_body.renderAll();
|
||||
bindTexture(ResourceManager.epress_body_tex); ResourceManager.epress_body.renderAll();
|
||||
GL11.glTranslated(0, 1.5, 0);
|
||||
bindTexture(ResourceManager.epress_head_tex); ResourceManager.epress_head.renderAll();
|
||||
bindTexture(ResourceManager.epress_head_tex); ResourceManager.epress_head.renderAll();
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), new ItemRenderBase() {
|
||||
@ -100,11 +102,11 @@ public class ItemRenderLibrary {
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
bindTexture(ResourceManager.breeder_tex); ResourceManager.breeder.renderAll();
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
bindTexture(ResourceManager.breeder_tex); ResourceManager.breeder.renderAll();
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.machine_large_turbine), new ItemRenderBase() {
|
||||
@ -114,12 +116,12 @@ public class ItemRenderLibrary {
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
bindTexture(ResourceManager.turbine_tex); ResourceManager.turbine.renderPart("Body");
|
||||
bindTexture(ResourceManager.universal_bright); ResourceManager.turbine.renderPart("Blades");
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
bindTexture(ResourceManager.turbine_tex); ResourceManager.turbine.renderPart("Body");
|
||||
bindTexture(ResourceManager.universal_bright); ResourceManager.turbine.renderPart("Blades");
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.reactor_research), new ItemRenderBase() {
|
||||
@ -303,21 +305,6 @@ public class ItemRenderLibrary {
|
||||
bindTexture(ResourceManager.mining_laser_laser_tex); ResourceManager.mining_laser.renderPart("Laser");
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.machine_turbofan), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glScaled(2.25, 2.25, 2.25);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.turbofan_tex);
|
||||
ResourceManager.turbofan.renderPart("Body");
|
||||
ResourceManager.turbofan.renderPart("Blades");
|
||||
bindTexture(ResourceManager.turbofan_back_tex);
|
||||
ResourceManager.turbofan.renderPart("Afterburner");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.plasma_heater), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
@ -434,19 +421,6 @@ public class ItemRenderLibrary {
|
||||
ResourceManager.bomb_boy.renderAll();
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.crashed_balefire), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, 3, 0);
|
||||
GL11.glScaled(2, 2, 2);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
bindTexture(ResourceManager.dud_tex);
|
||||
ResourceManager.dud.renderAll();
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.bomb_multi), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
|
||||
@ -129,7 +129,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer {
|
||||
public static void init() {
|
||||
|
||||
renderers.put(new ComparableStack(ModItems.missile_test), generateStandard(ResourceManager.missileMicroTest_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_taint), generateStandard(ResourceManager.missileTaint_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_taint), generateStandard(ResourceManager.missileMicroTaint_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_micro), generateStandard(ResourceManager.missileMicro_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_bhole), generateStandard(ResourceManager.missileMicroBHole_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_schrabidium), generateStandard(ResourceManager.missileMicroSchrab_tex, ResourceManager.missileMicro));
|
||||
@ -160,7 +160,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer {
|
||||
renderers.put(new ComparableStack(ModItems.missile_drill), generateStandard(ResourceManager.missileHuge_BU_tex, ResourceManager.missileHuge));
|
||||
|
||||
renderers.put(new ComparableStack(ModItems.missile_nuclear), generateStandard(ResourceManager.missileNuclear_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateStandard(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateStandard(ResourceManager.missileThermo_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_volcano), generateStandard(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_doomsday), generateStandard(ResourceManager.missileDoomsday_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_doomsday_rusted), generateStandard(ResourceManager.missileDoomsdayRusted_tex, ResourceManager.missileNuclear));
|
||||
|
||||
@ -60,15 +60,15 @@ public class ModelRendererObj {
|
||||
}
|
||||
|
||||
public void copyRotationFrom(ModelRenderer model) {
|
||||
/*offsetX = model.offsetX;
|
||||
offsetX = model.offsetX;
|
||||
offsetY = model.offsetY;
|
||||
offsetZ = model.offsetZ;*/
|
||||
offsetZ = model.offsetZ;
|
||||
rotateAngleX = model.rotateAngleX;
|
||||
rotateAngleY = model.rotateAngleY;
|
||||
rotateAngleZ = model.rotateAngleZ;
|
||||
/*rotationPointX = model.rotationPointX;
|
||||
rotationPointX = model.rotationPointX;
|
||||
rotationPointY = model.rotationPointY;
|
||||
rotationPointZ = model.rotationPointZ;*/
|
||||
rotationPointZ = model.rotationPointZ;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@ -79,23 +79,14 @@ public class ModelRendererObj {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslatef(this.offsetX * scale, this.offsetY * scale, this.offsetZ * scale);
|
||||
|
||||
GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale);
|
||||
|
||||
if(this.rotateAngleZ != 0.0F) {
|
||||
GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F);
|
||||
}
|
||||
if(this.rotateAngleZ != 0.0F) GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F);
|
||||
if(this.rotateAngleY != 0.0F) GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
|
||||
if(this.rotateAngleX != 0.0F) GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F);
|
||||
|
||||
if(this.rotateAngleY != 0.0F) {
|
||||
GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
|
||||
}
|
||||
|
||||
if(this.rotateAngleX != 0.0F) {
|
||||
GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F);
|
||||
}
|
||||
|
||||
GL11.glTranslatef(-this.rotationPointX * scale, -this.rotationPointY * scale, -this.originPointZ * scale); //yes, that is correct
|
||||
GL11.glTranslatef(-this.originPointX * scale, -this.originPointY * scale, -this.originPointZ * scale);
|
||||
GL11.glTranslatef(-this.offsetX * scale, -this.offsetY * scale, -this.offsetZ * scale);
|
||||
|
||||
GL11.glScalef(scale, scale, scale);
|
||||
|
||||
@ -111,26 +102,18 @@ public class ModelRendererObj {
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void postRender(float p_78794_1_) {
|
||||
public void postRender(float scale) {
|
||||
|
||||
if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) {
|
||||
if(this.rotationPointX != 0.0F || this.rotationPointY != 0.0F || this.rotationPointZ != 0.0F) {
|
||||
GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_);
|
||||
GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale);
|
||||
}
|
||||
} else {
|
||||
GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_);
|
||||
GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale);
|
||||
|
||||
if(this.rotateAngleZ != 0.0F) {
|
||||
GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F);
|
||||
}
|
||||
|
||||
if(this.rotateAngleY != 0.0F) {
|
||||
GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
|
||||
}
|
||||
|
||||
if(this.rotateAngleX != 0.0F) {
|
||||
GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F);
|
||||
}
|
||||
if(this.rotateAngleZ != 0.0F) GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F);
|
||||
if(this.rotateAngleY != 0.0F) GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
|
||||
if(this.rotateAngleX != 0.0F) GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorAJR extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_ajr, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_ajr, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_ajr, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_ajr, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_ajr, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_ajr, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_ajr, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_ajr, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_ajr, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorAJRO extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_ajr, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_ajr, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_ajr, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_ajr, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_ajr, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_ajr, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_ajr, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_ajr, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_ajr, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -17,8 +17,8 @@ public class ModelArmorBJ extends ModelArmorBase {
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_bj, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_bj, "Body");
|
||||
this.jetpack = new ModelRendererObj(ResourceManager.armor_bj, "Jetpack");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_bj, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_bj, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_bj, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_bj, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_bj, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_bj, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_bj, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package com.hbm.render.model;
|
||||
|
||||
import com.hbm.interfaces.IHoldableWeapon;
|
||||
import com.hbm.render.loader.ModelRendererObj;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
@ -10,8 +9,6 @@ import net.minecraft.client.renderer.entity.RenderBiped;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.client.renderer.entity.RenderPlayer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.EnumAction;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
@ -33,8 +30,8 @@ public class ModelArmorBase extends ModelBiped {
|
||||
// Generate null defaults to prevent major breakage from using incomplete models
|
||||
this.head = new ModelRendererObj(null);
|
||||
this.body = new ModelRendererObj(null);
|
||||
this.leftArm = new ModelRendererObj(null).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(null).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(null).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(null).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(null).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(null).setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(null).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
@ -51,68 +48,31 @@ public class ModelArmorBase extends ModelBiped {
|
||||
RenderPlayer renderPlayer = (RenderPlayer) render;
|
||||
this.copyPropertiesFromBiped(renderPlayer.modelBipedMain);
|
||||
calculateRotations = false;
|
||||
|
||||
} else if(render instanceof RenderBiped) {
|
||||
RenderBiped renderBiped = (RenderBiped) render;
|
||||
this.copyPropertiesFromBiped(renderBiped.modelBipedMain);
|
||||
calculateRotations = false;
|
||||
}
|
||||
|
||||
this.rightFoot.rotateAngleX = this.rightLeg.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
|
||||
this.leftFoot.rotateAngleX = this.leftLeg.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.4F * limbSwingAmount;
|
||||
this.rightFoot.rotateAngleY = this.rightLeg.rotateAngleY = 0.0F;
|
||||
this.leftFoot.rotateAngleY = this.leftLeg.rotateAngleY = 0.0F;
|
||||
|
||||
if(entity instanceof EntityPlayer) {
|
||||
EntityPlayer player = (EntityPlayer) entity;
|
||||
|
||||
this.aimedBow = false;
|
||||
|
||||
if(player.getHeldItem() != null) {
|
||||
|
||||
int hold = 1;
|
||||
|
||||
if(player.getItemInUseCount() > 0) {
|
||||
|
||||
EnumAction action = player.getHeldItem().getItemUseAction();
|
||||
|
||||
if(action == EnumAction.block)
|
||||
hold = 3;
|
||||
|
||||
if(action == EnumAction.bow)
|
||||
this.aimedBow = true;
|
||||
}
|
||||
|
||||
if(player.getHeldItem().getItem() instanceof IHoldableWeapon)
|
||||
this.aimedBow = true;
|
||||
|
||||
if(calculateRotations)
|
||||
this.rightArm.rotateAngleX = this.rightArm.rotateAngleX * 0.5F - ((float) Math.PI / 10F) * hold;
|
||||
}
|
||||
}
|
||||
|
||||
this.isSneak = entity.isSneaking();
|
||||
this.isRiding = entity.isRiding();
|
||||
|
||||
if(this.isRiding) {
|
||||
this.rightFoot.rotateAngleX = this.rightLeg.rotateAngleX = -((float) Math.PI * 2F / 5F);
|
||||
this.leftFoot.rotateAngleX = this.leftLeg.rotateAngleX = -((float) Math.PI * 2F / 5F);
|
||||
this.rightFoot.rotateAngleY = this.rightLeg.rotateAngleY = ((float) Math.PI / 10F);
|
||||
this.leftFoot.rotateAngleY = this.leftLeg.rotateAngleY = -((float) Math.PI / 10F);
|
||||
}
|
||||
|
||||
if(this.isSneak) {
|
||||
this.rightFoot.offsetZ = this.rightLeg.offsetZ = 4.0F;
|
||||
this.leftFoot.offsetZ = this.leftLeg.offsetZ = 4.0F;
|
||||
this.rightFoot.offsetY = this.rightLeg.offsetY = -3.0F;
|
||||
this.leftFoot.offsetY = this.leftLeg.offsetY = -3.0F;
|
||||
} else {
|
||||
this.rightFoot.offsetZ = this.rightLeg.offsetZ = 0.1F;
|
||||
this.leftFoot.offsetZ = this.leftLeg.offsetZ = 0.1F;
|
||||
this.rightFoot.offsetY = this.rightLeg.offsetY = 0.0F;
|
||||
this.leftFoot.offsetY = this.leftLeg.offsetY = 0.0F;
|
||||
}
|
||||
|
||||
/// FALLBACK ///
|
||||
if(calculateRotations) {
|
||||
|
||||
this.isSneak = entity.isSneaking();
|
||||
this.isRiding = entity.isRiding();
|
||||
|
||||
if(this.isSneak) {
|
||||
this.rightFoot.offsetZ = this.rightLeg.offsetZ = 4.0F;
|
||||
this.leftFoot.offsetZ = this.leftLeg.offsetZ = 4.0F;
|
||||
this.rightFoot.offsetY = this.rightLeg.offsetY = -3.0F;
|
||||
this.leftFoot.offsetY = this.leftLeg.offsetY = -3.0F;
|
||||
} else {
|
||||
this.rightFoot.offsetZ = this.rightLeg.offsetZ = 0.1F;
|
||||
this.leftFoot.offsetZ = this.leftLeg.offsetZ = 0.1F;
|
||||
this.rightFoot.offsetY = this.rightLeg.offsetY = 0.0F;
|
||||
this.leftFoot.offsetY = this.leftLeg.offsetY = 0.0F;
|
||||
}
|
||||
|
||||
this.head.rotateAngleY = netHeadYaw / (180F / (float) Math.PI);
|
||||
this.head.rotateAngleX = headPitch / (180F / (float) Math.PI);
|
||||
this.rightArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 2.0F * limbSwingAmount * 0.5F;
|
||||
@ -194,20 +154,22 @@ public class ModelArmorBase extends ModelBiped {
|
||||
}
|
||||
|
||||
protected static void bindTexture(ResourceLocation location) {
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(location);
|
||||
}
|
||||
|
||||
private void copyPropertiesFromBiped(ModelBiped modelBiped) {
|
||||
|
||||
this.head.copyRotationFrom(modelBiped.bipedHead);
|
||||
this.head.offsetY = modelBiped.bipedHead.offsetY;
|
||||
this.body.copyRotationFrom(modelBiped.bipedBody);
|
||||
this.leftArm.copyRotationFrom(modelBiped.bipedLeftArm);
|
||||
this.leftArm.rotationPointX = modelBiped.bipedLeftArm.rotationPointX;
|
||||
this.leftArm.rotationPointZ = modelBiped.bipedLeftArm.rotationPointZ;
|
||||
this.rightArm.copyRotationFrom(modelBiped.bipedRightArm);
|
||||
this.rightArm.rotationPointX = modelBiped.bipedRightArm.rotationPointX;
|
||||
this.rightArm.rotationPointZ = modelBiped.bipedRightArm.rotationPointZ;
|
||||
this.leftLeg.copyRotationFrom(modelBiped.bipedLeftLeg);
|
||||
this.rightLeg.copyRotationFrom(modelBiped.bipedRightLeg);
|
||||
this.leftFoot.copyRotationFrom(modelBiped.bipedLeftLeg);
|
||||
this.rightFoot.copyRotationFrom(modelBiped.bipedRightLeg);
|
||||
// compat crap
|
||||
this.aimedBow = modelBiped.aimedBow;
|
||||
this.isSneak = modelBiped.isSneak;
|
||||
this.isRiding = modelBiped.isRiding;
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorBismuth extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_bismuth, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_bismuth, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_bismuth, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_bismuth, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_bismuth, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_bismuth, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_bismuth, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_bismuth, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_bismuth, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorDNT extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_dnt, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_dnt, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_dnt, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_dnt, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_dnt, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_dnt, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_dnt, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_dnt, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_dnt, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorDesh extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_steamsuit, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_steamsuit, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_steamsuit, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_steamsuit, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_steamsuit, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_steamsuit, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_steamsuit, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_steamsuit, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_steamsuit, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorDiesel extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_dieselsuit, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_dieselsuit, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -18,8 +18,8 @@ public class ModelArmorDigamma extends ModelArmorBase {
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_fau, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_fau, "Body");
|
||||
this.cassette = new ModelRendererObj(ResourceManager.armor_fau, "Cassette");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_fau, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_fau, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_fau, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_fau, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_fau, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_fau, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_fau, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -18,8 +18,8 @@ public class ModelArmorEnvsuit extends ModelArmorBase {
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_envsuit, "Helmet");
|
||||
this.lamps = new ModelRendererObj(ResourceManager.armor_envsuit, "Lamps");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_envsuit, "Chest");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_envsuit, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_envsuit, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_envsuit, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorHEV extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_hev, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_hev, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_hev, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_hev, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_hev, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_hev, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_hev, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_hev, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_hev, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -20,8 +20,8 @@ public class ModelArmorRPA extends ModelArmorBase {
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_remnant, "Body");
|
||||
this.fan = new ModelRendererObj(ResourceManager.armor_remnant, "Fan");
|
||||
this.glow = new ModelRendererObj(ResourceManager.armor_remnant, "Glow");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_remnant, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_remnant, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_remnant, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_remnant, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_remnant, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_remnant, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_remnant, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelArmorTaurun extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_taurun, "Helmet");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_taurun, "Chest");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_taurun, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_taurun, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_taurun, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_taurun, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_taurun, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_taurun, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_taurun, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -18,8 +18,8 @@ public class ModelArmorTrenchmaster extends ModelArmorBase {
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Helmet");
|
||||
this.light = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Light");
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Chest");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -26,8 +26,8 @@ public class ModelArmorWings extends ModelArmorBase {
|
||||
//i should really stop doing that
|
||||
this.head = new ModelRendererObj(ResourceManager.anvil);
|
||||
this.body = new ModelRendererObj(ResourceManager.anvil);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.anvil).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.anvil).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.anvil).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.anvil).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.anvil).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.anvil).setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.anvil).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelGlasses extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_goggles);
|
||||
this.body = new ModelRendererObj(ResourceManager.armor_bj, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_bj, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_bj, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.armor_bj, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.armor_bj, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.armor_bj, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.armor_bj, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(ResourceManager.armor_bj, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -14,8 +14,8 @@ public class ModelHat extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.armor_hat);
|
||||
this.body = new ModelRendererObj(null);
|
||||
this.leftArm = new ModelRendererObj(null).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(null).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(null).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(null).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(null).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(null).setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(null).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -15,8 +15,8 @@ public class ModelMan extends ModelArmorBase {
|
||||
|
||||
this.head = new ModelRendererObj(ResourceManager.player_manly_af, "Head");
|
||||
this.body = new ModelRendererObj(ResourceManager.player_manly_af, "Body");
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.player_manly_af, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.player_manly_af, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(ResourceManager.player_manly_af, "LeftArm").setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(ResourceManager.player_manly_af, "RightArm").setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(ResourceManager.player_manly_af, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(ResourceManager.player_manly_af, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
}
|
||||
|
||||
@ -22,8 +22,8 @@ public class ModelNo9 extends ModelArmorBase {
|
||||
this.insig = new ModelRendererObj(ResourceManager.armor_no9, "Insignia");
|
||||
this.lamp = new ModelRendererObj(ResourceManager.armor_no9, "Flame");
|
||||
this.body = new ModelRendererObj(null);
|
||||
this.leftArm = new ModelRendererObj(null).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(null).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.leftArm = new ModelRendererObj(null).setRotationPoint(5.0F, 2.0F, 0.0F);
|
||||
this.rightArm = new ModelRendererObj(null).setRotationPoint(-5.0F, 2.0F, 0.0F);
|
||||
this.leftLeg = new ModelRendererObj(null).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
this.rightLeg = new ModelRendererObj(null).setRotationPoint(-1.9F, 12.0F, 0.0F);
|
||||
this.leftFoot = new ModelRendererObj(null).setRotationPoint(1.9F, 12.0F, 0.0F);
|
||||
|
||||
@ -4,13 +4,17 @@ import java.util.Random;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderCrashedBomb extends TileEntitySpecialRenderer {
|
||||
public class RenderCrashedBomb extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
public static Random rand = new Random();
|
||||
|
||||
@ -39,4 +43,27 @@ public class RenderCrashedBomb extends TileEntitySpecialRenderer {
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.crashed_balefire);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase() {
|
||||
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, 3, 0);
|
||||
GL11.glScaled(2.75, 2.75, 2.75);
|
||||
GL11.glRotated(90, 0, 0, 1);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.dud_balefire_tex);
|
||||
ResourceManager.dud_balefire.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,13 +2,17 @@ package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineTurbofan;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderTurbofan extends TileEntitySpecialRenderer {
|
||||
public class RenderTurbofan extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
public RenderTurbofan() {
|
||||
}
|
||||
@ -52,4 +56,27 @@ public class RenderTurbofan extends TileEntitySpecialRenderer {
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.machine_turbofan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glScaled(2.25, 2.25, 2.25);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.turbofan_tex);
|
||||
ResourceManager.turbofan.renderPart("Body");
|
||||
ResourceManager.turbofan.renderPart("Blades");
|
||||
bindTexture(ResourceManager.turbofan_back_tex);
|
||||
ResourceManager.turbofan.renderPart("Afterburner");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,6 +37,7 @@ public interface IControlReceiverFilter extends IControlReceiver, ICopiable {
|
||||
int slot = nbt.getInteger("slot");
|
||||
NBTTagCompound stack = nbt.getCompoundTag("stack");
|
||||
ItemStack item = ItemStack.loadItemStackFromNBT(stack);
|
||||
item.stackSize = 1;
|
||||
inv.setInventorySlotContents(slot, item);
|
||||
nextMode(slot);
|
||||
tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile);
|
||||
|
||||
@ -74,7 +74,7 @@ public class TileEntityLanternBehemoth extends TileEntityLoadedBase implements I
|
||||
List<EntityPlayer> players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 50, yCoord - 50, zCoord - 50, xCoord + 51, yCoord + 51, zCoord + 51));
|
||||
for(EntityPlayer player : players) {
|
||||
HbmPlayerProps props = HbmPlayerProps.getData(player);
|
||||
if(props.reputation > -10) props.reputation--;
|
||||
if(props.reputation > -25) props.reputation--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -91,7 +91,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
|
||||
|
||||
public TileEntityMachineExcavator() {
|
||||
super(14);
|
||||
this.tank = new FluidTank(Fluids.SULFURIC_ACID, 16_000);
|
||||
this.tank = new FluidTank(Fluids.NONE, 16_000);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -21,6 +21,7 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
|
||||
|
||||
private FluidTank water;
|
||||
private FluidTank steam;
|
||||
public int displayHeat;
|
||||
public int heat;
|
||||
|
||||
public HashSet<ChunkCoordinates> primary = new HashSet();
|
||||
@ -43,8 +44,9 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
|
||||
process = Math.min(process, water.getFill());
|
||||
process = Math.min(process, (steam.getMaxFill() - steam.getFill()) / 100);
|
||||
|
||||
if(process < 0)
|
||||
process = 0;
|
||||
this.displayHeat = this.heat;
|
||||
|
||||
if(process < 0) process = 0;
|
||||
|
||||
water.setFill(water.getFill() - process);
|
||||
steam.setFill(steam.getFill() + process * 100);
|
||||
@ -122,18 +124,17 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
|
||||
|
||||
@Override
|
||||
public void serialize(ByteBuf buf) {
|
||||
buf.writeInt(displayHeat);
|
||||
water.serialize(buf);
|
||||
steam.serialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(ByteBuf buf) {
|
||||
this.displayHeat = buf.readInt();
|
||||
water.deserialize(buf);
|
||||
steam.deserialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidTank getTankToPaste() {
|
||||
return null;
|
||||
}
|
||||
@Override public FluidTank getTankToPaste() { return null; }
|
||||
}
|
||||
|
||||
@ -156,7 +156,7 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP
|
||||
|
||||
@Override
|
||||
public boolean canConnect(FluidType type, ForgeDirection dir) {
|
||||
return dir != this.insertionDir && dir != this.ejectionDir && type == Fluids.AIR;
|
||||
return dir != this.insertionDir && dir != this.ejectionDir && type == Fluids.AIR && this.isCompressor();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -275,6 +275,9 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP
|
||||
this.receiveOrder++;
|
||||
if(this.receiveOrder > 1) this.receiveOrder = 0;
|
||||
}
|
||||
if(data.hasKey("slot")){
|
||||
setFilterContents(data);
|
||||
}
|
||||
|
||||
this.markDirty();
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityMachineAutocrafter;
|
||||
import com.hbm.tileentity.network.TileEntityPneumoTube;
|
||||
import com.hbm.uninos.NodeNet;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
@ -100,6 +101,7 @@ public class PneumaticNetwork extends NodeNet {
|
||||
int destSide = chosenReceiverEntry.getValue().getKey().getOpposite().ordinal();
|
||||
int[] destSlotAccess = getSlotAccess(dest, destSide);
|
||||
int itemsLeftToSend = ITEMS_PER_TRANSFER; // not actually individual items, but rather the total "mass", based on max stack size
|
||||
int itemHardCap = dest instanceof TileEntityMachineAutocrafter ? 1 : ITEMS_PER_TRANSFER;
|
||||
boolean didSomething = false;
|
||||
|
||||
for(int sourceIndex : sourceSlotAccess) {
|
||||
@ -115,12 +117,15 @@ public class PneumaticNetwork extends NodeNet {
|
||||
for(int destIndex : destSlotAccess) {
|
||||
ItemStack destStack = dest.getStackInSlot(destIndex);
|
||||
if(destStack == null) continue;
|
||||
if(!dest.isItemValidForSlot(destIndex, sourceStack)) continue;
|
||||
if(sidedDest != null && !sidedDest.canInsertItem(destIndex, sourceStack, destSide)) continue;
|
||||
if(!ItemStackUtil.areStacksCompatible(sourceStack, destStack)) continue;
|
||||
int toMove = BobMathUtil.min(sourceStack.stackSize, destStack.getMaxStackSize() - destStack.stackSize, dest.getInventoryStackLimit() - destStack.stackSize, itemsLeftToSend / proportionalValue);
|
||||
int toMove = BobMathUtil.min(sourceStack.stackSize, destStack.getMaxStackSize() - destStack.stackSize, dest.getInventoryStackLimit() - destStack.stackSize, itemsLeftToSend / proportionalValue, itemHardCap);
|
||||
if(toMove <= 0) continue;
|
||||
|
||||
ItemStack checkStack = destStack.copy();
|
||||
checkStack.stackSize += toMove;
|
||||
if(!dest.isItemValidForSlot(destIndex, checkStack)) continue;
|
||||
if(sidedDest != null && !sidedDest.canInsertItem(destIndex, checkStack, destSide)) continue;
|
||||
|
||||
sourceStack.stackSize -= toMove;
|
||||
if(sourceStack.stackSize <= 0) source.setInventorySlotContents(sourceIndex, null);
|
||||
destStack.stackSize += toMove;
|
||||
@ -132,11 +137,14 @@ public class PneumaticNetwork extends NodeNet {
|
||||
// if there's stuff left to send, occupy empty slots
|
||||
if(itemsLeftToSend > 0 && sourceStack.stackSize > 0) for(int destIndex : destSlotAccess) {
|
||||
if(dest.getStackInSlot(destIndex) != null) continue;
|
||||
if(!dest.isItemValidForSlot(destIndex, sourceStack)) continue;
|
||||
if(sidedDest != null && !sidedDest.canInsertItem(destIndex, sourceStack, destSide)) continue;
|
||||
int toMove = BobMathUtil.min(sourceStack.stackSize, dest.getInventoryStackLimit(), itemsLeftToSend / proportionalValue);
|
||||
int toMove = BobMathUtil.min(sourceStack.stackSize, dest.getInventoryStackLimit(), itemsLeftToSend / proportionalValue, itemHardCap);
|
||||
if(toMove <= 0) continue;
|
||||
|
||||
ItemStack checkStack = sourceStack.copy();
|
||||
checkStack.stackSize = toMove;
|
||||
if(!dest.isItemValidForSlot(destIndex, checkStack)) continue;
|
||||
if(sidedDest != null && !sidedDest.canInsertItem(destIndex, checkStack, destSide)) continue;
|
||||
|
||||
ItemStack newStack = sourceStack.copy();
|
||||
newStack.stackSize = toMove;
|
||||
sourceStack.stackSize -= toMove;
|
||||
@ -144,7 +152,7 @@ public class PneumaticNetwork extends NodeNet {
|
||||
dest.setInventorySlotContents(destIndex, newStack);
|
||||
itemsLeftToSend -= toMove * proportionalValue;
|
||||
didSomething = true;
|
||||
break;
|
||||
if(itemsLeftToSend <= 0) break;
|
||||
}
|
||||
|
||||
if(itemsLeftToSend <= 0) break;
|
||||
|
||||
@ -210,15 +210,17 @@ public class DamageResistanceHandler {
|
||||
.setOther(2F, 0.25F));
|
||||
registerSet(ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots, new ResistanceStats()
|
||||
.addCategory(CATEGORY_EXPLOSION, 50F, 0.95F)
|
||||
.addCategory(CATEGORY_FIRE, 0F, 1F)
|
||||
.addExact(DamageClass.LASER.name(), 25F, 0.95F)
|
||||
.addExact(DamageSource.fall.damageType, 0F, 1F)
|
||||
.setOther(100F, 0.99F));
|
||||
registerSet(ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots, new ResistanceStats()
|
||||
.addCategory(CATEGORY_EXPLOSION, 100F, 0.99F)
|
||||
.addCategory(CATEGORY_FIRE, 0F, 1F)
|
||||
.setOther(100F, 1F));
|
||||
registerSet(ModItems.taurun_helmet, ModItems.taurun_plate, ModItems.taurun_legs, ModItems.taurun_boots, new ResistanceStats()
|
||||
.addCategory(CATEGORY_PROJECTILE, 2F, 0.15F)
|
||||
.addCategory(CATEGORY_FIRE, 1F, 0.25F)
|
||||
.addCategory(CATEGORY_FIRE, 0F, 0.25F)
|
||||
.addCategory(CATEGORY_EXPLOSION, 0F, 0.25F)
|
||||
.addExact(DamageSource.fall.damageType, 4F, 0.5F)
|
||||
.setOther(2F, 0.1F));
|
||||
|
||||
130
src/main/java/com/hbm/world/biome/BiomeDecoratorNoMansLand.java
Normal file
130
src/main/java/com/hbm/world/biome/BiomeDecoratorNoMansLand.java
Normal file
@ -0,0 +1,130 @@
|
||||
package com.hbm.world.biome;
|
||||
|
||||
import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.*;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.world.feature.WorldGenSurfaceSpot;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.biome.BiomeDecorator;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
|
||||
import net.minecraft.world.gen.feature.WorldGenDeadBush;
|
||||
import net.minecraft.world.gen.feature.WorldGenLiquids;
|
||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
|
||||
import net.minecraftforge.event.terraingen.TerrainGen;
|
||||
|
||||
public class BiomeDecoratorNoMansLand extends BiomeDecorator {
|
||||
|
||||
public WorldGenerator sellafiteGen;
|
||||
public WorldGenerator gravelGen;
|
||||
public int sellafitePerChunk;
|
||||
public int gravelPerChunk;
|
||||
|
||||
public BiomeDecoratorNoMansLand() {
|
||||
super();
|
||||
|
||||
//TODO: instead of multiple localized shitty generators, make one that covers everything
|
||||
this.sellafiteGen = new WorldGenSurfaceSpot(ModBlocks.sellafield_slaked, 6, 0.15F);
|
||||
this.gravelGen = new WorldGenSurfaceSpot(ModBlocks.sellafield_slaked, 6, 0.15F);
|
||||
this.sellafitePerChunk = 2;
|
||||
this.gravelPerChunk = 2;
|
||||
}
|
||||
|
||||
protected void genDecorations(BiomeGenBase biome) {
|
||||
MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Pre(currentWorld, randomGenerator, chunk_X, chunk_Z));
|
||||
this.generateOres();
|
||||
|
||||
int x;
|
||||
int y;
|
||||
int z;
|
||||
|
||||
/// SAND IN WATER ///
|
||||
boolean doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, SAND);
|
||||
for(int i = 0; doGen && i < this.sandPerChunk2; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
this.sandGen.generate(this.currentWorld, this.randomGenerator, x, this.currentWorld.getTopSolidOrLiquidBlock(x, z), z);
|
||||
}
|
||||
|
||||
/// GRAVEL IN WATER ///
|
||||
doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, SAND_PASS2);
|
||||
for(int i = 0; doGen && i < this.sandPerChunk; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
this.gravelAsSandGen.generate(this.currentWorld, this.randomGenerator, x, this.currentWorld.getTopSolidOrLiquidBlock(x, z), z);
|
||||
}
|
||||
|
||||
/// SELLAFITE ///
|
||||
for(int i = 0; i < this.sellafitePerChunk; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
this.sellafiteGen.generate(this.currentWorld, this.randomGenerator, x, this.currentWorld.getTopSolidOrLiquidBlock(x, z), z);
|
||||
}
|
||||
|
||||
/// GRAVEL ///
|
||||
for(int i = 0; i < this.gravelPerChunk; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
this.gravelGen.generate(this.currentWorld, this.randomGenerator, x, this.currentWorld.getTopSolidOrLiquidBlock(x, z), z);
|
||||
}
|
||||
|
||||
int trees = this.treesPerChunk;
|
||||
|
||||
if(this.randomGenerator.nextInt(10) == 0) trees++;
|
||||
|
||||
/// TREES ///
|
||||
doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, TREE);
|
||||
for(int i = 0; doGen && i < trees; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
y = this.currentWorld.getHeightValue(x, z);
|
||||
WorldGenAbstractTree worldgenabstracttree = biome.func_150567_a(this.randomGenerator);
|
||||
worldgenabstracttree.setScale(1.0D, 1.0D, 1.0D);
|
||||
|
||||
if(worldgenabstracttree.generate(this.currentWorld, this.randomGenerator, x, y, z)) {
|
||||
worldgenabstracttree.func_150524_b(this.currentWorld, this.randomGenerator, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
/// TALL GRASS ///
|
||||
doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, GRASS);
|
||||
for(int i = 0; doGen && i < this.grassPerChunk; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
y = nextInt(this.currentWorld.getHeightValue(x, z) * 2);
|
||||
WorldGenerator worldgenerator = biome.getRandomWorldGenForGrass(this.randomGenerator);
|
||||
worldgenerator.generate(this.currentWorld, this.randomGenerator, x, y, z);
|
||||
}
|
||||
|
||||
/// SHRUBBERY ///
|
||||
doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, DEAD_BUSH);
|
||||
for(int i = 0; doGen && i < this.deadBushPerChunk; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
y = nextInt(this.currentWorld.getHeightValue(x, z) * 2);
|
||||
(new WorldGenDeadBush(Blocks.deadbush)).generate(this.currentWorld, this.randomGenerator, x, y, z);
|
||||
}
|
||||
|
||||
/// LAKES ///
|
||||
doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, LAKE);
|
||||
if(doGen && this.generateLakes) {
|
||||
for(int i = 0; i < 50; ++i) {
|
||||
x = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||
y = this.randomGenerator.nextInt(this.randomGenerator.nextInt(248) + 8);
|
||||
z = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
|
||||
(new WorldGenLiquids(Blocks.flowing_water)).generate(this.currentWorld, this.randomGenerator, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Post(currentWorld, randomGenerator, chunk_X, chunk_Z));
|
||||
}
|
||||
|
||||
private int nextInt(int i) {
|
||||
if(i <= 1)
|
||||
return 0;
|
||||
return this.randomGenerator.nextInt(i);
|
||||
}
|
||||
}
|
||||
@ -21,6 +21,7 @@ public class BiomeGenCraterBase extends BiomeGenBase {
|
||||
BiomeDictionary.registerBiomeType(craterOuterBiome, DRY, DEAD, WASTELAND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getWaterColorMultiplier() {
|
||||
return 0x505020; //0x50d030
|
||||
}
|
||||
@ -65,7 +66,6 @@ public class BiomeGenCraterBase extends BiomeGenBase {
|
||||
|
||||
@Override @SideOnly(Side.CLIENT)
|
||||
public int getSkyColorByTemp(float temp) { return 0x6B9189; }
|
||||
|
||||
}
|
||||
|
||||
public static class BiomeGenCraterInner extends BiomeGenCraterBase {
|
||||
@ -83,6 +83,5 @@ public class BiomeGenCraterBase extends BiomeGenBase {
|
||||
|
||||
@Override @SideOnly(Side.CLIENT)
|
||||
public int getSkyColorByTemp(float temp) { return 0x424A42; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
68
src/main/java/com/hbm/world/biome/BiomeGenNoMansLand.java
Normal file
68
src/main/java/com/hbm/world/biome/BiomeGenNoMansLand.java
Normal file
@ -0,0 +1,68 @@
|
||||
package com.hbm.world.biome;
|
||||
|
||||
import static net.minecraftforge.common.BiomeDictionary.Type.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.entity.mob.EntityUndeadSoldier;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.entity.EnumCreatureType;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraftforge.common.BiomeDictionary;
|
||||
import net.minecraftforge.common.BiomeManager;
|
||||
import net.minecraftforge.common.BiomeManager.BiomeEntry;
|
||||
import net.minecraftforge.common.BiomeManager.BiomeType;
|
||||
|
||||
public class BiomeGenNoMansLand extends BiomeGenBase {
|
||||
|
||||
public static final List EMPTY_LIST = new ArrayList(0);
|
||||
public static final List HOSTILE_LIST = new ArrayList(1);
|
||||
|
||||
public static final BiomeGenBase noMansLand = new BiomeGenNoMansLand(99).setBiomeName("No Man's Land");
|
||||
|
||||
public static void initDictionary() {
|
||||
BiomeDictionary.registerBiomeType(noMansLand, DEAD, PLAINS, WASTELAND);
|
||||
BiomeManager.addBiome(BiomeType.WARM, new BiomeEntry(noMansLand, 5));
|
||||
}
|
||||
|
||||
public BiomeGenNoMansLand(int id) {
|
||||
super(id);
|
||||
this.theBiomeDecorator = new BiomeDecoratorNoMansLand();
|
||||
this.waterColorMultiplier = 0x6F6F12;
|
||||
this.spawnableCreatureList.clear();
|
||||
this.spawnableWaterCreatureList.clear();
|
||||
this.spawnableCaveCreatureList.clear();
|
||||
this.setHeight(height_LowPlains);
|
||||
this.theBiomeDecorator.treesPerChunk = -999;
|
||||
this.theBiomeDecorator.flowersPerChunk = 0;
|
||||
this.theBiomeDecorator.grassPerChunk = 0;
|
||||
this.flowers.clear();
|
||||
|
||||
this.HOSTILE_LIST.add(new BiomeGenBase.SpawnListEntry(EntityUndeadSoldier.class, 1, 4, 6));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List getSpawnableList(EnumCreatureType type) {
|
||||
if(type == type.monster) {
|
||||
if(this.HOSTILE_LIST.size() != 1) {
|
||||
this.HOSTILE_LIST.clear();
|
||||
this.HOSTILE_LIST.add(new BiomeGenBase.SpawnListEntry(EntityUndeadSoldier.class, 1, 4, 6));
|
||||
}
|
||||
return this.HOSTILE_LIST;
|
||||
}
|
||||
if(!EMPTY_LIST.isEmpty()) EMPTY_LIST.clear();
|
||||
return EMPTY_LIST;
|
||||
}
|
||||
|
||||
@Override @SideOnly(Side.CLIENT)
|
||||
public int getBiomeGrassColor(int x, int y, int z) { return 0x696F59; }
|
||||
|
||||
@Override @SideOnly(Side.CLIENT)
|
||||
public int getBiomeFoliageColor(int x, int y, int z) { return 0x767C67; }
|
||||
|
||||
@Override @SideOnly(Side.CLIENT)
|
||||
public int getSkyColorByTemp(float temp) { return 0x949494; }
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
45
src/main/java/com/hbm/world/feature/WorldGenSurfaceSpot.java
Normal file
45
src/main/java/com/hbm/world/feature/WorldGenSurfaceSpot.java
Normal file
@ -0,0 +1,45 @@
|
||||
package com.hbm.world.feature;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||
|
||||
public class WorldGenSurfaceSpot extends WorldGenerator {
|
||||
|
||||
private Block block;
|
||||
private int radius;
|
||||
private float chance;
|
||||
|
||||
public WorldGenSurfaceSpot(Block block, int radius, float chance) {
|
||||
this.block = block;
|
||||
this.radius = radius;
|
||||
this.chance = chance;
|
||||
}
|
||||
|
||||
public boolean generate(World world, Random rand, int x, int y, int z) {
|
||||
int r = rand.nextInt(this.radius - 2) + 2;
|
||||
byte depth = 2;
|
||||
|
||||
for(int iX = x - r; iX <= x + r; ++iX) {
|
||||
for(int iZ = z - r; iZ <= z + r; ++iZ) {
|
||||
int k1 = iX - x;
|
||||
int l1 = iZ - z;
|
||||
|
||||
if(k1 * k1 + l1 * l1 <= r * r) {
|
||||
for(int iY = y - depth; iY <= y + depth; ++iY) {
|
||||
Block block = world.getBlock(iX, iY, iZ);
|
||||
|
||||
if(block == Blocks.dirt || block == Blocks.grass) {
|
||||
if(rand.nextFloat() < this.chance) world.setBlock(iX, iY, iZ, this.block, 0, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -97,6 +97,17 @@ public class NTMWorldGenerator implements IWorldGenerator {
|
||||
|
||||
NBTStructure.registerNullWeight(0, 2, oceanBiomes::contains); //why the fuck did this change
|
||||
|
||||
NBTStructure.registerStructure(0, new SpawnCondition() {{
|
||||
canSpawn = biome -> biome == BiomeGenBase.plains;
|
||||
structure = new JigsawPiece("dish", StructureManager.dish, -10);
|
||||
minHeight = 53;
|
||||
maxHeight = 65;
|
||||
spawnWeight = 1;
|
||||
}});
|
||||
|
||||
NBTStructure.registerNullWeight(0, 2, biome -> biome == BiomeGenBase.plains);
|
||||
NBTStructure.registerNullWeight(0, 2, oceanBiomes::contains);
|
||||
|
||||
Map<Block, BlockSelector> bricks = new HashMap<Block, BlockSelector>() {{
|
||||
put(ModBlocks.meteor_brick, new MeteorBricks());
|
||||
}};
|
||||
|
||||
@ -2222,6 +2222,15 @@ item.ingot_lanthanium.name=Semistabiler Lanthanbarren
|
||||
item.ingot_lead.name=Bleibarren
|
||||
item.ingot_les.name=Schwach angereicherter Schrabidiumkernbrennstoffbarren
|
||||
item.ingot_magnetized_tungsten.name=Magnetisierter Wolframbarren
|
||||
item.ingot_metal.name=Metallbarren
|
||||
item.ingot_metal.bar.name=Metallstange
|
||||
item.ingot_metal.beacon.name=Funkleitstrahl
|
||||
item.ingot_metal.casing.name=Metallgehäuse
|
||||
item.ingot_metal.clockwork.name=Uhrwerk
|
||||
item.ingot_metal.counter.name=Zählwerk
|
||||
item.ingot_metal.detector.name=Detektor
|
||||
item.ingot_metal.ingot.name=Metallbarren
|
||||
item.ingot_metal.key.name=Metallschlüssel
|
||||
item.ingot_meteorite.name=Meteoritenbarren
|
||||
item.ingot_meteorite_forged.name=Geschmiedeter Meteoritenbarren
|
||||
item.ingot_mox_fuel.name=MOX-Kernbrennstoffbarren
|
||||
@ -2296,6 +2305,7 @@ item.insert_yharonite.name=Yharoniteinlage
|
||||
item.item_secret.aberrator.name=Aberrator-Teil
|
||||
item.item_secret.canister.name=Komposit SB-26
|
||||
item.item_secret.controller.name=Proprietäre Steuereinheit
|
||||
item.item_secret.folly.name=Folly-Teil
|
||||
item.item_secret.selenium_steel.name=Selen-Stahl
|
||||
item.iv_blood.name=Blutbeutel
|
||||
item.iv_empty.name=Infusionsbeutel
|
||||
@ -3384,15 +3394,10 @@ item.t45_kit.name=T45-Powerrüstungskit
|
||||
item.t45_legs.name=T45-Powerrüstungsbeinschutz
|
||||
item.t45_plate.name=T45-Powerrüstungsbrustpanzer
|
||||
item.tank_steel.name=Stahltank
|
||||
item.tank_waste_0.name=Schlammcontainer
|
||||
item.tank_waste_1.name=Schlammcontainer
|
||||
item.tank_waste_2.name=Schlammcontainer
|
||||
item.tank_waste_3.name=Schlammcontainer
|
||||
item.tank_waste_4.name=Schlammcontainer
|
||||
item.tank_waste_5.name=Schlammcontainer
|
||||
item.tank_waste_6.name=Schlammcontainer
|
||||
item.tank_waste_7.name=Schlammcontainer
|
||||
item.tank_waste_8.name=Schlammcontainer
|
||||
item.taurun_boots.name=Taurun-Stiefel
|
||||
item.taurun_helmet.name=Taurun-Helm
|
||||
item.taurun_legs.name=Taurun-Hose
|
||||
item.taurun_plate.name=Taurun-Jacke
|
||||
item.telepad.name=Teleplatte
|
||||
item.tem_flakes.name=Tem Flakes
|
||||
item.template_folder.name=Produktionsvorlagen-Zeichenmappe
|
||||
|
||||
@ -3043,6 +3043,15 @@ item.ingot_lanthanium.desc.P11=Actually Lanthanum, but whatever.
|
||||
item.ingot_lead.name=Lead Ingot
|
||||
item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot
|
||||
item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot
|
||||
item.ingot_metal.name=Metal Ingot
|
||||
item.ingot_metal.bar.name=Metal Bar
|
||||
item.ingot_metal.beacon.name=Radio Homing Beacon
|
||||
item.ingot_metal.casing.name=Metal Casing
|
||||
item.ingot_metal.clockwork.name=Clockwork
|
||||
item.ingot_metal.counter.name=Counter
|
||||
item.ingot_metal.detector.name=Detector
|
||||
item.ingot_metal.ingot.name=Metal Ingot
|
||||
item.ingot_metal.key.name=Metal Key
|
||||
item.ingot_meteorite.name=Meteorite Ingot
|
||||
item.ingot_meteorite_forged.name=Forged Meteorite Ingot
|
||||
item.ingot_mox_fuel.name=Ingot of MOX Fuel
|
||||
@ -3123,6 +3132,7 @@ item.insert_yharonite.name=Yharonite Insert
|
||||
item.item_secret.aberrator.name=Aberrator Part
|
||||
item.item_secret.canister.name=Composition SB-26
|
||||
item.item_secret.controller.name=Proprietary Control Unit
|
||||
item.item_secret.folly.name=Folly Part
|
||||
item.item_secret.selenium_steel.name=Selenium Steel
|
||||
item.iv_blood.name=Blood Bag
|
||||
item.iv_empty.name=IV Bag
|
||||
@ -3147,8 +3157,6 @@ item.key_red.desc.P11=§4e§r
|
||||
item.key_red_cracked.name=Cracked Key
|
||||
item.key_red_cracked.desc=???
|
||||
item.key_red.key_red_cracked.P11=§4???§r
|
||||
item.toolbox.name=Toolbox
|
||||
item.toolbox_legacy.name=Toolbox (LEGACY)
|
||||
item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix
|
||||
item.laser_crystal_bismuth.name=BiSmUTh Laser Crystal
|
||||
item.laser_crystal_cmb.desc=Antischrabidium Suspended in a CMB-Schrabidate Alloy Lattice
|
||||
@ -4403,15 +4411,10 @@ item.t45_kit.name=T45 Power Armor Kit
|
||||
item.t45_legs.name=T45 Power Armor Leggings
|
||||
item.t45_plate.name=T45 Power Armor Chestplate
|
||||
item.tank_steel.name=Steel Tank
|
||||
item.tank_waste_0.name=Mud Container
|
||||
item.tank_waste_1.name=Mud Container
|
||||
item.tank_waste_2.name=Mud Container
|
||||
item.tank_waste_3.name=Mud Container
|
||||
item.tank_waste_4.name=Mud Container
|
||||
item.tank_waste_5.name=Mud Container
|
||||
item.tank_waste_6.name=Mud Container
|
||||
item.tank_waste_7.name=Mud Container
|
||||
item.tank_waste_8.name=Mud Container
|
||||
item.taurun_boots.name=Taurun Boots
|
||||
item.taurun_helmet.name=Taurun Helmet
|
||||
item.taurun_legs.name=Taurun Leggings
|
||||
item.taurun_plate.name=Taurun Chestplate
|
||||
item.telepad.name=Telepad
|
||||
item.tem_flakes.name=Tem Flakes
|
||||
item.template_folder.name=Machine Template Folder
|
||||
@ -4442,6 +4445,8 @@ item.titanium_pickaxe.name=Titanium Pickaxe
|
||||
item.titanium_plate.name=Titanium Chestplate
|
||||
item.titanium_shovel.name=Titanium Shovel
|
||||
item.titanium_sword.name=Titanium Sword
|
||||
item.toolbox.name=Toolbox
|
||||
item.toolbox_legacy.name=Toolbox (LEGACY)
|
||||
item.toothpicks.name=Toothpicks
|
||||
item.train.cargo_tram.name=Electric Flat Bed Tram
|
||||
item.trenchmaster_boots.name=Trenchmaster's Boots
|
||||
|
||||
@ -1,690 +0,0 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'BalefireCrashed.blend'
|
||||
# www.blender.org
|
||||
o Sphere
|
||||
v -0.192358 1.600254 -1.342660
|
||||
v -0.385711 1.581224 -1.324975
|
||||
v -0.515121 2.447250 -1.807938
|
||||
v 0.002518 -3.248903 2.055765
|
||||
v 0.082170 -3.153232 2.205975
|
||||
v -0.260442 -2.766209 2.233894
|
||||
v 0.147114 2.008001 -0.702470
|
||||
v 0.215449 1.926895 -0.866215
|
||||
v 0.086039 2.792921 -1.349178
|
||||
v -0.592517 -2.498903 1.766917
|
||||
v -0.398402 -2.931915 1.973723
|
||||
v 0.223221 -3.072126 2.313615
|
||||
v -0.016133 -2.625729 2.420332
|
||||
v 0.209324 1.831224 -1.036127
|
||||
v 0.129673 1.735553 -1.186336
|
||||
v 0.000262 2.601579 -1.669299
|
||||
v -0.433214 -2.307561 2.067336
|
||||
v -0.354920 2.062194 -0.470774
|
||||
v -0.484330 2.928220 -0.953737
|
||||
v -0.665308 2.874027 -1.002420
|
||||
v 0.017704 2.874027 -1.185433
|
||||
v -0.114686 2.928220 -1.052783
|
||||
v 0.297331 -2.531864 2.504655
|
||||
v 0.210847 -2.036963 2.379984
|
||||
v 0.079914 2.697250 -1.519089
|
||||
v 0.404200 -3.017933 2.362299
|
||||
v -0.535898 2.008001 -0.519458
|
||||
v -0.806360 2.792921 -1.110060
|
||||
v 0.632228 -2.498903 2.474023
|
||||
v 0.597553 -1.998903 2.344614
|
||||
v -0.161567 2.081224 -0.488459
|
||||
v 0.014724 2.062194 -0.569820
|
||||
v 0.597553 -2.998903 2.344614
|
||||
v -0.290977 2.947250 -0.971422
|
||||
v 0.937573 -2.531864 2.333102
|
||||
v -0.756601 1.831224 -0.777308
|
||||
v -0.676950 1.926895 -0.627098
|
||||
v 0.773844 -3.017933 2.263253
|
||||
v -0.762726 1.735553 -0.947218
|
||||
v -0.892136 2.601579 -1.430181
|
||||
v -0.823802 2.520473 -1.593927
|
||||
v 1.166879 -2.625729 2.103345
|
||||
v 1.214915 -2.145350 1.916591
|
||||
v -0.694392 1.654447 -1.110963
|
||||
v -0.691412 2.466280 -1.726577
|
||||
v 0.906234 -3.072126 2.130603
|
||||
v 1.285238 -2.766209 1.819730
|
||||
v -0.886012 2.697250 -1.260270
|
||||
v 0.974568 -3.153232 1.966858
|
||||
v -0.011379 1.654447 -1.293977
|
||||
v -0.321768 2.466280 -1.825623
|
||||
v 0.968443 -3.248903 1.796946
|
||||
v 1.274630 -2.931916 1.525435
|
||||
v 0.662393 0.773857 -0.982993
|
||||
v 1.339334 -2.498903 1.249279
|
||||
v -0.720955 0.503259 -1.097548
|
||||
v -0.562002 1.600254 -1.243614
|
||||
v 0.888792 -3.344573 1.646737
|
||||
v -0.950852 1.156541 0.135484
|
||||
v 1.136669 -3.097622 1.265264
|
||||
v 1.180032 -2.690245 0.948859
|
||||
v 0.432497 1.427138 0.250040
|
||||
v 0.697277 1.318752 -0.015261
|
||||
v 0.747740 -3.425679 1.539097
|
||||
v 0.892360 -3.238102 1.078826
|
||||
v -0.668748 1.318752 0.350765
|
||||
v 0.897927 -2.852456 0.733579
|
||||
v 0.380289 0.611645 -1.198273
|
||||
v 0.566762 -3.479873 1.490413
|
||||
v 0.578896 -3.331967 0.994504
|
||||
v -0.985735 0.611646 -0.832247
|
||||
v -0.306791 1.427138 0.448132
|
||||
v 0.373409 -3.498903 1.508098
|
||||
v 0.243999 -3.364928 1.025135
|
||||
v 0.833946 1.156540 -0.342751
|
||||
v 0.535970 -2.960843 0.636212
|
||||
v 0.197118 -3.479872 1.589459
|
||||
v 0.018332 0.503259 -1.295640
|
||||
v 0.149265 -2.998903 0.671582
|
||||
v -0.061346 -3.331967 1.166056
|
||||
v -1.122404 0.773857 -0.504757
|
||||
v 0.079915 1.465199 0.412762
|
||||
v -0.203317 -2.960842 0.834304
|
||||
v -0.290652 -3.238101 1.395814
|
||||
v 0.821696 0.965199 -0.682573
|
||||
v 0.064728 -3.425679 1.722109
|
||||
v -0.368373 0.465199 -1.260270
|
||||
v -0.409011 -3.097622 1.679429
|
||||
v -0.604766 -2.690244 1.427095
|
||||
v -1.110155 0.965199 -0.164935
|
||||
v -0.003607 -3.344573 1.885854
|
||||
v 0.502818 -3.364928 1.991061
|
||||
v 0.950135 -2.036963 2.181892
|
||||
v -0.151110 -2.145349 2.282616
|
||||
v 1.351584 -2.307561 1.589101
|
||||
v -0.468097 -2.852456 1.099605
|
||||
v -0.140790 2.520473 -1.776940
|
||||
v 0.304880 2.200599 -2.418174
|
||||
v -1.530379 2.200599 -1.926418
|
||||
v -1.407440 1.377875 -1.467603
|
||||
v -0.981567 2.327875 0.121777
|
||||
v -1.015420 2.331225 0.188618
|
||||
v 0.916431 2.331225 -0.329019
|
||||
v 0.853692 2.327875 -0.369979
|
||||
v 0.730753 3.150599 -0.828793
|
||||
v -1.104505 3.150599 -0.337037
|
||||
v 0.468144 1.331224 -2.002052
|
||||
v 0.338734 2.197250 -2.485015
|
||||
v -1.463708 1.331224 -1.484414
|
||||
v -1.593117 2.197250 -1.967377
|
||||
v 0.427819 1.377875 -1.959360
|
||||
v -1.144830 3.197250 -0.294344
|
||||
v 0.787022 3.197250 -0.811982
|
||||
v 0.640756 1.852875 -1.164669
|
||||
v 0.517817 2.675599 -1.623483
|
||||
v -1.317442 2.675599 -1.131727
|
||||
v -1.194503 1.852875 -0.672913
|
||||
v -0.612749 2.200599 -2.172296
|
||||
v -0.489810 1.377875 -1.713482
|
||||
v -0.186876 3.150599 -0.582915
|
||||
v -0.063937 2.327875 -0.124101
|
||||
v 1.214915 -2.145350 1.916591
|
||||
v 0.432497 1.427138 0.250040
|
||||
v 0.697277 1.318752 -0.015261
|
||||
v 0.950135 -2.036963 2.181892
|
||||
vt 0.519290 0.058179
|
||||
vt 0.519290 0.044033
|
||||
vt 0.591799 0.044033
|
||||
vt 0.073830 0.171353
|
||||
vt 0.073830 0.157208
|
||||
vt 0.111004 0.152030
|
||||
vt 0.519289 0.199636
|
||||
vt 0.519289 0.185490
|
||||
vt 0.591797 0.185490
|
||||
vt 0.148490 0.178426
|
||||
vt 0.111004 0.176531
|
||||
vt 0.073830 0.143062
|
||||
vt 0.073830 0.128916
|
||||
vt 0.111004 0.123738
|
||||
vt 0.519290 0.143053
|
||||
vt 0.519290 0.128907
|
||||
vt 0.591799 0.128907
|
||||
vt 0.148490 0.150135
|
||||
vt 0.111004 0.148240
|
||||
vt 0.519281 0.100625
|
||||
vt 0.591789 0.100625
|
||||
vt 0.591789 0.114770
|
||||
vt 0.519269 0.270370
|
||||
vt 0.591778 0.270370
|
||||
vt 0.591778 0.284515
|
||||
vt 0.111004 0.119948
|
||||
vt 0.111004 0.095447
|
||||
vt 0.148490 0.093552
|
||||
vt 0.519289 0.157199
|
||||
vt 0.591798 0.157199
|
||||
vt 0.591798 0.171345
|
||||
vt 0.073830 0.114771
|
||||
vt 0.073830 0.100625
|
||||
vt 0.591790 0.143062
|
||||
vt 0.111004 0.091657
|
||||
vt 0.111004 0.067156
|
||||
vt 0.148490 0.065261
|
||||
vt 0.073830 0.086479
|
||||
vt 0.073830 0.072333
|
||||
vt 0.519280 0.086479
|
||||
vt 0.519280 0.072334
|
||||
vt 0.591788 0.072334
|
||||
vt 0.111004 0.063365
|
||||
vt 0.111004 0.038864
|
||||
vt 0.519282 0.171354
|
||||
vt 0.073830 0.058188
|
||||
vt 0.073830 0.044042
|
||||
vt 0.519281 0.213791
|
||||
vt 0.591790 0.213791
|
||||
vt 0.591790 0.227937
|
||||
vt 0.110996 0.289698
|
||||
vt 0.110996 0.265197
|
||||
vt 0.148481 0.263302
|
||||
vt 0.519280 0.242082
|
||||
vt 0.591788 0.242082
|
||||
vt 0.591788 0.256228
|
||||
vt 0.073822 0.284520
|
||||
vt 0.073822 0.270375
|
||||
vt 0.148498 0.206708
|
||||
vt 0.111013 0.204813
|
||||
vt 0.111013 0.180312
|
||||
vt 0.591790 0.199645
|
||||
vt 0.073839 0.199635
|
||||
vt 0.073839 0.185490
|
||||
vt 0.867947 0.185572
|
||||
vt 0.852531 0.208643
|
||||
vt 0.802245 0.198641
|
||||
vt 0.073838 0.171344
|
||||
vt 0.438531 0.121834
|
||||
vt 0.438523 0.263301
|
||||
vt 0.519281 0.284519
|
||||
vt 0.438523 0.150135
|
||||
vt 0.148498 0.121834
|
||||
vt 0.438511 0.291588
|
||||
vt 0.148498 0.093543
|
||||
vt 0.438531 0.093543
|
||||
vt 0.111013 0.067147
|
||||
vt 0.438523 0.235009
|
||||
vt 0.111013 0.091648
|
||||
vt 0.438523 0.093552
|
||||
vt 0.519281 0.114770
|
||||
vt 0.438531 0.206709
|
||||
vt 0.438531 0.178417
|
||||
vt 0.438531 0.065252
|
||||
vt 0.148489 0.291592
|
||||
vt 0.519281 0.227937
|
||||
vt 0.111004 0.261405
|
||||
vt 0.111004 0.236904
|
||||
vt 0.519289 0.171345
|
||||
vt 0.073830 0.256227
|
||||
vt 0.073830 0.242082
|
||||
vt 0.438531 0.036960
|
||||
vt 0.111004 0.233114
|
||||
vt 0.111004 0.208613
|
||||
vt 0.073830 0.227936
|
||||
vt 0.073830 0.213790
|
||||
vt 0.036969 0.164280
|
||||
vt 0.036969 0.135989
|
||||
vt 0.036969 0.107698
|
||||
vt 0.036969 0.079406
|
||||
vt 0.036970 0.051115
|
||||
vt 0.148490 0.036969
|
||||
vt 0.036961 0.277447
|
||||
vt 0.036978 0.192562
|
||||
vt 0.036969 0.249154
|
||||
vt 0.036969 0.220863
|
||||
vt 0.148490 0.235009
|
||||
vt 0.192327 0.347853
|
||||
vt 0.192327 0.485619
|
||||
vt 0.123444 0.485619
|
||||
vt 0.699469 0.172501
|
||||
vt 0.699469 0.034735
|
||||
vt 0.768352 0.034735
|
||||
vt 0.443577 0.396280
|
||||
vt 0.584968 0.400334
|
||||
vt 0.439951 0.400334
|
||||
vt 0.581343 0.396280
|
||||
vt 0.443577 0.327397
|
||||
vt 0.581343 0.327397
|
||||
vt 0.319721 0.480769
|
||||
vt 0.319721 0.335752
|
||||
vt 0.392229 0.335752
|
||||
vt 0.695415 0.176127
|
||||
vt 0.622907 0.031110
|
||||
vt 0.695416 0.031110
|
||||
vt 0.903489 0.115635
|
||||
vt 0.964650 0.186331
|
||||
vt 0.903489 0.188144
|
||||
vt 0.866342 0.040735
|
||||
vt 0.866342 0.109618
|
||||
vt 0.805181 0.111431
|
||||
vt 0.712656 0.540579
|
||||
vt 0.651495 0.469883
|
||||
vt 0.712656 0.468071
|
||||
vt 0.781166 0.340069
|
||||
vt 0.781166 0.271186
|
||||
vt 0.842327 0.269373
|
||||
vt 0.622907 0.176127
|
||||
vt 0.618854 0.172502
|
||||
vt 0.443577 0.476895
|
||||
vt 0.439951 0.472842
|
||||
vt 0.584968 0.472842
|
||||
vt 0.396282 0.477144
|
||||
vt 0.392229 0.480769
|
||||
vt 0.315668 0.339377
|
||||
vt 0.315667 0.477144
|
||||
vt 0.246785 0.339377
|
||||
vt 0.876104 0.584646
|
||||
vt 0.877917 0.552017
|
||||
vt 0.946800 0.552017
|
||||
vt 0.558888 0.554541
|
||||
vt 0.490005 0.554541
|
||||
vt 0.488192 0.521912
|
||||
vt 0.971580 0.044744
|
||||
vt 0.900884 0.077373
|
||||
vt 0.902697 0.044744
|
||||
vt 0.927650 0.489798
|
||||
vt 0.925837 0.522427
|
||||
vt 0.856954 0.522427
|
||||
vt 0.835610 0.458829
|
||||
vt 0.933025 0.389946
|
||||
vt 0.933025 0.458829
|
||||
vt 0.724805 0.327967
|
||||
vt 0.724805 0.425382
|
||||
vt 0.655922 0.425382
|
||||
vt 0.636432 0.274081
|
||||
vt 0.636432 0.205198
|
||||
vt 0.733848 0.205198
|
||||
vt 0.957268 0.244504
|
||||
vt 0.957268 0.341919
|
||||
vt 0.888385 0.341919
|
||||
vt 0.042829 0.347853
|
||||
vt 0.046882 0.344228
|
||||
vt 0.046882 0.489245
|
||||
vt 0.119390 0.344228
|
||||
vt 0.119390 0.489245
|
||||
vt 0.591799 0.058179
|
||||
vt 0.591788 0.086479
|
||||
vt 0.591790 0.171354
|
||||
vt 0.519280 0.256228
|
||||
vt 0.796832 0.185572
|
||||
vt 0.796832 0.171427
|
||||
vt 0.802245 0.158358
|
||||
vt 0.812247 0.148355
|
||||
vt 0.825316 0.142942
|
||||
vt 0.839462 0.142942
|
||||
vt 0.852531 0.148355
|
||||
vt 0.862533 0.158357
|
||||
vt 0.867947 0.171426
|
||||
vt 0.862534 0.198641
|
||||
vt 0.839462 0.214057
|
||||
vt 0.825317 0.214057
|
||||
vt 0.812248 0.208644
|
||||
vt 0.123444 0.347853
|
||||
vt 0.768352 0.172501
|
||||
vt 0.964650 0.117448
|
||||
vt 0.805181 0.038922
|
||||
vt 0.651495 0.538767
|
||||
vt 0.842327 0.341882
|
||||
vt 0.618854 0.034735
|
||||
vt 0.581343 0.476896
|
||||
vt 0.396282 0.339378
|
||||
vt 0.246784 0.477143
|
||||
vt 0.948613 0.584646
|
||||
vt 0.560701 0.521912
|
||||
vt 0.973392 0.077373
|
||||
vt 0.855141 0.489798
|
||||
vt 0.835610 0.389946
|
||||
vt 0.655922 0.327967
|
||||
vt 0.733848 0.274081
|
||||
vt 0.888385 0.244504
|
||||
vt 0.042829 0.485620
|
||||
vt 0.021699 0.793428
|
||||
vt 0.021698 0.699267
|
||||
vt 0.986999 0.699267
|
||||
vt 0.986999 0.793427
|
||||
vn -0.031400 -0.490400 -0.870900
|
||||
vn -0.554500 -0.536800 0.635900
|
||||
vn 0.927700 0.277800 0.249500
|
||||
vn -0.841100 -0.125800 0.526100
|
||||
vn -0.393900 -0.408100 0.823600
|
||||
vn 0.903600 -0.097500 -0.417000
|
||||
vn -0.623400 0.048500 0.780400
|
||||
vn -0.350300 0.415700 0.839300
|
||||
vn 0.723000 0.415700 0.551700
|
||||
vn -0.305900 0.182000 0.934500
|
||||
vn 0.991100 0.097500 -0.090700
|
||||
vn -0.159500 -0.309600 0.937400
|
||||
vn -0.678600 0.277800 0.679900
|
||||
vn 0.063300 0.254200 0.965100
|
||||
vn 0.408300 0.490400 0.770000
|
||||
vn 0.113000 -0.256300 0.960000
|
||||
vn 0.031400 0.490400 0.870900
|
||||
vn 0.427800 0.254200 0.867400
|
||||
vn -0.903600 0.097500 0.417000
|
||||
vn 0.382100 -0.256300 0.887900
|
||||
vn -0.927700 -0.277800 -0.249500
|
||||
vn 0.732200 0.182000 0.656400
|
||||
vn -0.723000 -0.415700 -0.551700
|
||||
vn 0.606800 -0.309600 0.732100
|
||||
vn 0.930100 0.048500 0.364100
|
||||
vn -0.991100 -0.097500 0.090600
|
||||
vn 0.752900 -0.408100 0.516300
|
||||
vn 0.350300 -0.415700 -0.839300
|
||||
vn -0.129400 0.866000 -0.483000
|
||||
vn 0.798200 -0.536800 0.273500
|
||||
vn 0.754400 0.293700 -0.587100
|
||||
vn 0.991400 -0.125800 0.035100
|
||||
vn -0.423600 -0.059000 -0.903900
|
||||
vn 0.735700 -0.676000 0.040400
|
||||
vn -0.868300 0.468900 0.161800
|
||||
vn 0.906900 -0.314500 -0.280600
|
||||
vn 0.592200 0.754600 0.282700
|
||||
vn 0.575100 -0.804700 -0.147300
|
||||
vn -0.666300 0.630700 0.397800
|
||||
vn 0.689200 -0.488800 -0.534900
|
||||
vn 0.552300 0.131900 -0.823100
|
||||
vn 0.340700 -0.903200 -0.261000
|
||||
vn -0.706100 0.008000 -0.708000
|
||||
vn 0.371700 -0.622200 -0.689000
|
||||
vn -0.371500 0.754600 0.540900
|
||||
vn 0.068200 -0.956500 -0.283600
|
||||
vn 0.775900 0.630700 0.011400
|
||||
vn 0.002500 -0.694400 -0.719600
|
||||
vn -0.200900 -0.956500 -0.211500
|
||||
vn 0.257500 0.008000 -0.966200
|
||||
vn -0.362000 -0.694400 -0.621900
|
||||
vn -0.889900 0.131900 -0.436700
|
||||
vn -0.028800 0.821600 0.569300
|
||||
vn -0.666400 -0.622200 -0.410900
|
||||
vn 0.832900 0.468900 -0.294000
|
||||
vn -0.425600 -0.903200 -0.055700
|
||||
vn -0.085200 -0.059000 -0.994600
|
||||
vn -0.864300 -0.488800 -0.118600
|
||||
vn -0.946800 0.293700 -0.131300
|
||||
vn -0.571700 -0.804700 0.160000
|
||||
vn -0.408300 -0.490400 -0.769900
|
||||
vn -0.113300 -0.809700 0.575800
|
||||
vn -0.054000 -0.762200 0.645100
|
||||
vn 0.032500 -0.725800 0.687100
|
||||
vn 0.133100 -0.706200 0.695400
|
||||
vn 0.232400 -0.706200 0.668800
|
||||
vn 0.408300 0.490400 0.769900
|
||||
vn 0.315400 -0.725800 0.611300
|
||||
vn 0.369300 -0.762200 0.531700
|
||||
vn 0.386000 -0.809700 0.442000
|
||||
vn 0.363000 -0.861100 0.356000
|
||||
vn 0.303700 -0.908600 0.286700
|
||||
vn 0.217100 -0.945000 0.244700
|
||||
vn 0.116600 -0.964600 0.236400
|
||||
vn 0.017200 -0.964600 0.263000
|
||||
vn 0.678600 -0.277800 -0.679900
|
||||
vn -0.065700 -0.945000 0.320500
|
||||
vn -0.119600 -0.908600 0.400100
|
||||
vn -0.925700 -0.314500 0.210400
|
||||
vn -0.136400 -0.861100 0.489800
|
||||
vn 0.309600 0.821600 0.478700
|
||||
vn -0.617000 -0.676000 0.402900
|
||||
vn 0.224100 0.500000 0.836500
|
||||
vn 0.965900 -0.000000 -0.258800
|
||||
vn 0.015500 -0.998200 0.057900
|
||||
vn -0.224100 -0.500000 -0.836500
|
||||
vn -0.965900 0.000000 0.258800
|
||||
vn -0.524500 0.353600 0.774500
|
||||
vn 0.841500 0.353600 0.408500
|
||||
vn 0.316200 0.774600 -0.547700
|
||||
vn -0.216000 0.551000 -0.806100
|
||||
vn -0.547700 0.774600 -0.316200
|
||||
vn -0.316200 -0.774600 0.547700
|
||||
vn -0.015500 0.998200 -0.057900
|
||||
vn 0.216000 -0.551000 0.806100
|
||||
vn 0.547700 -0.774600 0.316200
|
||||
vn -0.991100 -0.097500 0.090700
|
||||
vn -0.129400 0.866000 -0.482900
|
||||
vn -0.408300 -0.490400 -0.770000
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1
|
||||
f 4/4/2 5/5/2 6/6/2
|
||||
f 7/7/3 8/8/3 9/9/3
|
||||
f 10/10/4 11/11/4 6/6/4
|
||||
f 5/12/5 12/13/5 13/14/5
|
||||
f 14/15/6 15/16/6 16/17/6
|
||||
f 17/18/7 6/19/7 13/14/7
|
||||
f 18/20/8 19/21/8 20/22/8
|
||||
f 7/23/9 21/24/9 22/25/9
|
||||
f 13/26/10 23/27/10 24/28/10
|
||||
f 14/29/11 25/30/11 9/31/11
|
||||
f 12/32/12 26/33/12 23/27/12
|
||||
f 27/16/13 20/17/13 28/34/13
|
||||
f 23/35/14 29/36/14 30/37/14
|
||||
f 31/1/15 32/2/15 22/3/15
|
||||
f 23/35/16 26/38/16 33/39/16
|
||||
f 18/40/17 31/41/17 34/42/17
|
||||
f 30/37/18 29/43/18 35/44/18
|
||||
f 36/45/19 37/29/19 28/30/19
|
||||
f 33/46/20 38/47/20 35/44/20
|
||||
f 39/48/21 40/49/21 41/50/21
|
||||
f 35/51/22 42/52/22 43/53/22
|
||||
f 44/54/23 41/55/23 45/56/23
|
||||
f 38/57/24 46/58/24 42/52/24
|
||||
f 43/59/25 42/60/25 47/61/25
|
||||
f 36/8/26 48/9/26 40/62/26
|
||||
f 42/60/27 46/63/27 49/64/27
|
||||
f 50/40/28 1/41/28 51/42/28
|
||||
f 16/65/29 51/66/29 40/67/29
|
||||
f 49/68/30 52/5/30 53/6/30
|
||||
f 54/69/31 15/16/31 14/15/31
|
||||
f 47/11/32 53/6/32 55/18/32
|
||||
f 56/70/33 57/23/33 2/71/33
|
||||
f 53/19/34 52/12/34 58/13/34
|
||||
f 59/72/35 37/29/35 36/45/35
|
||||
f 53/19/36 60/14/36 61/73/36
|
||||
f 62/74/37 63/70/37 7/23/37
|
||||
f 58/32/38 64/33/38 65/27/38
|
||||
f 66/69/39 27/16/39 37/15/39
|
||||
f 60/26/40 65/27/40 67/75/40
|
||||
f 54/69/41 68/76/41 50/20/41
|
||||
f 64/38/42 69/39/42 70/77/42
|
||||
f 56/70/43 71/78/43 44/54/43
|
||||
f 67/75/44 65/79/44 70/77/44
|
||||
f 72/80/45 18/20/45 27/81/45
|
||||
f 69/46/46 73/47/46 74/44/46
|
||||
f 63/82/47 75/83/47 8/8/47
|
||||
f 76/37/48 70/43/48 74/44/48
|
||||
f 74/51/49 73/57/49 77/58/49
|
||||
f 78/84/50 1/41/50 50/40/50
|
||||
f 79/85/51 74/51/51 80/52/51
|
||||
f 81/82/52 39/48/52 44/86/52
|
||||
f 82/84/53 31/41/53 18/40/53
|
||||
f 83/53/54 80/87/54 84/88/54
|
||||
f 85/72/55 14/29/55 8/89/55
|
||||
f 77/90/56 86/91/56 84/88/56
|
||||
f 78/84/57 87/92/57 2/2/57
|
||||
f 84/93/58 88/94/58 89/59/58
|
||||
f 90/83/59 36/8/59 39/7/59
|
||||
f 86/95/60 91/96/60 88/94/60
|
||||
f 57/23/61 45/24/61 3/25/61
|
||||
f 4/4/62 92/97/62 5/5/62
|
||||
f 5/12/63 92/98/63 12/13/63
|
||||
f 10/10/19 17/18/19 59/72/19
|
||||
f 12/32/64 92/99/64 26/33/64
|
||||
f 61/73/6 54/69/6 85/72/6
|
||||
f 26/38/65 92/100/65 33/39/65
|
||||
f 55/18/11 85/72/11 75/83/11
|
||||
f 33/46/66 92/101/66 38/47/66
|
||||
f 93/102/67 62/92/67 82/84/67
|
||||
f 38/57/68 92/103/68 46/58/68
|
||||
f 30/37/17 82/84/17 72/80/17
|
||||
f 46/63/69 92/104/69 49/64/69
|
||||
f 79/102/1 87/92/1 78/84/1
|
||||
f 49/68/70 92/97/70 52/5/70
|
||||
f 94/73/13 66/69/13 59/72/13
|
||||
f 76/37/28 78/84/28 68/76/28
|
||||
f 52/12/71 92/98/71 58/13/71
|
||||
f 94/73/8 24/28/8 72/80/8
|
||||
f 58/32/72 92/99/72 64/33/72
|
||||
f 95/10/3 75/83/3 63/82/3
|
||||
f 64/38/73 92/100/73 69/39/73
|
||||
f 69/46/74 92/101/74 73/47/74
|
||||
f 89/59/21 81/82/21 71/78/21
|
||||
f 73/57/75 92/103/75 77/58/75
|
||||
f 67/75/76 68/76/76 54/69/76
|
||||
f 77/90/77 92/105/77 86/91/77
|
||||
f 79/85/61 83/53/61 56/70/61
|
||||
f 86/95/78 92/106/78 91/96/78
|
||||
f 83/53/23 96/107/23 71/78/23
|
||||
f 89/59/79 88/60/79 11/61/79
|
||||
f 91/63/80 92/104/80 4/64/80
|
||||
f 62/92/81 32/2/81 31/1/81
|
||||
f 10/10/26 90/83/26 81/82/26
|
||||
f 91/63/82 4/64/82 11/61/82
|
||||
f 50/20/76 97/21/76 16/22/76
|
||||
f 98/108/83 99/109/83 100/110/83
|
||||
f 101/111/84 100/112/84 99/113/84
|
||||
f 101/114/85 103/115/85 102/116/85
|
||||
f 104/117/86 106/118/86 105/119/86
|
||||
f 103/120/84 107/121/84 108/122/84
|
||||
f 102/123/87 110/124/87 109/125/87
|
||||
f 7/126/88 105/127/88 21/128/88
|
||||
f 106/129/89 101/130/89 27/131/89
|
||||
f 41/132/88 100/133/88 44/134/88
|
||||
f 111/135/89 98/136/89 97/137/89
|
||||
f 110/124/90 112/138/90 106/139/90
|
||||
f 106/140/91 112/141/91 113/142/91
|
||||
f 105/143/92 113/144/92 108/122/92
|
||||
f 103/120/93 111/145/93 107/121/93
|
||||
f 103/115/83 113/142/83 112/141/83
|
||||
f 104/146/87 98/147/87 111/145/87
|
||||
f 14/148/83 114/149/83 115/150/83
|
||||
f 116/151/83 117/152/83 36/153/83
|
||||
f 118/154/84 2/155/84 119/156/84
|
||||
f 34/157/84 120/158/84 121/159/84
|
||||
f 116/160/88 121/161/88 120/162/88
|
||||
f 115/163/89 120/164/89 121/165/89
|
||||
f 118/166/88 119/167/88 114/168/88
|
||||
f 118/169/89 116/170/89 117/171/89
|
||||
f 98/172/94 108/173/94 110/174/94
|
||||
f 107/175/95 100/110/95 109/176/95
|
||||
f 108/173/86 109/176/86 110/174/86
|
||||
f 100/112/96 102/123/96 109/125/96
|
||||
f 51/177/1 1/1/1 3/3/1
|
||||
f 11/11/2 4/4/2 6/6/2
|
||||
f 21/62/3 7/7/3 9/9/3
|
||||
f 17/18/4 10/10/4 6/6/4
|
||||
f 6/19/5 5/12/5 13/14/5
|
||||
f 25/34/6 14/15/6 16/17/6
|
||||
f 94/73/7 17/18/7 13/14/7
|
||||
f 27/81/8 18/20/8 20/22/8
|
||||
f 32/71/9 7/23/9 22/25/9
|
||||
f 94/73/10 13/26/10 24/28/10
|
||||
f 8/89/11 14/29/11 9/31/11
|
||||
f 13/26/12 12/32/12 23/27/12
|
||||
f 37/15/13 27/16/13 28/34/13
|
||||
f 24/28/14 23/35/14 30/37/14
|
||||
f 34/177/15 31/1/15 22/3/15
|
||||
f 29/36/16 23/35/16 33/39/16
|
||||
f 19/178/17 18/40/17 34/42/17
|
||||
f 93/102/18 30/37/18 35/44/18
|
||||
f 48/179/19 36/45/19 28/30/19
|
||||
f 29/43/20 33/46/20 35/44/20
|
||||
f 44/86/21 39/48/21 41/50/21
|
||||
f 93/85/22 35/51/22 43/53/22
|
||||
f 57/180/23 44/54/23 45/56/23
|
||||
f 35/51/24 38/57/24 42/52/24
|
||||
f 95/10/25 43/59/25 47/61/25
|
||||
f 39/7/97 36/8/97 40/62/97
|
||||
f 47/61/27 42/60/27 49/64/27
|
||||
f 97/178/28 50/40/28 51/42/28
|
||||
f 40/67/29 48/181/29 28/182/29
|
||||
f 28/182/29 20/183/29 40/67/29
|
||||
f 19/184/29 34/185/29 22/186/29
|
||||
f 22/186/29 21/187/29 9/188/29
|
||||
f 9/188/29 25/189/29 16/65/29
|
||||
f 16/65/98 97/190/98 51/66/98
|
||||
f 51/66/29 3/191/29 45/192/29
|
||||
f 45/192/29 41/193/29 40/67/29
|
||||
f 40/67/29 20/183/29 19/184/29
|
||||
f 19/184/29 22/186/29 40/67/29
|
||||
f 9/188/29 16/65/29 40/67/29
|
||||
f 51/66/29 45/192/29 40/67/29
|
||||
f 40/67/29 22/186/29 9/188/29
|
||||
f 47/11/30 49/68/30 53/6/30
|
||||
f 85/72/31 54/69/31 14/15/31
|
||||
f 95/10/32 47/11/32 55/18/32
|
||||
f 87/74/33 56/70/33 2/71/33
|
||||
f 60/14/34 53/19/34 58/13/34
|
||||
f 90/83/35 59/72/35 36/45/35
|
||||
f 55/18/36 53/19/36 61/73/36
|
||||
f 32/71/37 62/74/37 7/23/37
|
||||
f 60/26/38 58/32/38 65/27/38
|
||||
f 59/72/39 66/69/39 37/15/39
|
||||
f 61/73/40 60/26/40 67/75/40
|
||||
f 15/81/41 54/69/41 50/20/41
|
||||
f 65/79/42 64/38/42 70/77/42
|
||||
f 57/180/43 56/70/43 44/54/43
|
||||
f 76/37/44 67/75/44 70/77/44
|
||||
f 66/69/45 72/80/45 27/81/45
|
||||
f 70/43/46 69/46/46 74/44/46
|
||||
f 7/7/47 63/82/47 8/8/47
|
||||
f 79/102/48 76/37/48 74/44/48
|
||||
f 80/52/49 74/51/49 77/58/49
|
||||
f 68/76/50 78/84/50 50/40/50
|
||||
f 83/53/51 79/85/51 80/52/51
|
||||
f 71/78/52 81/82/52 44/86/52
|
||||
f 72/80/53 82/84/53 18/40/53
|
||||
f 96/107/54 83/53/54 84/88/54
|
||||
f 75/83/55 85/72/55 8/89/55
|
||||
f 80/87/56 77/90/56 84/88/56
|
||||
f 1/1/57 78/84/57 2/2/57
|
||||
f 96/107/58 84/93/58 89/59/58
|
||||
f 81/82/59 90/83/59 39/7/59
|
||||
f 84/93/60 86/95/60 88/94/60
|
||||
f 2/71/99 57/23/99 3/25/99
|
||||
f 90/83/19 10/10/19 59/72/19
|
||||
f 55/18/6 61/73/6 85/72/6
|
||||
f 95/10/11 55/18/11 75/83/11
|
||||
f 30/37/67 93/102/67 82/84/67
|
||||
f 24/28/17 30/37/17 72/80/17
|
||||
f 76/37/1 79/102/1 78/84/1
|
||||
f 17/18/13 94/73/13 59/72/13
|
||||
f 67/75/28 76/37/28 68/76/28
|
||||
f 66/69/8 94/73/8 72/80/8
|
||||
f 43/59/3 95/10/3 63/82/3
|
||||
f 96/107/21 89/59/21 71/78/21
|
||||
f 61/73/76 67/75/76 54/69/76
|
||||
f 87/74/61 79/85/61 56/70/61
|
||||
f 56/70/23 83/53/23 71/78/23
|
||||
f 10/10/79 89/59/79 11/61/79
|
||||
f 82/84/81 62/92/81 31/1/81
|
||||
f 89/59/26 10/10/26 81/82/26
|
||||
f 88/60/82 91/63/82 11/61/82
|
||||
f 15/81/76 50/20/76 16/22/76
|
||||
f 111/194/83 98/108/83 100/110/83
|
||||
f 106/195/84 101/111/84 99/113/84
|
||||
f 104/117/85 103/115/85 101/114/85
|
||||
f 101/114/86 106/118/86 104/117/86
|
||||
f 113/144/84 103/120/84 108/122/84
|
||||
f 112/138/87 110/124/87 102/123/87
|
||||
f 104/196/88 105/127/88 7/126/88
|
||||
f 20/197/89 106/129/89 27/131/89
|
||||
f 99/198/88 100/133/88 41/132/88
|
||||
f 50/199/89 111/135/89 97/137/89
|
||||
f 99/200/90 110/124/90 106/139/90
|
||||
f 105/201/91 106/140/91 113/142/91
|
||||
f 98/202/92 105/143/92 108/122/92
|
||||
f 104/146/93 111/145/93 103/120/93
|
||||
f 102/116/83 103/115/83 112/141/83
|
||||
f 105/203/87 98/147/87 104/146/87
|
||||
f 25/204/83 14/148/83 115/150/83
|
||||
f 48/205/83 116/151/83 36/153/83
|
||||
f 3/206/84 2/155/84 118/154/84
|
||||
f 31/207/84 34/157/84 121/159/84
|
||||
f 117/208/88 121/161/88 116/160/88
|
||||
f 114/209/89 115/163/89 121/165/89
|
||||
f 115/210/88 118/166/88 114/168/88
|
||||
f 119/211/89 118/169/89 117/171/89
|
||||
f 99/212/94 98/172/94 110/174/94
|
||||
f 111/194/95 100/110/95 107/175/95
|
||||
f 107/175/86 109/176/86 108/173/86
|
||||
f 101/111/96 102/123/96 100/112/96
|
||||
f 125/213/9 122/214/9 124/215/9
|
||||
f 123/216/9 125/213/9 124/215/9
|
||||
@ -1,132 +0,0 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Cone
|
||||
v 0.000000 0.000000 -0.250000
|
||||
v 0.095671 0.000000 -0.230970
|
||||
v 0.176777 0.000000 -0.176777
|
||||
v 0.230970 0.000000 -0.095671
|
||||
v 0.250000 0.000000 0.000000
|
||||
v 0.000000 1.000000 0.000000
|
||||
v 0.230970 0.000000 0.095671
|
||||
v 0.176777 0.000000 0.176777
|
||||
v 0.095671 0.000000 0.230970
|
||||
v 0.000000 0.000000 0.250000
|
||||
v -0.095671 0.000000 0.230970
|
||||
v -0.176777 0.000000 0.176777
|
||||
v -0.230970 0.000000 0.095671
|
||||
v -0.250000 0.000000 -0.000000
|
||||
v -0.230970 0.000000 -0.095671
|
||||
v -0.176777 0.000000 -0.176777
|
||||
v -0.095671 0.000000 -0.230970
|
||||
vt 0.604260 0.026082
|
||||
vt 0.604260 0.474169
|
||||
vt 0.562802 0.028089
|
||||
vt 0.377812 0.973917
|
||||
vt 0.398565 0.526333
|
||||
vt 0.419317 0.973918
|
||||
vt 0.419224 0.026082
|
||||
vt 0.419224 0.474169
|
||||
vt 0.377766 0.028089
|
||||
vt 0.025530 0.739009
|
||||
vt 0.046282 0.291425
|
||||
vt 0.067035 0.739009
|
||||
vt 0.470284 0.472162
|
||||
vt 0.511742 0.026082
|
||||
vt 0.511742 0.474169
|
||||
vt 0.118094 0.739009
|
||||
vt 0.138846 0.291425
|
||||
vt 0.159599 0.739009
|
||||
vt 0.840401 0.973416
|
||||
vt 0.861154 0.525831
|
||||
vt 0.881906 0.973416
|
||||
vt 0.747837 0.973416
|
||||
vt 0.768589 0.525831
|
||||
vt 0.789342 0.973416
|
||||
vt 0.285248 0.472162
|
||||
vt 0.326707 0.026082
|
||||
vt 0.326707 0.474169
|
||||
vt 0.747837 0.473667
|
||||
vt 0.768589 0.026082
|
||||
vt 0.789342 0.473667
|
||||
vt 0.655319 0.472162
|
||||
vt 0.696778 0.026082
|
||||
vt 0.696778 0.474169
|
||||
vt 0.285248 0.973918
|
||||
vt 0.306001 0.526333
|
||||
vt 0.326753 0.973918
|
||||
vt 0.562941 0.973918
|
||||
vt 0.583693 0.526333
|
||||
vt 0.604446 0.973918
|
||||
vt 0.840401 0.473667
|
||||
vt 0.861154 0.026082
|
||||
vt 0.881906 0.473667
|
||||
vt 0.932966 0.473667
|
||||
vt 0.953718 0.026082
|
||||
vt 0.974470 0.473667
|
||||
vt 0.470377 0.973918
|
||||
vt 0.491129 0.526333
|
||||
vt 0.511882 0.973918
|
||||
vt 0.218306 0.072293
|
||||
vt 0.188957 0.223033
|
||||
vt 0.070761 0.042310
|
||||
vt 0.041413 0.193049
|
||||
vt 0.025530 0.153873
|
||||
vt 0.025530 0.111469
|
||||
vt 0.041413 0.072293
|
||||
vt 0.109107 0.026082
|
||||
vt 0.150612 0.026082
|
||||
vt 0.188957 0.042310
|
||||
vt 0.234189 0.111469
|
||||
vt 0.234189 0.153873
|
||||
vt 0.218306 0.193049
|
||||
vt 0.150612 0.239260
|
||||
vt 0.109107 0.239260
|
||||
vt 0.070761 0.223032
|
||||
vn -0.539600 0.238100 -0.807500
|
||||
vn 0.189500 0.238100 -0.952600
|
||||
vn -0.807500 0.238100 -0.539600
|
||||
vn -0.952600 0.238100 -0.189500
|
||||
vn -0.952600 0.238100 0.189500
|
||||
vn -0.807500 0.238100 0.539600
|
||||
vn -0.539600 0.238100 0.807500
|
||||
vn -0.189500 0.238100 0.952600
|
||||
vn 0.189500 0.238100 0.952600
|
||||
vn 0.539600 0.238100 0.807500
|
||||
vn 0.807500 0.238100 0.539600
|
||||
vn 0.952600 0.238100 0.189500
|
||||
vn 0.952600 0.238100 -0.189500
|
||||
vn 0.807500 0.238100 -0.539600
|
||||
vn -0.189500 0.238100 -0.952600
|
||||
vn 0.539600 0.238100 -0.807500
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
s off
|
||||
f 16/1/1 6/2/1 17/3/1
|
||||
f 1/4/2 6/5/2 2/6/2
|
||||
f 15/7/3 6/8/3 16/9/3
|
||||
f 14/10/4 6/11/4 15/12/4
|
||||
f 13/13/5 6/14/5 14/15/5
|
||||
f 12/16/6 6/17/6 13/18/6
|
||||
f 11/19/7 6/20/7 12/21/7
|
||||
f 10/22/8 6/23/8 11/24/8
|
||||
f 9/25/9 6/26/9 10/27/9
|
||||
f 8/28/10 6/29/10 9/30/10
|
||||
f 7/31/11 6/32/11 8/33/11
|
||||
f 5/34/12 6/35/12 7/36/12
|
||||
f 4/37/13 6/38/13 5/39/13
|
||||
f 3/40/14 6/41/14 4/42/14
|
||||
f 17/43/15 6/44/15 1/45/15
|
||||
f 2/46/16 6/47/16 3/48/16
|
||||
f 9/49/17 13/50/17 4/51/17
|
||||
f 17/52/17 1/53/17 2/54/17
|
||||
f 2/54/17 3/55/17 17/52/17
|
||||
f 4/51/17 5/56/17 7/57/17
|
||||
f 7/57/17 8/58/17 4/51/17
|
||||
f 9/49/17 10/59/17 13/50/17
|
||||
f 11/60/17 12/61/17 13/50/17
|
||||
f 13/50/17 14/62/17 15/63/17
|
||||
f 15/63/17 16/64/17 17/52/17
|
||||
f 17/52/17 3/55/17 4/51/17
|
||||
f 4/51/17 8/58/17 9/49/17
|
||||
f 10/59/17 11/60/17 13/50/17
|
||||
f 13/50/17 15/63/17 17/52/17
|
||||
f 17/52/17 4/51/17 13/50/17
|
||||
@ -1,806 +0,0 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'RingBig.blend'
|
||||
# www.blender.org
|
||||
o Circle_Circle.001
|
||||
v 0.000000 0.000000 -1.000000
|
||||
v -0.195090 0.000000 -0.980785
|
||||
v -0.382683 0.000000 -0.923880
|
||||
v -0.555570 0.000000 -0.831470
|
||||
v -0.707107 0.000000 -0.707107
|
||||
v -0.831470 0.000000 -0.555570
|
||||
v -0.923880 0.000000 -0.382683
|
||||
v -0.980785 0.000000 -0.195090
|
||||
v -1.000000 0.000000 -0.000000
|
||||
v -0.980785 0.000000 0.195090
|
||||
v -0.923880 0.000000 0.382683
|
||||
v -0.831470 0.000000 0.555570
|
||||
v -0.707107 0.000000 0.707107
|
||||
v -0.555570 0.000000 0.831470
|
||||
v -0.382683 0.000000 0.923880
|
||||
v -0.195090 0.000000 0.980785
|
||||
v 0.000000 0.000000 1.000000
|
||||
v 0.195091 0.000000 0.980785
|
||||
v 0.382684 0.000000 0.923879
|
||||
v 0.555571 0.000000 0.831469
|
||||
v 0.707107 0.000000 0.707106
|
||||
v 0.831470 0.000000 0.555570
|
||||
v 0.923880 0.000000 0.382683
|
||||
v 0.980785 0.000000 0.195089
|
||||
v 1.000000 0.000000 -0.000001
|
||||
v 0.980785 0.000000 -0.195091
|
||||
v 0.923879 0.000000 -0.382684
|
||||
v 0.831469 0.000000 -0.555571
|
||||
v 0.707106 0.000000 -0.707108
|
||||
v 0.555569 0.000000 -0.831470
|
||||
v 0.382682 0.000000 -0.923880
|
||||
v 0.195089 0.000000 -0.980786
|
||||
v -0.000000 0.000000 -0.450000
|
||||
v -0.087791 0.000000 -0.441353
|
||||
v -0.172208 0.000000 -0.415746
|
||||
v -0.250007 0.000000 -0.374161
|
||||
v -0.318198 0.000000 -0.318198
|
||||
v -0.374161 0.000000 -0.250007
|
||||
v -0.415746 0.000000 -0.172208
|
||||
v -0.441353 0.000000 -0.087791
|
||||
v -0.450000 0.000000 -0.000000
|
||||
v -0.441353 0.000000 0.087790
|
||||
v -0.415746 0.000000 0.172207
|
||||
v -0.374161 0.000000 0.250006
|
||||
v -0.318198 0.000000 0.318198
|
||||
v -0.250007 0.000000 0.374161
|
||||
v -0.172208 0.000000 0.415746
|
||||
v -0.087791 0.000000 0.441353
|
||||
v 0.000000 0.000000 0.450000
|
||||
v 0.087791 0.000000 0.441353
|
||||
v 0.172208 0.000000 0.415746
|
||||
v 0.250007 0.000000 0.374161
|
||||
v 0.318198 0.000000 0.318198
|
||||
v 0.374161 0.000000 0.250006
|
||||
v 0.415746 0.000000 0.172207
|
||||
v 0.441353 0.000000 0.087790
|
||||
v 0.450000 0.000000 -0.000001
|
||||
v 0.441353 0.000000 -0.087791
|
||||
v 0.415746 0.000000 -0.172208
|
||||
v 0.374161 0.000000 -0.250007
|
||||
v 0.318198 0.000000 -0.318199
|
||||
v 0.250006 0.000000 -0.374162
|
||||
v 0.172207 0.000000 -0.415746
|
||||
v 0.087790 0.000000 -0.441354
|
||||
v 0.000000 0.200000 -1.000000
|
||||
v -0.195090 0.200000 -0.980785
|
||||
v -0.382683 0.200000 -0.923880
|
||||
v -0.555570 0.200000 -0.831470
|
||||
v -0.707107 0.200000 -0.707107
|
||||
v -0.831470 0.200000 -0.555570
|
||||
v -0.923880 0.200000 -0.382683
|
||||
v -0.980785 0.200000 -0.195090
|
||||
v -1.000000 0.200000 -0.000000
|
||||
v -0.980785 0.200000 0.195090
|
||||
v -0.923880 0.200000 0.382683
|
||||
v -0.831470 0.200000 0.555570
|
||||
v -0.707107 0.200000 0.707107
|
||||
v -0.555570 0.200000 0.831470
|
||||
v -0.382683 0.200000 0.923880
|
||||
v -0.195090 0.200000 0.980785
|
||||
v 0.000000 0.200000 1.000000
|
||||
v 0.195091 0.200000 0.980785
|
||||
v 0.382684 0.200000 0.923879
|
||||
v 0.555571 0.200000 0.831469
|
||||
v 0.707107 0.200000 0.707106
|
||||
v 0.831470 0.200000 0.555570
|
||||
v 0.923880 0.200000 0.382683
|
||||
v 0.980785 0.200000 0.195089
|
||||
v 1.000000 0.200000 -0.000001
|
||||
v 0.980785 0.200000 -0.195091
|
||||
v 0.923879 0.200000 -0.382684
|
||||
v 0.831469 0.200000 -0.555571
|
||||
v 0.707106 0.200000 -0.707108
|
||||
v 0.555569 0.200000 -0.831470
|
||||
v 0.382682 0.200000 -0.923880
|
||||
v 0.195089 0.200000 -0.980786
|
||||
v -0.000000 0.200000 -0.450000
|
||||
v -0.087791 0.200000 -0.441353
|
||||
v -0.172208 0.200000 -0.415746
|
||||
v -0.250007 0.200000 -0.374161
|
||||
v -0.318198 0.200000 -0.318198
|
||||
v -0.374161 0.200000 -0.250007
|
||||
v -0.415746 0.200000 -0.172208
|
||||
v -0.441353 0.200000 -0.087791
|
||||
v -0.450000 0.200000 -0.000000
|
||||
v -0.441353 0.200000 0.087790
|
||||
v -0.415746 0.200000 0.172207
|
||||
v -0.374161 0.200000 0.250006
|
||||
v -0.318198 0.200000 0.318198
|
||||
v -0.250007 0.200000 0.374161
|
||||
v -0.172208 0.200000 0.415746
|
||||
v -0.087791 0.200000 0.441353
|
||||
v 0.000000 0.200000 0.450000
|
||||
v 0.087791 0.200000 0.441353
|
||||
v 0.172208 0.200000 0.415746
|
||||
v 0.250007 0.200000 0.374161
|
||||
v 0.318198 0.200000 0.318198
|
||||
v 0.374161 0.200000 0.250006
|
||||
v 0.415746 0.200000 0.172207
|
||||
v 0.441353 0.200000 0.087790
|
||||
v 0.450000 0.200000 -0.000001
|
||||
v 0.441353 0.200000 -0.087791
|
||||
v 0.415746 0.200000 -0.172208
|
||||
v 0.374161 0.200000 -0.250007
|
||||
v 0.318198 0.200000 -0.318199
|
||||
v 0.250006 0.200000 -0.374162
|
||||
v 0.172207 0.200000 -0.415746
|
||||
v 0.087790 0.200000 -0.441354
|
||||
vt 0.199619 0.056442
|
||||
vt 0.150889 0.080345
|
||||
vt 0.129815 0.061495
|
||||
vt 0.109447 0.110768
|
||||
vt 0.076886 0.146541
|
||||
vt 0.047590 0.135046
|
||||
vt 0.054458 0.186291
|
||||
vt 0.022670 0.179212
|
||||
vt 0.043024 0.228488
|
||||
vt 0.009966 0.226098
|
||||
vt 0.043024 0.271512
|
||||
vt 0.054458 0.313710
|
||||
vt 0.022670 0.320789
|
||||
vt 0.076886 0.353459
|
||||
vt 0.047590 0.364954
|
||||
vt 0.109447 0.389232
|
||||
vt 0.083769 0.404702
|
||||
vt 0.150889 0.419655
|
||||
vt 0.129815 0.438505
|
||||
vt 0.199620 0.443558
|
||||
vt 0.183960 0.465064
|
||||
vt 0.253766 0.460022
|
||||
vt 0.244123 0.483358
|
||||
vt 0.311248 0.468416
|
||||
vt 0.307992 0.492684
|
||||
vt 0.369855 0.468416
|
||||
vt 0.427337 0.460022
|
||||
vt 0.436980 0.483358
|
||||
vt 0.481483 0.443558
|
||||
vt 0.530213 0.419655
|
||||
vt 0.551287 0.438505
|
||||
vt 0.571655 0.389232
|
||||
vt 0.597334 0.404702
|
||||
vt 0.604216 0.353459
|
||||
vt 0.633512 0.364954
|
||||
vt 0.626644 0.313710
|
||||
vt 0.658432 0.320788
|
||||
vt 0.638078 0.271512
|
||||
vt 0.671137 0.273902
|
||||
vt 0.638078 0.228488
|
||||
vt 0.671137 0.226098
|
||||
vt 0.626644 0.186290
|
||||
vt 0.658432 0.179212
|
||||
vt 0.604216 0.146541
|
||||
vt 0.571655 0.110768
|
||||
vt 0.597334 0.095298
|
||||
vt 0.530214 0.080345
|
||||
vt 0.551287 0.061495
|
||||
vt 0.481483 0.056442
|
||||
vt 0.497142 0.034936
|
||||
vt 0.427337 0.039978
|
||||
vt 0.436979 0.016642
|
||||
vt 0.369855 0.031584
|
||||
vt 0.311247 0.031584
|
||||
vt 0.307991 0.007316
|
||||
vt 0.253766 0.039978
|
||||
vt 0.244123 0.016642
|
||||
vt 0.129815 0.561495
|
||||
vt 0.150889 0.580345
|
||||
vt 0.199619 0.556442
|
||||
vt 0.083768 0.595298
|
||||
vt 0.109447 0.610768
|
||||
vt 0.047590 0.635046
|
||||
vt 0.076886 0.646541
|
||||
vt 0.022670 0.679212
|
||||
vt 0.054458 0.686291
|
||||
vt 0.009966 0.726098
|
||||
vt 0.043024 0.728488
|
||||
vt 0.009966 0.773903
|
||||
vt 0.043024 0.771512
|
||||
vt 0.022670 0.820789
|
||||
vt 0.054458 0.813710
|
||||
vt 0.047590 0.864954
|
||||
vt 0.076886 0.853459
|
||||
vt 0.083769 0.904702
|
||||
vt 0.109447 0.889232
|
||||
vt 0.129815 0.938505
|
||||
vt 0.150889 0.919655
|
||||
vt 0.183960 0.965064
|
||||
vt 0.199620 0.943558
|
||||
vt 0.244123 0.983358
|
||||
vt 0.253766 0.960022
|
||||
vt 0.307992 0.992684
|
||||
vt 0.311248 0.968416
|
||||
vt 0.373111 0.992684
|
||||
vt 0.369855 0.968416
|
||||
vt 0.436980 0.983358
|
||||
vt 0.427337 0.960022
|
||||
vt 0.497142 0.965064
|
||||
vt 0.481483 0.943558
|
||||
vt 0.551287 0.938505
|
||||
vt 0.530213 0.919655
|
||||
vt 0.597334 0.904702
|
||||
vt 0.571655 0.889232
|
||||
vt 0.633512 0.864954
|
||||
vt 0.604216 0.853459
|
||||
vt 0.658432 0.820788
|
||||
vt 0.626644 0.813710
|
||||
vt 0.671137 0.773902
|
||||
vt 0.638078 0.771512
|
||||
vt 0.671137 0.726098
|
||||
vt 0.638078 0.728488
|
||||
vt 0.658432 0.679212
|
||||
vt 0.626644 0.686290
|
||||
vt 0.633512 0.635046
|
||||
vt 0.604216 0.646541
|
||||
vt 0.597334 0.595298
|
||||
vt 0.571655 0.610768
|
||||
vt 0.551287 0.561495
|
||||
vt 0.530214 0.580345
|
||||
vt 0.497142 0.534936
|
||||
vt 0.481483 0.556442
|
||||
vt 0.436979 0.516642
|
||||
vt 0.427337 0.539978
|
||||
vt 0.373111 0.507316
|
||||
vt 0.369855 0.531584
|
||||
vt 0.307991 0.507316
|
||||
vt 0.311247 0.531584
|
||||
vt 0.244123 0.516642
|
||||
vt 0.253766 0.539978
|
||||
vt 0.183960 0.534936
|
||||
vt 0.691068 0.257060
|
||||
vt 0.724286 0.257060
|
||||
vt 0.724286 0.304865
|
||||
vt 0.830585 0.492173
|
||||
vt 0.797367 0.492173
|
||||
vt 0.797367 0.444369
|
||||
vt 0.777436 0.179993
|
||||
vt 0.744217 0.179993
|
||||
vt 0.744217 0.132188
|
||||
vt 0.724286 0.179993
|
||||
vt 0.691068 0.179993
|
||||
vt 0.691068 0.132188
|
||||
vt 0.724286 0.429737
|
||||
vt 0.691068 0.429737
|
||||
vt 0.691068 0.381933
|
||||
vt 0.883735 0.117556
|
||||
vt 0.850517 0.117556
|
||||
vt 0.850517 0.069752
|
||||
vt 0.724286 0.617046
|
||||
vt 0.691068 0.617046
|
||||
vt 0.691068 0.569241
|
||||
vt 0.830585 0.554610
|
||||
vt 0.797367 0.554610
|
||||
vt 0.797367 0.506805
|
||||
vt 0.883735 0.055120
|
||||
vt 0.850517 0.055120
|
||||
vt 0.850517 0.007316
|
||||
vt 0.830585 0.429737
|
||||
vt 0.797367 0.429737
|
||||
vt 0.797367 0.381933
|
||||
vt 0.691068 0.506805
|
||||
vt 0.724286 0.506805
|
||||
vt 0.724286 0.554610
|
||||
vt 0.830586 0.117557
|
||||
vt 0.797367 0.117557
|
||||
vt 0.797367 0.069752
|
||||
vt 0.777436 0.429737
|
||||
vt 0.744217 0.429737
|
||||
vt 0.744217 0.381933
|
||||
vt 0.777436 0.617046
|
||||
vt 0.744217 0.617046
|
||||
vt 0.744217 0.569241
|
||||
vt 0.744217 0.506805
|
||||
vt 0.777436 0.506805
|
||||
vt 0.777436 0.554610
|
||||
vt 0.830585 0.617046
|
||||
vt 0.797367 0.617046
|
||||
vt 0.797367 0.569241
|
||||
vt 0.777436 0.117557
|
||||
vt 0.744217 0.117557
|
||||
vt 0.744217 0.069752
|
||||
vt 0.724286 0.492174
|
||||
vt 0.691068 0.492174
|
||||
vt 0.691068 0.444369
|
||||
vt 0.724286 0.055120
|
||||
vt 0.691068 0.055120
|
||||
vt 0.691068 0.007316
|
||||
vt 0.724286 0.242429
|
||||
vt 0.691068 0.242429
|
||||
vt 0.691068 0.194624
|
||||
vt 0.744217 0.257060
|
||||
vt 0.777436 0.257060
|
||||
vt 0.777436 0.304865
|
||||
vt 0.830585 0.055120
|
||||
vt 0.797367 0.055120
|
||||
vt 0.797367 0.007316
|
||||
vt 0.830585 0.179993
|
||||
vt 0.797367 0.179993
|
||||
vt 0.797367 0.132188
|
||||
vt 0.830585 0.304865
|
||||
vt 0.797367 0.304865
|
||||
vt 0.797367 0.257060
|
||||
vt 0.744217 0.007316
|
||||
vt 0.777436 0.007316
|
||||
vt 0.777436 0.055120
|
||||
vt 0.777436 0.242429
|
||||
vt 0.744217 0.242429
|
||||
vt 0.744217 0.194624
|
||||
vt 0.777436 0.367301
|
||||
vt 0.744217 0.367301
|
||||
vt 0.744217 0.319497
|
||||
vt 0.724286 0.117557
|
||||
vt 0.691068 0.117557
|
||||
vt 0.691068 0.069752
|
||||
vt 0.830585 0.242429
|
||||
vt 0.797367 0.242429
|
||||
vt 0.797367 0.194624
|
||||
vt 0.744217 0.444369
|
||||
vt 0.777436 0.444369
|
||||
vt 0.777436 0.492174
|
||||
vt 0.797367 0.319497
|
||||
vt 0.830585 0.319497
|
||||
vt 0.830585 0.367301
|
||||
vt 0.724286 0.367301
|
||||
vt 0.691068 0.367301
|
||||
vt 0.691068 0.319497
|
||||
vt 0.956816 0.348179
|
||||
vt 0.956816 0.305155
|
||||
vt 0.990034 0.305155
|
||||
vt 0.990034 0.247499
|
||||
vt 0.990034 0.290524
|
||||
vt 0.956816 0.290524
|
||||
vt 0.936885 0.651089
|
||||
vt 0.936885 0.694113
|
||||
vt 0.903666 0.694113
|
||||
vt 0.990034 0.007316
|
||||
vt 0.990034 0.050340
|
||||
vt 0.956816 0.050340
|
||||
vt 0.883735 0.362811
|
||||
vt 0.883735 0.405835
|
||||
vt 0.850517 0.405835
|
||||
vt 0.903666 0.348179
|
||||
vt 0.903666 0.305155
|
||||
vt 0.936885 0.305155
|
||||
vt 0.936885 0.478122
|
||||
vt 0.936885 0.521146
|
||||
vt 0.903666 0.521146
|
||||
vt 0.956816 0.405835
|
||||
vt 0.956816 0.362811
|
||||
vt 0.990034 0.362811
|
||||
vt 0.883735 0.535778
|
||||
vt 0.883735 0.578802
|
||||
vt 0.850517 0.578802
|
||||
vt 0.850517 0.348179
|
||||
vt 0.850517 0.305155
|
||||
vt 0.883735 0.305155
|
||||
vt 0.850517 0.290524
|
||||
vt 0.850517 0.247499
|
||||
vt 0.883735 0.247499
|
||||
vt 0.903666 0.405835
|
||||
vt 0.903666 0.362811
|
||||
vt 0.936885 0.362811
|
||||
vt 0.850517 0.463491
|
||||
vt 0.850517 0.420467
|
||||
vt 0.883735 0.420467
|
||||
vt 0.883735 0.651089
|
||||
vt 0.883735 0.694113
|
||||
vt 0.850517 0.694113
|
||||
vt 0.903666 0.232868
|
||||
vt 0.903666 0.189844
|
||||
vt 0.936885 0.189844
|
||||
vt 0.903666 0.050340
|
||||
vt 0.903666 0.007316
|
||||
vt 0.936885 0.007316
|
||||
vt 0.903666 0.175212
|
||||
vt 0.903666 0.132188
|
||||
vt 0.936885 0.132188
|
||||
vt 0.850517 0.636458
|
||||
vt 0.850517 0.593434
|
||||
vt 0.883735 0.593434
|
||||
vt 0.850517 0.521146
|
||||
vt 0.850517 0.478122
|
||||
vt 0.883735 0.478122
|
||||
vt 0.691068 0.674702
|
||||
vt 0.691068 0.631677
|
||||
vt 0.724286 0.631677
|
||||
vt 0.990034 0.064971
|
||||
vt 0.990034 0.107996
|
||||
vt 0.956816 0.107996
|
||||
vt 0.883735 0.132188
|
||||
vt 0.883735 0.175212
|
||||
vt 0.850517 0.175212
|
||||
vt 0.903666 0.290524
|
||||
vt 0.903666 0.247499
|
||||
vt 0.936885 0.247499
|
||||
vt 0.903666 0.463491
|
||||
vt 0.903666 0.420467
|
||||
vt 0.936885 0.420467
|
||||
vt 0.903666 0.112776
|
||||
vt 0.903666 0.069752
|
||||
vt 0.936885 0.069752
|
||||
vt 0.850517 0.232868
|
||||
vt 0.850517 0.189844
|
||||
vt 0.883735 0.189844
|
||||
vt 0.744217 0.674701
|
||||
vt 0.744217 0.631677
|
||||
vt 0.777436 0.631677
|
||||
vt 0.903666 0.636458
|
||||
vt 0.903666 0.593434
|
||||
vt 0.936885 0.593434
|
||||
vt 0.830585 0.631677
|
||||
vt 0.830586 0.674701
|
||||
vt 0.797367 0.674701
|
||||
vt 0.903666 0.578802
|
||||
vt 0.903666 0.535778
|
||||
vt 0.936885 0.535778
|
||||
vt 0.956816 0.232868
|
||||
vt 0.956816 0.189844
|
||||
vt 0.990034 0.189844
|
||||
vt 0.990034 0.132188
|
||||
vt 0.990034 0.175212
|
||||
vt 0.956816 0.175212
|
||||
vt 0.183960 0.034936
|
||||
vt 0.083768 0.095298
|
||||
vt 0.009966 0.273903
|
||||
vt 0.373111 0.492684
|
||||
vt 0.497142 0.465064
|
||||
vt 0.633512 0.135046
|
||||
vt 0.373111 0.007316
|
||||
vt 0.691068 0.304865
|
||||
vt 0.830585 0.444369
|
||||
vt 0.777436 0.132188
|
||||
vt 0.724286 0.132188
|
||||
vt 0.724286 0.381933
|
||||
vt 0.883735 0.069752
|
||||
vt 0.724286 0.569241
|
||||
vt 0.830585 0.506805
|
||||
vt 0.883735 0.007316
|
||||
vt 0.830585 0.381933
|
||||
vt 0.691068 0.554610
|
||||
vt 0.830586 0.069752
|
||||
vt 0.777436 0.381933
|
||||
vt 0.777436 0.569241
|
||||
vt 0.744217 0.554610
|
||||
vt 0.830585 0.569241
|
||||
vt 0.777436 0.069752
|
||||
vt 0.724286 0.444369
|
||||
vt 0.724286 0.007316
|
||||
vt 0.724286 0.194624
|
||||
vt 0.744217 0.304865
|
||||
vt 0.830585 0.007316
|
||||
vt 0.830585 0.132188
|
||||
vt 0.830585 0.257060
|
||||
vt 0.744217 0.055120
|
||||
vt 0.777436 0.194624
|
||||
vt 0.777436 0.319497
|
||||
vt 0.724286 0.069752
|
||||
vt 0.830585 0.194624
|
||||
vt 0.744217 0.492174
|
||||
vt 0.797367 0.367301
|
||||
vt 0.724286 0.319497
|
||||
vt 0.990034 0.348179
|
||||
vt 0.956816 0.247499
|
||||
vt 0.903666 0.651089
|
||||
vt 0.956816 0.007316
|
||||
vt 0.850517 0.362811
|
||||
vt 0.936885 0.348179
|
||||
vt 0.903666 0.478122
|
||||
vt 0.990034 0.405835
|
||||
vt 0.850517 0.535778
|
||||
vt 0.883735 0.348179
|
||||
vt 0.883735 0.290524
|
||||
vt 0.936885 0.405835
|
||||
vt 0.883735 0.463491
|
||||
vt 0.850517 0.651089
|
||||
vt 0.936885 0.232868
|
||||
vt 0.936885 0.050340
|
||||
vt 0.936885 0.175212
|
||||
vt 0.883735 0.636458
|
||||
vt 0.883735 0.521146
|
||||
vt 0.724286 0.674702
|
||||
vt 0.956816 0.064971
|
||||
vt 0.850517 0.132188
|
||||
vt 0.936885 0.290524
|
||||
vt 0.936885 0.463491
|
||||
vt 0.936885 0.112776
|
||||
vt 0.883735 0.232868
|
||||
vt 0.777436 0.674701
|
||||
vt 0.936885 0.636458
|
||||
vt 0.797367 0.631677
|
||||
vt 0.936885 0.578802
|
||||
vt 0.990034 0.232868
|
||||
vt 0.956816 0.132188
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn -0.000000 1.000000 0.000000
|
||||
vn 0.881900 0.000000 -0.471400
|
||||
vn 0.773000 0.000000 -0.634400
|
||||
vn 0.634400 0.000000 -0.773000
|
||||
vn 0.471400 0.000000 -0.881900
|
||||
vn 0.290300 0.000000 -0.956900
|
||||
vn 0.098000 0.000000 -0.995200
|
||||
vn -0.098000 0.000000 -0.995200
|
||||
vn -0.290300 0.000000 -0.956900
|
||||
vn -0.471400 0.000000 -0.881900
|
||||
vn -0.634400 0.000000 -0.773000
|
||||
vn -0.773000 0.000000 -0.634400
|
||||
vn -0.881900 0.000000 -0.471400
|
||||
vn -0.956900 0.000000 -0.290300
|
||||
vn -0.995200 0.000000 -0.098000
|
||||
vn -0.995200 0.000000 0.098000
|
||||
vn -0.956900 0.000000 0.290300
|
||||
vn -0.881900 0.000000 0.471400
|
||||
vn -0.773000 0.000000 0.634400
|
||||
vn -0.634400 0.000000 0.773000
|
||||
vn -0.471400 0.000000 0.881900
|
||||
vn -0.290300 0.000000 0.956900
|
||||
vn -0.098000 0.000000 0.995200
|
||||
vn 0.098000 0.000000 0.995200
|
||||
vn 0.290300 0.000000 0.956900
|
||||
vn 0.471400 0.000000 0.881900
|
||||
vn 0.634400 0.000000 0.773000
|
||||
vn 0.773000 0.000000 0.634400
|
||||
vn 0.881900 0.000000 0.471400
|
||||
vn 0.956900 0.000000 0.290300
|
||||
vn 0.995200 0.000000 0.098000
|
||||
vn 0.995200 0.000000 -0.098000
|
||||
vn 0.956900 0.000000 -0.290300
|
||||
s off
|
||||
f 49/1/1 50/2/1 18/3/1
|
||||
f 18/3/1 50/2/1 51/4/1
|
||||
f 51/4/1 52/5/1 20/6/1
|
||||
f 52/5/1 53/7/1 21/8/1
|
||||
f 53/7/1 54/9/1 22/10/1
|
||||
f 22/10/1 54/9/1 55/11/1
|
||||
f 55/11/1 56/12/1 24/13/1
|
||||
f 56/12/1 57/14/1 25/15/1
|
||||
f 57/14/1 58/16/1 26/17/1
|
||||
f 58/16/1 59/18/1 27/19/1
|
||||
f 59/18/1 60/20/1 28/21/1
|
||||
f 60/20/1 61/22/1 29/23/1
|
||||
f 61/22/1 62/24/1 30/25/1
|
||||
f 30/25/1 62/24/1 63/26/1
|
||||
f 63/26/1 64/27/1 32/28/1
|
||||
f 32/28/1 64/27/1 33/29/1
|
||||
f 33/29/1 34/30/1 2/31/1
|
||||
f 34/30/1 35/32/1 3/33/1
|
||||
f 35/32/1 36/34/1 4/35/1
|
||||
f 36/34/1 37/36/1 5/37/1
|
||||
f 37/36/1 38/38/1 6/39/1
|
||||
f 38/38/1 39/40/1 7/41/1
|
||||
f 39/40/1 40/42/1 8/43/1
|
||||
f 8/43/1 40/42/1 41/44/1
|
||||
f 41/44/1 42/45/1 10/46/1
|
||||
f 42/45/1 43/47/1 11/48/1
|
||||
f 11/48/1 43/47/1 44/49/1
|
||||
f 12/50/1 44/49/1 45/51/1
|
||||
f 13/52/1 45/51/1 46/53/1
|
||||
f 46/53/1 47/54/1 15/55/1
|
||||
f 15/55/1 47/54/1 48/56/1
|
||||
f 16/57/1 48/56/1 49/1/1
|
||||
f 82/58/2 114/59/2 113/60/2
|
||||
f 83/61/2 115/62/2 114/59/2
|
||||
f 83/61/2 84/63/2 116/64/2
|
||||
f 85/65/2 117/66/2 116/64/2
|
||||
f 86/67/2 118/68/2 117/66/2
|
||||
f 86/67/2 87/69/2 119/70/2
|
||||
f 88/71/2 120/72/2 119/70/2
|
||||
f 89/73/2 121/74/2 120/72/2
|
||||
f 90/75/2 122/76/2 121/74/2
|
||||
f 91/77/2 123/78/2 122/76/2
|
||||
f 92/79/2 124/80/2 123/78/2
|
||||
f 93/81/2 125/82/2 124/80/2
|
||||
f 94/83/2 126/84/2 125/82/2
|
||||
f 94/83/2 95/85/2 127/86/2
|
||||
f 96/87/2 128/88/2 127/86/2
|
||||
f 65/89/2 97/90/2 128/88/2
|
||||
f 66/91/2 98/92/2 97/90/2
|
||||
f 67/93/2 99/94/2 98/92/2
|
||||
f 68/95/2 100/96/2 99/94/2
|
||||
f 68/95/2 69/97/2 101/98/2
|
||||
f 70/99/2 102/100/2 101/98/2
|
||||
f 71/101/2 103/102/2 102/100/2
|
||||
f 71/101/2 72/103/2 104/104/2
|
||||
f 73/105/2 105/106/2 104/104/2
|
||||
f 74/107/2 106/108/2 105/106/2
|
||||
f 75/109/2 107/110/2 106/108/2
|
||||
f 75/109/2 76/111/2 108/112/2
|
||||
f 76/111/2 77/113/2 109/114/2
|
||||
f 77/113/2 78/115/2 110/116/2
|
||||
f 79/117/2 111/118/2 110/116/2
|
||||
f 79/117/2 80/119/2 112/120/2
|
||||
f 81/121/2 113/60/2 112/120/2
|
||||
f 28/122/3 92/123/3 91/124/3
|
||||
f 29/125/4 93/126/4 92/127/4
|
||||
f 30/128/5 94/129/5 93/130/5
|
||||
f 31/131/6 95/132/6 94/133/6
|
||||
f 32/134/7 96/135/7 95/136/7
|
||||
f 1/137/8 65/138/8 96/139/8
|
||||
f 2/140/9 66/141/9 65/142/9
|
||||
f 3/143/10 67/144/10 66/145/10
|
||||
f 4/146/11 68/147/11 67/148/11
|
||||
f 5/149/12 69/150/12 68/151/12
|
||||
f 6/152/13 70/153/13 69/154/13
|
||||
f 7/155/14 71/156/14 70/157/14
|
||||
f 8/158/15 72/159/15 71/160/15
|
||||
f 9/161/16 73/162/16 72/163/16
|
||||
f 10/164/17 74/165/17 73/166/17
|
||||
f 11/167/18 75/168/18 74/169/18
|
||||
f 12/170/19 76/171/19 75/172/19
|
||||
f 13/173/20 77/174/20 76/175/20
|
||||
f 14/176/21 78/177/21 77/178/21
|
||||
f 15/179/22 79/180/22 78/181/22
|
||||
f 16/182/23 80/183/23 79/184/23
|
||||
f 17/185/24 81/186/24 80/187/24
|
||||
f 18/188/25 82/189/25 81/190/25
|
||||
f 19/191/26 83/192/26 82/193/26
|
||||
f 20/194/27 84/195/27 83/196/27
|
||||
f 21/197/28 85/198/28 84/199/28
|
||||
f 22/200/29 86/201/29 85/202/29
|
||||
f 23/203/30 87/204/30 86/205/30
|
||||
f 24/206/31 88/207/31 87/208/31
|
||||
f 25/209/32 89/210/32 88/211/32
|
||||
f 26/212/33 90/213/33 89/214/33
|
||||
f 27/215/34 91/216/34 90/217/34
|
||||
f 103/218/31 104/219/31 40/220/31
|
||||
f 102/221/30 103/222/30 39/223/30
|
||||
f 101/224/29 102/225/29 38/226/29
|
||||
f 100/227/28 101/228/28 37/229/28
|
||||
f 99/230/27 100/231/27 36/232/27
|
||||
f 98/233/26 99/234/26 35/235/26
|
||||
f 97/236/25 98/237/25 34/238/25
|
||||
f 128/239/24 97/240/24 33/241/24
|
||||
f 127/242/23 128/243/23 64/244/23
|
||||
f 126/245/22 127/246/22 63/247/22
|
||||
f 125/248/21 126/249/21 62/250/21
|
||||
f 124/251/20 125/252/20 61/253/20
|
||||
f 123/254/19 124/255/19 60/256/19
|
||||
f 122/257/18 123/258/18 59/259/18
|
||||
f 121/260/17 122/261/17 58/262/17
|
||||
f 120/263/16 121/264/16 57/265/16
|
||||
f 119/266/15 120/267/15 56/268/15
|
||||
f 118/269/14 119/270/14 55/271/14
|
||||
f 117/272/13 118/273/13 54/274/13
|
||||
f 116/275/12 117/276/12 53/277/12
|
||||
f 115/278/11 116/279/11 52/280/11
|
||||
f 114/281/10 115/282/10 51/283/10
|
||||
f 113/284/9 114/285/9 50/286/9
|
||||
f 112/287/8 113/288/8 49/289/8
|
||||
f 111/290/7 112/291/7 48/292/7
|
||||
f 110/293/6 111/294/6 47/295/6
|
||||
f 109/296/5 110/297/5 46/298/5
|
||||
f 108/299/4 109/300/4 45/301/4
|
||||
f 107/302/3 108/303/3 44/304/3
|
||||
f 106/305/34 107/306/34 43/307/34
|
||||
f 105/308/33 106/309/33 42/310/33
|
||||
f 104/311/32 105/312/32 41/313/32
|
||||
f 17/314/1 49/1/1 18/3/1
|
||||
f 19/315/1 18/3/1 51/4/1
|
||||
f 19/315/1 51/4/1 20/6/1
|
||||
f 20/6/1 52/5/1 21/8/1
|
||||
f 21/8/1 53/7/1 22/10/1
|
||||
f 23/316/1 22/10/1 55/11/1
|
||||
f 23/316/1 55/11/1 24/13/1
|
||||
f 24/13/1 56/12/1 25/15/1
|
||||
f 25/15/1 57/14/1 26/17/1
|
||||
f 26/17/1 58/16/1 27/19/1
|
||||
f 27/19/1 59/18/1 28/21/1
|
||||
f 28/21/1 60/20/1 29/23/1
|
||||
f 29/23/1 61/22/1 30/25/1
|
||||
f 31/317/1 30/25/1 63/26/1
|
||||
f 31/317/1 63/26/1 32/28/1
|
||||
f 1/318/1 32/28/1 33/29/1
|
||||
f 1/318/1 33/29/1 2/31/1
|
||||
f 2/31/1 34/30/1 3/33/1
|
||||
f 3/33/1 35/32/1 4/35/1
|
||||
f 4/35/1 36/34/1 5/37/1
|
||||
f 5/37/1 37/36/1 6/39/1
|
||||
f 6/39/1 38/38/1 7/41/1
|
||||
f 7/41/1 39/40/1 8/43/1
|
||||
f 9/319/1 8/43/1 41/44/1
|
||||
f 9/319/1 41/44/1 10/46/1
|
||||
f 10/46/1 42/45/1 11/48/1
|
||||
f 12/50/1 11/48/1 44/49/1
|
||||
f 13/52/1 12/50/1 45/51/1
|
||||
f 14/320/1 13/52/1 46/53/1
|
||||
f 14/320/1 46/53/1 15/55/1
|
||||
f 16/57/1 15/55/1 48/56/1
|
||||
f 17/314/1 16/57/1 49/1/1
|
||||
f 81/121/2 82/58/2 113/60/2
|
||||
f 82/58/2 83/61/2 114/59/2
|
||||
f 115/62/2 83/61/2 116/64/2
|
||||
f 84/63/2 85/65/2 116/64/2
|
||||
f 85/65/2 86/67/2 117/66/2
|
||||
f 118/68/2 86/67/2 119/70/2
|
||||
f 87/69/2 88/71/2 119/70/2
|
||||
f 88/71/2 89/73/2 120/72/2
|
||||
f 89/73/2 90/75/2 121/74/2
|
||||
f 90/75/2 91/77/2 122/76/2
|
||||
f 91/77/2 92/79/2 123/78/2
|
||||
f 92/79/2 93/81/2 124/80/2
|
||||
f 93/81/2 94/83/2 125/82/2
|
||||
f 126/84/2 94/83/2 127/86/2
|
||||
f 95/85/2 96/87/2 127/86/2
|
||||
f 96/87/2 65/89/2 128/88/2
|
||||
f 65/89/2 66/91/2 97/90/2
|
||||
f 66/91/2 67/93/2 98/92/2
|
||||
f 67/93/2 68/95/2 99/94/2
|
||||
f 100/96/2 68/95/2 101/98/2
|
||||
f 69/97/2 70/99/2 101/98/2
|
||||
f 70/99/2 71/101/2 102/100/2
|
||||
f 103/102/2 71/101/2 104/104/2
|
||||
f 72/103/2 73/105/2 104/104/2
|
||||
f 73/105/2 74/107/2 105/106/2
|
||||
f 74/107/2 75/109/2 106/108/2
|
||||
f 107/110/2 75/109/2 108/112/2
|
||||
f 108/112/2 76/111/2 109/114/2
|
||||
f 109/114/2 77/113/2 110/116/2
|
||||
f 78/115/2 79/117/2 110/116/2
|
||||
f 111/118/2 79/117/2 112/120/2
|
||||
f 80/119/2 81/121/2 112/120/2
|
||||
f 27/321/3 28/122/3 91/124/3
|
||||
f 28/322/4 29/125/4 92/127/4
|
||||
f 29/323/5 30/128/5 93/130/5
|
||||
f 30/324/6 31/131/6 94/133/6
|
||||
f 31/325/7 32/134/7 95/136/7
|
||||
f 32/326/8 1/137/8 96/139/8
|
||||
f 1/327/9 2/140/9 65/142/9
|
||||
f 2/328/10 3/143/10 66/145/10
|
||||
f 3/329/11 4/146/11 67/148/11
|
||||
f 4/330/12 5/149/12 68/151/12
|
||||
f 5/331/13 6/152/13 69/154/13
|
||||
f 6/332/14 7/155/14 70/157/14
|
||||
f 7/333/15 8/158/15 71/160/15
|
||||
f 8/334/16 9/161/16 72/163/16
|
||||
f 9/335/17 10/164/17 73/166/17
|
||||
f 10/336/18 11/167/18 74/169/18
|
||||
f 11/337/19 12/170/19 75/172/19
|
||||
f 12/338/20 13/173/20 76/175/20
|
||||
f 13/339/21 14/176/21 77/178/21
|
||||
f 14/340/22 15/179/22 78/181/22
|
||||
f 15/341/23 16/182/23 79/184/23
|
||||
f 16/342/24 17/185/24 80/187/24
|
||||
f 17/343/25 18/188/25 81/190/25
|
||||
f 18/344/26 19/191/26 82/193/26
|
||||
f 19/345/27 20/194/27 83/196/27
|
||||
f 20/346/28 21/197/28 84/199/28
|
||||
f 21/347/29 22/200/29 85/202/29
|
||||
f 22/348/30 23/203/30 86/205/30
|
||||
f 23/349/31 24/206/31 87/208/31
|
||||
f 24/350/32 25/209/32 88/211/32
|
||||
f 25/351/33 26/212/33 89/214/33
|
||||
f 26/352/34 27/215/34 90/217/34
|
||||
f 39/353/31 103/218/31 40/220/31
|
||||
f 38/354/30 102/221/30 39/223/30
|
||||
f 37/355/29 101/224/29 38/226/29
|
||||
f 36/356/28 100/227/28 37/229/28
|
||||
f 35/357/27 99/230/27 36/232/27
|
||||
f 34/358/26 98/233/26 35/235/26
|
||||
f 33/359/25 97/236/25 34/238/25
|
||||
f 64/360/24 128/239/24 33/241/24
|
||||
f 63/361/23 127/242/23 64/244/23
|
||||
f 62/362/22 126/245/22 63/247/22
|
||||
f 61/363/21 125/248/21 62/250/21
|
||||
f 60/364/20 124/251/20 61/253/20
|
||||
f 59/365/19 123/254/19 60/256/19
|
||||
f 58/366/18 122/257/18 59/259/18
|
||||
f 57/367/17 121/260/17 58/262/17
|
||||
f 56/368/16 120/263/16 57/265/16
|
||||
f 55/369/15 119/266/15 56/268/15
|
||||
f 54/370/14 118/269/14 55/271/14
|
||||
f 53/371/13 117/272/13 54/274/13
|
||||
f 52/372/12 116/275/12 53/277/12
|
||||
f 51/373/11 115/278/11 52/280/11
|
||||
f 50/374/10 114/281/10 51/283/10
|
||||
f 49/375/9 113/284/9 50/286/9
|
||||
f 48/376/8 112/287/8 49/289/8
|
||||
f 47/377/7 111/290/7 48/292/7
|
||||
f 46/378/6 110/293/6 47/295/6
|
||||
f 45/379/5 109/296/5 46/298/5
|
||||
f 44/380/4 108/299/4 45/301/4
|
||||
f 43/381/3 107/302/3 44/304/3
|
||||
f 42/382/34 106/305/34 43/307/34
|
||||
f 41/383/33 105/308/33 42/310/33
|
||||
f 40/384/32 104/311/32 41/313/32
|
||||
@ -1,98 +0,0 @@
|
||||
# Blender v2.70 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v 0.500000 0.000000 -0.500000
|
||||
v 0.500000 0.000000 0.500000
|
||||
v -0.500000 0.000000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v 0.500000 3.000000 -0.500000
|
||||
v 0.500000 3.000000 0.500000
|
||||
v -0.500000 3.000000 0.500000
|
||||
v -0.500000 3.000000 -0.500000
|
||||
v 0.000000 0.750000 -0.250000
|
||||
v 0.500000 2.250000 -0.500000
|
||||
v 0.500000 2.250000 0.500000
|
||||
v 0.500000 0.750000 -0.500000
|
||||
v 0.500000 0.750000 0.500000
|
||||
v -0.000000 0.750000 0.250000
|
||||
v -0.000000 2.250000 0.250000
|
||||
v 0.500000 2.250000 0.250000
|
||||
v 0.500000 0.750000 0.250000
|
||||
v 0.500000 0.750000 -0.250000
|
||||
v 0.500000 2.250000 -0.250000
|
||||
v 0.000000 2.250000 -0.250000
|
||||
vt 0.666667 0.400000
|
||||
vt 1.000000 0.400000
|
||||
vt 1.000000 0.800000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.333333 0.400000
|
||||
vt 0.333333 0.000000
|
||||
vt 0.666667 0.000000
|
||||
vt 0.333333 0.500000
|
||||
vt 0.083333 0.300000
|
||||
vt 0.083333 0.400000
|
||||
vt 0.000000 0.400000
|
||||
vt 0.250000 0.400000
|
||||
vt 0.250000 0.300000
|
||||
vt 0.666667 0.800000
|
||||
vt 0.833333 0.800000
|
||||
vt 0.833333 1.000000
|
||||
vt 0.000000 0.800000
|
||||
vt 0.166667 0.800000
|
||||
vt 0.166667 1.000000
|
||||
vt 0.333333 0.800000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.250000 0.100000
|
||||
vt 0.083333 0.100000
|
||||
vt 0.500000 0.800000
|
||||
vt 0.666667 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.333333 0.700000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.083333 0.000000
|
||||
vt 0.333333 1.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -1.000000 -0.000000 -0.000000
|
||||
vn -0.000000 -0.000000 1.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 1.000000 0.000000 0.000001
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1
|
||||
f 7/4/2 6/2/2 5/1/2
|
||||
f 7/5/3 8/6/3 4/7/3
|
||||
f 11/8/4 6/5/4 7/1/4
|
||||
f 17/9/5 13/10/5 2/11/5
|
||||
f 6/5/5 11/12/5 16/13/5
|
||||
f 20/14/5 15/15/5 14/16/5
|
||||
f 17/17/6 14/18/6 15/19/6
|
||||
f 1/5/6 4/20/6 12/12/6
|
||||
f 10/21/5 19/22/5 18/23/5
|
||||
f 17/9/5 16/13/5 11/12/5
|
||||
f 19/19/4 20/18/4 9/20/4
|
||||
f 19/24/1 16/14/1 15/25/1
|
||||
f 17/20/2 18/24/2 9/26/2
|
||||
f 4/14/1 1/1/1 3/3/1
|
||||
f 8/7/2 7/4/2 5/1/2
|
||||
f 3/1/3 7/5/3 4/7/3
|
||||
f 17/9/5 1/27/5 18/23/5
|
||||
f 11/8/4 3/14/4 13/28/4
|
||||
f 9/25/5 20/14/5 14/16/5
|
||||
f 3/14/4 2/20/4 13/28/4
|
||||
f 11/8/4 7/1/4 3/14/4
|
||||
f 16/29/6 17/17/6 15/19/6
|
||||
f 1/27/5 12/30/5 18/23/5
|
||||
f 17/9/5 2/11/5 1/27/5
|
||||
f 5/6/7 6/5/7 16/13/7
|
||||
f 19/22/5 10/21/5 5/6/5
|
||||
f 19/22/5 5/6/5 16/13/5
|
||||
f 8/17/6 10/10/6 4/20/6
|
||||
f 8/17/6 5/11/6 10/10/6
|
||||
f 12/30/5 10/21/5 18/23/5
|
||||
f 4/20/6 10/10/6 12/12/6
|
||||
f 13/10/5 17/9/5 11/12/5
|
||||
f 18/31/4 19/19/4 9/20/4
|
||||
f 20/26/1 19/24/1 15/25/1
|
||||
f 14/31/2 17/20/2 9/26/2
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user