Merge branch 'HbmMods:master' into master

This commit is contained in:
pheo 2025-04-29 22:01:48 +01:00 committed by GitHub
commit f74b5a337c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 5768 additions and 28 deletions

View File

@ -3,4 +3,6 @@
* Effective damage is still much higher than on gunmetal ammo due to the armor piercing effect
## Fixed
* Fixed a potential crash caused by cargo dropships landing on cargo docks with no satellite chip installed
* Fixed a potential crash caused by cargo dropships landing on cargo docks with no satellite chip installed
* Fixed potential crash related to hazard handling for dropped items
* Fixed errors thrown when loading in old system bullet entities

View File

@ -581,27 +581,14 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet
}
@Override
public void readEntityFromNBT(NBTTagCompound nbt) {
super.readEntityFromNBT(nbt);
int cfg = nbt.getInteger("config");
this.config = BulletConfigSyncingUtil.pullConfig(cfg);
this.dataWatcher.updateObject(16, (byte)this.config.style);
this.dataWatcher.updateObject(17, (byte)this.config.trail);
if(this.config == null) {
this.setDead();
return;
}
this.overrideDamage = nbt.getFloat("damage");
this.dataWatcher.updateObject(18, cfg);
public boolean writeToNBTOptional(NBTTagCompound nbt) {
return false;
}
@Override
public void writeEntityToNBT(NBTTagCompound nbt) {
super.writeEntityToNBT(nbt);
nbt.setInteger("config", dataWatcher.getWatchableObjectInt(18));
nbt.setFloat("damage", this.overrideDamage);
public void readEntityFromNBT(NBTTagCompound nbt) {
super.readEntityFromNBT(nbt);
this.setDead();
}
public static interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); }

View File

@ -349,13 +349,15 @@ public class ModEventHandler {
Map<Integer, List<WeightedRandomObject>> slotPools = new HashMap<>();
float soot = PollutionHandler.getPollution(entity.worldObj, MathHelper.floor_double(event.x), MathHelper.floor_double(event.y), MathHelper.floor_double(event.z), PollutionType.SOOT); //uhfgfg
if(entity instanceof EntityZombie) {
if(world.rand.nextFloat() < 0.005F) { // full hazmat zombine
if(world.rand.nextFloat() < 0.005F && soot > 2) { // full hazmat zombine
equipFullSet(entity, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots);
return;
}
if(world.rand.nextFloat() < 0.005F) { // full security zombine
if(world.rand.nextFloat() < 0.005F && soot > 20) { // full security zombine
equipFullSet(entity, ModItems.security_helmet, ModItems.security_plate, ModItems.security_legs, ModItems.security_boots);
return;
}
@ -385,10 +387,8 @@ public class ModEventHandler {
{ModItems.alloy_axe, 5}, {ModItems.titanium_sword, 8}, {ModItems.lead_gavel, 4},
{ModItems.wrench, 20}, {ModItems.cobalt_decorated_sword, 2}, {ModItems.detonator_de, 1}
}));
} else if(entity instanceof EntitySkeleton) {
float soot = PollutionHandler.getPollution(entity.worldObj,
MathHelper.floor_double(event.x), MathHelper.floor_double(event.y), MathHelper.floor_double(event.z), PollutionType.SOOT); //uhfgfg
slotPools.put(4, createSlotPool(12000, new Object[][]{
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
@ -412,7 +412,7 @@ public class ModEventHandler {
ItemStack bowReplacement = getSkelegun(soot, world.rand);
slotPools.put(0, createSlotPool(50, bowReplacement != null ? new Object[][]{{bowReplacement, 1}} : new Object[][]{}));
}
assignItemsToEntity(entity, slotPools);
}
@ -440,7 +440,7 @@ public class ModEventHandler {
}
private void assignItemsToEntity(EntityLivingBase entity, Map<Integer, List<WeightedRandomObject>> slotPools) {
public void assignItemsToEntity(EntityLivingBase entity, Map<Integer, List<WeightedRandomObject>> slotPools) {
for (Map.Entry<Integer, List<WeightedRandomObject>> entry : slotPools.entrySet()) {
int slot = entry.getKey();
List<WeightedRandomObject> pool = entry.getValue();
@ -655,14 +655,17 @@ public class ModEventHandler {
if(event.phase == Phase.END) {
for(Object e : event.world.loadedEntityList) {
List loadedEntityList = new ArrayList();
loadedEntityList.addAll(event.world.loadedEntityList); // ConcurrentModificationException my balls
for(Object e : loadedEntityList) {
if(e instanceof EntityItem) {
EntityItem item = (EntityItem) e;
HazardSystem.updateDroppedItem(item);
}
}
EntityRailCarBase.updateMotion(event.world);
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB