Merge branch 'HbmMods:master' into master
@ -10,6 +10,7 @@ import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
public class SmeltingRecipes {
|
||||
|
||||
@ -164,6 +165,8 @@ public class SmeltingRecipes {
|
||||
|
||||
GameRegistry.addSmelting(ModItems.battery_steam, ItemBattery.getFullBattery(ModItems.battery_steam), 1.0F);
|
||||
|
||||
GameRegistry.addSmelting(new ItemStack(ModItems.scrap_plastic, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.ingot_polymer), 0.1F);
|
||||
|
||||
for(int i = 0; i < 10; i++)
|
||||
GameRegistry.addSmelting(new ItemStack(ModItems.ingot_steel_dusted, 1, i), ItemHot.heatUp(new ItemStack(ModItems.ingot_steel_dusted, 1, i)), 1.0F);
|
||||
}
|
||||
|
||||
@ -21,6 +21,8 @@ public class EntityGhost extends EntityCreature {
|
||||
this.tasks.addTask(0, new EntityAISwimming(this));
|
||||
this.tasks.addTask(1, new EntityAIWander(this, 1.0D));
|
||||
this.tasks.addTask(2, new EntityAILookIdle(this));
|
||||
|
||||
this.renderDistanceWeight *= 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -35,7 +37,7 @@ public class EntityGhost extends EntityCreature {
|
||||
super.onUpdate();
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
double despawnRange = 100;
|
||||
double despawnRange = 50;
|
||||
List<EntityPlayer> players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(despawnRange, despawnRange, despawnRange));
|
||||
if(!players.isEmpty())
|
||||
this.setDead();
|
||||
|
||||
@ -6,9 +6,11 @@ import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.config.MobConfig;
|
||||
import com.hbm.config.WorldConfig;
|
||||
import com.hbm.entity.mob.EntityFBI;
|
||||
import com.hbm.entity.mob.EntityGhost;
|
||||
import com.hbm.entity.mob.EntityMaskMan;
|
||||
import com.hbm.entity.mob.EntityRADBeast;
|
||||
import com.hbm.entity.projectile.EntityMeteor;
|
||||
import com.hbm.extprop.HbmLivingProps;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
@ -118,6 +120,23 @@ public class BossSpawnHandler {
|
||||
if(GeneralConfig.enableMeteorStrikes && !world.isRemote) {
|
||||
meteorUpdate(world);
|
||||
}
|
||||
|
||||
if(world.getTotalWorldTime() % 20 == 0) {
|
||||
|
||||
if(world.rand.nextInt(5) == 0 && !world.playerEntities.isEmpty() && world.provider.isSurfaceWorld()) {
|
||||
|
||||
EntityPlayer player = (EntityPlayer) world.playerEntities.get(world.rand.nextInt(world.playerEntities.size()));
|
||||
|
||||
if(HbmLivingProps.getDigamma(player) > 0) {
|
||||
Vec3 vec = Vec3.createVectorHelper(75, 0, 0);
|
||||
vec.rotateAroundY((float)(Math.PI * 2) * world.rand.nextFloat());
|
||||
double spawnX = player.posX + vec.xCoord + world.rand.nextGaussian();
|
||||
double spawnZ = player.posZ + vec.zCoord + world.rand.nextGaussian();
|
||||
double spawnY = world.getHeightValue((int)spawnX, (int)spawnZ);
|
||||
trySpawn(world, (float)spawnX, (float)spawnY, (float)spawnZ, new EntityGhost(world));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void trySpawn(World world, float x, float y, float z, EntityLiving e) {
|
||||
|
||||
@ -127,8 +127,26 @@ public class Gun20GaugeFactory {
|
||||
config.firingSound = "hbm:weapon.revolverShoot";
|
||||
config.firingPitch = 0.75F;
|
||||
|
||||
config.name = "Winchester Model 20 Inox";
|
||||
config.manufacturer = "Winchester Repeating Arms Company";
|
||||
config.animations.put(AnimType.CYCLE, new BusAnimation()
|
||||
.addBus("RECOIL", new BusAnimationSequence()
|
||||
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25))
|
||||
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75))
|
||||
)
|
||||
.addBus("LEVER_PULL", new BusAnimationSequence()
|
||||
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick
|
||||
.addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt
|
||||
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt
|
||||
)
|
||||
.addBus("LEVER_ROTATE", new BusAnimationSequence()
|
||||
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil
|
||||
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms
|
||||
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action
|
||||
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again
|
||||
)
|
||||
);
|
||||
|
||||
config.name = "Remington Model 700";
|
||||
config.manufacturer = "Remington Arms Company";
|
||||
|
||||
config.config = new ArrayList<Integer>();
|
||||
config.config.add(BulletConfigSyncingUtil.G20_SLUG);
|
||||
|
||||
@ -12,6 +12,10 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.render.anim.BusAnimation;
|
||||
import com.hbm.render.anim.BusAnimationKeyframe;
|
||||
import com.hbm.render.anim.BusAnimationSequence;
|
||||
import com.hbm.render.anim.HbmAnimations.AnimType;
|
||||
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
@ -29,7 +33,7 @@ public class Gun50BMGFactory {
|
||||
|
||||
GunConfiguration config = new GunConfiguration();
|
||||
|
||||
config.rateOfFire = 6;
|
||||
config.rateOfFire = 1;
|
||||
config.roundsPerCycle = 1;
|
||||
config.gunMode = GunConfiguration.MODE_NORMAL;
|
||||
config.firingMode = GunConfiguration.FIRE_AUTO;
|
||||
@ -38,14 +42,28 @@ public class Gun50BMGFactory {
|
||||
config.ammoCap = 50;
|
||||
config.reloadType = GunConfiguration.RELOAD_FULL;
|
||||
config.allowsInfinity = true;
|
||||
config.crosshair = Crosshair.L_BOX;
|
||||
config.durability = 2000;
|
||||
config.crosshair = Crosshair.NONE;
|
||||
config.durability = 15 * 50 * 10; //15 * capacity * default wear
|
||||
config.reloadSound = GunConfiguration.RSOUND_MAG;
|
||||
config.firingSound = "hbm:weapon.calShoot";
|
||||
config.reloadSoundEnd = false;
|
||||
|
||||
config.name = "Maxim gun";
|
||||
config.manufacturer = "Hiram Maxim";
|
||||
config.animations.put(AnimType.CYCLE, new BusAnimation()
|
||||
.addBus("RECOIL", new BusAnimationSequence()
|
||||
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25))
|
||||
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75))
|
||||
)
|
||||
);
|
||||
|
||||
config.animations.put(AnimType.RELOAD, new BusAnimation()
|
||||
.addBus("MAG", new BusAnimationSequence()
|
||||
.addKeyframe(new BusAnimationKeyframe(0, -1, 0, 500))
|
||||
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))
|
||||
)
|
||||
);
|
||||
|
||||
config.name = "Universal-Maschinengewehr Modell 42 - .50 Mod";
|
||||
config.manufacturer = "Wilhelm-Gustloff-Werke";
|
||||
|
||||
config.config = new ArrayList<Integer>();
|
||||
config.config.add(BulletConfigSyncingUtil.BMG50_NORMAL);
|
||||
|
||||
@ -93,10 +93,15 @@ public class CrystallizerRecipeHandler extends TemplateRecipeHandler {
|
||||
|
||||
for (Map.Entry<Object, Object> recipe : recipes.entrySet()) {
|
||||
|
||||
if (NEIServerUtils.areStacksSameTypeCrafting((ItemStack)recipe.getValue(), result))
|
||||
if(NEIServerUtils.areStacksSameTypeCrafting((ItemStack)recipe.getValue(), result)) {
|
||||
|
||||
if(recipe.getKey() instanceof ItemStack && ((ItemStack)recipe.getKey()).getItem() == ModItems.scrap_plastic)
|
||||
continue;
|
||||
|
||||
this.arecipes.add(new RecipeSet(recipe.getKey(), (ItemStack)recipe.getValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadUsageRecipes(String inputId, Object... ingredients) {
|
||||
@ -113,6 +118,9 @@ public class CrystallizerRecipeHandler extends TemplateRecipeHandler {
|
||||
@Override
|
||||
public void loadUsageRecipes(ItemStack ingredient) {
|
||||
|
||||
if(ingredient.getItem() == ModItems.scrap_plastic)
|
||||
return;
|
||||
|
||||
Map<Object, Object> recipes = CrystallizerRecipes.getRecipes();
|
||||
|
||||
for (Map.Entry<Object, Object> recipe : recipes.entrySet()) {
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.hbm.handler.nei;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
@ -11,12 +10,9 @@ import java.util.Map;
|
||||
import com.hbm.interfaces.Untested;
|
||||
import com.hbm.inventory.RecipesCommon.AStack;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.inventory.gui.GUIMachineEPress;
|
||||
import com.hbm.inventory.gui.GUIMachinePress;
|
||||
import com.hbm.inventory.recipes.MachineRecipes;
|
||||
import com.hbm.inventory.recipes.PressRecipes;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemStamp;
|
||||
import com.hbm.items.machine.ItemStamp.StampType;
|
||||
import com.hbm.lib.RefStrings;
|
||||
@ -26,7 +22,6 @@ import codechicken.nei.NEIServerUtils;
|
||||
import codechicken.nei.PositionedStack;
|
||||
import codechicken.nei.recipe.TemplateRecipeHandler;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@Untested
|
||||
@ -43,6 +38,7 @@ public class PressRecipeHandler extends TemplateRecipeHandler {
|
||||
PositionedStack stamp;
|
||||
|
||||
public SmeltingSet(Object stamp, AStack input, ItemStack result) {
|
||||
input.stacksize = 1;
|
||||
this.input = new PositionedStack(input.extractForNEI(), 83 - 35, 5 + 36 + 1);
|
||||
this.result = new PositionedStack(result, 83 + 28, 5 + 18 + 1);
|
||||
this.stamp = new PositionedStack(stamp, 83 - 35, 6, false);
|
||||
|
||||
@ -8,7 +8,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.hbm.inventory.gui.GUIMachineRefinery;
|
||||
import com.hbm.inventory.recipes.MachineRecipes;
|
||||
import com.hbm.inventory.recipes.RefineryRecipes;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
|
||||
@ -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 (4074)";
|
||||
public static final String VERSION = "1.0.27 BETA (4088)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -382,7 +382,7 @@ public class ClientProxy extends ServerProxy {
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderOverkill());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_dampfmaschine, new ItemRenderBullshit());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_bright, ResourceManager.ff_wood));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderGunAnim());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderWeaponFFBolt(ResourceManager.rem700_tex));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_dark, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_normal, ResourceManager.ff_wood_red));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_green, new ItemRenderGunAnim());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_sonata, new ItemRenderGunAnim());
|
||||
|
||||
@ -22,6 +22,7 @@ import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemDye;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
@ -368,8 +369,10 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.block_niter_reinforced, 1), new Object[] { "TCT", "CNC", "TCT", 'T', TCALLOY.ingot(), 'C', ModBlocks.concrete, 'N', KNO.block() });
|
||||
|
||||
for(int i = 0; i < 16; i++) {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_smooth, 'D', new ItemStack(Items.dye, 1, 15 - i) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_colored, 'D', new ItemStack(Items.dye, 1, 15 - i) });
|
||||
String dyeName = ItemDye.field_150923_a[15 - i];
|
||||
dyeName = "dye" + dyeName.substring(0, 1).toUpperCase() + dyeName.substring(1);
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_smooth, 'D', dyeName });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_colored, 'D', dyeName });
|
||||
}
|
||||
addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored });
|
||||
|
||||
|
||||
@ -470,6 +470,7 @@ public class MainRegistry {
|
||||
EntityRegistry.registerModEntity(EntityMissileVolcano.class, "entity_missile_volcano", 159, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityMissileShuttle.class, "entity_missile_shuttle", 160, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityZirnoxDebris.class, "entity_zirnox_debris", 161, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityGhost.class, "entity_ntm_ghost", 162, this, 1000, 1, true);
|
||||
|
||||
EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00);
|
||||
EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd);
|
||||
|
||||
@ -598,6 +598,7 @@ public class ResourceManager {
|
||||
public static final IModelCustom fireext = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/fireext.obj"));
|
||||
public static final IModelCustom ar15 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/ar15.obj"));
|
||||
public static final IModelCustom mg42 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mg42.obj"));
|
||||
public static final IModelCustom rem700 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/rem700.obj"));
|
||||
|
||||
public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj"));
|
||||
|
||||
@ -662,6 +663,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation fireext_sand_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fireext_sand.png");
|
||||
public static final ResourceLocation ar15_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/carbine.png");
|
||||
public static final ResourceLocation mg42_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/mg42.png");
|
||||
public static final ResourceLocation rem700_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/rem700.png");
|
||||
|
||||
public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png");
|
||||
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
package com.hbm.render.entity.mob;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.entity.mob.EntityGhost;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.render.model.ModelSiegeZombie;
|
||||
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.entity.RenderBiped;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
@ -28,4 +31,14 @@ public class RenderGhost extends RenderBiped {
|
||||
protected ResourceLocation getEntityTexture(EntityGhost entity) {
|
||||
return new ResourceLocation(RefStrings.MODID + ":textures/entity/ghost.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0);
|
||||
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||
super.doRender(p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,119 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderWeaponFFBolt implements IItemRenderer {
|
||||
|
||||
ResourceLocation texture;
|
||||
|
||||
public ItemRenderWeaponFFBolt(ResourceLocation texture) {
|
||||
this.texture = texture;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
|
||||
switch(type) {
|
||||
case EQUIPPED:
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
case ENTITY:
|
||||
case INVENTORY:
|
||||
return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
|
||||
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
boolean renderBolt = true;
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
|
||||
|
||||
switch(type) {
|
||||
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
|
||||
double s0 = 0.5D;
|
||||
GL11.glTranslated(0.5, 0.25, 0);
|
||||
GL11.glScaled(s0, s0, s0);
|
||||
GL11.glRotated(20, 0, -1, 0);
|
||||
GL11.glRotated(15, 0, 0, 1);
|
||||
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
|
||||
GL11.glTranslated(recoil[0] * -0.5, 0, 0);
|
||||
|
||||
double[] pull = HbmAnimations.getRelevantTransformation("LEVER_PULL");
|
||||
double[] rotate = HbmAnimations.getRelevantTransformation("LEVER_ROTATE");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(pull[0], 0, 0);
|
||||
double heightOffset = 0.52D;
|
||||
GL11.glTranslated(0, heightOffset, 0);
|
||||
GL11.glRotated(rotate[0] * 35, -1, 0, 0);
|
||||
GL11.glTranslated(0, -heightOffset, 0);
|
||||
ResourceManager.rem700.renderPart("Bolt");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
renderBolt = false;
|
||||
|
||||
break;
|
||||
|
||||
case EQUIPPED:
|
||||
|
||||
double scale = 0.25D;
|
||||
GL11.glRotated(-75, 0, 1, 0);
|
||||
GL11.glRotated(-10, 0, 0, 1);
|
||||
GL11.glRotated(10, 1, 0, 0);
|
||||
GL11.glTranslated(0.3, 0.15, -0.5);
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
|
||||
break;
|
||||
|
||||
case ENTITY:
|
||||
|
||||
double s1 = 0.25D;
|
||||
GL11.glScaled(s1, s1, s1);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
|
||||
break;
|
||||
|
||||
case INVENTORY:
|
||||
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
|
||||
double s = 1.5D;
|
||||
GL11.glTranslated(10, 11, 0);
|
||||
GL11.glRotated(-135, 0, 0, 1);
|
||||
GL11.glScaled(s, s, -s);
|
||||
|
||||
break;
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
||||
ResourceManager.rem700.renderPart("Gun");
|
||||
if(renderBolt)
|
||||
ResourceManager.rem700.renderPart("Bolt");
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
@ -3,12 +3,11 @@ package com.hbm.render.item.weapon;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
|
||||
|
||||
public class ItemRenderWeaponFFMG42 implements IItemRenderer {
|
||||
|
||||
@ -38,8 +37,10 @@ public class ItemRenderWeaponFFMG42 implements IItemRenderer {
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mg42_tex);
|
||||
boolean renderMag = true;
|
||||
|
||||
switch(type) {
|
||||
|
||||
@ -51,6 +52,21 @@ public class ItemRenderWeaponFFMG42 implements IItemRenderer {
|
||||
GL11.glTranslated(-0.125, 0, 0);
|
||||
GL11.glScaled(s0, s0, s0);
|
||||
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
|
||||
GL11.glTranslated(recoil[0] * 0.25, 0, 0);
|
||||
|
||||
double[] reload = HbmAnimations.getRelevantTransformation("MAG");
|
||||
GL11.glRotated(reload[1] * 15, 1, 0, 0);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glRotated(reload[1] * -45, 1, 0, 0);
|
||||
GL11.glTranslated(0, reload[1] * 0.25, -reload[1]);
|
||||
ResourceManager.mg42.renderPart("Mag");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
renderMag = false;
|
||||
|
||||
break;
|
||||
|
||||
case EQUIPPED:
|
||||
@ -86,8 +102,9 @@ public class ItemRenderWeaponFFMG42 implements IItemRenderer {
|
||||
default: break;
|
||||
}
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
ResourceManager.mg42.renderAll();
|
||||
ResourceManager.mg42.renderPart("Gun");
|
||||
if(renderMag) ResourceManager.mg42.renderPart("Mag");
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@ -14,7 +14,7 @@ public class TileEntityHadronPower extends TileEntity implements IEnergyUser {
|
||||
|
||||
@Override
|
||||
public boolean canUpdate() {
|
||||
return this.worldObj != null && this.worldObj.getTotalWorldTime() % 20 == 0;
|
||||
return true; //yeah idk wtf happened with the old behavior and honestly i'm not keen on figuring that one out
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1003,6 +1003,30 @@ item.circuit_gold.name=Übertakteter Schaltkreis
|
||||
item.circuit_raw.name=Schaltkreisrohling
|
||||
item.circuit_red_copper.name=Forgeschrittener Schaltkreis
|
||||
item.circuit_schrabidium.name=Leistungsstarker Schaltkreis
|
||||
item.circuit_star.name=StarControl Schalttafel
|
||||
item.circuit_star_component.chipset.name=StarControl Chipset
|
||||
item.circuit_star_component.cpu.name=StarControl CPU
|
||||
item.circuit_star_component.ram.name=StarControl RAM
|
||||
item.circuit_star_piece.board_blank.name=SC - Leiterplatte
|
||||
item.circuit_star_piece.board_transistor.name=SC - Transistoren
|
||||
item.circuit_star_piece.bridge_bios.name=SC- BIOS-Chip
|
||||
item.circuit_star_piece.bridge_bus.name=SC - BUS
|
||||
item.circuit_star_piece.bridge_chipset.name=SC - Chipset
|
||||
item.circuit_star_piece.bridge_cmos.name=SC - CMOS-RAM
|
||||
item.circuit_star_piece.bridge_io.name=SC - IO-Chip
|
||||
item.circuit_star_piece.bridge_north.name=SC - Northbridge
|
||||
item.circuit_star_piece.bridge_south.name=SC - Southbridge
|
||||
item.circuit_star_piece.cpu_cache.name=SC - CPU-Cache
|
||||
item.circuit_star_piece.cpu_clock.name=SC - CPU-Clock
|
||||
item.circuit_star_piece.cpu_ext.name=SC - Arsenhalbleiter-Erweiterung
|
||||
item.circuit_star_piece.cpu_logic.name=SC - Arithmetisch-logische Einheit
|
||||
item.circuit_star_piece.cpu_register.name=SC - CPU-Register
|
||||
item.circuit_star_piece.cpu_socket.name=SC - CPU-Sockel
|
||||
item.circuit_star_piece.mem_socket.name=SC - Speichersockel
|
||||
item.circuit_star_piece.mem_16k_a.name=SC - 16k Speicherstick Slot A
|
||||
item.circuit_star_piece.mem_16k_b.name=SC - 16k Speicherstick Slot B
|
||||
item.circuit_star_piece.mem_16k_c.name=SC - 16k Speicherstick Slot C
|
||||
item.circuit_star_piece.mem_16k_d.name=SC - 16k Speicherstick Slot D
|
||||
item.circuit_tantalium.name=Kondensatorplatine
|
||||
item.circuit_tantalium_raw.name=Kondensatorplatinenrohling
|
||||
item.circuit_targeting_tier1.name=Militärische Schaltplatte (Stufe 1)
|
||||
@ -1354,7 +1378,7 @@ item.gun_bolt_action_green.name=Dream-Repetiergewehr (Grün)
|
||||
item.gun_bolt_action_saturnite.name=Saturnitbüchse
|
||||
item.gun_bolter.name=Boltergewehr
|
||||
item.gun_bolter_digamma.name=Digammagewehr
|
||||
item.gun_calamity.name=Calamity
|
||||
item.gun_calamity.name=Knochensäge
|
||||
item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY)
|
||||
item.gun_calamity_dual.name=Sattelkanone
|
||||
item.gun_cryolator.name=Der Cryolator
|
||||
@ -2408,6 +2432,7 @@ item.schrabidium_shovel.name=Schrabidiumschaufel
|
||||
item.schrabidium_sword.name=Schrabidiumschwert
|
||||
item.scrap.name=Schrott
|
||||
item.scrap_nuclear.name=Radioaktiver Schutt
|
||||
item.scrap_plastic.name=Geschreddertes Plastik
|
||||
item.screwdriver.name=Schraubenzieher
|
||||
item.scrumpy.name=Flasche Scrumpy
|
||||
item.security_boots.name=Sicherheitsstiefel
|
||||
@ -2890,6 +2915,7 @@ tile.cheater_virus.name=Geliertes Euphemium
|
||||
tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block
|
||||
tile.chlorine_gas.name=Chlorgas
|
||||
tile.cluster_aluminium.name=Aluminiumerzcluster
|
||||
tile.cluster_copper.name=Kupfererzcluster
|
||||
tile.cluster_depth_iron.name=Tiefen-Eisenerzcluster
|
||||
tile.cluster_depth_titanium.name=Tiefen-Titanerzcluster
|
||||
tile.cluster_depth_tungsten.name=Tiefen-Wolframerzcluster
|
||||
|
||||
@ -1078,6 +1078,31 @@ item.circuit_gold.name=Overclocked Circuit
|
||||
item.circuit_raw.name=Basic Circuit Assembly
|
||||
item.circuit_red_copper.name=Advanced Circuit
|
||||
item.circuit_schrabidium.name=High Performance Circuit
|
||||
item.circuit_star.name=StarControl Circuit Board
|
||||
item.circuit_star.desc=Currently unused, for it lacks an operating system.
|
||||
item.circuit_star_component.chipset.name=StarControl Chipset
|
||||
item.circuit_star_component.cpu.name=StarControl CPU
|
||||
item.circuit_star_component.ram.name=StarControl RAM
|
||||
item.circuit_star_piece.board_blank.name=SC - Printed Circuit Board
|
||||
item.circuit_star_piece.board_transistor.name=SC - Transistors
|
||||
item.circuit_star_piece.bridge_bios.name=SC- BIOS Chip
|
||||
item.circuit_star_piece.bridge_bus.name=SC - BUS
|
||||
item.circuit_star_piece.bridge_chipset.name=SC - Chipset
|
||||
item.circuit_star_piece.bridge_cmos.name=SC - CMOS RAM
|
||||
item.circuit_star_piece.bridge_io.name=SC - IO Chip
|
||||
item.circuit_star_piece.bridge_north.name=SC - North Bridge
|
||||
item.circuit_star_piece.bridge_south.name=SC - South Bridge
|
||||
item.circuit_star_piece.cpu_cache.name=SC - CPU Cache
|
||||
item.circuit_star_piece.cpu_clock.name=SC - CPU Clock
|
||||
item.circuit_star_piece.cpu_ext.name=SC - Arsenic Semi Conductor Extension
|
||||
item.circuit_star_piece.cpu_logic.name=SC - Arithmetic Logic Unit
|
||||
item.circuit_star_piece.cpu_register.name=SC - CPU Register
|
||||
item.circuit_star_piece.cpu_socket.name=SC - CPU Socket
|
||||
item.circuit_star_piece.mem_socket.name=SC - Memory Socket
|
||||
item.circuit_star_piece.mem_16k_a.name=SC - 16k Memory Stick Slot A
|
||||
item.circuit_star_piece.mem_16k_b.name=SC - 16k Memory Stick Slot B
|
||||
item.circuit_star_piece.mem_16k_c.name=SC - 16k Memory Stick Slot C
|
||||
item.circuit_star_piece.mem_16k_d.name=SC - 16k Memory Stick Slot D
|
||||
item.circuit_tantalium.name=Capacitor Board
|
||||
item.circuit_tantalium_raw.name=Capacitor Board Assembly
|
||||
item.circuit_targeting_tier1.name=Military Grade Circuit Board (Tier 1)
|
||||
@ -1429,7 +1454,7 @@ item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green)
|
||||
item.gun_bolt_action_saturnite.name=Saturnite Rifle
|
||||
item.gun_bolter.name=Bolter
|
||||
item.gun_bolter_digamma.name=Digamma Gun
|
||||
item.gun_calamity.name=Calamity
|
||||
item.gun_calamity.name=Buzzsaw
|
||||
item.gun_calamity_ammo.name=.50 BMG Round (LEGACY)
|
||||
item.gun_calamity_dual.name=Saddle Gun
|
||||
item.gun_cryolator.name=The Cryolator
|
||||
@ -2483,6 +2508,7 @@ item.schrabidium_shovel.name=Schrabidium Shovel
|
||||
item.schrabidium_sword.name=Schrabidium Sword
|
||||
item.scrap.name=Scrap
|
||||
item.scrap_nuclear.name=Radioactive Scraps
|
||||
item.scrap_plastic.name=Plastic Scraps
|
||||
item.screwdriver.name=Screwdriver
|
||||
item.scrumpy.name=Bottle of Scrumpy
|
||||
item.security_boots.name=Security Boots
|
||||
@ -2967,6 +2993,7 @@ tile.cheater_virus.name=Gelid Euphemium
|
||||
tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block
|
||||
tile.chlorine_gas.name=Chlorine Gas
|
||||
tile.cluster_aluminium.name=Aluminium Ore Cluster
|
||||
tile.cluster_copper.name=Copper Ore Cluster
|
||||
tile.cluster_depth_iron.name=Depth Iron Ore Cluster
|
||||
tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster
|
||||
tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster
|
||||
|
||||
@ -1768,6 +1768,31 @@ item.circuit_targeting_tier3.name=Печатная плата военного
|
||||
item.circuit_targeting_tier4.name=Печатная плата военного класса (Уровень 4)
|
||||
item.circuit_targeting_tier5.name=Печатная плата военного класса (Уровень 5)
|
||||
item.circuit_targeting_tier6.name=Печатная плата военного класса (Уровень 6)
|
||||
item.circuit_star.name=Материнская плата Звёздного Диспетчера
|
||||
item.circuit_star.desc=Не используется сейчас из-за отсутствия операционной системы.
|
||||
item.circuit_star_component.chipset.name=Чипсет Звёздного Диспетчера
|
||||
item.circuit_star_component.cpu.name=Процессор Звёздного Диспетчера
|
||||
item.circuit_star_component.ram.name=Оперативная память Звёздного Диспетчера
|
||||
item.circuit_star_piece.board_blank.name=ЗД - Печатная плата
|
||||
item.circuit_star_piece.board_transistor.name=ЗД - Транзисторы
|
||||
item.circuit_star_piece.bridge_bios.name=ЗД - Чип БИОС
|
||||
item.circuit_star_piece.bridge_bus.name=ЗД - Шина
|
||||
item.circuit_star_piece.bridge_chipset.name=ЗД - Чипсет
|
||||
item.circuit_star_piece.bridge_cmos.name=ЗД - Память БИОС
|
||||
item.circuit_star_piece.bridge_io.name=ЗД - Чип Ввода/Вывода
|
||||
item.circuit_star_piece.bridge_north.name=ЗД - Северный мост
|
||||
item.circuit_star_piece.bridge_south.name=ЗД - Южный мост
|
||||
item.circuit_star_piece.cpu_cache.name=ЗД - Кэш процессора
|
||||
item.circuit_star_piece.cpu_clock.name=ЗД - Часы процессора
|
||||
item.circuit_star_piece.cpu_ext.name=ЗД - Мышьяковый полупроводниковый расширитель
|
||||
item.circuit_star_piece.cpu_logic.name=ЗД - Арифметико-логическое устройство
|
||||
item.circuit_star_piece.cpu_register.name=ЗД - Регистр процессора
|
||||
item.circuit_star_piece.cpu_socket.name=ЗД - Разъем для процессора
|
||||
item.circuit_star_piece.mem_socket.name=ЗД - Разъем для памяти
|
||||
item.circuit_star_piece.mem_16k_a.name=ЗД - Слот для карты Памяти 16k A
|
||||
item.circuit_star_piece.mem_16k_b.name=ЗД - Слот для карты Памяти 16k B
|
||||
item.circuit_star_piece.mem_16k_c.name=ЗД - Слот для карты Памяти 16k C
|
||||
item.circuit_star_piece.mem_16k_d.name=ЗД - Слот для карты Памяти 16k D
|
||||
item.mechanism_revolver_1.name=Револьверный механизм
|
||||
item.mechanism_revolver_2.name=Усовершенствованный револьверный механизм
|
||||
item.mechanism_rifle_1.name=Винтовочный механизм
|
||||
@ -1946,6 +1971,7 @@ tile.ore_oil_sand.name=Битумозный песок
|
||||
tile.sand_dirty.name=Пропитанный нефтью песок
|
||||
tile.sand_dirty_red.name=Пропитанный нефтью красный песок
|
||||
tile.cluster_aluminium.name=Алюминиевый рудный кластер
|
||||
tile.cluster_copper.name=Медный рудный кластер
|
||||
tile.cluster_depth_iron.name=Глубинный железорудный кластер
|
||||
tile.cluster_depth_titanium.name=Глубинный титановый рудный кластер
|
||||
tile.cluster_depth_tungsten.name=Глубинный вольфрамовый рудный кластер
|
||||
@ -2653,6 +2679,7 @@ tile.waste_planks.name=Обугленные деревянные доски
|
||||
item.trinitite.name=Тринитит
|
||||
item.nuclear_waste.name=Ядерные отходы
|
||||
item.scrap_nuclear.name=Радиоактивный мусор
|
||||
item.scrap_plastic.name=Куски пластмассы
|
||||
item.nuclear_waste_tiny.name=Маленькая кучка ядерных отходов
|
||||
item.nuclear_waste_vitrified.name=Остеклованные ядерные отходы
|
||||
item.nuclear_waste_vitrified_tiny.name=Кучка остеклованных ядерных отходов
|
||||
|
||||
1389
src/main/resources/assets/hbm/models/trinkets/chip.obj
Normal file
6148
src/main/resources/assets/hbm/models/weapons/rem700.obj
Normal file
BIN
src/main/resources/assets/hbm/textures/entity/ghost.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
src/main/resources/assets/hbm/textures/items/circuit_star.png
Normal file
|
After Width: | Height: | Size: 588 B |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.3 KiB |
BIN
src/main/resources/assets/hbm/textures/models/machines/rails.png
Normal file
|
After Width: | Height: | Size: 417 B |
BIN
src/main/resources/assets/hbm/textures/models/trinkets/chip.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
@ -3,7 +3,7 @@
|
||||
"modid": "hbm",
|
||||
"name": "Hbm's Nuclear Tech",
|
||||
"description": "A mod that adds weapons, nuclear themed stuff and machines",
|
||||
"version":"1.0.27_X4074",
|
||||
"version":"1.0.27_X4088",
|
||||
"mcversion": "1.7.10",
|
||||
"url": "",
|
||||
"updateUrl": "",
|
||||
|
||||