添加激光炮的发射功能
This commit is contained in:
parent
6a0fb35181
commit
63a0212d74
9 changed files with 573 additions and 397 deletions
|
@ -16,7 +16,7 @@ public class AnnihilatorModel extends GeoModel<AnnihilatorEntity> {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(AnnihilatorEntity entity) {
|
||||
return null;
|
||||
return ModUtils.loc("animations/annihilator.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -35,6 +35,7 @@ public class CannonHudOverlay {
|
|||
|
||||
public static float health = 0;
|
||||
public static float maxHealth = 0;
|
||||
public static float indicatorPosH = 0;
|
||||
|
||||
private static final ResourceLocation ARMOR = ModUtils.loc("textures/screens/armor.png");
|
||||
private static final ResourceLocation HEALTH = ModUtils.loc("textures/screens/armor_value.png");
|
||||
|
@ -58,10 +59,28 @@ public class CannonHudOverlay {
|
|||
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
||||
RenderSystem.setShaderColor(1, 1, 1, 1);
|
||||
|
||||
if (cannon instanceof Mk42Entity) {
|
||||
health = cannon.getEntityData().get(Mk42Entity.HEALTH);
|
||||
maxHealth = CannonConfig.MK42_HP.get();
|
||||
indicatorPosH = 1.3f;
|
||||
}
|
||||
|
||||
if (cannon instanceof Mle1934Entity) {
|
||||
health = cannon.getEntityData().get(Mle1934Entity.HEALTH);
|
||||
maxHealth = CannonConfig.MLE1934_HP.get();
|
||||
indicatorPosH = 1.2f;
|
||||
}
|
||||
|
||||
if (cannon instanceof AnnihilatorEntity) {
|
||||
health = cannon.getEntityData().get(AnnihilatorEntity.HEALTH);
|
||||
maxHealth = CannonConfig.ANNIHILATOR_HP.get();
|
||||
indicatorPosH = 0.2f;
|
||||
}
|
||||
|
||||
float yRotOffset = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot());
|
||||
float xRotOffset = Mth.lerp(event.getPartialTick(), player.xRotO, player.getXRot());
|
||||
float diffY = cannon.getViewYRot(event.getPartialTick()) - yRotOffset;
|
||||
float diffX = cannon.getViewXRot(event.getPartialTick()) - xRotOffset + 1.3f;
|
||||
float diffX = cannon.getViewXRot(event.getPartialTick()) - xRotOffset + indicatorPosH;
|
||||
float fovAdjust = (float) 70 / Minecraft.getInstance().options.fov().get();
|
||||
if (diffY > 180.0f) {
|
||||
diffY -= 360.0f;
|
||||
|
@ -111,21 +130,6 @@ public class CannonHudOverlay {
|
|||
.append(Component.literal(new DecimalFormat("##.#").format(-cannon.getXRot()) + "°")),
|
||||
w / 2 + 14, h / 2 - 29, -1, false);
|
||||
|
||||
if (cannon instanceof Mk42Entity) {
|
||||
health = cannon.getEntityData().get(Mk42Entity.HEALTH);
|
||||
maxHealth = CannonConfig.MK42_HP.get();
|
||||
}
|
||||
|
||||
if (cannon instanceof Mle1934Entity) {
|
||||
health = cannon.getEntityData().get(Mle1934Entity.HEALTH);
|
||||
maxHealth = CannonConfig.MLE1934_HP.get();
|
||||
}
|
||||
|
||||
if (cannon instanceof AnnihilatorEntity) {
|
||||
health = cannon.getEntityData().get(AnnihilatorEntity.HEALTH);
|
||||
maxHealth = CannonConfig.ANNIHILATOR_HP.get();
|
||||
}
|
||||
|
||||
GuiGraphics guiGraphics = event.getGuiGraphics();
|
||||
guiGraphics.pose().pushPose();
|
||||
guiGraphics.blit(ARMOR, w - 96, h - 14, 0, 0, 12, 12, 12, 12);
|
||||
|
|
|
@ -5,9 +5,10 @@ import com.atsuishio.superbwarfare.config.server.CannonConfig;
|
|||
import com.atsuishio.superbwarfare.config.server.ExplosionDestroyConfig;
|
||||
import com.atsuishio.superbwarfare.init.*;
|
||||
import com.atsuishio.superbwarfare.item.ContainerBlockItem;
|
||||
import com.atsuishio.superbwarfare.network.message.ClientIndicatorMessage;
|
||||
import com.atsuishio.superbwarfare.network.message.ShakeClientMessage;
|
||||
import com.atsuishio.superbwarfare.tools.CustomExplosion;
|
||||
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
||||
import com.atsuishio.superbwarfare.tools.SoundTool;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
|
@ -42,12 +43,17 @@ import org.joml.Vector3d;
|
|||
import software.bernie.geckolib.animatable.GeoEntity;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.core.animation.AnimationController;
|
||||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.core.animation.RawAnimation;
|
||||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntity {
|
||||
|
||||
public static final EntityDataAccessor<Integer> COOL_DOWN = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.INT);
|
||||
public static final EntityDataAccessor<Integer> TYPE = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.INT);
|
||||
public static final EntityDataAccessor<Float> HEALTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
|
||||
public static final EntityDataAccessor<Float> LASER_LEFT_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
|
||||
public static final EntityDataAccessor<Float> LASER_MIDDLE_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
|
||||
|
@ -73,7 +79,6 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
@Override
|
||||
protected void defineSynchedData() {
|
||||
this.entityData.define(COOL_DOWN, 0);
|
||||
this.entityData.define(TYPE, 0);
|
||||
this.entityData.define(HEALTH, MAX_HEALTH);
|
||||
this.entityData.define(LASER_LEFT_LENGTH, 0f);
|
||||
this.entityData.define(LASER_MIDDLE_LENGTH, 0f);
|
||||
|
@ -83,14 +88,12 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
@Override
|
||||
public void addAdditionalSaveData(CompoundTag compound) {
|
||||
compound.putInt("CoolDown", this.entityData.get(COOL_DOWN));
|
||||
compound.putInt("Type", this.entityData.get(TYPE));
|
||||
compound.putFloat("Health", this.entityData.get(HEALTH));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readAdditionalSaveData(CompoundTag compound) {
|
||||
this.entityData.set(COOL_DOWN, compound.getInt("CoolDown"));
|
||||
this.entityData.set(TYPE, compound.getInt("Type"));
|
||||
if (compound.contains("Health")) {
|
||||
this.entityData.set(HEALTH, compound.getFloat("Health"));
|
||||
} else {
|
||||
|
@ -277,15 +280,24 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
|
||||
Vec3 BarrelRightPos = new Vec3(BarrelRootPos.x + rightPos.x, BarrelRootPos.y + rightPos.y, BarrelRootPos.z + rightPos.z);
|
||||
|
||||
this.entityData.set(LASER_LEFT_LENGTH, Math.min(laserLength(BarrelLeftPos ,this), laserLengthEntity(BarrelLeftPos ,this)));
|
||||
this.entityData.set(LASER_MIDDLE_LENGTH, Math.min(laserLength(BarrelMiddlePos ,this), laserLengthEntity(BarrelMiddlePos ,this)));
|
||||
this.entityData.set(LASER_RIGHT_LENGTH, Math.min(laserLength(BarrelRightPos ,this), laserLengthEntity(BarrelRightPos ,this)));
|
||||
if (this.entityData.get(COOL_DOWN) > 88) {
|
||||
this.entityData.set(LASER_LEFT_LENGTH, Math.min(laserLength(BarrelLeftPos ,this), laserLengthEntity(BarrelLeftPos ,this)));
|
||||
this.entityData.set(LASER_MIDDLE_LENGTH, Math.min(laserLength(BarrelMiddlePos ,this), laserLengthEntity(BarrelMiddlePos ,this)));
|
||||
this.entityData.set(LASER_RIGHT_LENGTH, Math.min(laserLength(BarrelRightPos ,this), laserLengthEntity(BarrelRightPos ,this)));
|
||||
}
|
||||
|
||||
travel();
|
||||
this.refreshDimensions();
|
||||
}
|
||||
|
||||
private float laserLength (Vec3 pos, Entity cannon) {
|
||||
if (this.entityData.get(COOL_DOWN) > 98) {
|
||||
HitResult result = cannon.level().clip(new ClipContext(pos, pos.add(cannon.getViewVector(1).scale(512)),
|
||||
ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, cannon));
|
||||
Vec3 hitPos = result.getLocation();
|
||||
laserExplosion(hitPos);
|
||||
}
|
||||
|
||||
return (float) pos.distanceTo((Vec3.atLowerCornerOf(cannon.level().clip(
|
||||
new ClipContext(pos, pos.add(cannon.getViewVector(1).scale(512)),
|
||||
ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, cannon)).getBlockPos())));
|
||||
|
@ -315,28 +327,35 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
hitResult = entityhitresult;
|
||||
}
|
||||
if (hitResult.getType() == HitResult.Type.ENTITY) {
|
||||
|
||||
Entity passenger = this.getPassengers().isEmpty() ? null : this.getPassengers().get(0);
|
||||
Entity target = ((EntityHitResult) hitResult).getEntity();
|
||||
|
||||
target.hurt(ModDamageTypes.causeLaserDamage(this.level().registryAccess(), passenger, passenger), (float) 100);
|
||||
target.hurt(ModDamageTypes.causeLaserDamage(this.level().registryAccess(), passenger, passenger), (float) 200);
|
||||
target.invulnerableTime = 0;
|
||||
if (passenger instanceof ServerPlayer serverPlayer) {
|
||||
serverPlayer.level().playSound(null, serverPlayer.blockPosition(), ModSounds.INDICATION.get(), SoundSource.VOICE, 0.1f, 1);
|
||||
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new ClientIndicatorMessage(0, 5));
|
||||
if (this.entityData.get(COOL_DOWN) > 98) {
|
||||
laserExplosion(targetPos);
|
||||
}
|
||||
|
||||
return (float) pos.distanceTo(target.position());
|
||||
}
|
||||
}
|
||||
|
||||
return 512;
|
||||
}
|
||||
|
||||
private void laserExplosion(Vec3 pos) {
|
||||
Entity passenger = this.getPassengers().isEmpty() ? null : this.getPassengers().get(0);
|
||||
|
||||
CustomExplosion explosion = new CustomExplosion(this.level(), passenger,
|
||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), passenger, passenger), 300f,
|
||||
pos.x, pos.y, pos.z, 15f, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
|
||||
explosion.explode();
|
||||
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion);
|
||||
explosion.finalizeExplosion(false);
|
||||
ParticleTool.spawnHugeExplosionParticles(this.level(), pos);
|
||||
}
|
||||
|
||||
private void destroy() {
|
||||
CustomExplosion explosion = new CustomExplosion(this.level(), this,
|
||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this), 140f,
|
||||
this.getX(), this.getY(), this.getZ(), 25f, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
|
||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this), 160f,
|
||||
this.getX(), this.getY(), this.getZ(), 20f, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
|
||||
explosion.explode();
|
||||
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion);
|
||||
explosion.finalizeExplosion(false);
|
||||
|
@ -347,6 +366,34 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
|
||||
@Override
|
||||
public void cannonShoot(Player player) {
|
||||
if (this.entityData.get(COOL_DOWN) > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
Level level = player.level();
|
||||
if (level instanceof ServerLevel server) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
|
||||
|
||||
if (player instanceof ServerPlayer serverPlayer) {
|
||||
SoundTool.playLocalSound(serverPlayer, ModSounds.ANNIHILATOR_FIRE_1P.get(), 1, 1);
|
||||
// SoundTool.playLocalSound(serverPlayer, ModSounds.MK_42_RELOAD.get(), 2, 1);
|
||||
// serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.MK_42_FIRE_3P.get(), SoundSource.PLAYERS, 6, 1);
|
||||
// serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.MK_42_FAR.get(), SoundSource.PLAYERS, 16, 1);
|
||||
// serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.MK_42_VERYFAR.get(), SoundSource.PLAYERS, 32, 1);
|
||||
}
|
||||
|
||||
this.entityData.set(COOL_DOWN, 100);
|
||||
|
||||
final Vec3 center = new Vec3(this.getX(), this.getEyeY(), this.getZ());
|
||||
|
||||
for (Entity target : level.getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(20), e -> true).stream().sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))).toList()) {
|
||||
|
||||
if (target instanceof ServerPlayer serverPlayer) {
|
||||
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new ShakeClientMessage(15, 15, 25, this.getX(), this.getEyeY(), this.getZ()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -369,7 +416,7 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
}
|
||||
|
||||
float diffY = passengerY - this.getYRot();
|
||||
float diffX = entity.getXRot() - 1.2f - this.getXRot();
|
||||
float diffX = entity.getXRot() - 0.2f - this.getXRot();
|
||||
if (diffY > 180.0f) {
|
||||
diffY -= 360.0f;
|
||||
} else if (diffY < -180.0f) {
|
||||
|
@ -379,13 +426,13 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
diffX = diffX * 0.15f;
|
||||
|
||||
this.setYRot(this.getYRot() + diffY);
|
||||
this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(diffX, -2f, 2f), -45, 6.2f));
|
||||
this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(diffX, -2f, 2f), -45, 5.2f));
|
||||
this.setRot(this.getYRot(), this.getXRot());
|
||||
}
|
||||
|
||||
protected void clampRotation(Entity entity) {
|
||||
float f = Mth.wrapDegrees(entity.getXRot());
|
||||
float f1 = Mth.clamp(f, -45.0F, 6.2F);
|
||||
float f1 = Mth.clamp(f, -45.0F, 5.2F);
|
||||
entity.xRotO += f1 - f;
|
||||
entity.setXRot(entity.getXRot() + f1 - f);
|
||||
}
|
||||
|
@ -395,20 +442,16 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
|
|||
this.clampRotation(entity);
|
||||
}
|
||||
|
||||
// private PlayState movementPredicate(AnimationState<AnnihilatorEntity> event) {
|
||||
// if (this.entityData.get(COOL_DOWN) > 64) {
|
||||
// if (this.entityData.get(TYPE) == 1) {
|
||||
// return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mle1934.salvo_fire"));
|
||||
// } else {
|
||||
// return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mle1934.fire"));
|
||||
// }
|
||||
// }
|
||||
// return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mle1934.idle"));
|
||||
// }
|
||||
private PlayState movementPredicate(AnimationState<AnnihilatorEntity> event) {
|
||||
if (this.entityData.get(COOL_DOWN) > 88) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.annihilator.fire"));
|
||||
}
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.annihilator.idle"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
// data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate));
|
||||
data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -336,5 +336,7 @@ public class ModSounds {
|
|||
public static final RegistryObject<SoundEvent> CHARGE_RIFLE_FIRE_3P = REGISTRY.register("charge_rifle_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "charge_rifle_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> CHARGE_RIFLE_FIRE_BOOM_1P = REGISTRY.register("charge_rifle_fire_boom_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "charge_rifle_fire_boom_1p")));
|
||||
public static final RegistryObject<SoundEvent> CHARGE_RIFLE_FIRE_BOOM_3P = REGISTRY.register("charge_rifle_fire_boom_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "charge_rifle_fire_boom_3p")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> ANNIHILATOR_FIRE_1P = REGISTRY.register("annihilator_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "annihilator_fire_1p")));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.atsuishio.superbwarfare.mixins;
|
||||
|
||||
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
|
||||
import com.atsuishio.superbwarfare.entity.DroneEntity;
|
||||
import com.atsuishio.superbwarfare.entity.Mk42Entity;
|
||||
import com.atsuishio.superbwarfare.entity.Mle1934Entity;
|
||||
|
@ -71,6 +72,10 @@ public abstract class CameraMixin {
|
|||
move(-getMaxZoom(10), 1.3, 0.0);
|
||||
return;
|
||||
}
|
||||
if (thirdPerson && entity.getVehicle() instanceof AnnihilatorEntity) {
|
||||
move(-getMaxZoom(16), 1.3, 0.0);
|
||||
return;
|
||||
}
|
||||
if (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK && entity instanceof Player player && player.getMainHandItem().is(ModTags.Items.GUN)) {
|
||||
move(-getMaxZoom(-2.9 * Math.max(ClientEventHandler.pullPos, ClientEventHandler.zoomPos)), 0, -ClientEventHandler.cameraLocation * Math.max(ClientEventHandler.pullPos, ClientEventHandler.zoomPos));
|
||||
}
|
||||
|
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.annihilator.idle": {
|
||||
"animation_length": 0.25,
|
||||
"bones": {
|
||||
"glow1": {
|
||||
"scale": 0
|
||||
},
|
||||
"light1": {
|
||||
"scale": [1, 1, 0]
|
||||
},
|
||||
"glow2": {
|
||||
"scale": 0
|
||||
},
|
||||
"light2": {
|
||||
"scale": [1, 1, 0]
|
||||
},
|
||||
"glow3": {
|
||||
"scale": 0
|
||||
},
|
||||
"light3": {
|
||||
"scale": [1, 1, 0]
|
||||
},
|
||||
"laser1": {
|
||||
"scale": [0, 0, 1]
|
||||
},
|
||||
"laser2": {
|
||||
"scale": [0, 0, 1]
|
||||
},
|
||||
"laser3": {
|
||||
"scale": [0, 0, 1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.annihilator.fire": {
|
||||
"animation_length": 1,
|
||||
"bones": {
|
||||
"glow1": {
|
||||
"scale": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"light1": {
|
||||
"scale": {
|
||||
"0.0": [1, 1, 0],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [1, 1, 0]
|
||||
}
|
||||
},
|
||||
"glow2": {
|
||||
"scale": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"light2": {
|
||||
"scale": {
|
||||
"0.0": [1, 1, 0],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [1, 1, 0]
|
||||
}
|
||||
},
|
||||
"glow3": {
|
||||
"scale": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"light3": {
|
||||
"scale": {
|
||||
"0.0": [1, 1, 0],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [1, 1, 0]
|
||||
}
|
||||
},
|
||||
"laser1": {
|
||||
"scale": {
|
||||
"0.0": [0, 0, 1],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [0, 0, 1]
|
||||
}
|
||||
},
|
||||
"laser2": {
|
||||
"scale": {
|
||||
"0.0": [0, 0, 1],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [0, 0, 1]
|
||||
}
|
||||
},
|
||||
"laser3": {
|
||||
"scale": {
|
||||
"0.0": [0, 0, 1],
|
||||
"0.0083": [1, 1, 1],
|
||||
"0.1917": [1, 1, 1],
|
||||
"0.5": [0, 0, 1]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -43,7 +43,352 @@
|
|||
"pivot": [43.25, 36.0004, -275]
|
||||
},
|
||||
{
|
||||
"name": "bone5",
|
||||
"name": "light1",
|
||||
"parent": "laser",
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [43.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [43.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [43.215, 35.2505, -331.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "light2",
|
||||
"parent": "laser",
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-79.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-79.215, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-43.215, 35.2505, -331.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "light3",
|
||||
"parent": "laser",
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-36, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.877, -333.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-36, 37.7945, -333.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [0, 35.2505, -331.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "glow1",
|
||||
"parent": "laser",
|
||||
"pivot": [43.25, 35.2538, -330.9],
|
||||
"cubes": [
|
||||
|
@ -77,122 +422,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"name": "bone7",
|
||||
"parent": "bone5",
|
||||
"pivot": [45.759, 35.33301, -305.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [17.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 37.877, -305.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 32.624, -305.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [19.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [45.759, 35.25051, -305.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [14.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [40.671, 35.2505, -305.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [14.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [40.671, 35.2505, -305.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 37.877, -305.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 32.624, -305.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [19.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [45.759, 35.25051, -305.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [14.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [40.671, 35.2505, -305.2],
|
||||
"rotation": [0, -90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 37.877, -305.2],
|
||||
"rotation": [0, -90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [17.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [43.215, 32.624, -305.2],
|
||||
"rotation": [0, -90, -180],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [19.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [45.759, 35.25051, -305.2],
|
||||
"rotation": [0, -90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [93.625, 108.75], "uv_size": [-23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone8",
|
||||
"name": "glow2",
|
||||
"parent": "laser",
|
||||
"pivot": [-43.25, 35.2538, -330.9],
|
||||
"cubes": [
|
||||
|
@ -226,122 +456,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"name": "bone9",
|
||||
"parent": "bone8",
|
||||
"pivot": [-45.759, 35.33301, -305.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-53.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-55.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-45.759, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-50.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-40.671, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-50.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-40.671, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-55.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-45.759, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-50.671, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-40.671, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-53.215, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [-43.215, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-55.759, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-45.759, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone10",
|
||||
"name": "glow3",
|
||||
"parent": "laser",
|
||||
"pivot": [-0.035, 35.2538, -330.9],
|
||||
"cubes": [
|
||||
|
@ -374,121 +489,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone11",
|
||||
"parent": "bone10",
|
||||
"pivot": [-2.544, 35.33301, -305.2],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-10, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-12.544, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-2.544, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-7.456, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [2.544, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-7.456, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [2.544, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-12.544, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-2.544, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-7.456, 35.2505, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [2.544, 35.2505, -305.2],
|
||||
"rotation": [0, 90, 90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 37.877, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 37.877, -305.2],
|
||||
"rotation": [0, 90, 0],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-10, 32.624, -307.745],
|
||||
"size": [36, 0, 5.09],
|
||||
"pivot": [0, 32.624, -305.2],
|
||||
"rotation": [0, 90, 180],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-12.544, 35.25051, -307.8275],
|
||||
"size": [36, 0, 5.255],
|
||||
"pivot": [-2.544, 35.25051, -305.2],
|
||||
"rotation": [0, 90, -90],
|
||||
"uv": {
|
||||
"up": {"uv": [69.75, 108.75], "uv_size": [23.875, -8.125]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "laser1",
|
||||
"parent": "laser",
|
||||
|
|
|
@ -2389,5 +2389,13 @@
|
|||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"annihilator_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:annihilator/annihilator_fire_1p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Binary file not shown.
Loading…
Add table
Reference in a new issue