fixed fence renderer and tau cannon alt, added shrapnel buckshot

This commit is contained in:
HbmMods 2020-04-13 00:27:09 +02:00
parent a07172d2ec
commit 08e95f651a
25 changed files with 248 additions and 84 deletions

View File

@ -43,6 +43,8 @@ achievement.oil=Petroleum
achievement.oil.desc=Bobmazon Level 4 (Elektrischer Boiler)
achievement.nuclear=Atomwissenschaft
achievement.nuclear.desc=Bobmazon Level 5 (Urankernbrennstoff)
achievement.hidden=Versteckter Katalog
achievement.hidden.desc=Töte einen Enderman mit einem fallenden Güterwagon wärend du brennst und mehr als 250 RADs hast.
potion.hbm_taint=Verdorben
potion.hbm_mutation=Verdorbenes Herz
@ -187,7 +189,7 @@ death.attack.blackhole=%1$s wurde spaghettifiziert.
death.attack.blender=%1$s wurde in kleine, mundgerechte Stücke geschnitten.
death.attack.meteorite=%1$s wurde von einem fallenden Stein aus dem Weltall erschlagen.
death.attack.boxcar=%1$s wurde von einem fallenden Güterwagon zermatscht. Autsch!
death.attack.boat=%1$s wurde von Schiff getroffen.
death.attack.boat=%1$s wurde von Schiff erschlagen.
death.attack.broadcast=%1$s wurde das Gehirn geschmolzen.
death.attack.ams=%1$s wurde in tödlichen Teilchen gebadet, die von der Menschheit erst benannt werden müssen.
death.attack.amsCore=%1$s wurde vom Feuer einer Singularität verdampft.
@ -2033,6 +2035,12 @@ tile.block_meteor_broken.name=Gebrochener Meteoritenblock
tile.block_meteor_cobble.name=Meteoritenpflasterstein
tile.block_meteor_molten.name=Heißer Meteoritenpflasterstein
tile.block_meteor_treasure.name=Meteoritenschatz
tile.meteor_polished.name=Polierter Meteoritenblock
tile.meteor_brick.name=Meteoritenziegel
tile.meteor_brick_mossy.name=Bemooster Meteoritenziegel
tile.meteor_brick_cracked.name=Rissiger Meteoritenziegel
tile.meteor_brick_chiseled.name=Gemeißelter Meteoritenziegel
tile.meteor_pillar.name=Meteoritensäule
item.cape_radiation.name=Cape (Radioaktiv)
item.cape_gasmask.name=Cape (Gasmaske)
@ -2310,7 +2318,7 @@ item.letter.name=Eilbrief
item.polaroid.name=Das Polaroid
item.glitch.name=Glitch
item.book_secret.name=3-596-50802-9
item.book_of_.name=Das Buch der Güterwaggons
item.book_of_.name=Das Buch der Güterwagons
item.burnt_bark.name=Verbrannte Rinde
item.loot_10.name=Größe 10 Raketen-Lootbox

View File

@ -43,6 +43,8 @@ achievement.oil=Petroleum
achievement.oil.desc=Bobmazon Level 4 (Electric Boiler)
achievement.nuclear=Atomic Science
achievement.nuclear.desc=Bobmazon Level 5 (Uranium Fuel)
achievement.hidden=Hidden Catalog
achievement.hidden.desc=Kill an enderman with a falling boxcar while being on fire and having more than 250 RADs.
potion.hbm_taint=Tainted
potion.hbm_mutation=Tainted Heart
@ -2033,6 +2035,12 @@ tile.block_meteor_broken.name=Broken Meteorite Block
tile.block_meteor_cobble.name=Meteorite Cobblestone
tile.block_meteor_molten.name=Hot Meteorite Cobblestone
tile.block_meteor_treasure.name=Meteorite Treasure Block
tile.meteor_polished.name=Polished Meteor Block
tile.meteor_brick.name=Meteor Brick
tile.meteor_brick_mossy.name=Mossy Meteor Brick
tile.meteor_brick_cracked.name=Cracked Meteor Brick
tile.meteor_brick_chiseled.name=Chiseled Meteor Brick
tile.meteor_pillar.name=Meteor Pillar
item.cape_radiation.name=Cape (Radiation)
item.cape_gasmask.name=Cape (Gas Mask)

