iboiler texture, coilgun, bunch of fixes, recipes

This commit is contained in:
Bob 2023-07-09 17:28:11 +02:00
parent 873e41558f
commit 925236e538
44 changed files with 12645 additions and 10202 deletions

View File

@ -2,11 +2,14 @@
* Industrial boiler * Industrial boiler
* A slightly taller variant of the boiler with higher capacity * A slightly taller variant of the boiler with higher capacity
* Unlike the regular boiler, it can't explode * Unlike the regular boiler, it can't explode
* This is ideal for applications where closed cycles are not possible, like crude oil refineries, as the machines after the boiler are usually the bottleneck, causing the boiler to run full
* Redstone-over-radio counter * Redstone-over-radio counter
* Can count and send the amount of an item stored in a container * Can count and send the amount of an item stored in a container
* Counting supports filters by item ID, ID+meta and ore dictionary names * Counting supports filters by item ID, ID+meta and ore dictionary names
* Each torch can count up to three items and output the results on different channels * Each torch can count up to three items and output the results on different channels
* This allows for more precise control over things like assembler chests, like turning off the ejector for an item that is already full but not other ejectors * This allows for more precise control over things like assembler chests, like turning off the ejector for an item that is already full but not other ejectors
* This process works fine with the chemical plant, chemical factory and the assembly factory. The small assembler currently still uses older code which doesn't limit the amount of items pulled, so fully preventing clogs is not possible as of now.
* Expect a fix next week
* This property makes automating things with multiple inputs a lot easier * This property makes automating things with multiple inputs a lot easier
* Due to the ore dictionary ability of the counter, buffered items can precisely match the requirements of the recipe * Due to the ore dictionary ability of the counter, buffered items can precisely match the requirements of the recipe
* Particle collider cooling unit * Particle collider cooling unit
@ -14,22 +17,35 @@
* Will increment a new "cooling" value which depletes over time and makes coils more effective * Will increment a new "cooling" value which depletes over time and makes coils more effective
* Overcooling causes a penalty, so coolers cannot be spammed and need to be carefully spaced out * Overcooling causes a penalty, so coolers cannot be spammed and need to be carefully spaced out
* Allows for even more compact particle accelerator setups * Allows for even more compact particle accelerator setups
* Comes in two tiers, both tiers use a different cooling variable with different effectiveness, the higher tier will override the lower tier if both tiers of coolers are present * Comes in two tiers
* The first tier has a flat bonus if the particle is cooled, with a penalty after the overcooling threshold has been crossed
* The second tier has a cooling function that peaks at a certain point and slowly decreases below 1 if overcooled, requiring more precise placement to get the full efficiency
* Benelli M4 * Benelli M4
* Automatic 12 gauge shotgun with a drum mag * Automatic 12 gauge shotgun with a drum mag
* Coilgun
* A single-shot gauss pistol that fires tungsten balls
* Shots penetrate blocks
## Changed ## Changed
* The regular boiler now only holds 16k instead of 64k (which is still a lot) * The regular boiler now only holds 16k instead of 64k (which is still a lot)
* Added labels to the large mining drill's levers * Added labels to the large mining drill's levers
* Glyphid eggs can now be broken apart using an anvil, yielding glyphid meat, bones and experience bottles * Glyphid eggs can now be broken apart using an anvil, yielding glyphid meat, bones and experience bottles
* The assembler now uses the new multiblock system, making it less annoying to playe and less ear-piercing to break * The assembler now uses the new multiblock system, making it less annoying to playe and less ear-piercing to break
* The conversion happens automatically so it's not necessary to remove the assemblers beforehand * The conversion happens automatically so it's not necessary to remove the assemblers
* While this process has been tested, it's still good practice to make a backup of your world beforehand
* Reload canceling is no longer possible if no rounds have been loaded yet, preventing single round weapons like dart guns to be reload canceled * Reload canceling is no longer possible if no rounds have been loaded yet, preventing single round weapons like dart guns to be reload canceled
* The saturnite rifle now has a functional scope * The saturnite rifle now has a functional scope
* Rechambered the bolt action rifles to 7.62mm, with a mag of 5 rounds * Rechambered the bolt action rifles to 7.62mm, with a mag of 5 rounds
* The compressor can now turn 4,000mB of petroleum into 2,000mB of LPG
* The lunatic marksman now has a crafting recipe
* Glyphid armor no longer absorbs all incoming damage when breaking off, instead 25% of the damage will bleed through, making it possible to oneshot them with powerful enough weapons
## Fixed ## Fixed
* Fixed quantity of the fusion reactor's construction recipe not being displayed right * Fixed quantity of the fusion reactor's construction recipe not being displayed right
* Fixed fluid valve and redstone fluid valves having the wrong names * Fixed fluid valve and redstone fluid valves having the wrong behaviors, being effectively switched
* Fixed mobs' max health getting buffed by pollution, but the actual health staying the same * Fixed mobs' max health getting buffed by pollution, but the actual health staying the same
* Fixed bug regarding the loot pools of satellite miners * Fixed bug regarding the loot pools of satellite miners
* Fixed rocket artillery creating the wrong type of slag
* Fixed fluid valves not being able to have a fluid assigned by clicking directly on them
* Fixed the kyiv special not actually exploding
* Fixed combuston generator not properly syncing the burntime

View File

@ -1,6 +1,6 @@
mod_version=1.0.27 mod_version=1.0.27
# Empty build number makes a release type # Empty build number makes a release type
mod_build_number=4648 mod_build_number=4655
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
\ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\

View File

