重构投射物和命名
This commit is contained in:
parent
a0957f863f
commit
71530a0eb7
14 changed files with 90 additions and 100 deletions
|
@ -1,24 +1,24 @@
|
|||
package com.atsuishio.superbwarfare.client.model.entity;
|
||||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletProjectileEntity;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletEntity;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class TaserBulletProjectileModel extends GeoModel<TaserBulletProjectileEntity> {
|
||||
public class TaserBulletProjectileModel extends GeoModel<TaserBulletEntity> {
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(TaserBulletProjectileEntity entity) {
|
||||
public ResourceLocation getAnimationResource(TaserBulletEntity entity) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(TaserBulletProjectileEntity entity) {
|
||||
public ResourceLocation getModelResource(TaserBulletEntity entity) {
|
||||
return ModUtils.loc("geo/taser_rod.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(TaserBulletProjectileEntity entity) {
|
||||
public ResourceLocation getTextureResource(TaserBulletEntity entity) {
|
||||
return ModUtils.loc("textures/entity/taser_rod.png");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.atsuishio.superbwarfare.client.renderer.entity;
|
||||
|
||||
import com.atsuishio.superbwarfare.client.model.entity.TaserBulletProjectileModel;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletProjectileEntity;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletEntity;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.mojang.math.Axis;
|
||||
|
@ -13,18 +13,18 @@ import net.minecraft.util.Mth;
|
|||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||
|
||||
public class TaserBulletProjectileRenderer extends GeoEntityRenderer<TaserBulletProjectileEntity> {
|
||||
public class TaserBulletProjectileRenderer extends GeoEntityRenderer<TaserBulletEntity> {
|
||||
public TaserBulletProjectileRenderer(EntityRendererProvider.Context renderManager) {
|
||||
super(renderManager, new TaserBulletProjectileModel());
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(TaserBulletProjectileEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
public RenderType getRenderType(TaserBulletEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void preRender(PoseStack poseStack, TaserBulletProjectileEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
|
||||
public void preRender(PoseStack poseStack, TaserBulletEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
|
||||
float blue, float alpha) {
|
||||
float scale = 1f;
|
||||
this.scaleHeight = scale;
|
||||
|
@ -33,7 +33,7 @@ public class TaserBulletProjectileRenderer extends GeoEntityRenderer<TaserBullet
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(TaserBulletProjectileEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
|
||||
public void render(TaserBulletEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
|
||||
poseStack.pushPose();
|
||||
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
|
||||
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
|
||||
|
@ -42,7 +42,7 @@ public class TaserBulletProjectileRenderer extends GeoEntityRenderer<TaserBullet
|
|||
}
|
||||
|
||||
@Override
|
||||
protected float getDeathMaxRotation(TaserBulletProjectileEntity entityLivingBaseIn) {
|
||||
protected float getDeathMaxRotation(TaserBulletEntity entityLivingBaseIn) {
|
||||
return 0.0F;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ import net.minecraft.world.entity.Entity;
|
|||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.monster.Monster;
|
||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.BellBlock;
|
||||
|
@ -34,7 +33,7 @@ import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache
|
|||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class GunGrenadeEntity extends ThrowableItemProjectile implements GeoEntity {
|
||||
public class GunGrenadeEntity extends FastThrowableProjectile implements GeoEntity {
|
||||
|
||||
private float monsterMultiplier = 0.0f;
|
||||
private float damage = 40.0f;
|
||||
|
|
|
@ -20,7 +20,6 @@ import net.minecraft.sounds.SoundSource;
|
|||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.BellBlock;
|
||||
|
@ -36,7 +35,8 @@ import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache
|
|||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class HandGrenadeEntity extends ThrowableItemProjectile implements GeoEntity {
|
||||
public class HandGrenadeEntity extends FastThrowableProjectile implements GeoEntity {
|
||||
|
||||
private int fuse = 100;
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
|
@ -46,12 +46,12 @@ public class HandGrenadeEntity extends ThrowableItemProjectile implements GeoEnt
|
|||
}
|
||||
|
||||
public HandGrenadeEntity(LivingEntity entity, Level level, int fuse) {
|
||||
super(ModEntities.HAND_GRENADE_ENTITY.get(), entity, level);
|
||||
super(ModEntities.HAND_GRENADE.get(), entity, level);
|
||||
this.fuse = fuse;
|
||||
}
|
||||
|
||||
public HandGrenadeEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
||||
this(ModEntities.HAND_GRENADE_ENTITY.get(), level);
|
||||
this(ModEntities.HAND_GRENADE.get(), level);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -39,22 +39,23 @@ import software.bernie.geckolib.util.GeckoLibUtil;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class HeliRocketEntity extends ThrowableItemProjectile implements GeoEntity {
|
||||
public class HeliRocketEntity extends FastThrowableProjectile implements GeoEntity {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
private float damage = 140f;
|
||||
private float explosion_damage = 60f;
|
||||
private float explosion_radius = 5f;
|
||||
private float explosionDamage = 60f;
|
||||
private float explosionRadius = 5f;
|
||||
|
||||
public HeliRocketEntity(EntityType<? extends HeliRocketEntity> type, Level world) {
|
||||
super(type, world);
|
||||
this.noCulling = true;
|
||||
}
|
||||
|
||||
public HeliRocketEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius) {
|
||||
public HeliRocketEntity(LivingEntity entity, Level level, float damage, float explosionDamage, float explosionRadius) {
|
||||
super(ModEntities.HELI_ROCKET.get(), entity, level);
|
||||
this.damage = damage;
|
||||
this.explosion_damage = explosion_damage;
|
||||
this.explosion_radius = explosion_radius;
|
||||
this.explosionDamage = explosionDamage;
|
||||
this.explosionRadius = explosionRadius;
|
||||
}
|
||||
|
||||
public HeliRocketEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
||||
|
@ -78,7 +79,6 @@ public class HeliRocketEntity extends ThrowableItemProjectile implements GeoEnti
|
|||
|
||||
@Override
|
||||
protected void onHitEntity(EntityHitResult result) {
|
||||
|
||||
Entity entity = result.getEntity();
|
||||
if (entity == this.getOwner() || entity == this.getVehicle()) return;
|
||||
if (this.getOwner() instanceof LivingEntity living) {
|
||||
|
@ -99,7 +99,7 @@ public class HeliRocketEntity extends ThrowableItemProjectile implements GeoEnti
|
|||
if (this.level() instanceof ServerLevel) {
|
||||
causeRocketExplode(this,
|
||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()),
|
||||
entity, this.explosion_damage, this.explosion_radius, 1);
|
||||
entity, this.explosionDamage, this.explosionRadius, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ public class HeliRocketEntity extends ThrowableItemProjectile implements GeoEnti
|
|||
if (this.level() instanceof ServerLevel) {
|
||||
causeRocketExplode(this,
|
||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()),
|
||||
this, this.explosion_damage, this.explosion_radius, 1);
|
||||
this, this.explosionDamage, this.explosionRadius, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -141,7 +141,7 @@ public class HeliRocketEntity extends ThrowableItemProjectile implements GeoEnti
|
|||
if (this.level() instanceof ServerLevel) {
|
||||
causeRocketExplode(this,
|
||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()),
|
||||
this, this.explosion_damage, this.explosion_radius, 1);
|
||||
this, this.explosionDamage, this.explosionRadius, 1);
|
||||
}
|
||||
this.discard();
|
||||
}
|
||||
|
@ -166,13 +166,6 @@ public class HeliRocketEntity extends ThrowableItemProjectile implements GeoEnti
|
|||
return 0.002f;
|
||||
}
|
||||
|
||||
public String getSyncedAnimation() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setAnimation(String animation) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate));
|
||||
|
|
|
@ -27,7 +27,6 @@ import net.minecraft.world.entity.LivingEntity;
|
|||
import net.minecraft.world.entity.animal.Pig;
|
||||
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
|
||||
import net.minecraft.world.entity.monster.Monster;
|
||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Explosion;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
@ -51,7 +50,8 @@ import software.bernie.geckolib.util.GeckoLibUtil;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
public class JavelinMissileEntity extends ThrowableItemProjectile implements GeoEntity {
|
||||
public class JavelinMissileEntity extends FastThrowableProjectile implements GeoEntity {
|
||||
|
||||
public static final EntityDataAccessor<String> TARGET_UUID = SynchedEntityData.defineId(JavelinMissileEntity.class, EntityDataSerializers.STRING);
|
||||
public static final EntityDataAccessor<Boolean> TOP = SynchedEntityData.defineId(JavelinMissileEntity.class, EntityDataSerializers.BOOLEAN);
|
||||
public static final EntityDataAccessor<Float> TARGET_X = SynchedEntityData.defineId(JavelinMissileEntity.class, EntityDataSerializers.FLOAT);
|
||||
|
@ -181,7 +181,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
|
|||
public void tick() {
|
||||
super.tick();
|
||||
Entity entity = EntityFindUtil.findEntity(this.level(), entityData.get(TARGET_UUID));
|
||||
List<Entity> decoy = SeekTool.seekLivingEntities(this, this.level(), 48 , 160);
|
||||
List<Entity> decoy = SeekTool.seekLivingEntities(this, this.level(), 48, 160);
|
||||
|
||||
for (var e : decoy) {
|
||||
if (e instanceof FlareDecoyEntity flareDecoy && !distracted) {
|
||||
|
@ -196,7 +196,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
|
|||
this.entityData.set(TARGET_X, (float) entity.getX());
|
||||
this.entityData.set(TARGET_Y, (float) entity.getY() + 0.5f * entity.getBbHeight());
|
||||
this.entityData.set(TARGET_Z, (float) entity.getZ());
|
||||
if ((!entity.getPassengers().isEmpty() || entity instanceof VehicleEntity) && entity.tickCount %((int)Math.max(0.04 * this.distanceTo(entity),2)) == 0) {
|
||||
if ((!entity.getPassengers().isEmpty() || entity instanceof VehicleEntity) && entity.tickCount % ((int) Math.max(0.04 * this.distanceTo(entity), 2)) == 0) {
|
||||
entity.level().playSound(null, entity.getOnPos(), entity instanceof Pig ? SoundEvents.PIG_HURT : ModSounds.MISSILE_WARNING.get(), SoundSource.PLAYERS, 2, 1f);
|
||||
}
|
||||
}
|
||||
|
@ -232,7 +232,6 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
|
|||
}
|
||||
}
|
||||
} else if (guide_type == 1) {
|
||||
|
||||
double px = this.getX();
|
||||
double ex = this.entityData.get(TARGET_X);
|
||||
double pz = this.getZ();
|
||||
|
|
|
@ -20,7 +20,6 @@ import net.minecraft.util.Mth;
|
|||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.BellBlock;
|
||||
|
@ -37,7 +36,8 @@ import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache
|
|||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEntity {
|
||||
public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEntity {
|
||||
|
||||
private int fuse = 80;
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ import software.bernie.geckolib.core.animation.AnimatableManager;
|
|||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
|
||||
public class TaserBulletProjectileEntity extends AbstractArrow implements GeoEntity {
|
||||
public class TaserBulletEntity extends AbstractArrow implements GeoEntity {
|
||||
|
||||
private float damage = 1f;
|
||||
private int volt = 0;
|
||||
|
@ -49,19 +49,19 @@ public class TaserBulletProjectileEntity extends AbstractArrow implements GeoEnt
|
|||
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.AIR);
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level world) {
|
||||
super(ModEntities.TASER_BULLET_PROJECTILE.get(), world);
|
||||
public TaserBulletEntity(PlayMessages.SpawnEntity packet, Level world) {
|
||||
super(ModEntities.TASER_BULLET.get(), world);
|
||||
this.pickup = AbstractArrow.Pickup.DISALLOWED;
|
||||
}
|
||||
|
||||
public TaserBulletProjectileEntity(LivingEntity entity, Level level, float damage, int volt, int wireLength) {
|
||||
super(ModEntities.TASER_BULLET_PROJECTILE.get(), entity, level);
|
||||
public TaserBulletEntity(LivingEntity entity, Level level, float damage, int volt, int wireLength) {
|
||||
super(ModEntities.TASER_BULLET.get(), entity, level);
|
||||
this.damage = damage;
|
||||
this.volt = volt;
|
||||
this.wireLength = wireLength;
|
||||
}
|
||||
|
||||
public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) {
|
||||
public TaserBulletEntity(EntityType<? extends TaserBulletEntity> type, Level world) {
|
||||
super(type, world);
|
||||
this.noCulling = true;
|
||||
}
|
|
@ -42,7 +42,7 @@ import software.bernie.geckolib.util.GeckoLibUtil;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class WgMissileEntity extends ThrowableItemProjectile implements GeoEntity {
|
||||
public class WgMissileEntity extends FastThrowableProjectile implements GeoEntity {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
|
@ -187,9 +187,6 @@ public class WgMissileEntity extends ThrowableItemProjectile implements GeoEntit
|
|||
return 0;
|
||||
}
|
||||
|
||||
public void setAnimation(String animation) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate));
|
||||
|
|
|
@ -21,7 +21,7 @@ import net.minecraftforge.registries.RegistryObject;
|
|||
public class ModEntities {
|
||||
|
||||
public static final DeferredRegister<EntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, ModUtils.MODID);
|
||||
// TODO 重构实体命名
|
||||
|
||||
// Living Entities
|
||||
public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target",
|
||||
EntityType.Builder.<TargetEntity>of(TargetEntity::new, MobCategory.CREATURE).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TargetEntity::new).fireImmune().sized(0.875f, 2f));
|
||||
|
@ -32,47 +32,45 @@ public class ModEntities {
|
|||
// Misc Entities
|
||||
public static final RegistryObject<EntityType<MortarEntity>> MORTAR = register("mortar",
|
||||
EntityType.Builder.<MortarEntity>of(MortarEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(MortarEntity::new).fireImmune().sized(0.8f, 1.4f));
|
||||
public static final RegistryObject<EntityType<LaserEntity>> LASER = register("laser",
|
||||
EntityType.Builder.<LaserEntity>of(LaserEntity::new, MobCategory.MISC).sized(0.1f, 0.1f).fireImmune().setUpdateInterval(1));
|
||||
public static final RegistryObject<EntityType<FlareDecoyEntity>> FLARE_DECOY = register("flare_decoy",
|
||||
EntityType.Builder.<FlareDecoyEntity>of(FlareDecoyEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(FlareDecoyEntity::new).sized(0.5f, 0.5f));
|
||||
|
||||
// Projectiles
|
||||
public static final RegistryObject<EntityType<ClaymoreEntity>> CLAYMORE = register("claymore",
|
||||
EntityType.Builder.<ClaymoreEntity>of(ClaymoreEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<C4Entity>> C_4 = register("c4",
|
||||
EntityType.Builder.<C4Entity>of(C4Entity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<TaserBulletProjectileEntity>> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile",
|
||||
EntityType.Builder.<TaserBulletProjectileEntity>of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64)
|
||||
public static final RegistryObject<EntityType<TaserBulletEntity>> TASER_BULLET = register("taser_bullet",
|
||||
EntityType.Builder.<TaserBulletEntity>of(TaserBulletEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletEntity::new).setTrackingRange(64)
|
||||
.setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<GunGrenadeEntity>> GUN_GRENADE = register("projectile_gun_grenade",
|
||||
EntityType.Builder.<GunGrenadeEntity>of(GunGrenadeEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(GunGrenadeEntity::new).sized(0.5f, 0.5f));
|
||||
|
||||
// Fast Projectiles
|
||||
public static final RegistryObject<EntityType<SmallCannonShellEntity>> SMALL_CANNON_SHELL = register("projectile_small_cannon_shell",
|
||||
public static final RegistryObject<EntityType<SmallCannonShellEntity>> SMALL_CANNON_SHELL = register("small_cannon_shell",
|
||||
EntityType.Builder.<SmallCannonShellEntity>of(SmallCannonShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(SmallCannonShellEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<RpgRocketEntity>> RPG_ROCKET = register("projectile_rpg_rocket",
|
||||
public static final RegistryObject<EntityType<RpgRocketEntity>> RPG_ROCKET = register("rpg_rocket",
|
||||
EntityType.Builder.<RpgRocketEntity>of(RpgRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(RpgRocketEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<MortarShellEntity>> MORTAR_SHELL = register("projectile_mortar_shell",
|
||||
public static final RegistryObject<EntityType<MortarShellEntity>> MORTAR_SHELL = register("mortar_shell",
|
||||
EntityType.Builder.<MortarShellEntity>of(MortarShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(MortarShellEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<ProjectileEntity>> PROJECTILE = register("projectile",
|
||||
EntityType.Builder.<ProjectileEntity>of(ProjectileEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setCustomClientFactory(ProjectileEntity::new).setTrackingRange(64).noSave().noSummon().sized(0.25f, 0.25f));
|
||||
public static final RegistryObject<EntityType<CannonShellEntity>> CANNON_SHELL = register("projectile_cannon_shell",
|
||||
public static final RegistryObject<EntityType<CannonShellEntity>> CANNON_SHELL = register("cannon_shell",
|
||||
EntityType.Builder.<CannonShellEntity>of(CannonShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(CannonShellEntity::new).sized(0.5f, 0.5f));
|
||||
|
||||
public static final RegistryObject<EntityType<HandGrenadeEntity>> HAND_GRENADE_ENTITY = register("projectile_hand_grenade_entity",
|
||||
EntityType.Builder.<HandGrenadeEntity>of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(HandGrenadeEntity::new).sized(0.3f, 0.3f));
|
||||
public static final RegistryObject<EntityType<RgoGrenadeEntity>> RGO_GRENADE = register("projectile_rgo_grenade",
|
||||
EntityType.Builder.<RgoGrenadeEntity>of(RgoGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(RgoGrenadeEntity::new).sized(0.3f, 0.3f));
|
||||
public static final RegistryObject<EntityType<JavelinMissileEntity>> JAVELIN_MISSILE = register("projectile_javelin_missile",
|
||||
EntityType.Builder.<JavelinMissileEntity>of(JavelinMissileEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(JavelinMissileEntity::new).sized(0.5f, 0.5f));
|
||||
|
||||
public static final RegistryObject<EntityType<LaserEntity>> LASER = register("laser",
|
||||
EntityType.Builder.<LaserEntity>of(LaserEntity::new, MobCategory.MISC).sized(0.1f, 0.1f).fireImmune().setUpdateInterval(1));
|
||||
public static final RegistryObject<EntityType<HeliRocketEntity>> HELI_ROCKET = register("projectile_heli_rocket",
|
||||
EntityType.Builder.<HeliRocketEntity>of(HeliRocketEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(HeliRocketEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<FlareDecoyEntity>> FLARE_DECOY = register("flare_decoy_entity",
|
||||
EntityType.Builder.<FlareDecoyEntity>of(FlareDecoyEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(FlareDecoyEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<GunGrenadeEntity>> GUN_GRENADE = register("gun_grenade",
|
||||
EntityType.Builder.<GunGrenadeEntity>of(GunGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(GunGrenadeEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<MelonBombEntity>> MELON_BOMB = register("melon_bomb",
|
||||
EntityType.Builder.<MelonBombEntity>of(MelonBombEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(MelonBombEntity::new).sized(1f, 1f));
|
||||
EntityType.Builder.<MelonBombEntity>of(MelonBombEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(MelonBombEntity::new).sized(1f, 1f));
|
||||
public static final RegistryObject<EntityType<HandGrenadeEntity>> HAND_GRENADE = register("hand_grenade",
|
||||
EntityType.Builder.<HandGrenadeEntity>of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(HandGrenadeEntity::new).sized(0.3f, 0.3f));
|
||||
public static final RegistryObject<EntityType<RgoGrenadeEntity>> RGO_GRENADE = register("rgo_grenade",
|
||||
EntityType.Builder.<RgoGrenadeEntity>of(RgoGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(RgoGrenadeEntity::new).sized(0.3f, 0.3f));
|
||||
public static final RegistryObject<EntityType<JavelinMissileEntity>> JAVELIN_MISSILE = register("javelin_missile",
|
||||
EntityType.Builder.<JavelinMissileEntity>of(JavelinMissileEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(JavelinMissileEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<HeliRocketEntity>> HELI_ROCKET = register("heli_rocket",
|
||||
EntityType.Builder.<HeliRocketEntity>of(HeliRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(HeliRocketEntity::new).sized(0.5f, 0.5f));
|
||||
public static final RegistryObject<EntityType<WgMissileEntity>> WG_MISSILE = register("wg_missile",
|
||||
EntityType.Builder.<WgMissileEntity>of(WgMissileEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(WgMissileEntity::new).fireImmune().sized(0.5f, 0.5f));
|
||||
EntityType.Builder.<WgMissileEntity>of(WgMissileEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(WgMissileEntity::new).fireImmune().sized(0.5f, 0.5f));
|
||||
|
||||
// Vehicles
|
||||
public static final RegistryObject<EntityType<Mk42Entity>> MK_42 = register("mk_42",
|
||||
|
@ -95,12 +93,12 @@ public class ModEntities {
|
|||
public static final RegistryObject<EntityType<Bmp2Entity>> BMP_2 = register("bmp_2",
|
||||
EntityType.Builder.<Bmp2Entity>of(Bmp2Entity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Bmp2Entity::new).fireImmune().sized(4f, 3f));
|
||||
public static final RegistryObject<EntityType<Yx100Entity>> YX_100 = register("yx_100",
|
||||
EntityType.Builder.<Yx100Entity>of(Yx100Entity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Yx100Entity::new).fireImmune().sized(5.5f, 3.25f));
|
||||
EntityType.Builder.<Yx100Entity>of(Yx100Entity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Yx100Entity::new).fireImmune().sized(5.5f, 3.25f));
|
||||
|
||||
public static final RegistryObject<EntityType<DroneEntity>> DRONE = register("drone",
|
||||
EntityType.Builder.<DroneEntity>of(DroneEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.6f, 0.2f));
|
||||
public static final RegistryObject<EntityType<LaserTowerEntity>> LASER_TOWER = register("laser_tower",
|
||||
EntityType.Builder.<LaserTowerEntity>of(LaserTowerEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(LaserTowerEntity::new).fireImmune().sized(0.9f, 1.65f));
|
||||
EntityType.Builder.<LaserTowerEntity>of(LaserTowerEntity::new, MobCategory.MISC).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(LaserTowerEntity::new).fireImmune().sized(0.9f, 1.65f));
|
||||
|
||||
private static <T extends Entity> RegistryObject<EntityType<T>> register(String name, EntityType.Builder<T> entityTypeBuilder) {
|
||||
return REGISTRY.register(name, () -> entityTypeBuilder.build(name));
|
||||
|
|
|
@ -15,7 +15,7 @@ public class ModEntityRenderers {
|
|||
event.registerEntityRenderer(ModEntities.SENPAI.get(), SenpaiRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.CLAYMORE.get(), ClaymoreRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.C_4.get(), C4Renderer::new);
|
||||
event.registerEntityRenderer(ModEntities.TASER_BULLET_PROJECTILE.get(), TaserBulletProjectileRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.TASER_BULLET.get(), TaserBulletProjectileRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.GUN_GRENADE.get(), GunGrenadeRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.TARGET.get(), TargetRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.RPG_ROCKET.get(), RpgRocketRenderer::new);
|
||||
|
@ -25,7 +25,7 @@ public class ModEntityRenderers {
|
|||
event.registerEntityRenderer(ModEntities.PROJECTILE.get(), ProjectileEntityRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.MK_42.get(), Mk42Renderer::new);
|
||||
event.registerEntityRenderer(ModEntities.DRONE.get(), DroneRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.HAND_GRENADE_ENTITY.get(), HandGrenadeRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.HAND_GRENADE.get(), HandGrenadeRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.RGO_GRENADE.get(), RgoGrenadeRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.MLE_1934.get(), Mle1934Renderer::new);
|
||||
event.registerEntityRenderer(ModEntities.JAVELIN_MISSILE.get(), JavelinMissileRenderer::new);
|
||||
|
|
|
@ -5,7 +5,7 @@ import com.atsuishio.superbwarfare.capability.energy.ItemEnergyProvider;
|
|||
import com.atsuishio.superbwarfare.client.PoseTool;
|
||||
import com.atsuishio.superbwarfare.client.renderer.item.TaserItemRenderer;
|
||||
import com.atsuishio.superbwarfare.client.tooltip.component.EnergyImageComponent;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletProjectileEntity;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletEntity;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
import com.atsuishio.superbwarfare.init.ModPerks;
|
||||
|
@ -295,7 +295,7 @@ public class TaserItem extends GunItem implements GeoItem, SpecialFireWeapon {
|
|||
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.TASER_FIRE_3P.get(), SoundSource.PLAYERS, 1, 1);
|
||||
|
||||
var level = serverPlayer.level();
|
||||
TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level,
|
||||
TaserBulletEntity taserBulletProjectile = new TaserBulletEntity(player, level,
|
||||
(float) GunsTool.getGunDoubleTag(stack, "Damage", 0), volt, wireLength);
|
||||
|
||||
taserBulletProjectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
|
||||
|
|
|
@ -391,15 +391,17 @@
|
|||
"death.attack.vehicle_explosion.item": "%1$s's vehicle was destroyed by %2$s using %3$s",
|
||||
|
||||
"entity.superbwarfare.projectile": "Bullet",
|
||||
"entity.superbwarfare.projectile_mortar_shell": "Mortar Shell",
|
||||
"entity.superbwarfare.projectile_gun_grenade": "Gun Grenade",
|
||||
"entity.superbwarfare.projectile_rpg_rocket": "RPG Rocket",
|
||||
"entity.superbwarfare.projectile_taser_bullet_projectile": "Taser Electrode",
|
||||
"entity.superbwarfare.projectile_hand_grenade_entity": "Exploding M67 Grenade",
|
||||
"entity.superbwarfare.projectile_rgo_grenade": "Exploding RGO Grenade",
|
||||
"entity.superbwarfare.projectile_cannon_shell": "Cannon Shell",
|
||||
"entity.superbwarfare.projectile_javelin_missile": "Javelin Missile",
|
||||
"entity.superbwarfare.projectile_small_cannon_shell": "Small Cannon Shell",
|
||||
"entity.superbwarfare.mortar_shell": "Mortar Shell",
|
||||
"entity.superbwarfare.gun_grenade": "Gun Grenade",
|
||||
"entity.superbwarfare.rpg_rocket": "RPG Rocket",
|
||||
"entity.superbwarfare.taser_bullet": "Taser Electrode",
|
||||
"entity.superbwarfare.hand_grenade": "Exploding M67 Grenade",
|
||||
"entity.superbwarfare.rgo_grenade": "Exploding RGO Grenade",
|
||||
"entity.superbwarfare.cannon_shell": "Cannon Shell",
|
||||
"entity.superbwarfare.javelin_missile": "Javelin Missile",
|
||||
"entity.superbwarfare.small_cannon_shell": "Small Cannon Shell",
|
||||
"entity.superbwarfare.heli_rocket": "Heli Rocket",
|
||||
"entity.superbwarfare.flare_decoy": "Flare Decoy",
|
||||
"entity.superbwarfare.mortar": "Mortar",
|
||||
"entity.superbwarfare.target": "Target",
|
||||
"entity.superbwarfare.claymore": "Claymore",
|
||||
|
|
|
@ -389,15 +389,17 @@
|
|||
"death.attack.vehicle_explosion.item": "%1$s的载具被%2$s用%3$s击毁了",
|
||||
|
||||
"entity.superbwarfare.projectile": "子弹",
|
||||
"entity.superbwarfare.projectile_mortar_shell": "迫击炮弹",
|
||||
"entity.superbwarfare.projectile_gun_grenade": "枪榴弹",
|
||||
"entity.superbwarfare.projectile_rpg_rocket": "RPG火箭弹",
|
||||
"entity.superbwarfare.projectile_taser_bullet_projectile": "电极",
|
||||
"entity.superbwarfare.projectile_hand_grenade_entity": "快爆炸的M67手榴弹",
|
||||
"entity.superbwarfare.projectile_rgo_grenade": "快爆炸的RGO手榴弹",
|
||||
"entity.superbwarfare.projectile_cannon_shell": "炮弹",
|
||||
"entity.superbwarfare.projectile_javelin_missile": "标枪导弹",
|
||||
"entity.superbwarfare.projectile_small_cannon_shell": "小口径炮弹",
|
||||
"entity.superbwarfare.mortar_shell": "迫击炮弹",
|
||||
"entity.superbwarfare.gun_grenade": "枪榴弹",
|
||||
"entity.superbwarfare.rpg_rocket": "RPG火箭弹",
|
||||
"entity.superbwarfare.taser_bullet": "泰瑟枪电极",
|
||||
"entity.superbwarfare.hand_grenade": "快爆炸的M67手榴弹",
|
||||
"entity.superbwarfare.rgo_grenade": "快爆炸的RGO手榴弹",
|
||||
"entity.superbwarfare.cannon_shell": "炮弹",
|
||||
"entity.superbwarfare.javelin_missile": "标枪导弹",
|
||||
"entity.superbwarfare.small_cannon_shell": "小口径炮弹",
|
||||
"entity.superbwarfare.heli_rocket": "小鸟火箭弹",
|
||||
"entity.superbwarfare.flare_decoy": "热诱弹",
|
||||
"entity.superbwarfare.mortar": "迫击炮",
|
||||
"entity.superbwarfare.target": "标靶",
|
||||
"entity.superbwarfare.claymore": "阔剑地雷",
|
||||
|
|
Loading…
Add table
Reference in a new issue