View File

@ -163,6 +163,6 @@
"alarm.nostromoSiren": {"category": "record", "sounds": [{"name": "alarm/nostromoSiren", "stream": false}]},
"alarm.easAlarm": {"category": "record", "sounds": [{"name": "alarm/easAlarm", "stream": false}]},
"alarm.airRaid": {"category": "record", "sounds": [{"name": "alarm/airRaid", "stream": true}]},
"alarm.classic": {"category": "record", "sounds": [{"name": "alarm/classicSiren", "stream": true}]},
"alarm.classic": {"category": "record", "sounds": [{"name": "alarm/classicSiren", "stream": false}]},
"alarm.gambit": {"category": "record", "sounds": [{"name": "alarm/gambit", "stream": true}]}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

View File

@ -46,6 +46,7 @@ public class EntityBulletBase extends Entity implements IProjectile {
private BulletConfiguration config;
private EntityLivingBase shooter;
public float overrideDamage;
public EntityBulletBase(World world) {
super(world);
@ -224,6 +225,9 @@ public class EntityBulletBase extends Entity implements IProjectile {
float damage = rand.nextFloat() * (config.dmgMax - config.dmgMin) + config.dmgMin;
if(overrideDamage != 0)
damage = overrideDamage;
if(!victim.attackEntityFrom(damagesource, damage)) {
try {
@ -553,6 +557,8 @@ public class EntityBulletBase extends Entity implements IProjectile {
return;
}
this.overrideDamage = nbt.getFloat("damage");
this.dataWatcher.updateObject(18, cfg);
this.dataWatcher.updateObject(16, (byte)this.config.style);
@ -563,6 +569,8 @@ public class EntityBulletBase extends Entity implements IProjectile {
protected void writeEntityToNBT(NBTTagCompound nbt) {
nbt.setInteger("config", dataWatcher.getWatchableObjectInt(18));
nbt.setFloat("damage", this.overrideDamage);
}
}

View File

@ -53,7 +53,7 @@ public class EntityDuchessGambit extends EntityThrowable {
AxisAlignedBB.getBoundingBox(posX - 5, posY - 2, posZ - 9, posX + 5, posY + 2, posZ + 9));
for(Entity e : list) {
e.attackEntityFrom(ModDamageSource.boxcar, 1000);
e.attackEntityFrom(ModDamageSource.boat, 1000);
}
if(!worldObj.isRemote) {

View File

@ -158,44 +158,46 @@ public class BobmazonOfferFactory {
tools.add(new Offer(new ItemStack(ModItems.hazmat_red_kit), Requirement.CHEMICS, 100 * inflation));
tools.add(new Offer(new ItemStack(ModItems.hazmat_grey_kit), Requirement.OIL, 160 * inflation));
special.add(new Offer(new ItemStack(ModItems.nuke_starter_kit), Requirement.STEEL, 20));
special.add(new Offer(new ItemStack(ModItems.nuke_advanced_kit), Requirement.STEEL, 30));
special.add(new Offer(new ItemStack(ModItems.boy_kit), Requirement.STEEL, 35));
special.add(new Offer(new ItemStack(ModItems.missile_kit), Requirement.STEEL, 60));
special.add(new Offer(new ItemStack(ModItems.grenade_kit), Requirement.STEEL, 20));
special.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModItems.ammo_20gauge, 24), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModItems.ammo_20gauge_incendiary, 24), Requirement.STEEL, 7));
special.add(new Offer(new ItemStack(ModItems.gun_uzi_silencer, 1), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModItems.ammo_22lr, 64), Requirement.STEEL, 3));
special.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap, 64), Requirement.STEEL, 4));
special.add(new Offer(new ItemStack(ModItems.gun_hk69, 24), Requirement.STEEL, 8));
special.add(new Offer(new ItemStack(ModItems.ammo_grenade, 6), Requirement.STEEL, 4));
special.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek, 6), Requirement.STEEL, 6));
special.add(new Offer(new ItemStack(ModItems.gun_kit_1, 10), Requirement.STEEL, 1));
special.add(new Offer(new ItemStack(ModItems.gun_kit_2, 5), Requirement.STEEL, 3));
special.add(new Offer(new ItemStack(ModBlocks.machine_epress, 2), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_assembler, 1), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_chemplant, 1), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off, 1), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_well, 1), Requirement.STEEL, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_refinery, 1), Requirement.STEEL, 8));
special.add(new Offer(new ItemStack(ModBlocks.machine_fluidtank, 4), Requirement.STEEL, 3));
special.add(new Offer(new ItemStack(ModBlocks.barrel_antimatter, 4), Requirement.STEEL, 3));
special.add(new Offer(new ItemStack(ModItems.ingot_steel, 64), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_copper, 64), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_red_copper, 64), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_titanium, 64), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_tungsten, 64), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModBlocks.struct_launcher_core, 1), Requirement.STEEL, 3));
special.add(new Offer(new ItemStack(ModBlocks.struct_launcher_core_large, 1), Requirement.STEEL, 3));
special.add(new Offer(new ItemStack(ModBlocks.struct_launcher, 40), Requirement.STEEL, 7));
special.add(new Offer(new ItemStack(ModBlocks.struct_scaffold, 11), Requirement.STEEL, 7));
special.add(new Offer(new ItemStack(ModItems.loot_10, 1), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModItems.loot_15, 1), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModItems.loot_misc, 1), Requirement.STEEL, 2));
special.add(new Offer(new ItemStack(ModBlocks.crate_can, 1), Requirement.STEEL, 1));
special.add(new Offer(new ItemStack(ModBlocks.crate_ammo, 1), Requirement.STEEL, 15));
special.add(new Offer(new ItemStack(ModItems.nuke_starter_kit), Requirement.HIDDEN, 20));
special.add(new Offer(new ItemStack(ModItems.nuke_advanced_kit), Requirement.HIDDEN, 30));
special.add(new Offer(new ItemStack(ModItems.boy_kit), Requirement.HIDDEN, 35));
special.add(new Offer(new ItemStack(ModItems.missile_kit), Requirement.HIDDEN, 60));
special.add(new Offer(new ItemStack(ModItems.grenade_kit), Requirement.HIDDEN, 20));
special.add(new Offer(new ItemStack(ModItems.jetpack_vector), Requirement.HIDDEN, 10));
special.add(new Offer(new ItemStack(ModItems.jetpack_tank), Requirement.HIDDEN, 3));
special.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModItems.ammo_20gauge, 24), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModItems.ammo_20gauge_incendiary, 24), Requirement.HIDDEN, 7));
special.add(new Offer(new ItemStack(ModItems.gun_uzi_silencer, 1), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModItems.ammo_22lr, 64), Requirement.HIDDEN, 3));
special.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap, 64), Requirement.HIDDEN, 4));
special.add(new Offer(new ItemStack(ModItems.gun_hk69, 24), Requirement.HIDDEN, 8));
special.add(new Offer(new ItemStack(ModItems.ammo_grenade, 6), Requirement.HIDDEN, 4));
special.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek, 6), Requirement.HIDDEN, 6));
special.add(new Offer(new ItemStack(ModItems.gun_kit_1, 10), Requirement.HIDDEN, 1));
special.add(new Offer(new ItemStack(ModItems.gun_kit_2, 5), Requirement.HIDDEN, 3));
special.add(new Offer(new ItemStack(ModBlocks.machine_epress, 2), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_assembler, 1), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_chemplant, 1), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off, 1), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_well, 1), Requirement.HIDDEN, 5));
special.add(new Offer(new ItemStack(ModBlocks.machine_refinery, 1), Requirement.HIDDEN, 8));
special.add(new Offer(new ItemStack(ModBlocks.machine_fluidtank, 4), Requirement.HIDDEN, 3));
special.add(new Offer(new ItemStack(ModBlocks.barrel_antimatter, 4), Requirement.HIDDEN, 3));
special.add(new Offer(new ItemStack(ModItems.ingot_steel, 64), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_copper, 64), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_red_copper, 64), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_titanium, 64), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModItems.ingot_tungsten, 64), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModBlocks.struct_launcher_core, 1), Requirement.HIDDEN, 3));
special.add(new Offer(new ItemStack(ModBlocks.struct_launcher_core_large, 1), Requirement.HIDDEN, 3));
special.add(new Offer(new ItemStack(ModBlocks.struct_launcher, 40), Requirement.HIDDEN, 7));
special.add(new Offer(new ItemStack(ModBlocks.struct_scaffold, 11), Requirement.HIDDEN, 7));
special.add(new Offer(new ItemStack(ModItems.loot_10, 1), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModItems.loot_15, 1), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModItems.loot_misc, 1), Requirement.HIDDEN, 2));
special.add(new Offer(new ItemStack(ModBlocks.crate_can, 1), Requirement.HIDDEN, 1));
special.add(new Offer(new ItemStack(ModBlocks.crate_ammo, 1), Requirement.HIDDEN, 15));
}
public static List<Offer> getOffers(ItemStack stack) {

View File

@ -41,6 +41,7 @@ public class BulletConfigSyncingUtil {
public static int G20_SLUG = i++;
public static int G20_FLECHETTE = i++;
public static int G20_FIRE = i++;
public static int G20_SHRAPNEL = i++;
public static int G20_EXPLOSIVE = i++;
public static int G20_CAUSTIC = i++;
public static int G20_SHOCK = i++;
@ -68,6 +69,7 @@ public class BulletConfigSyncingUtil {
public static int G12_NORMAL = i++;
public static int G12_INCENDIARY = i++;
public static int G12_SHRAPNEL = i++;
public static int LR22_NORMAL = i++;
public static int LR22_AP = i++;
@ -112,6 +114,7 @@ public class BulletConfigSyncingUtil {
public static int SPECIAL_GAUSS_CHARGED = i++;
public static int G20_NORMAL_FIRE = i++;
public static int G20_SHRAPNEL_FIRE = i++;
public static int G20_SLUG_FIRE = i++;
public static int G20_FLECHETTE_FIRE = i++;
public static int G20_EXPLOSIVE_FIRE = i++;
@ -143,6 +146,7 @@ public class BulletConfigSyncingUtil {
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeSlugConfig(), G20_SLUG));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeFlechetteConfig(), G20_FLECHETTE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeFireConfig(), G20_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeShrapnelConfig(), G20_SHRAPNEL));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeExplosiveConfig(), G20_EXPLOSIVE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeCausticConfig(), G20_CAUSTIC));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeShockConfig(), G20_SHOCK));
@ -170,6 +174,7 @@ public class BulletConfigSyncingUtil {
configSet.add(new ConfigKeyPair(Gun12GaugeFactory.get12GaugeConfig(), G12_NORMAL));
configSet.add(new ConfigKeyPair(Gun12GaugeFactory.get12GaugeFireConfig(), G12_INCENDIARY));
configSet.add(new ConfigKeyPair(Gun12GaugeFactory.get12GaugeShrapnelConfig(), G12_SHRAPNEL));
configSet.add(new ConfigKeyPair(Gun22LRFactory.get22LRConfig(), LR22_NORMAL));
configSet.add(new ConfigKeyPair(Gun22LRFactory.get22LRAPConfig(), LR22_AP));
@ -214,6 +219,7 @@ public class BulletConfigSyncingUtil {
configSet.add(new ConfigKeyPair(GunGaussFactory.getAltConfig(), SPECIAL_GAUSS_CHARGED));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeConfig().setToFire(3), G20_NORMAL_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeShrapnelConfig().setToFire(3), G20_SHRAPNEL_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeSlugConfig().setToFire(3), G20_SLUG_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeFlechetteConfig().setToFire(3), G20_FLECHETTE_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeExplosiveConfig().setToFire(3), G20_EXPLOSIVE_FIRE));