@ -1811,7 +1811,7 @@ public class ModBlocks {
machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper");
machine_industrial_boiler = new MachineHeatBoilerIndustrial().setBlockName("machine_industrial_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); machine_industrial_boiler = new MachineHeatBoilerIndustrial().setBlockName("machine_industrial_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
foundry_mold = new FoundryMold().setBlockName("foundry_mold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_mold = new FoundryMold().setBlockName("foundry_mold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
foundry_basin = new FoundryBasin().setBlockName("foundry_basin").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_basin = new FoundryBasin().setBlockName("foundry_basin").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");

View File

@ -170,28 +170,29 @@ public class BlockBobble extends BlockContainer implements IGUIProvider {
public static enum BobbleType { public static enum BobbleType {
NONE( "null", "null", null, null, false, ScrapType.BOARD_BLANK), NONE( "null", "null", null, null, false, ScrapType.BOARD_BLANK),
STRENGTH( "Strength", "Strength", null, "It's essential to give your arguments impact.", false, ScrapType.BRIDGE_BIOS), STRENGTH( "Strength", "Strength", null, "It's essential to give your arguments impact.", false, ScrapType.BRIDGE_BIOS),
PERCEPTION( "Perception", "Perception", null, "Only through observation will you perceive weakness.", false, ScrapType.BRIDGE_NORTH), PERCEPTION( "Perception", "Perception", null, "Only through observation will you perceive weakness.", false, ScrapType.BRIDGE_NORTH),
ENDURANCE( "Endurance", "Endurance", null, "Always be ready to take one for the team.", false, ScrapType.BRIDGE_SOUTH), ENDURANCE( "Endurance", "Endurance", null, "Always be ready to take one for the team.", false, ScrapType.BRIDGE_SOUTH),
CHARISMA( "Charisma", "Charisma", null, "Nothing says pizzaz like a winning smile.", false, ScrapType.BRIDGE_IO), CHARISMA( "Charisma", "Charisma", null, "Nothing says pizzaz like a winning smile.", false, ScrapType.BRIDGE_IO),
INTELLIGENCE( "Intelligence", "Intelligence", null, "It takes the smartest individuals to realize$there's always more to learn.", false, ScrapType.BRIDGE_BUS), INTELLIGENCE( "Intelligence", "Intelligence", null, "It takes the smartest individuals to realize$there's always more to learn.", false, ScrapType.BRIDGE_BUS),
AGILITY( "Agility", "Agility", null, "Never be afraid to dodge the sensitive issues.", false, ScrapType.BRIDGE_CHIPSET), AGILITY( "Agility", "Agility", null, "Never be afraid to dodge the sensitive issues.", false, ScrapType.BRIDGE_CHIPSET),
LUCK( "Luck", "Luck", null, "There's only one way to give 110%.", false, ScrapType.BRIDGE_CMOS), LUCK( "Luck", "Luck", null, "There's only one way to give 110%.", false, ScrapType.BRIDGE_CMOS),
BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET), BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET),
FRIZZLE( "Frooz", "Frooz", "Weapon models", "BLOOD IS FUEL", true, ScrapType.CPU_CLOCK), FRIZZLE( "Frooz", "Frooz", "Weapon models", "BLOOD IS FUEL", true, ScrapType.CPU_CLOCK),
PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER), PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER),
VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT), VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT),
DOC( "The Doctor", "Doctor17PH", "Russian localization, lunar miner", "Perhaps the moon rocks were too expensive", true, ScrapType.CPU_CACHE), DOC( "The Doctor", "Doctor17PH", "Russian localization, lunar miner", "Perhaps the moon rocks were too expensive", true, ScrapType.CPU_CACHE),
BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "payday 2's deagle freeaim champ of the year 2022", true, ScrapType.MEM_16K_A), BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "payday 2's deagle freeaim champ of the year 2022", true, ScrapType.MEM_16K_A),
PHEO( "Pheo", "Pheonix", "Deuterium machines, tantalium textures, Reliant Rocket", "RUN TO THE BEDROOM, ON THE SUITCASE ON THE LEFT,$YOU'LL FIND MY FAVORITE AXE", true, ScrapType.MEM_16K_B), PHEO( "Pheo", "Pheonix", "Deuterium machines, tantalium textures, Reliant Rocket", "RUN TO THE BEDROOM, ON THE SUITCASE ON THE LEFT,$YOU'LL FIND MY FAVORITE AXE", true, ScrapType.MEM_16K_B),
ADAM29( "Adam29", "Adam29", "Ethanol, liquid petroleum gas", "You know, nukes are really quite beatiful.$It's like watching a star be born for a split second.", true, ScrapType.MEM_16K_C), ADAM29( "Adam29", "Adam29", "Ethanol, liquid petroleum gas", "You know, nukes are really quite beatiful.$It's like watching a star be born for a split second.", true, ScrapType.MEM_16K_C),
UFFR( "UFFR", "UFFR", "All sorts of things from his PR", "fried shrimp", false, ScrapType.MEM_SOCKET), UFFR( "UFFR", "UFFR", "All sorts of things from his PR", "fried shrimp", false, ScrapType.MEM_SOCKET),
VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D), VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D),
NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR),
DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC),
CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK),
MICROWAVE( "Microwave", "Microwave", "adding OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS); MICROWAVE( "Microwave", "Microwave", "OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS),
PEEP( "Peep", "LePeeperSauvage", "Coilgun model", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK);
public String name; //the title of the tooltip public String name; //the title of the tooltip
public String label; //the name engraved in the socket public String label; //the name engraved in the socket

View File

@ -89,11 +89,11 @@ public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILook
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o); super.fillSpace(world, x, y, z, dir, o);
this.makeExtra(world, x + dir.offsetX + 1, y, z + dir.offsetZ); this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ);
this.makeExtra(world, x + dir.offsetX - 1, y, z + dir.offsetZ); this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ);
this.makeExtra(world, x + dir.offsetX, y, z + dir.offsetZ + 1); this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ + 1);
this.makeExtra(world, x + dir.offsetX, y, z + dir.offsetZ - 1); this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ - 1);
this.makeExtra(world, x + dir.offsetX, y + 4, z + dir.offsetZ); this.makeExtra(world, x - dir.offsetX, y + 4, z - dir.offsetZ);
} }
@Override @Override

View File

