Merge branch 'master' into conccoloredcrack

This commit is contained in:
HbmMods 2025-04-19 17:47:07 +02:00 committed by GitHub
commit dc6faed2d9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
202 changed files with 829 additions and 21888 deletions

View File

@ -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

View File

@ -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),\

View File

@ -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;

View File

@ -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;

View File

@ -63,8 +63,9 @@ public class BlockMultiSlab extends BlockSlab implements IStepTickReceiver {
protected ItemStack createStackedBlock(int meta) {
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);
}
@ -80,7 +81,8 @@ public class BlockMultiSlab extends BlockSlab implements IStepTickReceiver {
public int getDamageValue(World world, int x, int y, int z) {
return (super.getDamageValue(world, x, y, z) & 7) % slabMaterials.length;
}
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {

View File

@ -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];
}
}

View File

@ -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;
@ -167,7 +168,8 @@ public class BlockPedestal extends BlockContainer {
tileArray[i].markDirty();
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() {

View File

@ -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) -> {

View File

@ -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);
}
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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;
@ -218,12 +218,6 @@ public class PneumoTube extends BlockContainer implements IToolable, IFluidConne
if(tile instanceof TileEntityPneumoTube) return false;
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) {

View File

@ -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. */

View 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);

View File

@ -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;
}
}

View File

@ -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

View File

@ -25,6 +25,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() {

View File

@ -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

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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 ||

View File

@ -24,16 +24,10 @@ 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);
//upgrades
this.addSlotToContainer(new SlotUpgrade(extractor, 18, 152, 23));
this.addSlotToContainer(new SlotUpgrade(extractor, 19, 152, 47));

View File

@ -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 && player.getHeldItem().hasTagCompound() && player.getHeldItem().stackTagCompound.hasKey("tabletSeed") && !PedestalRecipes.recipes.isEmpty()) {
Random rand = new Random(player.getHeldItem().stackTagCompound.getLong("tabletSeed"));
PedestalRecipe recipe = PedestalRecipes.recipes.get(rand.nextInt(PedestalRecipes.recipes.size()));
if(player.getHeldItem() != null) tabletMeta = player.getHeldItem().getItemDamage();
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
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);
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 = recipeSet.get(rand.nextInt(recipeSet.size()));
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);
}
}
}

View File

@ -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));

View File

@ -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);

View File

@ -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
@ -136,6 +147,10 @@ public class PedestalRecipes extends SerializableRecipe {
if(obj.has("extra")) {
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;
}
}
}

View File

@ -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() {
@ -212,12 +214,31 @@ public class ItemPoolsComponent {
weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 3),
};
}};
new ItemPool(POOL_RTG) {{
this.pool = new WeightedRandomChestContent[] {
weighted(ModItems.pellet_rtg_depleted, ItemRTGPelletDepleted.DepletedRTGMaterial.LEAD.ordinal(), 1, 1, 40),
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),
};
}};
}
}

View File

@ -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
}
}

View File

@ -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());

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
}
}

View File

@ -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;
}
}

View File

@ -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]);

View File

@ -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;
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);
}

View File

@ -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++) {

View File

@ -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

View File

@ -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());

View File

@ -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;

View File

@ -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));

View File

@ -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");

View File

@ -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"));

View File

@ -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));
}
}

View File

@ -1,5 +0,0 @@
package com.hbm.particle;
public class ParticleVortexCircle {
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}
}

View File

@ -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;
}
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.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);

View File

@ -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");
}
}

View File

@ -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);

View File

@ -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)

View File

@ -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);

View File

@ -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));

View File

@ -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);
}
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);
}

View File

@ -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);

View File

@ -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);
}};
}
}

View File

@ -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);
}};
}
}

View File

@ -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);

View File

@ -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--;
}
}

View File

@ -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

View File

@ -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();
@ -42,9 +43,10 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
int process = heat / 50;
process = Math.min(process, water.getFill());
process = Math.min(process, (steam.getMaxFill() - steam.getFill()) / 100);
this.displayHeat = this.heat;
if(process < 0)
process = 0;
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; }
}

View File

@ -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();
}

View File

@ -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,10 +137,13 @@ 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;
@ -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;

View File

@ -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));

View 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);
}
}

View File

@ -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; }
}
}

View 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

View 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;
}
}

View File

@ -96,6 +96,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());

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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