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
* A slightly taller variant of the boiler with higher capacity
* 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
* 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
* 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 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
* Due to the ore dictionary ability of the counter, buffered items can precisely match the requirements of the recipe
* Particle collider cooling unit
@ -14,22 +17,35 @@
* 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
* 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
* Automatic 12 gauge shotgun with a drum mag
* Coilgun
* A single-shot gauss pistol that fires tungsten balls
* Shots penetrate blocks
## Changed
* The regular boiler now only holds 16k instead of 64k (which is still a lot)
* 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
* 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
* The saturnite rifle now has a functional scope
* 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 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 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
# Empty build number makes a release type
mod_build_number=4648
mod_build_number=4655
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
\ 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_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_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_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 {
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
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);
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),
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),
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),
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),
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),
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),
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),
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),
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),
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),
CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK),
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 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) {
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, 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 + 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 + 4, z - dir.offsetZ);
}
@Override

View File

@ -10,9 +10,9 @@ import com.hbm.util.I18nUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
@ -30,8 +30,8 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay {
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off");
this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off");
}
@Override
@ -44,29 +44,30 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityFluidValve();
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
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);
}
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
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);
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.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
@ -30,8 +30,8 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay {
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off");
this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off");
}
@Override
@ -44,30 +44,30 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityFluidValve();
}
@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);
int meta = world.getBlockMetadata(x, y, z);
if(world.isRemote) return true;
boolean update = false;
if(super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ)) return true;
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) {
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);
}
TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z);
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_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_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
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
if(this.rand.nextInt(chance) == 0 && amount > 1) {
breakOffArmor();
amount = 0;
amount *= 0.25F;
}
amount -= getDamageThreshold();

View File

@ -511,16 +511,18 @@ public class EntityBulletBase extends Entity implements IProjectile {
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();
nbt.setString("type", "vanillaExt");
nbt.setString("mode", config.vPFX);
nbt.setDouble("posX", (this.lastTickPosX - this.posX) * d + this.posX);
nbt.setDouble("posY", (this.lastTickPosY - this.posY) * d + this.posY);
nbt.setDouble("posZ", (this.lastTickPosZ - this.posZ) * d + this.posZ);
nbt.setDouble("posX", this.posX - vec.xCoord * d);
nbt.setDouble("posY", this.posY - vec.yCoord * d);
nbt.setDouble("posZ", this.posZ - vec.zCoord * d);
MainRegistry.proxy.effectNT(nbt);
}
}

View File

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

View File

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

View File