View File

@ -38,6 +38,7 @@ public class Gun12GaugeFactory {
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.G12_NORMAL);
config.config.add(BulletConfigSyncingUtil.G12_INCENDIARY);
config.config.add(BulletConfigSyncingUtil.G12_SHRAPNEL);
return config;
}
@ -65,5 +66,20 @@ public class Gun12GaugeFactory {
return bullet;
}
public static BulletConfiguration get12GaugeShrapnelConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig();
bullet.ammo = ModItems.ammo_12gauge_shrapnel;
bullet.wear = 15;
bullet.dmgMin = 2;
bullet.dmgMax = 6;
bullet.ricochetAngle = 15;
bullet.HBRC = 80;
bullet.LBRC = 95;
return bullet;
}
}

View File

@ -38,6 +38,7 @@ public class Gun20GaugeFactory {
config.config.add(BulletConfigSyncingUtil.G20_SLUG);
config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE);
config.config.add(BulletConfigSyncingUtil.G20_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL);
config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE);
config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC);
config.config.add(BulletConfigSyncingUtil.G20_SHOCK);
@ -63,6 +64,7 @@ public class Gun20GaugeFactory {
config.config.add(BulletConfigSyncingUtil.G20_SLUG);
config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE);
config.config.add(BulletConfigSyncingUtil.G20_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL);
config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE);
config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC);
config.config.add(BulletConfigSyncingUtil.G20_SHOCK);
@ -88,6 +90,7 @@ public class Gun20GaugeFactory {
config.config.add(BulletConfigSyncingUtil.G20_SLUG);
config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE);
config.config.add(BulletConfigSyncingUtil.G20_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL);
config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE);
config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC);
config.config.add(BulletConfigSyncingUtil.G20_SHOCK);
@ -114,6 +117,7 @@ public class Gun20GaugeFactory {
config.config.add(BulletConfigSyncingUtil.G20_NORMAL);
config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE);
config.config.add(BulletConfigSyncingUtil.G20_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL);
config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE);
config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC);
config.config.add(BulletConfigSyncingUtil.G20_SHOCK);
@ -140,6 +144,7 @@ public class Gun20GaugeFactory {
config.config.add(BulletConfigSyncingUtil.G20_NORMAL);
config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE);
config.config.add(BulletConfigSyncingUtil.G20_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL);
config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE);
config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC);
config.config.add(BulletConfigSyncingUtil.G20_SHOCK);
@ -166,6 +171,7 @@ public class Gun20GaugeFactory {
config.config.add(BulletConfigSyncingUtil.G20_NORMAL_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL);
config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHOCK_FIRE);
@ -226,6 +232,21 @@ public class Gun20GaugeFactory {
return bullet;
}
public static BulletConfiguration get20GaugeShrapnelConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig();
bullet.ammo = ModItems.ammo_20gauge_shrapnel;
bullet.wear = 15;
bullet.dmgMin = 2;
bullet.dmgMax = 6;
bullet.ricochetAngle = 15;
bullet.HBRC = 80;
bullet.LBRC = 95;
return bullet;
}
public static BulletConfiguration get20GaugeExplosiveConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig();

