添加更多指示灯

This commit is contained in:
Atsuihsio 2024-12-06 16:31:20 +08:00
parent 795f812da2
commit 320d4e0950
13 changed files with 763 additions and 355 deletions

View file

@ -0,0 +1,28 @@
package com.atsuishio.superbwarfare.client.layer;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class AnnihilatorLedLayer extends GeoRenderLayer<AnnihilatorEntity> {
private static final ResourceLocation LAYER = ModUtils.loc("textures/entity/annihilator_led.png");
public AnnihilatorLedLayer(GeoRenderer<AnnihilatorEntity> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, AnnihilatorEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.entityTranslucent(LAYER);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
}
}

View file

@ -0,0 +1,28 @@
package com.atsuishio.superbwarfare.client.layer;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class AnnihilatorLedLightLayer extends GeoRenderLayer<AnnihilatorEntity> {
private static final ResourceLocation LAYER = ModUtils.loc("textures/entity/annihilator_led.png");
public AnnihilatorLedLightLayer(GeoRenderer<AnnihilatorEntity> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, AnnihilatorEntity 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, 1, 1, 1, 1);
}
}

View file

@ -0,0 +1,32 @@
package com.atsuishio.superbwarfare.client.layer;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.config.server.CannonConfig;
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class AnnihilatorPowerLayer extends GeoRenderLayer<AnnihilatorEntity> {
private static final ResourceLocation LAYER = ModUtils.loc("textures/entity/annihilator_power.png");
public AnnihilatorPowerLayer(GeoRenderer<AnnihilatorEntity> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, AnnihilatorEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.entityTranslucent(LAYER);
float red = 1 - Mth.clamp(2.5f * animatable.getEntityData().get(AnnihilatorEntity.ENERGY)/ CannonConfig.ANNIHILATOR_MAX_ENERGY.get().floatValue(),0,1);
float green = Mth.clamp(2.5f * animatable.getEntityData().get(AnnihilatorEntity.ENERGY)/ CannonConfig.ANNIHILATOR_MAX_ENERGY.get().floatValue(),0,1);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, red, green, 0, 1);
}
}

View file

@ -0,0 +1,32 @@
package com.atsuishio.superbwarfare.client.layer;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.config.server.CannonConfig;
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class AnnihilatorPowerLightLayer extends GeoRenderLayer<AnnihilatorEntity> {
private static final ResourceLocation LAYER = ModUtils.loc("textures/entity/annihilator_power.png");
public AnnihilatorPowerLightLayer(GeoRenderer<AnnihilatorEntity> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, AnnihilatorEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.eyes(LAYER);
float red = 1 - Mth.clamp(2.5f * animatable.getEntityData().get(AnnihilatorEntity.ENERGY)/ CannonConfig.ANNIHILATOR_MAX_ENERGY.get().floatValue(),0,1);
float green = Mth.clamp(2.5f * animatable.getEntityData().get(AnnihilatorEntity.ENERGY)/ CannonConfig.ANNIHILATOR_MAX_ENERGY.get().floatValue(),0,1);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, red, green, 0, 1);
}
}

View file

@ -1,6 +1,7 @@
package com.atsuishio.superbwarfare.client.model.entity;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.config.server.CannonConfig;
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
@ -59,5 +60,33 @@ public class AnnihilatorModel extends GeoModel<AnnihilatorEntity> {
laserLeft.setScaleZ(animatable.getEntityData().get(LASER_LEFT_LENGTH) + 0.5f);
laserMiddle.setScaleZ(animatable.getEntityData().get(LASER_MIDDLE_LENGTH) + 0.5f);
laserRight.setScaleZ(animatable.getEntityData().get(LASER_RIGHT_LENGTH) + 0.5f);
CoreGeoBone ledGreen = getAnimationProcessor().getBone("ledgreen");
CoreGeoBone ledGreen2 = getAnimationProcessor().getBone("ledgreen2");
CoreGeoBone ledGreen3 = getAnimationProcessor().getBone("ledgreen3");
CoreGeoBone ledGreen4 = getAnimationProcessor().getBone("ledgreen4");
CoreGeoBone ledGreen5 = getAnimationProcessor().getBone("ledgreen5");
CoreGeoBone ledRed = getAnimationProcessor().getBone("ledred");
CoreGeoBone ledRed2 = getAnimationProcessor().getBone("ledred2");
CoreGeoBone ledRed3 = getAnimationProcessor().getBone("ledred3");
CoreGeoBone ledRed4 = getAnimationProcessor().getBone("ledred4");
CoreGeoBone ledRed5 = getAnimationProcessor().getBone("ledred5");
float coolDown = animatable.getEntityData().get(COOL_DOWN);
boolean cantShoot = animatable.getEntityData().get(ENERGY) < CannonConfig.ANNIHILATOR_SHOOT_COST.get().floatValue();
ledGreen.setHidden(coolDown > 80 || cantShoot);
ledGreen2.setHidden(coolDown > 60 || cantShoot);
ledGreen3.setHidden(coolDown > 40 || cantShoot);
ledGreen4.setHidden(coolDown > 20 || cantShoot);
ledGreen5.setHidden(coolDown > 0 || cantShoot);
ledRed.setHidden(!ledGreen.isHidden());
ledRed2.setHidden(!ledGreen2.isHidden());
ledRed3.setHidden(!ledGreen3.isHidden());
ledRed4.setHidden(!ledGreen4.isHidden());
ledRed5.setHidden(!ledGreen5.isHidden());
}
}