@ -180,6 +180,34 @@ public class GunEnergyFactory {
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() {
GunConfiguration config = new GunConfiguration();
@ -221,6 +249,31 @@ public class GunEnergyFactory {
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() {
BulletConfiguration bullet = new BulletConfiguration();

View File

@ -884,7 +884,7 @@ public class OreDictManager {
public String gem() { return GEM + groupName; }
public String crystal() { return CRYSTAL + 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 block() { return BLOCK + 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.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_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_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);

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.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.PETROLEUM, 0), new CompressorRecipe(4_000, new FluidStack(Fluids.LPG, 2_000)));
}
public static class CompressorRecipe {

View File

@ -330,6 +330,13 @@ public class AnvilRecipes {
new ComparableStack(ModItems.plate_polymer, 8)
}, 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(
new AStack[] {
new OreDictStack(STEEL.plate(), 4),

View File

@ -1573,6 +1573,8 @@ public class ModItems {
public static Item gun_b92;
public static Item gun_b92_ammo;
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_ammo;
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 = 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_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 = 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");
@ -7017,6 +7021,7 @@ public class ModItems {
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_mymy, gun_mymy.getUnlocalizedName());
GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName());
GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName());
GameRegistry.registerItem(gun_osipr, gun_osipr.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_lever_action_ammo, gun_lever_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_osipr_ammo, gun_osipr_ammo.getUnlocalizedName());
GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName());

View File

@ -171,10 +171,10 @@ public class ItemAmmoHIMARS extends Item {
private void init() {
/* 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_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] = 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.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[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) {
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;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.world.World;
public class ItemGrenadeKyiv extends ItemGenericGrenade {
@ -8,7 +10,8 @@ public class ItemGrenadeKyiv extends ItemGenericGrenade {
super(fuse);
}
public void explode(World world, double x, double y, double z) {
world.newExplosion(null, x, y, z, 5F, true, true);
@Override
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,
/**Cube 2: Sauerbraten**/
CUBE,
/**Deep Rock Galactic**/
DRG,
/**Enzinger Union**/
ENZINGER,
/**Equestria Missile Systems**/

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (4648)";
public static final String VERSION = "1.0.27 BETA (4655)";
//HBM's Beta Naming Convention:
//V T (X)
//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_lunatic_marksman, new ItemRenderLunaticSniper());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun());
//multitool
MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, 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);
}
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"))) {

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

View File

@ -83,10 +83,10 @@ public class ItemRenderBenelli implements IItemRenderer
GL11.glPopMatrix();
break;
case EQUIPPED:// In hand from other's POV
GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(-0.0F, -0.2F, -1.28F);
GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(-0.4F, 0.05F, -0.5F);
GL11.glRotated(recoil[0], 1, 0, 0);
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_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_peep = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/peep.png");
@Override
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 NOS: bindTexture(bobble_nos); 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);
}
@ -199,6 +201,9 @@ public class RenderBobble extends TileEntitySpecialRenderer {
case VAER:
rotLeftArm = new double[]{0, -5, 45};
rotRightArm = new double[]{0, 15, 45};
case PEEP:
rotLeftArm = new double[]{0, 0, 1};
rotRightArm = new double[]{0, 0, 1};
break;
}
}
@ -211,6 +216,8 @@ public class RenderBobble extends TileEntitySpecialRenderer {
GL11.glPushMatrix();
GL11.glRotated(rotBody, 0, 1, 0);
if(type == BobbleType.PEEP) bobble.renderPart("PeepTail");
GL11.glDisable(GL11.GL_CULL_FACE);
String suffix = type.skinLayers ? "" : "17";
@ -280,9 +287,9 @@ public class RenderBobble extends TileEntitySpecialRenderer {
GL11.glTranslated(0, -1.75, 0);
bobble.renderPart("Head" + suffix);
if(type == BobbleType.VT)
bobble.renderPart("Horn");
if(type == BobbleType.VT) bobble.renderPart("Horn");
if(type == BobbleType.PEEP) bobble.renderPart("PeepHat");
if(type == BobbleType.VAER) {
GL11.glTranslated(0.25, 1.9, 0.075);

View File

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

View File

@ -265,6 +265,7 @@ public class TileMappings {
put(TileEntitySawmill.class, "tileentity_sawmill");
put(TileEntityCrucible.class, "tileentity_crucible");
put(TileEntityHeatBoiler.class, "tileentity_heat_boiler");
put(TileEntityHeatBoilerIndustrial.class, "tileentity_heat_boiler_industrial");
put(TileEntityFoundryMold.class, "tileentity_foundry_mold");
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
if(cl1 > 0) {
if(cl1 > 15) {
coilVal *= 0.90;
} else {
coilVal *= 1.25;
}
double mult = 2D - (cl1 - 15D) * (cl1 - 15D) / 225D;
mult = Math.max(mult, 0.1D);
coilVal *= mult;
} else if(cl0 > 0) {
if(cl0 > 10) {
coilVal *= 0.75;

View File

@ -150,6 +150,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements
NBTTagCompound data = new NBTTagCompound();
data.setLong("power", power);
data.setInteger("burnTime", burnTime);
tank.writeToNBT(data, "tank");
this.networkPack(data, 15);
}
@ -158,6 +159,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements
@Override
public void networkUnpack(NBTTagCompound nbt) {
this.power = nbt.getLong("power");
this.burnTime = nbt.getInteger("burnTime");
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_dual.name=Sattelkanone
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_ammo.name=Kryozelle
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_paintable.name=Geschirmtes universelles Flüssigkeitsrohr (Färbbar)
tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr (Veraltet)
tile.fluid_switch.name=Ventil
tile.fluid_valve.name=Redstone-Ventil
tile.fluid_switch.name=Redstone-Ventil
tile.fluid_valve.name=Ventil
tile.foam_layer.name=Schaumdecke
tile.foundry_basin.name=Gussbecken
tile.foundry_channel.name=Gusskanal
@ -3997,6 +3999,8 @@ tile.machine_gascent.name=Gaszentrifuge
tile.machine_generator.name=Atomreaktor (Alt)
tile.machine_geo.name=Geothermiegenerator
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_keyforge.name=Schlossertisch
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.COMBINE=The Universal Union
gun.make.CUBE=Cube 2: Sauerbraten
gun.make.DRG=Deep Rock Galactic
gun.make.ENZINGER=Enzinger Union
gun.make.EQUESTRIA=Equestria Missile Systems
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_ammo.name=§9B92 Energy Cell§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_ammo.name=Balefire Shell
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_dual.name=Saddle Gun
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_ammo.name=Cryo Cell
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_paintable.name=Paintable Coated Universal Fluid Duct
tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated)
tile.fluid_switch.name=Fluid Valve
tile.fluid_valve.name=Redstone Fluid Valve
tile.fluid_switch.name=Redstone Fluid Valve
tile.fluid_valve.name=Fluid Valve
tile.foam_layer.name=Foam layer
tile.foundry_basin.name=Foundry Basin
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.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.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_diode.name=Schottky Particle Diode
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_geo.name=Geothermal Electric Generator
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_keyforge.name=Locksmith Table
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.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "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}]},

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