修改70mm火箭弹和实体注册名
This commit is contained in:
parent
23ce0d352d
commit
987cf8779f
32 changed files with 130 additions and 129 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "superbwarfare:item/rocket_70"
|
||||
"layer0": "superbwarfare:item/small_rocket"
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package com.atsuishio.superbwarfare.client.layer.projectile;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.HeliRocketEntity;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.SmallRocketEntity;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
|
@ -12,15 +12,15 @@ import software.bernie.geckolib.cache.object.BakedGeoModel;
|
|||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class HeliRocketLayer extends GeoRenderLayer<HeliRocketEntity> {
|
||||
public class SmallRocketLayer extends GeoRenderLayer<SmallRocketEntity> {
|
||||
private static final ResourceLocation LAYER = Mod.loc("textures/entity/rpg_rocket_e.png");
|
||||
|
||||
public HeliRocketLayer(GeoRenderer<HeliRocketEntity> entityRenderer) {
|
||||
public SmallRocketLayer(GeoRenderer<SmallRocketEntity> entityRenderer) {
|
||||
super(entityRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, HeliRocketEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
public void render(PoseStack poseStack, SmallRocketEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 0xFFFFFFFF);
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
package com.atsuishio.superbwarfare.client.model.entity;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.HeliRocketEntity;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class HeliRocketModel extends GeoModel<HeliRocketEntity> {
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(HeliRocketEntity entity) {
|
||||
return Mod.loc("animations/rpg_rocket.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(HeliRocketEntity entity) {
|
||||
return Mod.loc("geo/heli_rocket.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(HeliRocketEntity entity) {
|
||||
return Mod.loc("textures/entity/heli_rocket.png");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.atsuishio.superbwarfare.client.model.entity;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.SmallRocketEntity;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class SmallRocketModel extends GeoModel<SmallRocketEntity> {
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(SmallRocketEntity entity) {
|
||||
return Mod.loc("animations/rpg_rocket.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(SmallRocketEntity entity) {
|
||||
return Mod.loc("geo/small_rocket.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(SmallRocketEntity entity) {
|
||||
return Mod.loc("textures/entity/small_rocket.png");
|
||||
}
|
||||
}
|
|
@ -4,8 +4,8 @@ import com.atsuishio.superbwarfare.Mod;
|
|||
import com.atsuishio.superbwarfare.config.client.DisplayConfig;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.SpeedboatEntity;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.base.*;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.HeliRocketWeapon;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.LaserWeapon;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.SmallRocketWeapon;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.SwarmDroneWeapon;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
|
@ -513,7 +513,7 @@ public class VehicleHudOverlay implements LayeredDraw.Layer {
|
|||
);
|
||||
|
||||
preciseBlit(guiGraphics, SELECTED, w - 95, startY, 100, 0, 0, 8, 8, 8, 8);
|
||||
if (InventoryTool.hasCreativeAmmoBox(player) && !(weapon instanceof LaserWeapon) && !(weapon instanceof HeliRocketWeapon) && !(weapon instanceof SwarmDroneWeapon)) {
|
||||
if (InventoryTool.hasCreativeAmmoBox(player) && !(weapon instanceof LaserWeapon) && !(weapon instanceof SmallRocketWeapon) && !(weapon instanceof SwarmDroneWeapon)) {
|
||||
preciseBlit(guiGraphics, NUMBER, w - 28 + xOffset, h - frameIndex * 18 - 15, 100, 58, 0, 10, 7.5f, 75, 7.5f);
|
||||
} else {
|
||||
renderNumber(guiGraphics, weaponVehicle.getAmmoCount(player), weapon instanceof LaserWeapon,
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package com.atsuishio.superbwarfare.client.renderer.entity;
|
||||
|
||||
import com.atsuishio.superbwarfare.client.layer.projectile.HeliRocketLayer;
|
||||
import com.atsuishio.superbwarfare.client.model.entity.HeliRocketModel;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.HeliRocketEntity;
|
||||
import com.atsuishio.superbwarfare.client.layer.projectile.SmallRocketLayer;
|
||||
import com.atsuishio.superbwarfare.client.model.entity.SmallRocketModel;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.SmallRocketEntity;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.mojang.math.Axis;
|
||||
|
@ -11,22 +11,23 @@ import net.minecraft.client.renderer.RenderType;
|
|||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||
|
||||
public class HeliRocketRenderer extends GeoEntityRenderer<HeliRocketEntity> {
|
||||
public HeliRocketRenderer(EntityRendererProvider.Context renderManager) {
|
||||
super(renderManager, new HeliRocketModel());
|
||||
this.addRenderLayer(new HeliRocketLayer(this));
|
||||
public class SmallRocketRenderer extends GeoEntityRenderer<SmallRocketEntity> {
|
||||
public SmallRocketRenderer(EntityRendererProvider.Context renderManager) {
|
||||
super(renderManager, new SmallRocketModel());
|
||||
this.addRenderLayer(new SmallRocketLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(HeliRocketEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
public RenderType getRenderType(SmallRocketEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void preRender(PoseStack poseStack, HeliRocketEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, int color) {
|
||||
public void preRender(PoseStack poseStack, SmallRocketEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, int color) {
|
||||
float scale = 1f;
|
||||
this.scaleHeight = scale;
|
||||
this.scaleWidth = scale;
|
||||
|
@ -34,7 +35,7 @@ public class HeliRocketRenderer extends GeoEntityRenderer<HeliRocketEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void render(HeliRocketEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
|
||||
public void render(SmallRocketEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, @NotNull 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())));
|
||||
|
@ -43,7 +44,7 @@ public class HeliRocketRenderer extends GeoEntityRenderer<HeliRocketEntity> {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected float getDeathMaxRotation(HeliRocketEntity entityLivingBaseIn) {
|
||||
protected float getDeathMaxRotation(SmallRocketEntity entityLivingBaseIn) {
|
||||
return 0.0F;
|
||||
}
|
||||
}
|
|
@ -126,7 +126,7 @@ public class ModItemModelProvider extends ItemModelProvider {
|
|||
simpleItem(ModItems.SNIPER_AMMO);
|
||||
simpleItem(ModItems.SHOTGUN_AMMO);
|
||||
simpleItem(ModItems.HEAVY_AMMO);
|
||||
simpleItem(ModItems.ROCKET_70);
|
||||
simpleItem(ModItems.SMALL_ROCKET);
|
||||
simpleItem(ModItems.WIRE_GUIDE_MISSILE);
|
||||
simpleItem(ModItems.AGM);
|
||||
simpleItem(ModItems.SMALL_SHELL);
|
||||
|
|
|
@ -37,27 +37,27 @@ import software.bernie.geckolib.util.GeckoLibUtil;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class HeliRocketEntity extends FastThrowableProjectile implements GeoEntity, ExplosiveProjectile {
|
||||
public class SmallRocketEntity extends FastThrowableProjectile implements GeoEntity, ExplosiveProjectile {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
private float damage = 140f;
|
||||
private float explosionDamage = 60f;
|
||||
private float explosionRadius = 5f;
|
||||
|
||||
public HeliRocketEntity(EntityType<? extends HeliRocketEntity> type, Level world) {
|
||||
public SmallRocketEntity(EntityType<? extends SmallRocketEntity> type, Level world) {
|
||||
super(type, world);
|
||||
this.noCulling = true;
|
||||
}
|
||||
|
||||
public HeliRocketEntity(EntityType<? extends ThrowableItemProjectile> pEntityType, double pX, double pY, double pZ, Level pLevel) {
|
||||
public SmallRocketEntity(EntityType<? extends ThrowableItemProjectile> pEntityType, double pX, double pY, double pZ, Level pLevel) {
|
||||
super(pEntityType, pX, pY, pZ, pLevel);
|
||||
this.noCulling = true;
|
||||
|
||||
this.durability = 20;
|
||||
}
|
||||
|
||||
public HeliRocketEntity(LivingEntity entity, Level level, float damage, float explosionDamage, float explosionRadius) {
|
||||
super(ModEntities.HELI_ROCKET.get(), entity, level);
|
||||
public SmallRocketEntity(LivingEntity entity, Level level, float damage, float explosionDamage, float explosionRadius) {
|
||||
super(ModEntities.SMALL_ROCKET.get(), entity, level);
|
||||
this.damage = damage;
|
||||
this.explosionDamage = explosionDamage;
|
||||
this.explosionRadius = explosionRadius;
|
||||
|
@ -206,7 +206,7 @@ public class HeliRocketEntity extends FastThrowableProjectile implements GeoEnti
|
|||
projectile.discard();
|
||||
}
|
||||
|
||||
private PlayState movementPredicate(AnimationState<HeliRocketEntity> event) {
|
||||
private PlayState movementPredicate(AnimationState<SmallRocketEntity> event) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.rpg.idle"));
|
||||
}
|
||||
|
|
@ -127,7 +127,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
.explosionRadius(VehicleConfig.A_10_CANNON_EXPLOSION_RADIUS.get().floatValue())
|
||||
.sound(ModSounds.INTO_CANNON.get())
|
||||
.icon(Mod.loc("textures/screens/vehicle_weapon/cannon_30mm.png")),
|
||||
new HeliRocketWeapon()
|
||||
new SmallRocketWeapon()
|
||||
.damage(VehicleConfig.A_10_ROCKET_DAMAGE.get())
|
||||
.explosionDamage(VehicleConfig.A_10_ROCKET_EXPLOSION_DAMAGE.get())
|
||||
.explosionRadius(VehicleConfig.A_10_ROCKET_EXPLOSION_RADIUS.get().floatValue())
|
||||
|
@ -190,7 +190,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
@Override
|
||||
public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.getItem() == ModItems.ROCKET_70.get() && this.entityData.get(LOADED_ROCKET) < 28) {
|
||||
if (stack.getItem() == ModItems.SMALL_ROCKET.get() && this.entityData.get(LOADED_ROCKET) < 28) {
|
||||
// 装载火箭
|
||||
this.entityData.set(LOADED_ROCKET, this.entityData.get(LOADED_ROCKET) + 1);
|
||||
if (!player.isCreative()) {
|
||||
|
@ -361,11 +361,11 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
|
||||
int ammoCount = countItem(ModItems.SMALL_SHELL.get());
|
||||
|
||||
if ((hasItem(ModItems.ROCKET_70.get()) || hasCreativeAmmoBox) && reloadCoolDown == 0 && this.getEntityData().get(LOADED_ROCKET) < 28) {
|
||||
if ((hasItem(ModItems.SMALL_ROCKET.get()) || hasCreativeAmmoBox) && reloadCoolDown == 0 && this.getEntityData().get(LOADED_ROCKET) < 28) {
|
||||
this.entityData.set(LOADED_ROCKET, this.getEntityData().get(LOADED_ROCKET) + 1);
|
||||
reloadCoolDown = 15;
|
||||
if (!hasCreativeAmmoBox) {
|
||||
this.getItemStacks().stream().filter(stack -> stack.is(ModItems.ROCKET_70.get())).findFirst().ifPresent(stack -> stack.shrink(1));
|
||||
this.getItemStacks().stream().filter(stack -> stack.is(ModItems.SMALL_ROCKET.get())).findFirst().ifPresent(stack -> stack.shrink(1));
|
||||
}
|
||||
this.level().playSound(null, this, ModSounds.MISSILE_RELOAD.get(), this.getSoundSource(), 2, 1);
|
||||
}
|
||||
|
@ -816,7 +816,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
|
||||
this.entityData.set(HEAT, this.entityData.get(HEAT) + 2);
|
||||
} else if (getWeaponIndex(0) == 1 && this.getEntityData().get(LOADED_ROCKET) > 0) {
|
||||
var heliRocketEntity = ((HeliRocketWeapon) getWeapon(0)).create(player);
|
||||
var heliRocketEntity = ((SmallRocketWeapon) getWeapon(0)).create(player);
|
||||
|
||||
Vector4f worldPosition;
|
||||
Vector4f worldPosition2;
|
||||
|
@ -847,7 +847,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
|
||||
BlockPos pos = BlockPos.containing(new Vec3(worldPosition.x, worldPosition.y, worldPosition.z));
|
||||
|
||||
this.level().playSound(null, pos, ModSounds.HELICOPTER_ROCKET_FIRE_3P.get(), SoundSource.PLAYERS, 4, 1);
|
||||
this.level().playSound(null, pos, ModSounds.SMALL_ROCKET_FIRE_3P.get(), SoundSource.PLAYERS, 4, 1);
|
||||
|
||||
this.entityData.set(LOADED_ROCKET, this.getEntityData().get(LOADED_ROCKET) - 1);
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ import com.atsuishio.superbwarfare.entity.vehicle.base.HelicopterEntity;
|
|||
import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.base.WeaponVehicleEntity;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.HeliRocketWeapon;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.SmallCannonShellWeapon;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.SmallRocketWeapon;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
|
||||
import com.atsuishio.superbwarfare.event.ClientMouseHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModDamageTypes;
|
||||
|
@ -44,8 +44,8 @@ import net.neoforged.api.distmarker.OnlyIn;
|
|||
import net.neoforged.neoforge.event.EventHooks;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.joml.Math;
|
||||
import org.joml.*;
|
||||
import org.joml.Math;
|
||||
import software.bernie.geckolib.animatable.GeoEntity;
|
||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.animation.AnimatableManager;
|
||||
|
@ -107,13 +107,13 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
.sound3p(ModSounds.HELICOPTER_CANNON_FIRE_3P.get())
|
||||
.sound3pFar(ModSounds.HELICOPTER_CANNON_FAR.get())
|
||||
.sound3pVeryFar(ModSounds.HELICOPTER_CANNON_VERYFAR.get()),
|
||||
new HeliRocketWeapon()
|
||||
new SmallRocketWeapon()
|
||||
.damage(VehicleConfig.AH_6_ROCKET_DAMAGE.get().floatValue())
|
||||
.explosionDamage(VehicleConfig.AH_6_ROCKET_EXPLOSION_DAMAGE.get().floatValue())
|
||||
.explosionRadius(VehicleConfig.AH_6_ROCKET_EXPLOSION_RADIUS.get().floatValue())
|
||||
.sound(ModSounds.INTO_MISSILE.get())
|
||||
.sound1p(ModSounds.HELICOPTER_ROCKET_FIRE_1P.get())
|
||||
.sound3p(ModSounds.HELICOPTER_ROCKET_FIRE_3P.get()),
|
||||
.sound1p(ModSounds.SMALL_ROCKET_FIRE_1P.get())
|
||||
.sound3p(ModSounds.SMALL_ROCKET_FIRE_3P.get()),
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
@Override
|
||||
public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.getItem() == ModItems.ROCKET_70.get() && this.entityData.get(LOADED_ROCKET) < 14) {
|
||||
if (stack.getItem() == ModItems.SMALL_ROCKET.get() && this.entityData.get(LOADED_ROCKET) < 14) {
|
||||
// 装载火箭
|
||||
this.entityData.set(LOADED_ROCKET, this.entityData.get(LOADED_ROCKET) + 1);
|
||||
if (!player.isCreative()) {
|
||||
|
@ -215,11 +215,11 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
return false;
|
||||
}).mapToInt(Ammo.HEAVY::get).sum() + countItem(ModItems.SMALL_SHELL.get());
|
||||
|
||||
if ((hasItem(ModItems.ROCKET_70.get()) || InventoryTool.hasCreativeAmmoBox(player)) && reloadCoolDown == 0 && this.getEntityData().get(LOADED_ROCKET) < 14) {
|
||||
if ((hasItem(ModItems.SMALL_ROCKET.get()) || InventoryTool.hasCreativeAmmoBox(player)) && reloadCoolDown == 0 && this.getEntityData().get(LOADED_ROCKET) < 14) {
|
||||
this.entityData.set(LOADED_ROCKET, this.getEntityData().get(LOADED_ROCKET) + 1);
|
||||
reloadCoolDown = 25;
|
||||
if (!InventoryTool.hasCreativeAmmoBox(player)) {
|
||||
this.getItemStacks().stream().filter(stack -> stack.is(ModItems.ROCKET_70.get())).findFirst().ifPresent(stack -> stack.shrink(1));
|
||||
this.getItemStacks().stream().filter(stack -> stack.is(ModItems.SMALL_ROCKET.get())).findFirst().ifPresent(stack -> stack.shrink(1));
|
||||
}
|
||||
this.level().playSound(null, this, ModSounds.MISSILE_RELOAD.get(), this.getSoundSource(), 1, 1);
|
||||
}
|
||||
|
@ -604,7 +604,7 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity
|
|||
|
||||
} else if (getWeaponIndex(0) == 1 && this.getEntityData().get(LOADED_ROCKET) > 0) {
|
||||
|
||||
var heliRocketEntity = ((HeliRocketWeapon) getWeapon(0)).create(player);
|
||||
var heliRocketEntity = ((SmallRocketWeapon) getWeapon(0)).create(player);
|
||||
|
||||
Vector4f worldPosition;
|
||||
Vector4f worldPosition2;
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
package com.atsuishio.superbwarfare.entity.vehicle.weapon;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.HeliRocketEntity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
|
||||
public class HeliRocketWeapon extends VehicleWeapon {
|
||||
|
||||
public float damage = 140, explosionDamage = 60, explosionRadius = 5;
|
||||
|
||||
public HeliRocketWeapon() {
|
||||
this.icon = Mod.loc("textures/screens/vehicle_weapon/rocket_70mm.png");
|
||||
}
|
||||
|
||||
public HeliRocketWeapon damage(float damage) {
|
||||
this.damage = damage;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HeliRocketWeapon explosionDamage(float explosionDamage) {
|
||||
this.explosionDamage = explosionDamage;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HeliRocketWeapon explosionRadius(float explosionRadius) {
|
||||
this.explosionRadius = explosionRadius;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HeliRocketEntity create(LivingEntity entity) {
|
||||
return new HeliRocketEntity(entity, entity.level(), damage, explosionDamage, explosionRadius);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.atsuishio.superbwarfare.entity.vehicle.weapon;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.SmallRocketEntity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
|
||||
public class SmallRocketWeapon extends VehicleWeapon {
|
||||
|
||||
public float damage = 140, explosionDamage = 60, explosionRadius = 5;
|
||||
|
||||
public SmallRocketWeapon() {
|
||||
this.icon = Mod.loc("textures/screens/vehicle_weapon/small_rocket.png");
|
||||
}
|
||||
|
||||
public SmallRocketWeapon damage(float damage) {
|
||||
this.damage = damage;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SmallRocketWeapon explosionDamage(float explosionDamage) {
|
||||
this.explosionDamage = explosionDamage;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SmallRocketWeapon explosionRadius(float explosionRadius) {
|
||||
this.explosionRadius = explosionRadius;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SmallRocketEntity create(LivingEntity entity) {
|
||||
return new SmallRocketEntity(entity, entity.level(), damage, explosionDamage, explosionRadius);
|
||||
}
|
||||
}
|
|
@ -82,8 +82,8 @@ public class ModEntities {
|
|||
EntityType.Builder.<JavelinMissileEntity>of(JavelinMissileEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<Agm65Entity>> AGM_65 = register("agm_65",
|
||||
EntityType.Builder.<Agm65Entity>of(Agm65Entity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.75f, 0.75f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<HeliRocketEntity>> HELI_ROCKET = register("heli_rocket",
|
||||
EntityType.Builder.<HeliRocketEntity>of(HeliRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<SmallRocketEntity>> SMALL_ROCKET = register("small_rocket",
|
||||
EntityType.Builder.<SmallRocketEntity>of(SmallRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<WgMissileEntity>> WG_MISSILE = register("wg_missile",
|
||||
EntityType.Builder.<WgMissileEntity>of(WgMissileEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(3).fireImmune().sized(0.5f, 0.5f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<SwarmDroneEntity>> SWARM_DRONE = register("swarm_drone",
|
||||
|
|
|
@ -21,7 +21,7 @@ public class ModEntityRenderers {
|
|||
event.registerEntityRenderer(ModEntities.TARGET.get(), TargetRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.DPS_GENERATOR.get(), DPSGeneratorRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.RPG_ROCKET.get(), RpgRocketRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.HELI_ROCKET.get(), HeliRocketRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.SMALL_ROCKET.get(), SmallRocketRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.MORTAR_SHELL.get(), MortarShellRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.CANNON_SHELL.get(), CannonShellRenderer::new);
|
||||
event.registerEntityRenderer(ModEntities.PROJECTILE.get(), ProjectileEntityRenderer::new);
|
||||
|
|
|
@ -119,7 +119,7 @@ public class ModItems {
|
|||
public static final DeferredHolder<Item, C4BombItem> C4_BOMB = AMMO.register("c4_bomb", C4BombItem::new);
|
||||
public static final DeferredHolder<Item, Blu43MineItem> BLU_43_MINE = AMMO.register("blu_43_mine", Blu43MineItem::new);
|
||||
public static final DeferredHolder<Item, Item> SMALL_SHELL = AMMO.register("small_shell", SmallShellItem::new);
|
||||
public static final DeferredHolder<Item, Rocket70Item> ROCKET_70 = AMMO.register("rocket_70", Rocket70Item::new);
|
||||
public static final DeferredHolder<Item, SmallRocketItem> SMALL_ROCKET = AMMO.register("small_rocket", SmallRocketItem::new);
|
||||
public static final DeferredHolder<Item, WireGuideMissileItem> WIRE_GUIDE_MISSILE = AMMO.register("wire_guide_missile", WireGuideMissileItem::new);
|
||||
public static final DeferredHolder<Item, AgmItem> AGM = AMMO.register("agm", AgmItem::new);
|
||||
public static final DeferredHolder<Item, SwarmDroneItem> SWARM_DRONE = AMMO.register("swarm_drone", SwarmDroneItem::new);
|
||||
|
@ -348,7 +348,7 @@ public class ModItems {
|
|||
DispenserBlock.registerBehavior(CLAYMORE_MINE.get(), new ClaymoreMine.ClaymoreDispenseBehavior());
|
||||
DispenserBlock.registerBehavior(BLU_43_MINE.get(), new Blu43MineItem.Blu43MineDispenseBehavior());
|
||||
DispenserBlock.registerBehavior(ROCKET.get(), new RocketItem.RocketDispenseBehavior());
|
||||
DispenserBlock.registerBehavior(ROCKET_70.get(), new Rocket70Item.Rocket70DispenseBehavior());
|
||||
DispenserBlock.registerBehavior(SMALL_ROCKET.get(), new SmallRocketItem.SmallRocketDispenseBehavior());
|
||||
DispenserBlock.registerBehavior(MEDIUM_AERIAL_BOMB.get(), new MediumAerialBombItem.MediumAerialBombDispenseBehavior());
|
||||
DispenserBlock.registerBehavior(RGO_GRENADE.get(), new RgoGrenade.RgoGrenadeDispenserBehavior());
|
||||
DispenserBlock.registerBehavior(M18_SMOKE_GRENADE.get(), new M18SmokeGrenade.SmokeGrenadeDispenserBehavior());
|
||||
|
|
|
@ -413,8 +413,8 @@ public class ModSounds {
|
|||
public static final DeferredHolder<SoundEvent, SoundEvent> HELICOPTER_CANNON_FIRE_3P = REGISTRY.register("heli_cannon_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("heli_cannon_fire_3p")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> HELICOPTER_CANNON_FAR = REGISTRY.register("heli_cannon_far", () -> SoundEvent.createVariableRangeEvent(Mod.loc("heli_cannon_far")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> HELICOPTER_CANNON_VERYFAR = REGISTRY.register("heli_cannon_veryfar", () -> SoundEvent.createVariableRangeEvent(Mod.loc("heli_cannon_veryfar")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> HELICOPTER_ROCKET_FIRE_1P = REGISTRY.register("heli_rocket_fire_1p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("heli_rocket_fire_1p")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> HELICOPTER_ROCKET_FIRE_3P = REGISTRY.register("heli_rocket_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("heli_rocket_fire_3p")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SMALL_ROCKET_FIRE_1P = REGISTRY.register("small_rocket_fire_1p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("small_rocket_fire_1p")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SMALL_ROCKET_FIRE_3P = REGISTRY.register("small_rocket_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("small_rocket_fire_3p")));
|
||||
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> INTO_CANNON = REGISTRY.register("into_cannon", () -> SoundEvent.createVariableRangeEvent(Mod.loc("into_cannon")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> INTO_MISSILE = REGISTRY.register("into_missile", () -> SoundEvent.createVariableRangeEvent(Mod.loc("into_missile")));
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.atsuishio.superbwarfare.item.common.ammo;
|
||||
|
||||
import com.atsuishio.superbwarfare.entity.projectile.HeliRocketEntity;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.SmallRocketEntity;
|
||||
import com.atsuishio.superbwarfare.init.ModEntities;
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||
|
@ -18,27 +18,27 @@ import org.jetbrains.annotations.NotNull;
|
|||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
public class Rocket70Item extends Item implements ProjectileItem {
|
||||
public class SmallRocketItem extends Item implements ProjectileItem {
|
||||
|
||||
public Rocket70Item() {
|
||||
public SmallRocketItem() {
|
||||
super(new Properties());
|
||||
}
|
||||
|
||||
public static class Rocket70DispenseBehavior extends ProjectileDispenseBehavior {
|
||||
public Rocket70DispenseBehavior() {
|
||||
super(ModItems.ROCKET_70.get());
|
||||
public static class SmallRocketDispenseBehavior extends ProjectileDispenseBehavior {
|
||||
public SmallRocketDispenseBehavior() {
|
||||
super(ModItems.SMALL_ROCKET.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void playSound(BlockSource blockSource) {
|
||||
blockSource.level().playSound(null, blockSource.pos(), ModSounds.HELICOPTER_ROCKET_FIRE_3P.get(), SoundSource.BLOCKS, 2.0F, 1.0F);
|
||||
blockSource.level().playSound(null, blockSource.pos(), ModSounds.SMALL_ROCKET_FIRE_3P.get(), SoundSource.BLOCKS, 2.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ParametersAreNonnullByDefault
|
||||
public @NotNull Projectile asProjectile(Level level, Position pos, ItemStack stack, Direction direction) {
|
||||
return new HeliRocketEntity(ModEntities.HELI_ROCKET.get(), pos.x(), pos.y(), pos.z(), level);
|
||||
return new SmallRocketEntity(ModEntities.SMALL_ROCKET.get(), pos.x(), pos.y(), pos.z(), level);
|
||||
}
|
||||
|
||||
@Override
|
|
@ -176,7 +176,7 @@
|
|||
"item.superbwarfare.lunge_mine": "Lunge Mine",
|
||||
"item.superbwarfare.blu_43_mine": "BLU-43B DragonTooth",
|
||||
"item.superbwarfare.tm_62": "TM-62 Anti-tank Mine",
|
||||
"item.superbwarfare.rocket_70": "70mm Rocket",
|
||||
"item.superbwarfare.small_rocket": "Small Caliber Rocket",
|
||||
"item.superbwarfare.small_shell": "Small Caliber Shells",
|
||||
"des.superbwarfare.small_shell": "Suitable for 20mm ~ 40mm caliber weapons",
|
||||
"item.superbwarfare.wire_guide_missile": "Wire Guide Missile",
|
||||
|
@ -474,7 +474,7 @@
|
|||
"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.small_rocket": "Small Caliber Rocket",
|
||||
"entity.superbwarfare.flare_decoy": "Flare Decoy",
|
||||
"entity.superbwarfare.mortar": "Mortar",
|
||||
"entity.superbwarfare.target": "Target",
|
||||
|
|
|
@ -159,7 +159,7 @@
|
|||
"item.superbwarfare.ap_5_inches": "oBÚS AP",
|
||||
"item.superbwarfare.javelin_missile": "Misíl Javelin",
|
||||
"item.superbwarfare.lunge_mine": "Mina de Estocada",
|
||||
"item.superbwarfare.rocket_70": "Cohete de 70mm",
|
||||
"item.superbwarfare.small_rocket": "Cohete de bajo Calibre",
|
||||
"item.superbwarfare.small_shell": "Munición de bajo Calibre",
|
||||
"item.superbwarfare.wire_guide_missile": "Misil guiado por Hilos",
|
||||
|
||||
|
@ -410,7 +410,7 @@
|
|||
"entity.superbwarfare.cannon_shell": "Casquillo de cañón",
|
||||
"entity.superbwarfare.javelin_missile": "Misil Javelin",
|
||||
"entity.superbwarfare.small_cannon_shell": "Casquillo de cañón pequeño",
|
||||
"entity.superbwarfare.heli_rocket": "Cohete Heli",
|
||||
"entity.superbwarfare.small_rocket": "Cohete de bajo Calibre",
|
||||
"entity.superbwarfare.flare_decoy": "Señuelo de bengala",
|
||||
"entity.superbwarfare.mortar": "Morteri",
|
||||
"entity.superbwarfare.target": "Objetivo",
|
||||
|
|
|
@ -159,7 +159,7 @@
|
|||
"item.superbwarfare.ap_5_inches": "Obus AP",
|
||||
"item.superbwarfare.javelin_missile": "Missile javelin",
|
||||
"item.superbwarfare.lunge_mine": "Mine à propulsion",
|
||||
"item.superbwarfare.rocket_70": "Rocket 70mm",
|
||||
"item.superbwarfare.small_rocket": "Rocket de petit calibre",
|
||||
"item.superbwarfare.small_shell": "Obus de petit calibre",
|
||||
"item.superbwarfare.wire_guide_missile": "Missile téléguidé",
|
||||
|
||||
|
@ -404,7 +404,7 @@
|
|||
"entity.superbwarfare.cannon_shell": "Coquille de canon",
|
||||
"entity.superbwarfare.javelin_missile": "Missile Javelin",
|
||||
"entity.superbwarfare.small_cannon_shell": "Petit obus de canon",
|
||||
"entity.superbwarfare.heli_rocket": "Roquette Heli",
|
||||
"entity.superbwarfare.small_rocket": "Rocket de petit calibre",
|
||||
"entity.superbwarfare.flare_decoy": "Leurre de fusée éclairante",
|
||||
"entity.superbwarfare.mortar": "Mortier",
|
||||
"entity.superbwarfare.target": "Cible",
|
||||
|
|
|
@ -160,7 +160,7 @@
|
|||
"item.superbwarfare.ap_5_inches": "AP砲弾",
|
||||
"item.superbwarfare.javelin_missile": "ジャベリンミサイル",
|
||||
"item.superbwarfare.lunge_mine": "突進地雷",
|
||||
"item.superbwarfare.rocket_70": "70mm ロケット弾",
|
||||
"item.superbwarfare.small_rocket": "小口径ロケット弾",
|
||||
"item.superbwarfare.small_shell": "小口径砲弾",
|
||||
"item.superbwarfare.wire_guide_missile": "ワイヤー誘導ミサイル",
|
||||
"item.superbwarfare.swarm_drone": "スウォームドローン",
|
||||
|
@ -417,7 +417,7 @@
|
|||
"entity.superbwarfare.cannon_shell": "砲弾",
|
||||
"entity.superbwarfare.javelin_missile": "ジャベリンミサイル",
|
||||
"entity.superbwarfare.small_cannon_shell": "小型砲弾",
|
||||
"entity.superbwarfare.heli_rocket": "ヘリロケット",
|
||||
"entity.superbwarfare.small_rocket": "小口径ロケット弾",
|
||||
"entity.superbwarfare.flare_decoy": "フレアデコイ",
|
||||
"entity.superbwarfare.mortar": "迫撃砲",
|
||||
"entity.superbwarfare.target": "的",
|
||||
|
|
|
@ -153,7 +153,7 @@
|
|||
"item.superbwarfare.ap_5_inches": "Бронебойный снаряд",
|
||||
"item.superbwarfare.javelin_missile": "Ракета Javelin",
|
||||
"item.superbwarfare.lunge_mine": "Ударная мина",
|
||||
"item.superbwarfare.rocket_70": "70мм ракета",
|
||||
"item.superbwarfare.small_rocket": "Мелкокалиберные ракета",
|
||||
"item.superbwarfare.small_shell": "Мелкокалиберные снаряды",
|
||||
"item.superbwarfare.wire_guide_missile": "Управляемая ракета",
|
||||
"block.superbwarfare.container": "Контейнер",
|
||||
|
@ -385,7 +385,7 @@
|
|||
"entity.superbwarfare.cannon_shell": "Пушечный снаряд",
|
||||
"entity.superbwarfare.javelin_missile": "Ракета Javelin",
|
||||
"entity.superbwarfare.small_cannon_shell": "Снаряд маленькой пушки",
|
||||
"entity.superbwarfare.heli_rocket": "Ракета вертолёта",
|
||||
"entity.superbwarfare.small_rocket": "Мелкокалиберные ракета",
|
||||
"entity.superbwarfare.flare_decoy": "Ложная цель",
|
||||
"entity.superbwarfare.mortar": "Миномёт",
|
||||
"entity.superbwarfare.target": "Мишень",
|
||||
|
|
|
@ -176,7 +176,7 @@
|
|||
"item.superbwarfare.lunge_mine": "突刺爆雷",
|
||||
"item.superbwarfare.blu_43_mine": "BLU-43蝴蝶雷",
|
||||
"item.superbwarfare.tm_62": "TM-62反坦克地雷",
|
||||
"item.superbwarfare.rocket_70": "70mm火箭弹",
|
||||
"item.superbwarfare.small_rocket": "小口径火箭弹",
|
||||
"item.superbwarfare.small_shell": "小口径炮弹",
|
||||
"des.superbwarfare.small_shell": "适配20mm ~ 40mm口径武器",
|
||||
"item.superbwarfare.wire_guide_missile": "线控导弹",
|
||||
|
@ -473,7 +473,7 @@
|
|||
"entity.superbwarfare.cannon_shell": "炮弹",
|
||||
"entity.superbwarfare.javelin_missile": "标枪导弹",
|
||||
"entity.superbwarfare.small_cannon_shell": "小口径炮弹",
|
||||
"entity.superbwarfare.heli_rocket": "小鸟火箭弹",
|
||||
"entity.superbwarfare.small_rocket": "小口径火箭弹",
|
||||
"entity.superbwarfare.flare_decoy": "热诱弹",
|
||||
"entity.superbwarfare.mortar": "迫击炮",
|
||||
"entity.superbwarfare.target": "标靶",
|
||||
|
|
|
@ -2590,18 +2590,18 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"heli_rocket_fire_1p": {
|
||||
"small_rocket_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:helicopter/heli_rocket_fire_1p",
|
||||
"name": "superbwarfare:helicopter/small_rocket_fire_1p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"heli_rocket_fire_3p": {
|
||||
"small_rocket_fire_3p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:helicopter/heli_rocket_fire_3p",
|
||||
"name": "superbwarfare:helicopter/small_rocket_fire_3p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
|
|
Before Width: | Height: | Size: 324 B After Width: | Height: | Size: 324 B |
Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 346 B |
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
|
@ -21,7 +21,7 @@
|
|||
}
|
||||
},
|
||||
"result": {
|
||||
"id": "superbwarfare:rocket_70",
|
||||
"id": "superbwarfare:small_rocket",
|
||||
"count": 4
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue