FBI drones

This commit is contained in:
Boblet 2023-06-21 13:53:15 +02:00
parent 2ef47c8604
commit 6c32813bae
10 changed files with 486 additions and 2 deletions

View File

@ -14,6 +14,7 @@ public class MobConfig {
public static int raidDelay = 30 * 60 * 60;
public static int raidChance = 3;
public static int raidAmount = 15;
public static int raidDrones = 5;
public static int raidAttackDelay = 40;
public static int raidAttackReach = 2;
public static int raidAttackDistance = 32;
@ -44,6 +45,7 @@ public class MobConfig {
raidAttackDelay = CommonConfig.createConfigInt(config, CATEGORY, "12.F04_raidAttackDelay", "Time between individual attempts to break machines", 40);
raidAttackReach = CommonConfig.createConfigInt(config, CATEGORY, "12.F05_raidAttackReach", "How far away machines can be broken", 2);
raidAttackDistance = CommonConfig.createConfigInt(config, CATEGORY, "12.F06_raidAttackDistance", "How far away agents will spawn from the targeted player", 32);
raidDrones = CommonConfig.createConfigInt(config, CATEGORY, "12.F07_raidDrones", "How many quadcopter drones are spawned each raid", 5);
enableElementals = CommonConfig.createConfigBool(config, CATEGORY, "12.E00_enableMeltdownElementals", "Whether there should be radiation elementals", true);
elementalDelay = CommonConfig.createConfigInt(config, CATEGORY, "12.E01_elementalDelay", "How many world ticks need to pass for a check to be performed", 30 * 60 * 60);

View File

@ -234,6 +234,7 @@ public class EntityMappings {
addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00);
addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00);
addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040);
addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040);
addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000);
addMob(EntitySiegeZombie.class, "entity_meme_zombie", 0x303030, 0x008000);
addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080);

View File

@ -0,0 +1,64 @@
package com.hbm.entity.mob;
import com.hbm.entity.grenade.EntityGrenadeGeneric;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityFBIDrone extends EntityUFOBase {
private int attackCooldown;
public EntityFBIDrone(World world) {
super(world);
}
@Override
protected void updateEntityActionState() {
super.updateEntityActionState();
if(this.courseChangeCooldown > 0) this.courseChangeCooldown--;
if(this.scanCooldown > 0) this.scanCooldown--;
if(!worldObj.isRemote) {
if(attackCooldown > 0) attackCooldown--;
if(this.target != null && attackCooldown <= 0) {
Vec3 vec = Vec3.createVectorHelper(posX - target.posX, posY - target.posY, posZ - target.posZ);
if(Math.abs(vec.xCoord) < 5 && Math.abs(vec.zCoord) < 5 && vec.yCoord > 3) {
attackCooldown = 60;
EntityGrenadeGeneric grenade = new EntityGrenadeGeneric(worldObj);
grenade.setPosition(posX, posY, posZ);
worldObj.spawnEntityInWorld(grenade);
}
}
}
if(this.courseChangeCooldown > 0) {
approachPosition(this.target == null ? 0.25D : 0.5D);
}
}
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(35.0D);
}
@Override
protected int getScanRange() {
return 100;
}
@Override
protected int targetHeightOffset() {
return 7 + rand.nextInt(4);
}
@Override
protected int wanderHeightOffset() {
return 7 + rand.nextInt(4);
}
}

View File

@ -18,8 +18,8 @@ public abstract class EntityUFOBase extends EntityFlying implements IMob {
protected int courseChangeCooldown;
protected Entity target;
public EntityUFOBase(World p_i1587_1_) {
super(p_i1587_1_);
public EntityUFOBase(World world) {
super(world);
}
@Override

View File

@ -7,6 +7,7 @@ import com.hbm.config.GeneralConfig;
import com.hbm.config.MobConfig;
import com.hbm.config.WorldConfig;
import com.hbm.entity.mob.EntityFBI;
import com.hbm.entity.mob.EntityFBIDrone;
import com.hbm.entity.mob.EntityGhost;
import com.hbm.entity.mob.EntityMaskMan;
import com.hbm.entity.mob.EntityRADBeast;
@ -97,6 +98,15 @@ public class BossSpawnHandler {
trySpawn(world, (float)spawnX, (float)spawnY, (float)spawnZ, new EntityFBI(world));
}
for(int i = 0; i < MobConfig.raidDrones; i++) {
double spawnX = player.posX + vec.xCoord + world.rand.nextGaussian() * 5;
double spawnZ = player.posZ + vec.zCoord + world.rand.nextGaussian() * 5;
double spawnY = world.getHeightValue((int)spawnX, (int)spawnZ);
trySpawn(world, (float)spawnX, (float)spawnY + 10, (float)spawnZ, new EntityFBIDrone(world));
}
}
}
}