@ -10,9 +10,9 @@ import com.hbm.util.I18nUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -30,8 +30,8 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay {
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) { public void registerBlockIcons(IIconRegister iconRegister) {
this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on"); this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off");
} }
@Override @Override
@ -46,27 +46,28 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay {
} }
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
int meta = world.getBlockMetadata(x, y, z);
if(meta == 0) {
world.setBlockMetadataWithNotify(x, y, z, 1, 2);
world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F);
} else {
world.setBlockMetadataWithNotify(x, y, z, 0, 2);
world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F);
}
boolean on = world.isBlockIndirectlyGettingPowered(x, y, z);
int meta = world.getBlockMetadata(x, y, z);
boolean update = false;
if(on && meta == 0) {
world.setBlockMetadataWithNotify(x, y, z, 1, 2);
world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F);
update = true;
}
if(!on && meta == 1) {
world.setBlockMetadataWithNotify(x, y, z, 0, 2);
world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F);
update = true;
}
if(update) {
TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z);
te.updateState(); te.updateState();
return true;
} else {
return false;
} }
} }

View File

@ -10,9 +10,9 @@ import com.hbm.util.I18nUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -30,8 +30,8 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay {
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) { public void registerBlockIcons(IIconRegister iconRegister) {
this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on"); this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off");
} }
@Override @Override
@ -46,28 +46,28 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay {
} }
@Override @Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
boolean on = world.isBlockIndirectlyGettingPowered(x, y, z); if(world.isRemote) return true;
int meta = world.getBlockMetadata(x, y, z);
boolean update = false; if(super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ)) return true;
if(on && meta == 0) { if(!player.isSneaking()) {
world.setBlockMetadataWithNotify(x, y, z, 1, 2); int meta = world.getBlockMetadata(x, y, z);
world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); if(meta == 0) {
update = true; world.setBlockMetadataWithNotify(x, y, z, 1, 2);
} world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F);
} else {
world.setBlockMetadataWithNotify(x, y, z, 0, 2);
world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F);
}
if(!on && meta == 1) {
world.setBlockMetadataWithNotify(x, y, z, 0, 2);
world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F);
update = true;
}
if(update) {
TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z);
te.updateState(); te.updateState();
return true;
} else {
return false;
} }
} }

View File

@ -158,6 +158,9 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lunatic_marksman), new Object[] { " GN", "SSM", " A", 'G', KEY_ANYPANE, 'N', ModItems.powder_nitan_mix, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'A', ANY_RESISTANTALLOY.plateCast() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun), new Object[] { "CCC", "SSM", " P", 'C', ModBlocks.capacitor_copper, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun_ammo, 16), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() });
//Ammo assemblies //Ammo assemblies
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() });

View File

@ -96,7 +96,7 @@ public class EntityGlyphid extends EntityMob {
int chance = getArmorBreakChance(amount); //chances of armor being broken off int chance = getArmorBreakChance(amount); //chances of armor being broken off
if(this.rand.nextInt(chance) == 0 && amount > 1) { if(this.rand.nextInt(chance) == 0 && amount > 1) {
breakOffArmor(); breakOffArmor();
amount = 0; amount *= 0.25F;
} }
amount -= getDamageThreshold(); amount -= getDamageThreshold();

View File

@ -511,16 +511,18 @@ public class EntityBulletBase extends Entity implements IProjectile {
if(worldObj.isRemote && !config.vPFX.isEmpty()) { if(worldObj.isRemote && !config.vPFX.isEmpty()) {
double motion = Math.min(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(), 0.1); Vec3 vec = Vec3.createVectorHelper(posX - prevPosX, posY - prevPosY, posZ - prevPosZ);
double motion = Math.max(vec.lengthVector(), 0.1);
vec = vec.normalize();
for(double d = 0; d < motion; d += 0.0625) { for(double d = 0; d < motion; d += 0.5) {
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
nbt.setString("type", "vanillaExt"); nbt.setString("type", "vanillaExt");
nbt.setString("mode", config.vPFX); nbt.setString("mode", config.vPFX);
nbt.setDouble("posX", (this.lastTickPosX - this.posX) * d + this.posX); nbt.setDouble("posX", this.posX - vec.xCoord * d);
nbt.setDouble("posY", (this.lastTickPosY - this.posY) * d + this.posY); nbt.setDouble("posY", this.posY - vec.yCoord * d);
nbt.setDouble("posZ", (this.lastTickPosZ - this.posZ) * d + this.posZ); nbt.setDouble("posZ", this.posZ - vec.zCoord * d);
MainRegistry.proxy.effectNT(nbt); MainRegistry.proxy.effectNT(nbt);
} }
} }

View File

@ -159,6 +159,7 @@ public class BulletConfigSyncingUtil {
public static int SPECIAL_GAUSS = i++; public static int SPECIAL_GAUSS = i++;
public static int SPECIAL_GAUSS_CHARGED = i++; public static int SPECIAL_GAUSS_CHARGED = i++;
public static int SPECIAL_EMP = i++; public static int SPECIAL_EMP = i++;
public static int SPECIAL_COIL = i++;
public static int FLAMER_NORMAL = i++; public static int FLAMER_NORMAL = i++;
public static int FLAMER_NAPALM = i++; public static int FLAMER_NAPALM = i++;
@ -449,6 +450,7 @@ public class BulletConfigSyncingUtil {
configSet.put(SPECIAL_GAUSS, GunGaussFactory.getGaussConfig()); configSet.put(SPECIAL_GAUSS, GunGaussFactory.getGaussConfig());
configSet.put(SPECIAL_GAUSS_CHARGED, GunGaussFactory.getAltConfig()); configSet.put(SPECIAL_GAUSS_CHARGED, GunGaussFactory.getAltConfig());
configSet.put(SPECIAL_EMP, GunEnergyFactory.getOrbusConfig()); configSet.put(SPECIAL_EMP, GunEnergyFactory.getOrbusConfig());
configSet.put(SPECIAL_COIL, GunEnergyFactory.getCoilConfig());
configSet.put(FLAMER_NORMAL, GunEnergyFactory.getFlameConfig()); configSet.put(FLAMER_NORMAL, GunEnergyFactory.getFlameConfig());
configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig()); configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig());

View File

@ -248,8 +248,8 @@ public class Gun12GaugeFactory {
config.hasSights = true; config.hasSights = true;
config.durability = 250000; config.durability = 250000;
config.allowsInfinity = true; config.allowsInfinity = true;
config.firingSound = "hbm:weapon.autoshotgunFirePB3"; config.firingSound = "hbm:weapon.deagleShoot";
config.reloadSound = "hbm:weapon.shotgunReloadPB3"; config.firingPitch = 0.75F;
config.reloadType = 2; config.reloadType = 2;
config.reloadSoundEnd = true; config.reloadSoundEnd = true;

View File

@ -180,6 +180,34 @@ public class GunEnergyFactory {
return config; return config;
} }
public static GunConfiguration getCoilgunConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 5;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_MANUAL;
config.reloadDuration = 20;
config.firingDuration = 0;
config.ammoCap = 1;
config.durability = 1500;
config.reloadType = GunConfiguration.RELOAD_FULL;
config.allowsInfinity = true;
config.crosshair = Crosshair.CIRCLE;
config.firingSound = "hbm:weapon.coilgunShoot";
config.reloadSoundEnd = false;
config.reloadSound = "hbm:weapon.coilgunReload";
config.name = "ArmsKore Coilgun";
config.manufacturer = EnumGunManufacturer.DRG;
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.SPECIAL_COIL);
return config;
}
public static GunConfiguration getVortexConfig() { public static GunConfiguration getVortexConfig() {
GunConfiguration config = new GunConfiguration(); GunConfiguration config = new GunConfiguration();
@ -221,6 +249,31 @@ public class GunEnergyFactory {
return bullet; return bullet;
} }
public static BulletConfiguration getCoilConfig() {
BulletConfiguration bullet = new BulletConfiguration();
bullet.ammo = new ComparableStack(ModItems.gun_coilgun_ammo);
bullet.velocity = 5F;
bullet.spread = 0.0F;
bullet.wear = 10;
bullet.bulletsMin = 1;
bullet.bulletsMax = 1;
bullet.dmgMin = 35;
bullet.dmgMax = 45;
bullet.gravity = 0D;
bullet.maxAge = 100;
bullet.doesPenetrate = true;
bullet.isSpectral = true;
bullet.style = bullet.STYLE_BOLT;
bullet.trail = bullet.BOLT_NIGHTMARE;
bullet.vPFX = "fireworks";
return bullet;
}
public static BulletConfiguration getFlameConfig() { public static BulletConfiguration getFlameConfig() {
BulletConfiguration bullet = new BulletConfiguration(); BulletConfiguration bullet = new BulletConfiguration();

View File

@ -884,7 +884,7 @@ public class OreDictManager {
public String gem() { return GEM + groupName; } public String gem() { return GEM + groupName; }
public String crystal() { return CRYSTAL + groupName; } public String crystal() { return CRYSTAL + groupName; }
public String plate() { return PLATE + groupName; } public String plate() { return PLATE + groupName; }
public String plateTriple() { return PLATECAST + groupName; } public String plateCast() { return PLATECAST + groupName; }
public String billet() { return BILLET + groupName; } public String billet() { return BILLET + groupName; }
public String block() { return BLOCK + groupName; } public String block() { return BLOCK + groupName; }
public String ore() { return ORE + groupName; } public String ore() { return ORE + groupName; }

View File

@ -299,7 +299,7 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150);
makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200);
makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200);
makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateTriple()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateCast()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100);
makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250);
makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250);
makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300);