View file

@ -1,7 +1,6 @@
package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.client.layer.AnnihilatorGlowLayer;
import com.atsuishio.superbwarfare.client.layer.AnnihilatorLayer;
import com.atsuishio.superbwarfare.client.layer.*;
import com.atsuishio.superbwarfare.client.model.entity.AnnihilatorModel;
import com.atsuishio.superbwarfare.entity.AnnihilatorEntity;
import com.mojang.blaze3d.vertex.PoseStack;
@ -19,9 +18,12 @@ public class AnnihilatorRenderer extends GeoEntityRenderer<AnnihilatorEntity> {
public AnnihilatorRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new AnnihilatorModel());
this.shadowRadius = 7.5f;
this.addRenderLayer(new AnnihilatorLayer(this));
this.addRenderLayer(new AnnihilatorGlowLayer(this));
this.addRenderLayer(new AnnihilatorPowerLayer(this));
this.addRenderLayer(new AnnihilatorPowerLightLayer(this));
this.addRenderLayer(new AnnihilatorLedLayer(this));
this.addRenderLayer(new AnnihilatorLedLightLayer(this));
}
@Override

View file

@ -81,7 +81,7 @@ public class CannonHudOverlay {
maxHealth = CannonConfig.ANNIHILATOR_HP.get();
energy = cannon.getEntityData().get(AnnihilatorEntity.ENERGY);
maxEnergy = CannonConfig.ANNIHILATOR_MAX_ENERGY.get().floatValue();
indicatorPosH = 0.2f;
indicatorPosH = cannon.getEntityData().get(AnnihilatorEntity.OFFSET_ANGLE);
guiGraphics.pose().pushPose();
guiGraphics.blit(ENERGY, w - 96, h - 28, 0, 0, 12, 12, 12, 12);

View file

@ -60,6 +60,7 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
public static final EntityDataAccessor<Float> LASER_MIDDLE_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
public static final EntityDataAccessor<Float> LASER_RIGHT_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
public static final EntityDataAccessor<Float> ENERGY = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
public static final EntityDataAccessor<Float> OFFSET_ANGLE = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
@ -86,6 +87,7 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
this.entityData.define(LASER_MIDDLE_LENGTH, 0f);
this.entityData.define(LASER_RIGHT_LENGTH, 0f);
this.entityData.define(ENERGY, 0f);
this.entityData.define(OFFSET_ANGLE, 0.2f);
}
@Override
@ -435,7 +437,7 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
public void travel() {
Entity passenger = this.getPassengers().isEmpty() ? null : this.getPassengers().get(0);
if (!(passenger instanceof LivingEntity entity)) return;
if (this.entityData.get(ENERGY) == 0) return;
if (this.entityData.get(ENERGY) <= 0) return;
float passengerY = entity.getYHeadRot();
@ -446,7 +448,7 @@ public class AnnihilatorEntity extends Entity implements GeoEntity, ICannonEntit
}
float diffY = passengerY - this.getYRot();
float diffX = entity.getXRot() - 0.2f - this.getXRot();
float diffX = entity.getXRot() - this.entityData.get(OFFSET_ANGLE) - this.getXRot();
if (diffY > 180.0f) {
diffY -= 360.0f;
} else if (diffY < -180.0f) {
@ -456,13 +458,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, 5.2f));
this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(diffX, -2f, 2f), -45, 5f + this.entityData.get(OFFSET_ANGLE)));
this.setRot(this.getYRot(), this.getXRot());
}
protected void clampRotation(Entity entity) {
float f = Mth.wrapDegrees(entity.getXRot());
float f1 = Mth.clamp(f, -45.0F, 5.2F);
float f1 = Mth.clamp(f, -45.0F, 5f + this.entityData.get(OFFSET_ANGLE));
entity.xRotO += f1 - f;
entity.setXRot(entity.getXRot() + f1 - f);
}

View file

@ -42,351 +42,6 @@
"parent": "PaoGuan",
"pivot": [43.25, 36.0004, -275]
},
{
"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",
@ -422,7 +77,122 @@
]
},
{
"name": "glow2",
"name": "bone7",
"parent": "glow1",
"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": "glow3",
"parent": "laser",
"pivot": [-43.25, 35.2538, -330.9],
"cubes": [
@ -456,7 +226,122 @@
]
},
{
"name": "glow3",
"name": "bone9",
"parent": "glow3",
"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": "glow2",
"parent": "laser",
"pivot": [-0.035, 35.2538, -330.9],
"cubes": [
@ -489,6 +374,121 @@
}
]
},
{
"name": "bone11",
"parent": "glow2",
"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",
@ -1571,6 +1571,261 @@
"parent": "main",
"pivot": [0, 0, -24]
},
{
"name": "led",
"parent": "body",
"pivot": [0, 91.72092, -117.08214]
},
{
"name": "ledgreen",
"parent": "led",
"pivot": [0, 91.72092, -117.08214],
"cubes": [
{
"origin": [-74.74347, 68.4, -17.85867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.72092, -117.08214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.4, -17.85867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.72092, -117.08214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [0, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledgreen2",
"parent": "led",
"pivot": [0, 91.72092, -106.08214],
"cubes": [
{
"origin": [-74.74347, 68.399, -7.05867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -106.28214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, -7.05867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -106.28214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [0, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledgreen3",
"parent": "led",
"pivot": [0, 91.72092, -106.08214],
"cubes": [
{
"origin": [-74.74347, 68.399, 3.74133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -95.48214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, 3.74133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -95.48214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [0, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledgreen4",
"parent": "led",
"pivot": [0, 91.72092, -106.08214],
"cubes": [
{
"origin": [-74.74347, 68.399, 14.54133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -84.68214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, 14.54133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -84.68214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [0, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledgreen5",
"parent": "led",
"pivot": [0, 91.72092, -106.08214],
"cubes": [
{
"origin": [-74.74347, 68.399, 25.34133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -73.88214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, 25.34133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -73.88214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [0, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledred",
"parent": "led",
"pivot": [0, 91.72092, -117.08214],
"cubes": [
{
"origin": [-74.74347, 68.4, -17.85867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.72092, -117.08214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [2, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.4, -17.85867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.72092, -117.08214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledred2",
"parent": "led",
"pivot": [0, 91.72092, -86.28214],
"cubes": [
{
"origin": [-74.74347, 68.399, -7.05867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -106.28214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [2, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, -7.05867],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -106.28214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledred3",
"parent": "led",
"pivot": [0, 91.72092, -79.03214],
"cubes": [
{
"origin": [-74.74347, 68.399, 3.74133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -95.48214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [2, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, 3.74133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -95.48214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledred4",
"parent": "led",
"pivot": [0, 91.72092, -72.03214],
"cubes": [
{
"origin": [-74.74347, 68.399, 14.54133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -84.68214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [2, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, 14.54133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -84.68214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "ledred5",
"parent": "led",
"pivot": [0, 91.72092, -63.78214],
"cubes": [
{
"origin": [-74.74347, 68.399, 25.34133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -73.88214],
"rotation": [0, 45, 0],
"uv": {
"up": {"uv": [2, 82], "uv_size": [-1, 1]}
}
},
{
"origin": [67.54347, 68.399, 25.34133],
"size": [7.2, 0, 7.2],
"pivot": [0, 91.71992, -73.88214],
"rotation": [0, -45, 0],
"uv": {
"up": {"uv": [1, 82], "uv_size": [1, 1]}
}
}
]
},
{
"name": "QianPaoDun",
"parent": "body",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B