View File

@ -177,6 +177,7 @@ public class Gun357MagnumFactory {
config.durability = 4000;
config.firingSound = "hbm:weapon.schrabidiumShoot";
config.crosshair = Crosshair.NONE;
config.name = "FFI Viper N2";
config.manufacturer = "FlimFlam Industries";

View File

@ -55,6 +55,9 @@ public class GunGaussFactory {
config.allowsInfinity = true;
config.crosshair = Crosshair.L_ARROWS;
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.SPECIAL_GAUSS_CHARGED);
return config;
}

View File

@ -283,7 +283,8 @@ public class GUIScreenBobmazon extends GuiScreen {
ASSEMBLY(MainRegistry.bobAssembly),
CHEMICS(MainRegistry.bobChemistry),
OIL(MainRegistry.bobOil),
NUCLEAR(MainRegistry.bobNuclear);
NUCLEAR(MainRegistry.bobNuclear),
HIDDEN(MainRegistry.bobHidden);
private Requirement(Achievement achievement) {
this.achievement = achievement;

View File

@ -1037,10 +1037,12 @@ public class ModItems {
public static Item ammo_12gauge;
public static Item ammo_12gauge_incendiary;
public static Item ammo_12gauge_shrapnel;
public static Item ammo_20gauge;
public static Item ammo_20gauge_slug;
public static Item ammo_20gauge_flechette;
public static Item ammo_20gauge_incendiary;
public static Item ammo_20gauge_shrapnel;
public static Item ammo_20gauge_explosive;
public static Item ammo_20gauge_caustic;
public static Item ammo_20gauge_shock;
@ -2731,10 +2733,12 @@ public class ModItems {
ammo_12gauge = new ItemAmmo().setUnlocalizedName("ammo_12gauge").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_12gauge");
ammo_12gauge_incendiary = new ItemAmmo().setUnlocalizedName("ammo_12gauge_incendiary").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_12gauge_incendiary");
ammo_12gauge_shrapnel = new ItemAmmo().setUnlocalizedName("ammo_12gauge_shrapnel").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_12gauge_shrapnel");
ammo_20gauge = new ItemAmmo().setUnlocalizedName("ammo_20gauge").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge");
ammo_20gauge_slug = new ItemAmmo().setUnlocalizedName("ammo_20gauge_slug").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge_slug");
ammo_20gauge_flechette = new ItemAmmo().setUnlocalizedName("ammo_20gauge_flechette").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge_flechette");
ammo_20gauge_incendiary = new ItemAmmo().setUnlocalizedName("ammo_20gauge_incendiary").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge_incendiary");
ammo_20gauge_shrapnel = new ItemAmmo().setUnlocalizedName("ammo_20gauge_shrapnel").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge_shrapnel");
ammo_20gauge_explosive = new ItemAmmo().setUnlocalizedName("ammo_20gauge_explosive").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge_explosive");
ammo_20gauge_caustic = new ItemAmmo().setUnlocalizedName("ammo_20gauge_caustic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge_caustic");
ammo_20gauge_shock = new ItemAmmo().setUnlocalizedName("ammo_20gauge_shock").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_20gauge_shock");
@ -4686,10 +4690,12 @@ public class ModItems {
GameRegistry.registerItem(ammo_12gauge, ammo_12gauge.getUnlocalizedName());
GameRegistry.registerItem(ammo_12gauge_incendiary, ammo_12gauge_incendiary.getUnlocalizedName());
GameRegistry.registerItem(ammo_12gauge_shrapnel, ammo_12gauge_shrapnel.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge, ammo_20gauge.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge_slug, ammo_20gauge_slug.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge_flechette, ammo_20gauge_flechette.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge_incendiary, ammo_20gauge_incendiary.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge_shrapnel, ammo_20gauge_shrapnel.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge_explosive, ammo_20gauge_explosive.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge_caustic, ammo_20gauge_caustic.getUnlocalizedName());
GameRegistry.registerItem(ammo_20gauge_shock, ammo_20gauge_shock.getUnlocalizedName());

View File

@ -19,11 +19,10 @@ public class ItemAmmo extends Item {
list.add(EnumChatFormatting.BLUE + "+ Incendiary");
list.add(EnumChatFormatting.RED + "- Increased wear");
}
if(this == ModItems.ammo_20gauge_slug) {
list.add(EnumChatFormatting.BLUE + "+ Near-perfect accuracy");
if(this == ModItems.ammo_12gauge_shrapnel) {
list.add(EnumChatFormatting.BLUE + "+ Increased damage");
list.add(EnumChatFormatting.BLUE + "+ Decreased wear");
list.add(EnumChatFormatting.RED + "- Single projectile");
list.add(EnumChatFormatting.YELLOW + "* Extra bouncy");
list.add(EnumChatFormatting.RED + "- Increased wear");
}
//20 GAUGE
@ -32,10 +31,21 @@ public class ItemAmmo extends Item {
list.add(EnumChatFormatting.YELLOW + "* Less bouncy");
list.add(EnumChatFormatting.RED + "- Increased wear");
}
if(this == ModItems.ammo_20gauge_slug) {
list.add(EnumChatFormatting.BLUE + "+ Near-perfect accuracy");
list.add(EnumChatFormatting.BLUE + "+ Increased damage");
list.add(EnumChatFormatting.BLUE + "+ Decreased wear");
list.add(EnumChatFormatting.RED + "- Single projectile");
}
if(this == ModItems.ammo_20gauge_incendiary) {
list.add(EnumChatFormatting.BLUE + "+ Incendiary");
list.add(EnumChatFormatting.RED + "- Increased wear");
}
if(this == ModItems.ammo_20gauge_shrapnel) {
list.add(EnumChatFormatting.BLUE + "+ Increased damage");
list.add(EnumChatFormatting.YELLOW + "* Extra bouncy");
list.add(EnumChatFormatting.RED + "- Increased wear");
}
if(this == ModItems.ammo_20gauge_explosive) {
list.add(EnumChatFormatting.BLUE + "+ Explosive");
list.add(EnumChatFormatting.BLUE + "+ Increased damage");

View File

@ -1,8 +1,9 @@
package com.hbm.items.weapon;
import java.util.List;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.handler.GunConfiguration;
import com.hbm.items.ModItems;
import com.hbm.lib.ModDamageSource;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
@ -24,6 +25,15 @@ public class ItemGunGauss extends ItemGunBase {
world.playSoundAtEntity(player, "hbm:weapon.sparkShoot", 1.0F, 1.0F);
setHasShot(stack, false);
}
if(!main && getStored(stack) > 0) {
EntityBulletBase bullet = new EntityBulletBase(world, altConfig.config.get(0), player);
bullet.overrideDamage = Math.min(getStored(stack), 13) * 3.5F;
world.spawnEntityInWorld(bullet);
world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 1.0F, 0.75F);
setItemWear(stack, getItemWear(stack) + (getCharge(stack)) * 2);
setCharge(stack, 0);
}
}
public void endActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) {
@ -32,14 +42,16 @@ public class ItemGunGauss extends ItemGunBase {
chargeLoop.stopSound();
chargeLoop = null;
}
//setCharge(stack, 0);
}
protected void altFire(ItemStack stack, World world, EntityPlayer player) {
setCharge(stack, 1);
}
@Override
public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) {
if(!main) {
setCharge(stack, 1);
if(!main && getItemWear(stack) < mainConfig.durability && player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) {
chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 0.75F);
world.playSoundAtEntity(player, "hbm:weapon.tauChargeLoop2", 1.0F, 0.75F);
@ -49,28 +61,50 @@ public class ItemGunGauss extends ItemGunBase {
}
}
protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) {
super.updateServer(stack, world, player, slot, isCurrentItem);
if(getIsAltDown(stack) && getItemWear(stack) < mainConfig.durability) {
int c = getCharge(stack);
if(c > 200) {
setCharge(stack, 0);
setItemWear(stack, mainConfig.durability);
player.attackEntityFrom(ModDamageSource.tauBlast, 1000);
world.newExplosion(player, player.posX, player.posY + player.eyeHeight, player.posZ, 5.0F, true, true);
return;
}
if(c > 0) {
setCharge(stack, c + 1);
if(c % 10 == 1 && c < 140) {
if(player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) {
player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo);
setStored(stack, getStored(stack) + 1);
} else {
setCharge(stack, 0);
setStored(stack, 0);
}
}
} else {
setStored(stack, 0);
}
} else {
setCharge(stack, 0);
setStored(stack, 0);
}
}
protected void updateClient(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) {
super.updateClient(stack, world, player, slot, isCurrentItem);
/*if(!isCurrentItem) {
setCharge(stack, 0);
if(chargeLoop != null) {
chargeLoop.stopSound();
chargeLoop = null;
}
return;
}*/
int c = getCharge(stack);
if(c > 0) {
setCharge(stack, c + 1);
System.out.println(c);
}
if(chargeLoop != null) {
chargeLoop.updatePosition((float)player.posX, (float)player.posY, (float)player.posZ);
chargeLoop.updatePitch(1.0F);
chargeLoop.updatePitch(chargeLoop.getPitch() + 0.01F);
}
}
@ -97,12 +131,11 @@ public class ItemGunGauss extends ItemGunBase {
return readNBT(stack, "gauss_charge");
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
list.add("alt-fire is broken, just yell at me until i fix it ok");
list.add("");
super.addInformation(stack, player, list, bool);
public static void setStored(ItemStack stack, int i) {
writeNBT(stack, "gauss_stored", i);
}
public static int getStored(ItemStack stack) {
return readNBT(stack, "gauss_stored");
}
}

View File

@ -14,15 +14,18 @@ public class ItemGunLacunae extends ItemGunBase {
@Override
public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) {
setDelay(stack, 20);
world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpinup", 1.0F, 1.0F);
if(main) {
setDelay(stack, 20);
world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpinup", 1.0F, 1.0F);
}
}
@Override
public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) {
world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpindown", 1.0F, 1.0F);
if(main)
world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpindown", 1.0F, 1.0F);
}
protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) {

View File

@ -1710,6 +1710,10 @@ public class CraftingManager {
GameRegistry.addRecipe(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', ModItems.ingot_starmetal, 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.sellafield_core, 'L', ModItems.hull_small_steel });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', ModItems.ingot_starmetal, 'D', ModItems.plate_combine_steel, 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', ModItems.ingot_starmetal, 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', "plateAluminum" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', "plateIron", 'P', "ingotIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', "plateSteel", 'P', "ingotSteel" }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IPI", "IPI", 'I', ModItems.plate_saturnite, 'P', ModItems.coil_advanced_torus });
}

View File

@ -211,6 +211,7 @@ public class MainRegistry
public static Achievement bobChemistry;
public static Achievement bobOil;
public static Achievement bobNuclear;
public static Achievement bobHidden;
public static boolean enableDebugMode = true;
public static boolean enableMycelium = false;
@ -1021,6 +1022,7 @@ public class MainRegistry
bobChemistry = new Achievement("achievement.chemistry", "chemistry", 2, 4, ModItems.bob_chemistry, bobAssembly).initIndependentStat().registerStat();
bobOil = new Achievement("achievement.oil", "oil", 4, 4, ModItems.bob_oil, bobChemistry).initIndependentStat().registerStat();
bobNuclear = new Achievement("achievement.nuclear", "nuclear", 6, 4, ModItems.bob_nuclear, bobOil).initIndependentStat().registerStat();
bobHidden = new Achievement("achievement.hidden", "hidden", 8, 4, ModItems.gun_dampfmaschine, bobNuclear).initIndependentStat().registerStat();
AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[]{
achSacrifice,
@ -1039,7 +1041,8 @@ public class MainRegistry
bobAssembly,
bobChemistry,
bobOil,
bobNuclear
bobNuclear,
bobHidden
}));
//MUST be initialized AFTER achievements!!