View File

@ -22,6 +22,7 @@ public class CompressorRecipes extends SerializableRecipe {
recipes.put(new Pair(Fluids.STEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.HOTSTEAM, 100))); recipes.put(new Pair(Fluids.STEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.HOTSTEAM, 100)));
recipes.put(new Pair(Fluids.HOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.SUPERHOTSTEAM, 100))); recipes.put(new Pair(Fluids.HOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.SUPERHOTSTEAM, 100)));
recipes.put(new Pair(Fluids.SUPERHOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.ULTRAHOTSTEAM, 100))); recipes.put(new Pair(Fluids.SUPERHOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.ULTRAHOTSTEAM, 100)));
recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(4_000, new FluidStack(Fluids.LPG, 2_000)));
} }
public static class CompressorRecipe { public static class CompressorRecipe {

View File

@ -330,6 +330,13 @@ public class AnvilRecipes {
new ComparableStack(ModItems.plate_polymer, 8) new ComparableStack(ModItems.plate_polymer, 8)
}, new AnvilOutput(new ItemStack(ModBlocks.machine_boiler))).setTier(2)); }, new AnvilOutput(new ItemStack(ModBlocks.machine_boiler))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {
new OreDictStack(STEEL.plateCast(), 8),
new OreDictStack(CU.ingot(), 8),
new OreDictStack(ANY_PLASTIC.ingot(), 4)
}, new AnvilOutput(new ItemStack(ModBlocks.machine_industrial_boiler))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.plate(), 4),

View File

@ -1573,6 +1573,8 @@ public class ModItems {
public static Item gun_b92; public static Item gun_b92;
public static Item gun_b92_ammo; public static Item gun_b92_ammo;
public static Item gun_b93; public static Item gun_b93;
public static Item gun_coilgun;
public static Item gun_coilgun_ammo;
public static Item gun_xvl1456; public static Item gun_xvl1456;
public static Item gun_xvl1456_ammo; public static Item gun_xvl1456_ammo;
public static Item gun_osipr; public static Item gun_osipr;
@ -4198,6 +4200,8 @@ public class ModItems {
gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt");
gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92");
gun_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93"); gun_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93");
gun_coilgun_ammo = new Item().setUnlocalizedName("gun_coilgun_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_coilgun_ammo");
gun_coilgun = new ItemCoilgun(GunEnergyFactory.getCoilgunConfig()).setUnlocalizedName("gun_coilgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_coilgun");
gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo");
gun_xvl1456 = new ItemGunGauss(GunGaussFactory.getXVLConfig(), GunGaussFactory.getChargedConfig()).setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456"); gun_xvl1456 = new ItemGunGauss(GunGaussFactory.getXVLConfig(), GunGaussFactory.getChargedConfig()).setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456");
gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo"); gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo");
@ -7017,6 +7021,7 @@ public class ModItems {
GameRegistry.registerItem(gun_bolt_action_green, gun_bolt_action_green.getUnlocalizedName()); GameRegistry.registerItem(gun_bolt_action_green, gun_bolt_action_green.getUnlocalizedName());
GameRegistry.registerItem(gun_bolt_action_saturnite, gun_bolt_action_saturnite.getUnlocalizedName()); GameRegistry.registerItem(gun_bolt_action_saturnite, gun_bolt_action_saturnite.getUnlocalizedName());
GameRegistry.registerItem(gun_mymy, gun_mymy.getUnlocalizedName()); GameRegistry.registerItem(gun_mymy, gun_mymy.getUnlocalizedName());
GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName());
GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName());
GameRegistry.registerItem(gun_osipr, gun_osipr.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr, gun_osipr.getUnlocalizedName());
GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName()); GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName());
@ -7072,6 +7077,7 @@ public class ModItems {
//GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName());
//GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName());
//GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName());
GameRegistry.registerItem(gun_coilgun_ammo, gun_coilgun_ammo.getUnlocalizedName());
GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName());
GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName());
GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName());

View File

@ -171,10 +171,10 @@ public class ItemAmmoHIMARS extends Item {
private void init() { private void init() {
/* STANDARD ROCKETS */ /* STANDARD ROCKETS */
this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); }}; this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); }};
this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.slag, 1); }}; this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.block_slag, 1); }};
this.itemTypes[SMALL_LAVA] = new HIMARSRocket("standard_lava", "himars_standard_lava", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.volcanic_lava_block, 0); }}; this.itemTypes[SMALL_LAVA] = new HIMARSRocket("standard_lava", "himars_standard_lava", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.volcanic_lava_block, 0); }};
this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.slag, 1); }}; this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.block_slag, 1); }};
this.itemTypes[SMALL_MINI_NUKE] = new HIMARSRocket("standard_mini_nuke", "himars_standard_mini_nuke", 0) { this.itemTypes[SMALL_MINI_NUKE] = new HIMARSRocket("standard_mini_nuke", "himars_standard_mini_nuke", 0) {
public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) {

View File

@ -0,0 +1,41 @@
package com.hbm.items.weapon;
import com.hbm.handler.GunConfiguration;
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 cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.item.ItemStack;
public class ItemCoilgun extends ItemGunBase {
public ItemCoilgun(GunConfiguration config) {
super(config);
}
@Override
@SideOnly(Side.CLIENT)
public BusAnimation getAnimation(ItemStack stack, AnimType type) {
if(type == AnimType.CYCLE) {
return new BusAnimation()
.addBus("RECOIL", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)));
}
if(type == AnimType.RELOAD) {
return new BusAnimation()
.addBus("RELOAD", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 250))
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 500))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)));
}
GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig;
return config.animations.get(type);
}
}

View File

@ -1,5 +1,7 @@
package com.hbm.items.weapon; package com.hbm.items.weapon;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.world.World; import net.minecraft.world.World;
public class ItemGrenadeKyiv extends ItemGenericGrenade { public class ItemGrenadeKyiv extends ItemGenericGrenade {
@ -8,7 +10,8 @@ public class ItemGrenadeKyiv extends ItemGenericGrenade {
super(fuse); super(fuse);
} }
public void explode(World world, double x, double y, double z) { @Override
world.newExplosion(null, x, y, z, 5F, true, true); public void explode(Entity grenade, EntityLivingBase thrower, World world, double x, double y, double z) {
world.newExplosion(grenade, x, y, z, 5F, true, true);
} }
} }

View File

@ -95,6 +95,8 @@ public class HbmCollection {
COMBINE, COMBINE,
/**Cube 2: Sauerbraten**/ /**Cube 2: Sauerbraten**/
CUBE, CUBE,
/**Deep Rock Galactic**/
DRG,
/**Enzinger Union**/ /**Enzinger Union**/
ENZINGER, ENZINGER,
/**Equestria Missile Systems**/ /**Equestria Missile Systems**/

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings { public class RefStrings {
public static final String MODID = "hbm"; public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod"; public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (4648)"; public static final String VERSION = "1.0.27 BETA (4655)";
//HBM's Beta Naming Convention: //HBM's Beta Naming Convention:
//V T (X) //V T (X)
//V -> next release version //V -> next release version

View File

@ -521,6 +521,7 @@ public class ClientProxy extends ServerProxy {
MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun());
//multitool //multitool
MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool());
MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool());
@ -1177,6 +1178,10 @@ public class ClientProxy extends ServerProxy {
fx = new net.minecraft.client.particle.EntityReddustFX(world, x, y, z, 0.01F, 0.5F, 0.1F); fx = new net.minecraft.client.particle.EntityReddustFX(world, x, y, z, 0.01F, 0.5F, 0.1F);
} }
if("fireworks".equals(data.getString("mode"))) {
fx = new EntityFireworkSparkFX(world, x, y, z, 0, 0, 0, Minecraft.getMinecraft().effectRenderer);
}
if("largeexplode".equals(data.getString("mode"))) { if("largeexplode".equals(data.getString("mode"))) {

View File

@ -377,7 +377,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() });
addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 });
addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateTriple(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel });
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() });
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_tank), 1), new Object[] { "CGC", "GGG", "CGC", 'C', CMB.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_tank), 1), new Object[] { "CGC", "GGG", "CGC", 'C', CMB.plate(), 'G', KEY_ANYPANE });
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_scaffold), 1), new Object[] { "IPI", "P P", "IPI", 'I', W.ingot(), 'P', getReflector() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_scaffold), 1), new Object[] { "IPI", "P P", "IPI", 'I', W.ingot(), 'P', getReflector() });
@ -792,7 +792,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium });
addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater });
addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_schrabidium, 'B', ANY_RESISTANTALLOY.plateTriple(), 'H', ModBlocks.watz_cooler }); addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_schrabidium, 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler });
addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch });
addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse });
addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() }); addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() });
@ -839,6 +839,8 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.hadron_analysis, 1), new Object[] { "IPI", "PCP", "IPI", 'I', TI.ingot(), 'P', getReflector(), 'C', ModItems.circuit_gold }); addRecipeAuto(new ItemStack(ModBlocks.hadron_analysis, 1), new Object[] { "IPI", "PCP", "IPI", 'I', TI.ingot(), 'P', getReflector(), 'C', ModItems.circuit_gold });
addShapelessAuto(new ItemStack(ModBlocks.hadron_analysis_glass, 1), new Object[] { ModBlocks.hadron_analysis, KEY_ANYGLASS }); addShapelessAuto(new ItemStack(ModBlocks.hadron_analysis_glass, 1), new Object[] { ModBlocks.hadron_analysis, KEY_ANYGLASS });
addRecipeAuto(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'R', REDSTONE.block(), 'P', ModBlocks.hadron_plating_blue }); addRecipeAuto(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'R', REDSTONE.block(), 'P', ModBlocks.hadron_plating_blue });
addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 0), new Object[] { "PCP", "CHC", "PCP", 'P', ANY_RESISTANTALLOY.plateCast(), 'C', ModItems.circuit_gold, 'H', Fluids.HELIUM4.getDict(16_000) });
addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 1), new Object[] { "PCP", "CHC", "PCP", 'P', GOLD.plateCast(), 'C', ModItems.motor_bismuth, 'H', new ItemStack(ModBlocks.hadron_cooler, 1, 0) });
addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', U.ingot(), 'P', new ItemStack(ModItems.particle_higgs).setStackDisplayName("Higgs Boson (Temporary Recipe)") }); addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', U.ingot(), 'P', new ItemStack(ModItems.particle_higgs).setStackDisplayName("Higgs Boson (Temporary Recipe)") });
addRecipeAuto(new ItemStack(ModItems.ingot_euphemium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', PU.ingot(), 'P', new ItemStack(ModItems.particle_dark).setStackDisplayName("Dark Matter (Temporary Recipe)") }); addRecipeAuto(new ItemStack(ModItems.ingot_euphemium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', PU.ingot(), 'P', new ItemStack(ModItems.particle_dark).setStackDisplayName("Dark Matter (Temporary Recipe)") });