View File

@ -731,6 +731,7 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid());
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid());
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear());
RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone());
//"particles"
RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 }));
RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 }));

View File

@ -306,6 +306,7 @@ public class ResourceManager {
public static final IModelCustom mini_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/mini_ufo.obj"));
public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj"));
public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj"));
public static final IModelCustom drone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/quadcopter.obj"));
//ZIRNOX
public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj"));

View File

@ -0,0 +1,45 @@
package com.hbm.render.entity.mob;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import com.hbm.entity.mob.EntityFBIDrone;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
public class RenderDrone extends Render {
@Override
public void doRender(Entity entity, double x, double y, double z, float f0, float f1) {
GL11.glPushMatrix();
GL11.glTranslated(x, y + 0.25, z);
this.bindTexture(getEntityTexture(entity));
Random rand = new Random(entity.getEntityId());
GL11.glRotated(rand.nextDouble() * 360D, 0, 1, 0);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glDisable(GL11.GL_CULL_FACE);
ResourceManager.drone.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
@Override
protected ResourceLocation getEntityTexture(Entity entity) {
return this.getEntityTexture((EntityFBIDrone) entity);
}
protected ResourceLocation getEntityTexture(EntityFBIDrone entity) {
return new ResourceLocation(RefStrings.MODID + ":textures/entity/quadcopter.png");
}
}

View File

@ -0,0 +1,360 @@
# Blender v2.79 (sub 0) OBJ File: 'quadcopter.blend'
# www.blender.org
o Cube_Cube.001
v -0.187500 0.125000 0.500000
v -0.187500 0.375000 0.500000
v -0.187500 0.125000 -0.500000
v -0.187500 0.375000 -0.500000
v 0.187500 0.125000 0.500000
v 0.187500 0.375000 0.500000
v 0.187500 0.125000 -0.500000
v 0.187500 0.375000 -0.500000
v 0.437500 0.125000 0.562500
v 0.437500 0.500000 0.562500
v 0.437500 0.125000 0.437500
v 0.437500 0.500000 0.437500
v 0.562500 0.125000 0.562500
v 0.562500 0.500000 0.562500
v 0.562500 0.125000 0.437500
v 0.562500 0.500000 0.437500
v 0.437500 0.125000 -0.437500
v 0.437500 0.500000 -0.437500
v 0.437500 0.125000 -0.562500
v 0.437500 0.500000 -0.562500
v 0.562500 0.125000 -0.437500
v 0.562500 0.500000 -0.437500
v 0.562500 0.125000 -0.562500
v 0.562500 0.500000 -0.562500
v -0.562500 0.125000 0.562500
v -0.562500 0.500000 0.562500
v -0.562500 0.125000 0.437500
v -0.562500 0.500000 0.437500
v -0.437500 0.125000 0.562500
v -0.437500 0.500000 0.562500
v -0.437500 0.125000 0.437500
v -0.437500 0.500000 0.437500
v -0.562500 0.125000 -0.437500
v -0.562500 0.500000 -0.437500
v -0.562500 0.125000 -0.562500
v -0.562500 0.500000 -0.562500
v -0.437500 0.125000 -0.437500
v -0.437500 0.500000 -0.437500
v -0.437500 0.125000 -0.562500
v -0.437500 0.500000 -0.562500
v 0.437500 0.187500 0.531250
v 0.437500 0.312500 0.531250
v 0.437500 0.187500 0.468750
v 0.437500 0.312500 0.468750
v 0.187500 0.187500 0.343750
v 0.187500 0.187500 0.406250
v 0.187500 0.312500 0.406250
v 0.187500 0.312500 0.343750
v -0.437500 0.187500 -0.531250
v -0.437500 0.312500 -0.531250
v -0.437500 0.187500 -0.468750
v -0.437500 0.312500 -0.468750
v -0.187500 0.187500 -0.343750
v -0.187500 0.187500 -0.406250
v -0.187500 0.312500 -0.406250
v -0.187500 0.312500 -0.343750
v 0.437500 0.312500 -0.531250
v 0.437500 0.187500 -0.531250
v 0.437500 0.312500 -0.468750
v 0.437500 0.187500 -0.468750
v 0.187500 0.312500 -0.343750
v 0.187500 0.312500 -0.406250
v 0.187500 0.187500 -0.406250
v 0.187500 0.187500 -0.343750
v -0.437500 0.312500 0.531250
v -0.437500 0.187500 0.531250
v -0.437500 0.312500 0.468750
v -0.437500 0.187500 0.468750
v -0.187500 0.312500 0.343750
v -0.187500 0.312500 0.406250
v -0.187500 0.187500 0.406250
v -0.187500 0.187500 0.343750
v -0.500000 0.500000 0.250000
v -0.676777 0.500000 0.323223
v -0.750000 0.500000 0.500000
v -0.676777 0.500000 0.676777
v -0.500000 0.500000 0.750000
v -0.323223 0.500000 0.676777
v -0.250000 0.500000 0.500000
v -0.323223 0.500000 0.323223
v 0.500000 0.500000 0.250000
v 0.323223 0.500000 0.323223
v 0.250000 0.500000 0.500000
v 0.323223 0.500000 0.676777
v 0.500000 0.500000 0.750000
v 0.676777 0.500000 0.676777
v 0.750000 0.500000 0.500000
v 0.676777 0.500000 0.323223
v -0.500000 0.500000 -0.750000
v -0.676777 0.500000 -0.676777
v -0.750000 0.500000 -0.500000
v -0.676777 0.500000 -0.323223
v -0.500000 0.500000 -0.250000
v -0.323223 0.500000 -0.323223
v -0.250000 0.500000 -0.500000
v -0.323223 0.500000 -0.676777
v 0.500000 0.500000 -0.750000
v 0.323223 0.500000 -0.676777
v 0.250000 0.500000 -0.500000
v 0.323223 0.500000 -0.323223
v 0.500000 0.500000 -0.250000
v 0.676777 0.500000 -0.323223
v 0.750000 0.500000 -0.500000
v 0.676777 0.500000 -0.676777
vt 0.125000 0.800000
vt 0.625000 1.000000
vt 0.125000 1.000000
vt 0.625000 0.800000
vt 0.750000 0.500000
vt 0.750000 0.800000
vt 0.625000 0.500000
vt 0.125000 0.300000
vt 0.625000 0.300000
vt 0.125000 0.500000
vt 0.000000 0.800000
vt 0.000000 0.500000
vt 0.125000 0.000000
vt 0.625000 0.000000
vt 0.812500 1.000000
vt 0.750000 0.700000
vt 0.812500 0.700000
vt 1.000000 1.000000
vt 0.937500 0.700000
vt 1.000000 0.700000
vt 0.937500 1.000000
vt 0.875000 0.700000
vt 0.875000 1.000000
vt 0.875000 0.600000
vt 0.812500 0.600000
vt 0.812500 1.000000
vt 0.750000 0.700000
vt 0.812500 0.700000
vt 1.000000 1.000000
vt 0.937500 0.700000
vt 1.000000 0.700000
vt 0.937500 1.000000
vt 0.875000 0.700000
vt 0.875000 1.000000
vt 0.875000 0.600000
vt 0.812500 0.600000
vt 0.812500 1.000000
vt 0.750000 0.700000
vt 0.812500 0.700000
vt 1.000000 1.000000
vt 0.937500 0.700000
vt 1.000000 0.700000
vt 0.937500 1.000000
vt 0.875000 0.700000
vt 0.875000 1.000000
vt 0.875000 0.600000
vt 0.812500 0.600000
vt 0.875000 0.598554
vt 0.750904 0.400000
vt 0.875000 0.201446
vt 0.812500 1.000000
vt 0.750000 0.700000
vt 0.812500 0.700000
vt 1.000000 1.000000
vt 0.937500 0.700000
vt 1.000000 0.700000
vt 0.937500 1.000000
vt 0.875000 0.700000
vt 0.875000 1.000000
vt 0.875000 0.600000
vt 0.812500 0.600000
vt 0.625000 0.200000
vt 0.750000 0.300000
vt 0.625000 0.300000
vt 0.625000 0.050000
vt 0.750000 0.150000
vt 0.625000 0.150000
vt 0.750000 0.300000
vt 0.625000 0.200000
vt 0.750000 0.200000
vt 0.750000 0.150000
vt 0.625000 0.050000
vt 0.750000 0.050000
vt 0.625000 0.150000
vt 0.750000 0.000000
vt 0.625000 0.000000
vt 0.750000 0.200000
vt 0.750000 0.000000
vt 0.750000 0.050000
vt 0.625000 0.050000
vt 0.750000 0.150000
vt 0.625000 0.150000
vt 0.625000 0.200000
vt 0.750000 0.300000
vt 0.625000 0.300000
vt 0.750000 0.150000
vt 0.625000 0.050000
vt 0.750000 0.050000
vt 0.750000 0.300000
vt 0.625000 0.200000
vt 0.750000 0.200000
vt 0.625000 0.000000
vt 0.750000 0.000000
vt 0.625000 0.150000
vt 0.625000 0.000000
vt 0.750000 0.050000
vt 0.750000 0.200000
vt 0.999096 0.400000
vt 0.962749 0.540399
vt 0.875000 0.598554
vt 0.875000 0.598554
vt 0.750904 0.400000
vt 0.875000 0.201446
vt 0.999096 0.400000
vt 0.962749 0.540399
vt 0.875000 0.598554
vt 0.750000 1.000000
vt 0.750000 1.000000
vt 0.750000 1.000000
vt 0.787251 0.540399
vt 0.787251 0.259601
vt 0.962749 0.259601
vt 0.999096 0.400000
vt 0.962749 0.540399
vt 0.750000 1.000000
vt 0.625000 0.300000
vt 0.625000 0.000000
vt 0.625000 0.300000
vt 0.750000 0.000000
vt 0.787251 0.540399
vt 0.875000 0.201446
vt 0.750904 0.400000
vt 0.787251 0.259601
vt 0.962749 0.259601
vt 0.787251 0.540399
vt 0.787251 0.259601
vt 0.962749 0.259601
vt 0.999096 0.400000
vt 0.962749 0.540399
vt 0.787251 0.540399
vt 0.875000 0.201446
vt 0.750904 0.400000
vt 0.787251 0.259601
vt 0.962749 0.259601
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.4472 0.0000 -0.8944
vn -0.4472 0.0000 0.8944
vn 0.4472 0.0000 0.8944
vn -0.4472 0.0000 -0.8944
s off
f 2/1/1 3/2/1 1/3/1
f 4/4/2 7/5/2 3/6/2
f 8/7/3 5/8/3 7/9/3
f 6/10/4 1/11/4 5/12/4
f 7/9/5 1/13/5 3/14/5
f 4/4/6 6/10/6 8/7/6
f 10/15/1 11/16/1 9/17/1
f 12/18/2 15/19/2 11/20/2
f 16/21/3 13/22/3 15/19/3
f 14/23/4 9/17/4 13/22/4
f 15/24/5 9/17/5 11/25/5
f 18/26/1 19/27/1 17/28/1
f 20/29/2 23/30/2 19/31/2
f 24/32/3 21/33/3 23/30/3
f 22/34/4 17/28/4 21/33/4
f 23/35/5 17/28/5 19/36/5
f 26/37/1 27/38/1 25/39/1
f 28/40/2 31/41/2 27/42/2
f 32/43/3 29/44/3 31/41/3
f 30/45/4 25/39/4 29/44/4
f 31/46/5 25/39/5 27/47/5
f 81/48/6 83/49/6 85/50/6
f 34/51/1 35/52/1 33/53/1
f 36/54/2 39/55/2 35/56/2
f 40/57/3 37/58/3 39/55/3
f 38/59/4 33/53/4 37/58/4
f 39/60/5 33/53/5 35/61/5
f 50/62/7 54/63/7 49/64/7
f 51/65/8 56/66/8 52/67/8
f 43/68/7 48/69/7 44/70/7
f 42/71/8 46/72/8 41/73/8
f 44/70/6 47/74/6 42/71/6
f 43/75/5 46/72/5 45/76/5
f 52/67/6 55/77/6 50/62/6
f 51/65/5 54/78/5 53/79/5
f 66/80/9 70/81/9 65/82/9
f 67/83/10 72/84/10 68/85/10
f 59/86/9 64/87/9 60/88/9
f 58/89/10 62/90/10 57/91/10
f 60/88/5 63/92/5 58/93/5
f 59/86/6 62/90/6 61/94/6
f 68/95/5 71/96/5 66/80/5
f 67/83/6 70/81/6 69/97/6
f 79/98/6 80/99/6 73/100/6
f 97/101/6 99/102/6 101/103/6
f 95/104/6 96/105/6 89/106/6
f 2/1/1 4/4/1 3/2/1
f 4/4/2 8/7/2 7/5/2
f 8/7/3 6/10/3 5/8/3
f 6/10/4 2/1/4 1/11/4
f 7/9/5 5/8/5 1/13/5
f 4/4/6 2/1/6 6/10/6
f 10/15/1 12/107/1 11/16/1
f 12/18/2 16/21/2 15/19/2
f 16/21/3 14/23/3 13/22/3
f 14/23/4 10/15/4 9/17/4
f 15/24/5 13/22/5 9/17/5
f 18/26/1 20/108/1 19/27/1
f 20/29/2 24/32/2 23/30/2
f 24/32/3 22/34/3 21/33/3
f 22/34/4 18/26/4 17/28/4
f 23/35/5 21/33/5 17/28/5
f 26/37/1 28/109/1 27/38/1
f 28/40/2 32/43/2 31/41/2
f 32/43/3 30/45/3 29/44/3
f 30/45/4 26/37/4 25/39/4
f 31/46/5 29/44/5 25/39/5
f 81/48/6 82/110/6 83/49/6
f 83/49/6 84/111/6 85/50/6
f 85/50/6 86/112/6 87/113/6
f 87/113/6 88/114/6 85/50/6
f 88/114/6 81/48/6 85/50/6
f 34/51/1 36/115/1 35/52/1
f 36/54/2 40/57/2 39/55/2
f 40/57/3 38/59/3 37/58/3
f 38/59/4 34/51/4 33/53/4
f 39/60/5 37/58/5 33/53/5
f 50/62/7 55/77/7 54/63/7
f 51/65/8 53/79/8 56/66/8
f 43/68/7 45/116/7 48/69/7
f 42/71/8 47/74/8 46/72/8
f 44/70/6 48/69/6 47/74/6
f 43/75/5 41/73/5 46/72/5
f 52/67/6 56/66/6 55/77/6
f 51/65/5 49/117/5 54/78/5
f 66/80/9 71/96/9 70/81/9
f 67/83/10 69/97/10 72/84/10
f 59/86/9 61/94/9 64/87/9
f 58/89/10 63/118/10 62/90/10
f 60/88/5 64/87/5 63/92/5
f 59/86/6 57/91/6 62/90/6
f 68/95/5 72/119/5 71/96/5
f 67/83/6 65/82/6 70/81/6
f 73/100/6 74/120/6 77/121/6
f 74/120/6 75/122/6 77/121/6
f 75/122/6 76/123/6 77/121/6
f 77/121/6 78/124/6 73/100/6
f 78/124/6 79/98/6 73/100/6
f 97/101/6 98/125/6 99/102/6
f 99/102/6 100/126/6 101/103/6
f 101/103/6 102/127/6 103/128/6
f 103/128/6 104/129/6 101/103/6
f 104/129/6 97/101/6 101/103/6
f 89/106/6 90/130/6 93/131/6
f 90/130/6 91/132/6 93/131/6
f 91/132/6 92/133/6 93/131/6
f 93/131/6 94/134/6 89/106/6
f 94/134/6 95/104/6 89/106/6

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B