View File

@ -27,6 +27,7 @@ import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.entity.passive.EntityCow;
@ -67,10 +68,13 @@ public class ModEventHandler
}
@SubscribeEvent
public void onPlayerDeath(LivingDeathEvent event) {
public void onEntityDeath(LivingDeathEvent event) {
event.entityLiving.getEntityData().setFloat("hfr_radiation", 0);
if(event.entity.worldObj.isRemote)
return;
if(MainRegistry.enableCataclysm) {
EntityBurningFOEQ foeq = new EntityBurningFOEQ(event.entity.worldObj);
foeq.setPositionAndRotation(event.entity.posX, 500, event.entity.posZ, 0.0F, 0.0F);
@ -78,7 +82,18 @@ public class ModEventHandler
}
if(event.entity.getUniqueID().toString().equals(Library.HbMinecraft)) {
event.entity.dropItem(ModItems.book_of_, 1);
}
if(event.entity instanceof EntityEnderman && event.source == ModDamageSource.boxcar) {
for(Object o : event.entity.worldObj.playerEntities) {
EntityPlayer player = (EntityPlayer)o;
if(player.getEntityData().getFloat("hfr_radiation") > 250 && player.isBurning()) {
player.triggerAchievement(MainRegistry.bobHidden);
}
}
}
}

View File

@ -74,7 +74,7 @@ public class RenderFence implements ISimpleBlockRenderingHandler {
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
return false;
}
@Override

View File

@ -92,6 +92,9 @@ public class RenderScreenOverlay {
public static void renderCustomCrosshairs(ScaledResolution resolution, Gui gui, Crosshair cross) {
if(cross == Crosshair.NONE)
return;
int size = cross.size;
@ -135,7 +138,8 @@ public class RenderScreenOverlay {
}
public enum Crosshair {
NONE(0, 0, 0),
CROSS(1, 55, 16),
CIRCLE(19, 55, 16),
SEMI(37, 55, 16),

View File

@ -8,6 +8,10 @@ public class AudioWrapper {
public void updatePitch(float pitch) { }
public float getVolume() { return 0F; }
public float getPitch() { return 0F; }
public void setDoesRepeat(boolean repeats) { }
public void startSound() { }

View File

@ -25,6 +25,14 @@ public class AudioWrapperClient extends AudioWrapper {
sound.setPitch(pitch);
}
public float getVolume() {
return sound.getVolume();
}
public float getPitch() {
return sound.getPitch();
}
public void startSound() {
sound.start();
}