View File

@ -749,7 +749,8 @@ public class ResourceManager {
public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asDisplayList(); //large fella should be a display list public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asDisplayList(); //large fella should be a display list
public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asDisplayList(); public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asDisplayList();
public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj"));
public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")); public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asDisplayList();
public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList();
public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj"));
@ -841,6 +842,7 @@ public class ResourceManager {
public static final ResourceLocation lunatic_sniper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lunatic_sniper.png"); public static final ResourceLocation lunatic_sniper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lunatic_sniper.png");
public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png");
public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png"); public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png");
public static final ResourceLocation coilgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/coilgun.png");
public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png");

View File

@ -83,10 +83,10 @@ public class ItemRenderBenelli implements IItemRenderer
GL11.glPopMatrix(); GL11.glPopMatrix();
break; break;
case EQUIPPED:// In hand from other's POV case EQUIPPED:// In hand from other's POV
GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(-0.0F, -0.2F, -1.28F); GL11.glTranslatef(-0.4F, 0.05F, -0.5F);
GL11.glRotated(recoil[0], 1, 0, 0); GL11.glRotated(recoil[0], 1, 0, 0);
GL11.glScaled(scale2 - scale2 * 2, scale2, scale2); GL11.glScaled(scale2 - scale2 * 2, scale2, scale2);

View File

@ -0,0 +1,100 @@
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;
public class ItemRenderWeaponCoilgun implements IItemRenderer {
@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.glEnable(GL11.GL_LIGHTING);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex);
switch(type) {
case EQUIPPED_FIRST_PERSON:
double s0 = 0.25D;
GL11.glRotated(20, 0, 0, 1);
GL11.glTranslated(0.75, 0.3, -0.5);
GL11.glRotated(-10, 0, 1, 0);
GL11.glScaled(s0, s0, s0);
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
GL11.glTranslated(-1.5 - recoil[0] * 0.5, 0, 0);
GL11.glRotated(recoil[0] * 45, 0, 0, 1);
GL11.glTranslated(1.5, 0, 0);
double[] reload = HbmAnimations.getRelevantTransformation("RELOAD");
GL11.glTranslated(-2.5, 0, 0);
GL11.glRotated(reload[0] * -45, 0, 0, 1);
GL11.glTranslated(2.5, 0, 0);
break;
case EQUIPPED:
double scale = 0.25D;
GL11.glScaled(scale, scale, scale);
GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(-80, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(1.25F, 0.5F, -1.75F);
break;
case ENTITY:
double s1 = 0.2D;
GL11.glScaled(s1, s1, s1);
break;
case INVENTORY:
double s = 3.5D;
GL11.glTranslated(6, 8, 0);
GL11.glRotated(-135, 0, 0, 1);
GL11.glScaled(s, s, -s);
break;
default: break;
}
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.coilgun.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -46,6 +46,7 @@ public class RenderBobble extends TileEntitySpecialRenderer {
public static final ResourceLocation bobble_drillgon = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/drillgon200.png"); public static final ResourceLocation bobble_drillgon = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/drillgon200.png");
public static final ResourceLocation bobble_cirno = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/cirno.png"); public static final ResourceLocation bobble_cirno = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/cirno.png");
public static final ResourceLocation bobble_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/microwave.png"); public static final ResourceLocation bobble_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/microwave.png");
public static final ResourceLocation bobble_peep = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/peep.png");
@Override @Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float intero) { public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float intero) {
@ -95,7 +96,8 @@ public class RenderBobble extends TileEntitySpecialRenderer {
case VAER: bindTexture(bobble_vaer); break; case VAER: bindTexture(bobble_vaer); break;
case NOS: bindTexture(bobble_nos); break; case NOS: bindTexture(bobble_nos); break;
case DRILLGON: bindTexture(bobble_drillgon); break; case DRILLGON: bindTexture(bobble_drillgon); break;
case MICROWAVE: bindTexture(bobble_microwave); break; case MICROWAVE: bindTexture(bobble_microwave); break;
case PEEP: bindTexture(bobble_peep); break;
default: bindTexture(ResourceManager.universal); default: bindTexture(ResourceManager.universal);
} }
@ -199,6 +201,9 @@ public class RenderBobble extends TileEntitySpecialRenderer {
case VAER: case VAER:
rotLeftArm = new double[]{0, -5, 45}; rotLeftArm = new double[]{0, -5, 45};
rotRightArm = new double[]{0, 15, 45}; rotRightArm = new double[]{0, 15, 45};
case PEEP:
rotLeftArm = new double[]{0, 0, 1};
rotRightArm = new double[]{0, 0, 1};
break; break;
} }
} }
@ -211,6 +216,8 @@ public class RenderBobble extends TileEntitySpecialRenderer {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glRotated(rotBody, 0, 1, 0); GL11.glRotated(rotBody, 0, 1, 0);
if(type == BobbleType.PEEP) bobble.renderPart("PeepTail");
GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_CULL_FACE);
String suffix = type.skinLayers ? "" : "17"; String suffix = type.skinLayers ? "" : "17";
@ -281,8 +288,8 @@ public class RenderBobble extends TileEntitySpecialRenderer {
GL11.glTranslated(0, -1.75, 0); GL11.glTranslated(0, -1.75, 0);
bobble.renderPart("Head" + suffix); bobble.renderPart("Head" + suffix);
if(type == BobbleType.VT) if(type == BobbleType.VT) bobble.renderPart("Horn");
bobble.renderPart("Horn"); if(type == BobbleType.PEEP) bobble.renderPart("PeepHat");
if(type == BobbleType.VAER) { if(type == BobbleType.VAER) {
GL11.glTranslated(0.25, 1.9, 0.075); GL11.glTranslated(0.25, 1.9, 0.075);

View File

@ -30,7 +30,7 @@ public class RenderIndustrialBoiler extends TileEntitySpecialRenderer implements
@Override @Override
public Item getItemForRenderer() { public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.machine_boiler); return Item.getItemFromBlock(ModBlocks.machine_industrial_boiler);
} }
@Override @Override
@ -38,7 +38,7 @@ public class RenderIndustrialBoiler extends TileEntitySpecialRenderer implements
return new ItemRenderBase( ) { return new ItemRenderBase( ) {
public void renderInventory() { public void renderInventory() {
GL11.glTranslated(0, -3, 0); GL11.glTranslated(0, -3, 0);
GL11.glScaled(3, 3, 3); GL11.glScaled(2.5, 2.5, 2.5);
} }
public void renderCommonWithStack(ItemStack item) { public void renderCommonWithStack(ItemStack item) {
GL11.glRotatef(90, 0F, 1F, 0F); GL11.glRotatef(90, 0F, 1F, 0F);

View File

@ -265,6 +265,7 @@ public class TileMappings {
put(TileEntitySawmill.class, "tileentity_sawmill"); put(TileEntitySawmill.class, "tileentity_sawmill");
put(TileEntityCrucible.class, "tileentity_crucible"); put(TileEntityCrucible.class, "tileentity_crucible");
put(TileEntityHeatBoiler.class, "tileentity_heat_boiler"); put(TileEntityHeatBoiler.class, "tileentity_heat_boiler");
put(TileEntityHeatBoilerIndustrial.class, "tileentity_heat_boiler_industrial");
put(TileEntityFoundryMold.class, "tileentity_foundry_mold"); put(TileEntityFoundryMold.class, "tileentity_foundry_mold");
put(TileEntityFoundryBasin.class, "tileentity_foundry_basin"); put(TileEntityFoundryBasin.class, "tileentity_foundry_basin");

View File

@ -391,11 +391,11 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs
//not the best code ever made but it works, dammit //not the best code ever made but it works, dammit
if(cl1 > 0) { if(cl1 > 0) {
if(cl1 > 15) {
coilVal *= 0.90; double mult = 2D - (cl1 - 15D) * (cl1 - 15D) / 225D;
} else { mult = Math.max(mult, 0.1D);
coilVal *= 1.25; coilVal *= mult;
}
} else if(cl0 > 0) { } else if(cl0 > 0) {
if(cl0 > 10) { if(cl0 > 10) {
coilVal *= 0.75; coilVal *= 0.75;

View File

@ -150,6 +150,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();
data.setLong("power", power); data.setLong("power", power);
data.setInteger("burnTime", burnTime);
tank.writeToNBT(data, "tank"); tank.writeToNBT(data, "tank");
this.networkPack(data, 15); this.networkPack(data, 15);
} }
@ -158,6 +159,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void networkUnpack(NBTTagCompound nbt) {
this.power = nbt.getLong("power"); this.power = nbt.getLong("power");
this.burnTime = nbt.getInteger("burnTime");
this.tank.readFromNBT(nbt, "tank"); this.tank.readFromNBT(nbt, "tank");
} }

View File

@ -1874,6 +1874,8 @@ item.gun_calamity.name=Knochensäge
item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY)
item.gun_calamity_dual.name=Sattelkanone item.gun_calamity_dual.name=Sattelkanone
item.gun_chemthrower.name=Chemowerfer item.gun_chemthrower.name=Chemowerfer
item.gun_coilgun.name=Gaußpistole
item.gun_coilgun_ammo.name=Wolframkugel
item.gun_cryolator.name=Der Cryolator item.gun_cryolator.name=Der Cryolator
item.gun_cryolator_ammo.name=Kryozelle item.gun_cryolator_ammo.name=Kryozelle
item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe
@ -3811,8 +3813,8 @@ tile.fluid_duct_gauge.desc=Rohr welches anzeight, wie viel Flüssigkeit$sich pro
tile.fluid_duct_neo.name=Universelles Flüssigkeitsrohr tile.fluid_duct_neo.name=Universelles Flüssigkeitsrohr
tile.fluid_duct_paintable.name=Geschirmtes universelles Flüssigkeitsrohr (Färbbar) tile.fluid_duct_paintable.name=Geschirmtes universelles Flüssigkeitsrohr (Färbbar)
tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr (Veraltet) tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr (Veraltet)
tile.fluid_switch.name=Ventil tile.fluid_switch.name=Redstone-Ventil
tile.fluid_valve.name=Redstone-Ventil tile.fluid_valve.name=Ventil
tile.foam_layer.name=Schaumdecke tile.foam_layer.name=Schaumdecke
tile.foundry_basin.name=Gussbecken tile.foundry_basin.name=Gussbecken
tile.foundry_channel.name=Gusskanal tile.foundry_channel.name=Gusskanal
@ -3997,6 +3999,8 @@ tile.machine_gascent.name=Gaszentrifuge
tile.machine_generator.name=Atomreaktor (Alt) tile.machine_generator.name=Atomreaktor (Alt)
tile.machine_geo.name=Geothermiegenerator tile.machine_geo.name=Geothermiegenerator
tile.machine_hephaestus.name=Geothermischer Wärmetauscher tile.machine_hephaestus.name=Geothermischer Wärmetauscher
tile.machine_industrial_boiler.name=Industrieller Boiler
tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t$Überdrucksicher
tile.machine_industrial_generator.name=Industrieller Generator tile.machine_industrial_generator.name=Industrieller Generator
tile.machine_keyforge.name=Schlossertisch tile.machine_keyforge.name=Schlossertisch
tile.machine_large_turbine.name=Industrielle Dampfturbine tile.machine_large_turbine.name=Industrielle Dampfturbine

View File

@ -1061,6 +1061,7 @@ gun.make.CERIX=Cerix Magnus
gun.make.COLT=Colt's Manufacturing Company gun.make.COLT=Colt's Manufacturing Company
gun.make.COMBINE=The Universal Union gun.make.COMBINE=The Universal Union
gun.make.CUBE=Cube 2: Sauerbraten gun.make.CUBE=Cube 2: Sauerbraten
gun.make.DRG=Deep Rock Galactic
gun.make.ENZINGER=Enzinger Union gun.make.ENZINGER=Enzinger Union
gun.make.EQUESTRIA=Equestria Missile Systems gun.make.EQUESTRIA=Equestria Missile Systems
gun.make.FLIMFLAM=FlimFlam Industries gun.make.FLIMFLAM=FlimFlam Industries
@ -2550,6 +2551,7 @@ item.gun_avenger.name=CZ57 Avenger Minigun
item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92.name=§9B92 Energy Pistol§r
item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_b92_ammo.name=§9B92 Energy Cell§r
item.gun_b93.name=§cB93 Energy Mod§r item.gun_b93.name=§cB93 Energy Mod§r
item.gun_benelli.name=Benelli Autoshotgun (Drum Mod)
item.gun_bf.name=BEL item.gun_bf.name=BEL
item.gun_bf_ammo.name=Balefire Shell item.gun_bf_ammo.name=Balefire Shell
item.gun_bio_revolver.name=Atlas item.gun_bio_revolver.name=Atlas
@ -2563,6 +2565,8 @@ item.gun_calamity.name=Buzzsaw
item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_ammo.name=.50 BMG Round (LEGACY)
item.gun_calamity_dual.name=Saddle Gun item.gun_calamity_dual.name=Saddle Gun
item.gun_chemthrower.name=Chemthrower item.gun_chemthrower.name=Chemthrower
item.gun_coilgun.name=Coilgun
item.gun_coilgun_ammo.name=Coilgun Tungsten Ball
item.gun_cryolator.name=The Cryolator item.gun_cryolator.name=The Cryolator
item.gun_cryolator_ammo.name=Cryo Cell item.gun_cryolator_ammo.name=Cryo Cell
item.gun_dampfmaschine.name=Totally Not a Joke Weapon item.gun_dampfmaschine.name=Totally Not a Joke Weapon
@ -4686,8 +4690,8 @@ tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the ne
tile.fluid_duct_neo.name=Universal Fluid Duct tile.fluid_duct_neo.name=Universal Fluid Duct
tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct
tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated)
tile.fluid_switch.name=Fluid Valve tile.fluid_switch.name=Redstone Fluid Valve
tile.fluid_valve.name=Redstone Fluid Valve tile.fluid_valve.name=Fluid Valve
tile.foam_layer.name=Foam layer tile.foam_layer.name=Foam layer
tile.foundry_basin.name=Foundry Basin tile.foundry_basin.name=Foundry Basin
tile.foundry_channel.name=Foundry Channel tile.foundry_channel.name=Foundry Channel
@ -4762,7 +4766,7 @@ tile.hadron_coil_starmetal.name=Dense Starmetal Coil
tile.hadron_cooler.name=Particle Accelerator Cooling Unit tile.hadron_cooler.name=Particle Accelerator Cooling Unit
tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%%
tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special
tile.hadron_cooler_mk2.desc=Cooling power: 5$Overcooling threshold: 15$Cooling bonus: +25%%$Overcooling penalty: -10%% tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%%
tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_core.name=Particle Accelerator Core Component
tile.hadron_diode.name=Schottky Particle Diode tile.hadron_diode.name=Schottky Particle Diode
tile.hadron_plating.name=Particle Accelerator Plating tile.hadron_plating.name=Particle Accelerator Plating
@ -4874,6 +4878,8 @@ tile.machine_gascent.name=Gas Centrifuge
tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_generator.name=Nuclear Reactor (Old)
tile.machine_geo.name=Geothermal Electric Generator tile.machine_geo.name=Geothermal Electric Generator
tile.machine_hephaestus.name=Geothermal Heat Exchanger tile.machine_hephaestus.name=Geothermal Heat Exchanger
tile.machine_industrial_boiler.name=Industrial Boiler
tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode
tile.machine_industrial_generator.name=Industrial Generator tile.machine_industrial_generator.name=Industrial Generator
tile.machine_keyforge.name=Locksmith Table tile.machine_keyforge.name=Locksmith Table
tile.machine_large_turbine.name=Industrial Steam Turbine tile.machine_large_turbine.name=Industrial Steam Turbine

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -178,6 +178,8 @@
"weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]}, "weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]},
"weapon.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]}, "weapon.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]},
"weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]}, "weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]},
"weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]},
"weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]},
"weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]},

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB