优化光棱渲染。修复地形计算bug
This commit is contained in:
parent
8beccac565
commit
53a1536d34
8 changed files with 116 additions and 113 deletions
|
@ -11,10 +11,12 @@ import com.mojang.math.Axis;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
|
import net.minecraft.client.renderer.culling.Frustum;
|
||||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.phys.AABB;
|
||||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||||
import software.bernie.geckolib.cache.object.GeoBone;
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||||
|
@ -55,6 +57,19 @@ public class PrismTankRenderer extends GeoEntityRenderer<PrismTankEntity> {
|
||||||
@Override
|
@Override
|
||||||
public void renderRecursively(PoseStack poseStack, PrismTankEntity animatable, GeoBone bone, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, int color) {
|
public void renderRecursively(PoseStack poseStack, PrismTankEntity animatable, GeoBone bone, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, int color) {
|
||||||
String name = bone.getName();
|
String name = bone.getName();
|
||||||
|
|
||||||
|
Minecraft minecraft = Minecraft.getInstance();
|
||||||
|
Frustum pCamera = minecraft.levelRenderer.getFrustum();
|
||||||
|
|
||||||
|
AABB aabb = animatable.getBoundingBoxForCulling().inflate(0.5);
|
||||||
|
if (aabb.hasNaN() || aabb.getSize() == 0.0) {
|
||||||
|
aabb = new AABB(animatable.getX() - 4.0, animatable.getY() - 3.0, animatable.getZ() - 4.0, animatable.getX() + 4.0, animatable.getY() + 3.0, animatable.getZ() + 4.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("root")) {
|
||||||
|
bone.setHidden(!pCamera.isVisible(aabb));
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
if (name.equals("wheelL" + i)) {
|
if (name.equals("wheelL" + i)) {
|
||||||
bone.setRotX(1.5f * Mth.lerp(partialTick, animatable.leftWheelRotO, animatable.getLeftWheelRot()));
|
bone.setRotX(1.5f * Mth.lerp(partialTick, animatable.leftWheelRotO, animatable.getLeftWheelRot()));
|
||||||
|
@ -64,11 +79,11 @@ public class PrismTankRenderer extends GeoEntityRenderer<PrismTankEntity> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name.equals("cannon")) {
|
if (name.equals("cannon") || name.equals("cannon2")) {
|
||||||
bone.setRotY(Mth.lerp(partialTick, animatable.turretYRotO, animatable.getTurretYRot()) * Mth.DEG_TO_RAD);
|
bone.setRotY(Mth.lerp(partialTick, animatable.turretYRotO, animatable.getTurretYRot()) * Mth.DEG_TO_RAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name.equals("head")) {
|
if (name.equals("head") || name.equals("head2")) {
|
||||||
Player player = Minecraft.getInstance().player;
|
Player player = Minecraft.getInstance().player;
|
||||||
bone.setHidden(ClientEventHandler.zoomVehicle && animatable.getFirstPassenger() == player);
|
bone.setHidden(ClientEventHandler.zoomVehicle && animatable.getFirstPassenger() == player);
|
||||||
}
|
}
|
||||||
|
@ -89,7 +104,7 @@ public class PrismTankRenderer extends GeoEntityRenderer<PrismTankEntity> {
|
||||||
bone.setRotY((System.currentTimeMillis() % 36000000) / 75f);
|
bone.setRotY((System.currentTimeMillis() % 36000000) / 75f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name.equals("barrel")) {
|
if (name.equals("barrel") || name.equals("barrel2")) {
|
||||||
|
|
||||||
float a = animatable.getTurretYaw(partialTick);
|
float a = animatable.getTurretYaw(partialTick);
|
||||||
float r = (Mth.abs(a) - 90f) / 90f;
|
float r = (Mth.abs(a) - 90f) / 90f;
|
||||||
|
@ -113,13 +128,6 @@ public class PrismTankRenderer extends GeoEntityRenderer<PrismTankEntity> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name.equals("flare")) {
|
|
||||||
bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
|
||||||
}
|
|
||||||
if (name.equals("flare2")) {
|
|
||||||
bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < 51; i++) {
|
for (int i = 0; i < 51; i++) {
|
||||||
float tO = animatable.leftTrackO + 2 * i;
|
float tO = animatable.leftTrackO + 2 * i;
|
||||||
float t = animatable.getLeftTrack() + 2 * i;
|
float t = animatable.getLeftTrack() + 2 * i;
|
||||||
|
|
|
@ -17,10 +17,7 @@ import com.atsuishio.superbwarfare.init.ModSounds;
|
||||||
import com.atsuishio.superbwarfare.init.ModTags;
|
import com.atsuishio.superbwarfare.init.ModTags;
|
||||||
import com.atsuishio.superbwarfare.network.message.receive.ClientIndicatorMessage;
|
import com.atsuishio.superbwarfare.network.message.receive.ClientIndicatorMessage;
|
||||||
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
|
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
|
||||||
import com.atsuishio.superbwarfare.tools.CustomExplosion;
|
import com.atsuishio.superbwarfare.tools.*;
|
||||||
import com.atsuishio.superbwarfare.tools.EntityFindUtil;
|
|
||||||
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
|
||||||
import com.atsuishio.superbwarfare.tools.SeekTool;
|
|
||||||
import com.mojang.math.Axis;
|
import com.mojang.math.Axis;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.gui.Font;
|
import net.minecraft.client.gui.Font;
|
||||||
|
@ -224,6 +221,10 @@ public class PrismTankEntity extends ContainerMobileVehicleEntity implements Geo
|
||||||
|
|
||||||
releaseSmokeDecoy();
|
releaseSmokeDecoy();
|
||||||
|
|
||||||
|
if (this.getFirstPassenger() instanceof Player player && fireInputDown && getWeaponIndex(0) == 1 && getEnergy() > VehicleConfig.PRISM_TANK_SHOOT_COST_MODE_2.get() && !cannotFire) {
|
||||||
|
vehicleShoot(player, 0);
|
||||||
|
}
|
||||||
|
|
||||||
lowHealthWarning();
|
lowHealthWarning();
|
||||||
this.refreshDimensions();
|
this.refreshDimensions();
|
||||||
}
|
}
|
||||||
|
@ -329,6 +330,10 @@ public class PrismTankEntity extends ContainerMobileVehicleEntity implements Geo
|
||||||
}
|
}
|
||||||
|
|
||||||
Level level = player.level();
|
Level level = player.level();
|
||||||
|
|
||||||
|
float pitch = entityData.get(HEAT) <= 60 ? 1.1f : (float) (1.1f - 0.011 * Math.abs(60 - entityData.get(HEAT)));
|
||||||
|
SoundTool.playLocalSound(player, ModSounds.PRISM_FIRE_1P_2.get(), 1f, pitch);
|
||||||
|
|
||||||
if (level instanceof ServerLevel) {
|
if (level instanceof ServerLevel) {
|
||||||
if (!player.level().isClientSide) {
|
if (!player.level().isClientSide) {
|
||||||
if (player instanceof ServerPlayer serverPlayer) {
|
if (player instanceof ServerPlayer serverPlayer) {
|
||||||
|
@ -340,13 +345,6 @@ public class PrismTankEntity extends ContainerMobileVehicleEntity implements Geo
|
||||||
this.consumeEnergy(VehicleConfig.PRISM_TANK_SHOOT_COST_MODE_2.get());
|
this.consumeEnergy(VehicleConfig.PRISM_TANK_SHOOT_COST_MODE_2.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Vec3 center = new Vec3(this.getX(), this.getEyeY(), this.getZ());
|
|
||||||
for (Entity target : level.getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(2), e -> true).stream().sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))).toList()) {
|
|
||||||
if (target instanceof ServerPlayer serverPlayer) {
|
|
||||||
PacketDistributor.sendToPlayer(serverPlayer, new ShakeClientMessage(5, 3, 3, this.getX(), this.getEyeY(), this.getZ()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
float dis = laserLengthEntity(root);
|
float dis = laserLengthEntity(root);
|
||||||
|
|
||||||
if (dis < laserLength(root)) {
|
if (dis < laserLength(root)) {
|
||||||
|
@ -738,17 +736,15 @@ public class PrismTankEntity extends ContainerMobileVehicleEntity implements Geo
|
||||||
if (getWeaponIndex(0) == 0) {
|
if (getWeaponIndex(0) == 0) {
|
||||||
return 30;
|
return 30;
|
||||||
} else if (getWeaponIndex(0) == 1) {
|
} else if (getWeaponIndex(0) == 1) {
|
||||||
return 1200;
|
return 0;
|
||||||
}
|
}
|
||||||
return 20;
|
return 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canShoot(Player player) {
|
public boolean canShoot(Player player) {
|
||||||
if (getWeaponIndex(0) == 0) {
|
if (getWeaponIndex(0) == 0) {
|
||||||
return getEnergy() > VehicleConfig.PRISM_TANK_SHOOT_COST_MODE_1.get() && !cannotFire;
|
return getEnergy() > VehicleConfig.PRISM_TANK_SHOOT_COST_MODE_1.get() && !cannotFire;
|
||||||
} else if (getWeaponIndex(0) == 1) {
|
|
||||||
return getEnergy() > VehicleConfig.PRISM_TANK_SHOOT_COST_MODE_2.get() && !cannotFire;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -428,6 +428,8 @@ public abstract class MobileVehicleEntity extends EnergyVehicleEntity implements
|
||||||
targetY = pos.y + shape.max(Direction.Axis.Y);
|
targetY = pos.y + shape.max(Direction.Axis.Y);
|
||||||
} else if (res.getType() == HitResult.Type.BLOCK && this.level().noCollision(new AABB(pos, pos))) {
|
} else if (res.getType() == HitResult.Type.BLOCK && this.level().noCollision(new AABB(pos, pos))) {
|
||||||
targetY = res.getLocation().y;
|
targetY = res.getLocation().y;
|
||||||
|
} else {
|
||||||
|
targetY = pos.y - maxLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
double diffY = targetY - pos.y;
|
double diffY = targetY - pos.y;
|
||||||
|
|
|
@ -915,16 +915,8 @@ public class ClientEventHandler {
|
||||||
if (iVehicle instanceof PrismTankEntity prismTank) {
|
if (iVehicle instanceof PrismTankEntity prismTank) {
|
||||||
if (prismTank.getWeaponIndex(0) == 0) {
|
if (prismTank.getWeaponIndex(0) == 0) {
|
||||||
player.playSound(ModSounds.PRISM_FIRE_1P.get(), 1f, 1);
|
player.playSound(ModSounds.PRISM_FIRE_1P.get(), 1f, 1);
|
||||||
} else if (prismTank.getWeaponIndex(0) == 1) {
|
|
||||||
float pitch = prismTank.getEntityData().get(HEAT) <= 60 ? 1.1f : (float) (1.1f - 0.011 * Math.abs(60 - prismTank.getEntityData().get(HEAT)));
|
|
||||||
player.playSound(ModSounds.PRISM_FIRE_1P_2.get(), 1f, pitch);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iVehicle instanceof Hpj11Entity hpj11Entity) {
|
|
||||||
float pitch = hpj11Entity.getEntityData().get(HEAT) <= 60 ? 1 : (float) (1 - 0.011 * Math.abs(60 - hpj11Entity.getEntityData().get(HEAT)));
|
|
||||||
player.playSound(ModSounds.HPJ_11_FIRE_1P.get(), 1f, (float) ((2 * org.joml.Math.random() - 1) * 0.05f + pitch));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|
|
@ -439,7 +439,6 @@ public class ModSounds {
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_VERYFAR = REGISTRY.register("insidious_veryfar", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_veryfar")));
|
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_VERYFAR = REGISTRY.register("insidious_veryfar", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_veryfar")));
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_RELOAD_EMPTY = REGISTRY.register("insidious_reload_empty", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_reload_empty")));
|
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_RELOAD_EMPTY = REGISTRY.register("insidious_reload_empty", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_reload_empty")));
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> SMOKE_FIRE = REGISTRY.register("smoke_fire", () -> SoundEvent.createVariableRangeEvent(Mod.loc("smoke_fire")));
|
public static final DeferredHolder<SoundEvent, SoundEvent> SMOKE_FIRE = REGISTRY.register("smoke_fire", () -> SoundEvent.createVariableRangeEvent(Mod.loc("smoke_fire")));
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> HPJ_11_FIRE_1P = REGISTRY.register("hpj_11_fire_1p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("hpj_11_fire_1p")));
|
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> HPJ_11_FIRE_3P = REGISTRY.register("hpj_11_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("hpj_11_fire_3p")));
|
public static final DeferredHolder<SoundEvent, SoundEvent> HPJ_11_FIRE_3P = REGISTRY.register("hpj_11_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("hpj_11_fire_3p")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1189,77 +1189,6 @@
|
||||||
"parent": "cannon",
|
"parent": "cannon",
|
||||||
"pivot": [0, 58, -8]
|
"pivot": [0, 58, -8]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "laser",
|
|
||||||
"parent": "barrel",
|
|
||||||
"pivot": [0, 62.5018, -8],
|
|
||||||
"cubes": [
|
|
||||||
{
|
|
||||||
"origin": [-1.68, 56.31904, -9.6],
|
|
||||||
"size": [3.36, 12.36, 1.6],
|
|
||||||
"uv": {
|
|
||||||
"north": {"uv": [51, 88], "uv_size": [1, 1]},
|
|
||||||
"east": {"uv": [51, 88], "uv_size": [1, 1]},
|
|
||||||
"south": {"uv": [51, 88], "uv_size": [1, 1]},
|
|
||||||
"west": {"uv": [51, 88], "uv_size": [1, 1]},
|
|
||||||
"up": {"uv": [52, 89], "uv_size": [-1, -1]},
|
|
||||||
"down": {"uv": [52, 89], "uv_size": [-1, -1]}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"origin": [-2.52, 55.47848, -9.6],
|
|
||||||
"size": [5.04, 0, 1.6],
|
|
||||||
"uv": {
|
|
||||||
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"origin": [-11.52168, 55.48016, -9.6],
|
|
||||||
"size": [14.04, 0, 1.6],
|
|
||||||
"pivot": [0, 58.00016, -14.72],
|
|
||||||
"rotation": [0, 0, 90],
|
|
||||||
"uv": {
|
|
||||||
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"origin": [-2.52, 64.47848, -9.6],
|
|
||||||
"size": [5.04, 0, 1.6],
|
|
||||||
"pivot": [0, 67.00016, -14.72],
|
|
||||||
"rotation": [0, 0, -180],
|
|
||||||
"uv": {
|
|
||||||
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"origin": [-2.52168, 55.48016, -9.6],
|
|
||||||
"size": [14.04, 0, 1.6],
|
|
||||||
"pivot": [0, 58.00016, -14.72],
|
|
||||||
"rotation": [0, 0, -90],
|
|
||||||
"uv": {
|
|
||||||
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"origin": [-7.02, 62.50184, -10.52],
|
|
||||||
"size": [14.04, 0, 5.04],
|
|
||||||
"pivot": [0, 62.50184, -8],
|
|
||||||
"rotation": [90, 0, -90],
|
|
||||||
"uv": {
|
|
||||||
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"origin": [-2.52, 57.99848, -12.121],
|
|
||||||
"size": [14.04, 0, 5.04],
|
|
||||||
"pivot": [0, 57.99848, -9.601],
|
|
||||||
"rotation": [-90, 0, -90],
|
|
||||||
"uv": {
|
|
||||||
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "head",
|
"name": "head",
|
||||||
"parent": "barrel",
|
"parent": "barrel",
|
||||||
|
@ -10739,6 +10668,91 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cannon2",
|
||||||
|
"pivot": [0, 34.3, -11.8]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "barrel2",
|
||||||
|
"parent": "cannon2",
|
||||||
|
"pivot": [0, 58, -8]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "head2",
|
||||||
|
"parent": "barrel2",
|
||||||
|
"pivot": [0, 62.5018, -8]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "laser",
|
||||||
|
"parent": "head2",
|
||||||
|
"pivot": [0, 62.5018, -8],
|
||||||
|
"cubes": [
|
||||||
|
{
|
||||||
|
"origin": [-1.68, 56.31904, -9.6],
|
||||||
|
"size": [3.36, 12.36, 1.6],
|
||||||
|
"uv": {
|
||||||
|
"north": {"uv": [51, 88], "uv_size": [1, 1]},
|
||||||
|
"east": {"uv": [51, 88], "uv_size": [1, 1]},
|
||||||
|
"south": {"uv": [51, 88], "uv_size": [1, 1]},
|
||||||
|
"west": {"uv": [51, 88], "uv_size": [1, 1]},
|
||||||
|
"up": {"uv": [52, 89], "uv_size": [-1, -1]},
|
||||||
|
"down": {"uv": [52, 89], "uv_size": [-1, -1]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [-2.52, 55.47848, -9.6],
|
||||||
|
"size": [5.04, 0, 1.6],
|
||||||
|
"uv": {
|
||||||
|
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [-11.52168, 55.48016, -9.6],
|
||||||
|
"size": [14.04, 0, 1.6],
|
||||||
|
"pivot": [0, 58.00016, -14.72],
|
||||||
|
"rotation": [0, 0, 90],
|
||||||
|
"uv": {
|
||||||
|
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [-2.52, 64.47848, -9.6],
|
||||||
|
"size": [5.04, 0, 1.6],
|
||||||
|
"pivot": [0, 67.00016, -14.72],
|
||||||
|
"rotation": [0, 0, -180],
|
||||||
|
"uv": {
|
||||||
|
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [-2.52168, 55.48016, -9.6],
|
||||||
|
"size": [14.04, 0, 1.6],
|
||||||
|
"pivot": [0, 58.00016, -14.72],
|
||||||
|
"rotation": [0, 0, -90],
|
||||||
|
"uv": {
|
||||||
|
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [-7.02, 62.50184, -10.52],
|
||||||
|
"size": [14.04, 0, 5.04],
|
||||||
|
"pivot": [0, 62.50184, -8],
|
||||||
|
"rotation": [90, 0, -90],
|
||||||
|
"uv": {
|
||||||
|
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [-2.52, 57.99848, -12.121],
|
||||||
|
"size": [14.04, 0, 5.04],
|
||||||
|
"pivot": [0, 57.99848, -9.601],
|
||||||
|
"rotation": [-90, 0, -90],
|
||||||
|
"uv": {
|
||||||
|
"up": {"uv": [53, 89], "uv_size": [-1, -1]}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -3044,14 +3044,6 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hpj_11_fire_1p": {
|
|
||||||
"sounds": [
|
|
||||||
{
|
|
||||||
"name": "superbwarfare:hpj11/hpj_11_fire_1p",
|
|
||||||
"stream": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hpj_11_fire_3p": {
|
"hpj_11_fire_3p": {
|
||||||
"sounds": [
|
"sounds": [
|
||||||
{
|
{
|
||||||
|
|
Binary file not shown.
Loading…
Add table
Reference in a new issue