添加俄罗斯小摔炮
This commit is contained in:
parent
820f5985f0
commit
028a4803ae
21 changed files with 4078 additions and 2579 deletions
|
@ -0,0 +1,100 @@
|
||||||
|
package net.mcreator.superbwarfare.client.model.entity;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
|
import net.minecraft.client.model.EntityModel;
|
||||||
|
import net.minecraft.client.model.geom.ModelLayerLocation;
|
||||||
|
import net.minecraft.client.model.geom.ModelPart;
|
||||||
|
import net.minecraft.client.model.geom.PartPose;
|
||||||
|
import net.minecraft.client.model.geom.builders.*;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public class ModelRgoGrenade<T extends Entity> extends EntityModel<T> {
|
||||||
|
// This layer location should be baked with EntityRendererProvider.Context in the entity renderer and passed into this model's constructor
|
||||||
|
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "model_rgo_grenade"), "main");
|
||||||
|
public final ModelPart group;
|
||||||
|
|
||||||
|
public ModelRgoGrenade(ModelPart root) {
|
||||||
|
this.group = root.getChild("group");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LayerDefinition createBodyLayer() {
|
||||||
|
MeshDefinition meshdefinition = new MeshDefinition();
|
||||||
|
PartDefinition partdefinition = meshdefinition.getRoot();
|
||||||
|
|
||||||
|
PartDefinition group = partdefinition.addOrReplaceChild("group", CubeListBuilder.create(), PartPose.offset(0.0F, -0.0217F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone = group.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -3.1416F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone5 = bone.addOrReplaceChild("bone5", CubeListBuilder.create().texOffs(24, 25).addBox(-0.5375F, -13.3055F, 17.1856F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 16.0295F, -17.7281F));
|
||||||
|
|
||||||
|
PartDefinition bone180_r1 = bone5.addOrReplaceChild("bone180_r1", CubeListBuilder.create().texOffs(25, 25).addBox(-1.2976F, -0.5375F, -0.5375F, 0.5953F, 1.075F, 1.075F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(24, 25).addBox(-0.5375F, 0.7024F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0078F, 17.7231F, 0.0F, 0.0F, -0.7854F));
|
||||||
|
|
||||||
|
PartDefinition bone179_r1 = bone5.addOrReplaceChild("bone179_r1", CubeListBuilder.create().texOffs(25, 25).addBox(-0.5375F, -0.5375F, -1.2976F, 1.075F, 1.075F, 0.5953F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(24, 25).addBox(-0.5375F, 0.7024F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0078F, 17.7231F, 0.7854F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone6 = bone.addOrReplaceChild("bone6", CubeListBuilder.create().texOffs(25, 25).addBox(-0.5375F, -15.5554F, 17.1856F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(1, 24).addBox(-0.5375F, -15.5554F, 17.1856F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 30).addBox(-0.387F, -17.2646F, 17.3361F, 0.774F, 0.4286F, 0.774F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 16.0295F, -17.7281F));
|
||||||
|
|
||||||
|
PartDefinition bone181_r1 = bone6.addOrReplaceChild("bone181_r1", CubeListBuilder.create().texOffs(25, 25).addBox(-1.2976F, -0.5375F, -0.5375F, 0.5953F, 1.075F, 1.075F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(24, 25).addBox(-0.5375F, -1.2976F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.2578F, 17.7231F, 0.0F, 0.0F, 0.7854F));
|
||||||
|
|
||||||
|
PartDefinition bone180_r2 = bone6.addOrReplaceChild("bone180_r2", CubeListBuilder.create().texOffs(25, 25).addBox(-0.5375F, -0.5375F, -1.2976F, 1.075F, 1.075F, 0.5953F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(24, 25).addBox(-0.5375F, -1.2976F, -0.5375F, 1.075F, 0.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.2578F, 17.7231F, -0.7854F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone7 = bone.addOrReplaceChild("bone7", CubeListBuilder.create().texOffs(24, 28).addBox(-1.2976F, -14.7953F, 17.1856F, 2.5953F, 1.325F, 1.075F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(19, 28).addBox(-0.5375F, -14.7953F, 16.4255F, 1.075F, 1.325F, 2.5953F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 16.0295F, -17.7281F));
|
||||||
|
|
||||||
|
PartDefinition bone180_r3 = bone7.addOrReplaceChild("bone180_r3", CubeListBuilder.create().texOffs(19, 24).addBox(-0.5375F, -0.7875F, -1.2976F, 1.075F, 1.325F, 2.5953F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(24, 24).addBox(-1.2976F, -0.7875F, -0.5375F, 2.5953F, 1.325F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0078F, 17.7231F, 0.0F, 0.7854F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition group3 = bone.addOrReplaceChild("group3", CubeListBuilder.create().texOffs(0, 30).addBox(-1.337F, -17.1111F, -7.7855F, 0.674F, 1.104F, 0.5686F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 30).addBox(-1.337F, -16.0911F, -7.263F, 0.674F, 0.804F, 0.4686F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 30).addBox(-1.587F, -15.2871F, -7.463F, 1.174F, 0.5F, 0.6686F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(12, 29).addBox(-1.487F, -15.1871F, -6.7944F, 0.974F, 0.3F, 0.0117F, new CubeDeformation(0.0F)), PartPose.offset(1.0F, 15.3733F, 8.1462F));
|
||||||
|
|
||||||
|
PartDefinition bone183_r1 = group3.addOrReplaceChild("bone183_r1", CubeListBuilder.create().texOffs(2, 27).addBox(-0.337F, -0.3093F, -0.427F, 0.674F, 0.3186F, 0.254F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -16.4252F, -8.0809F, -0.3927F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone182_r1 = group3.addOrReplaceChild("bone182_r1", CubeListBuilder.create().texOffs(0, 30).addBox(-0.337F, -0.427F, -0.3093F, 0.674F, 0.554F, 0.6186F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -16.5982F, -7.9079F, 0.3927F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone183_r2 = group3.addOrReplaceChild("bone183_r2", CubeListBuilder.create().texOffs(13, 28).addBox(-0.362F, -0.552F, 0.1843F, 0.724F, 0.1F, 0.1F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -15.5821F, -6.7683F, 0.7854F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone182_r2 = group3.addOrReplaceChild("bone182_r2", CubeListBuilder.create().texOffs(0, 30).addBox(-0.337F, -0.617F, 0.3657F, 0.674F, 1.104F, 0.5686F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.0F, -16.1835F, -7.844F, 0.3927F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition group4 = bone.addOrReplaceChild("group4", CubeListBuilder.create().texOffs(1, 29).addBox(-0.9343F, -13.817F, -8.392F, 1.8686F, 1.554F, 0.774F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 27).addBox(-0.387F, -13.817F, -8.9393F, 0.774F, 1.554F, 1.8686F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 13.1292F, 8.0F));
|
||||||
|
|
||||||
|
PartDefinition bone181_r2 = group4.addOrReplaceChild("bone181_r2", CubeListBuilder.create().texOffs(2, 27).addBox(-0.387F, -0.567F, -0.9343F, 0.774F, 1.554F, 1.8686F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 29).addBox(-0.9343F, -0.567F, -0.387F, 1.8686F, 1.554F, 0.774F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.25F, -8.005F, 0.0F, 0.7854F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition group5 = bone.addOrReplaceChild("group5", CubeListBuilder.create().texOffs(0, 24).addBox(-0.4218F, -12.5194F, -9.0234F, 0.8437F, 0.2589F, 2.0368F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 30).addBox(-1.0184F, -12.5194F, -8.4268F, 2.0368F, 0.2589F, 0.8437F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 13.1292F, 8.0F));
|
||||||
|
|
||||||
|
PartDefinition bone184_r1 = group5.addOrReplaceChild("bone184_r1", CubeListBuilder.create().texOffs(0, 30).addBox(-1.0184F, 0.817F, -0.4218F, 2.0368F, 0.2589F, 0.8437F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 29).addBox(-0.4218F, 0.817F, -1.0184F, 0.8437F, 0.2589F, 2.0368F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.3364F, -8.005F, 0.0F, 0.7854F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition group6 = bone.addOrReplaceChild("group6", CubeListBuilder.create(), PartPose.offset(0.0F, 12.9492F, 8.0F));
|
||||||
|
|
||||||
|
PartDefinition bone179_r2 = group6.addOrReplaceChild("bone179_r2", CubeListBuilder.create().texOffs(0, 30).addBox(-0.387F, -0.9343F, -0.387F, 0.774F, 0.4286F, 0.774F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 30).addBox(-0.387F, -0.387F, -0.9343F, 0.774F, 0.774F, 0.4286F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.25F, -8.005F, -0.7854F, 0.0F, 0.0F));
|
||||||
|
|
||||||
|
PartDefinition bone180_r4 = group6.addOrReplaceChild("bone180_r4", CubeListBuilder.create().texOffs(0, 30).addBox(-0.387F, -0.9343F, -0.387F, 0.774F, 0.4286F, 0.774F, new CubeDeformation(0.0F))
|
||||||
|
.texOffs(0, 30).addBox(-0.9343F, -0.387F, -0.387F, 0.4286F, 0.774F, 0.774F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -13.25F, -8.005F, 0.0F, 0.0F, 0.7854F));
|
||||||
|
|
||||||
|
return LayerDefinition.create(meshdefinition, 32, 32);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
|
||||||
|
group.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,8 +3,8 @@ package net.mcreator.superbwarfare.client.renderer.entity;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Axis;
|
import com.mojang.math.Axis;
|
||||||
import net.mcreator.superbwarfare.client.model.entity.ModelGrenade;
|
import net.mcreator.superbwarfare.client.model.entity.ModelRgoGrenade;
|
||||||
import net.mcreator.superbwarfare.entity.DroneGrenadeEntity;
|
import net.mcreator.superbwarfare.entity.RgoGrenadeEntity;
|
||||||
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.entity.EntityRenderer;
|
import net.minecraft.client.renderer.entity.EntityRenderer;
|
||||||
|
@ -13,17 +13,17 @@ import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
|
|
||||||
public class DroneGrenadeRenderer extends EntityRenderer<DroneGrenadeEntity> {
|
public class RgoGrenadeRenderer extends EntityRenderer<RgoGrenadeEntity> {
|
||||||
private static final ResourceLocation texture = new ResourceLocation("superbwarfare:textures/entity/grenade.png");
|
private static final ResourceLocation texture = new ResourceLocation("superbwarfare:textures/entity/rgo_grenade.png");
|
||||||
private final ModelGrenade<DroneGrenadeEntity> model;
|
private final ModelRgoGrenade<RgoGrenadeEntity> model;
|
||||||
|
|
||||||
public DroneGrenadeRenderer(EntityRendererProvider.Context context) {
|
public RgoGrenadeRenderer(EntityRendererProvider.Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
model = new ModelGrenade<>(context.bakeLayer(ModelGrenade.LAYER_LOCATION));
|
model = new ModelRgoGrenade<>(context.bakeLayer(ModelRgoGrenade.LAYER_LOCATION));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(DroneGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
|
public void render(RgoGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
|
||||||
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
|
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
|
||||||
poseStack.pushPose();
|
poseStack.pushPose();
|
||||||
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
|
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
|
||||||
|
@ -34,7 +34,7 @@ public class DroneGrenadeRenderer extends EntityRenderer<DroneGrenadeEntity> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getTextureLocation(DroneGrenadeEntity entity) {
|
public ResourceLocation getTextureLocation(RgoGrenadeEntity entity) {
|
||||||
return texture;
|
return texture;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -295,10 +295,10 @@ public class DroneEntity extends PathfinderMob implements GeoEntity {
|
||||||
private void droneDrop(Player player) {
|
private void droneDrop(Player player) {
|
||||||
Level level = player.level();
|
Level level = player.level();
|
||||||
if (!level.isClientSide()) {
|
if (!level.isClientSide()) {
|
||||||
DroneGrenadeEntity droneGrenadeEntity = new DroneGrenadeEntity(player, level);
|
RgoGrenadeEntity rgoGrenadeEntity = new RgoGrenadeEntity(player, level,80);
|
||||||
droneGrenadeEntity.setPos(this.getX(), this.getY(), this.getZ());
|
rgoGrenadeEntity.setPos(this.getX(), this.getY(), this.getZ());
|
||||||
droneGrenadeEntity.shoot(0, -1, 0, 0, 0.5f);
|
rgoGrenadeEntity.shoot(0, -1, 0, 0, 0.5f);
|
||||||
level.addFreshEntity(droneGrenadeEntity);
|
level.addFreshEntity(rgoGrenadeEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -347,11 +347,17 @@ public class DroneEntity extends PathfinderMob implements GeoEntity {
|
||||||
}
|
}
|
||||||
} else if (stack.isEmpty() && player.isCrouching()) {
|
} else if (stack.isEmpty() && player.isCrouching()) {
|
||||||
ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.DRONE.get()));
|
ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.DRONE.get()));
|
||||||
|
|
||||||
for (int index0 = 0; index0 < this.entityData.get(AMMO); index0++) {
|
for (int index0 = 0; index0 < this.entityData.get(AMMO); index0++) {
|
||||||
ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.GRENADE_40MM.get()));
|
ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.RGO_GRENADE.get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.entityData.get(KAMIKAZE)) {
|
||||||
|
ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.MORTAR_SHELLS.get()));
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.level().isClientSide()) this.discard();
|
if (!this.level().isClientSide()) this.discard();
|
||||||
} else if (stack.getItem() == ModItems.GRENADE_40MM.get() && !this.entityData.get(KAMIKAZE)) {
|
} else if (stack.getItem() == ModItems.RGO_GRENADE.get() && !this.entityData.get(KAMIKAZE)) {
|
||||||
if (!player.isCreative()) {
|
if (!player.isCreative()) {
|
||||||
stack.shrink(1);
|
stack.shrink(1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
package net.mcreator.superbwarfare.entity;
|
|
||||||
|
|
||||||
import net.mcreator.superbwarfare.init.ModDamageTypes;
|
|
||||||
import net.mcreator.superbwarfare.init.ModEntities;
|
|
||||||
import net.mcreator.superbwarfare.init.ModItems;
|
|
||||||
import net.mcreator.superbwarfare.tools.CustomExplosion;
|
|
||||||
import net.mcreator.superbwarfare.tools.ParticleTool;
|
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
|
||||||
import net.minecraft.network.protocol.Packet;
|
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
|
||||||
import net.minecraft.server.level.ServerLevel;
|
|
||||||
import net.minecraft.world.entity.EntityType;
|
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
|
||||||
import net.minecraft.world.item.Item;
|
|
||||||
import net.minecraft.world.level.Explosion;
|
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
|
||||||
import net.minecraft.world.phys.EntityHitResult;
|
|
||||||
import net.minecraftforge.network.NetworkHooks;
|
|
||||||
import net.minecraftforge.network.PlayMessages;
|
|
||||||
|
|
||||||
public class DroneGrenadeEntity extends ThrowableItemProjectile {
|
|
||||||
|
|
||||||
|
|
||||||
public DroneGrenadeEntity(EntityType<? extends DroneGrenadeEntity> type, Level world) {
|
|
||||||
super(type, world);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DroneGrenadeEntity(EntityType<? extends DroneGrenadeEntity> type, LivingEntity entity, Level world) {
|
|
||||||
super(type, entity, world);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DroneGrenadeEntity(LivingEntity entity, Level level) {
|
|
||||||
super(ModEntities.DRONE_GRENADE.get(), entity, level);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DroneGrenadeEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
|
||||||
this(ModEntities.DRONE_GRENADE.get(), level);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
|
||||||
return NetworkHooks.getEntitySpawningPacket(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Item getDefaultItem() {
|
|
||||||
return ModItems.GRENADE_40MM.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onHitEntity(EntityHitResult result) {
|
|
||||||
if (this.level() instanceof ServerLevel) {
|
|
||||||
causeExplode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onHitBlock(BlockHitResult blockHitResult) {
|
|
||||||
super.onHitBlock(blockHitResult);
|
|
||||||
if (this.level() instanceof ServerLevel) {
|
|
||||||
causeExplode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick() {
|
|
||||||
super.tick();
|
|
||||||
if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) {
|
|
||||||
ParticleTool.sendParticle(serverLevel, ParticleTypes.SMOKE, this.getX(), this.getY(), this.getZ(),
|
|
||||||
1, 0, 0, 0, 0.01, true);
|
|
||||||
}
|
|
||||||
if (this.tickCount > 200 || this.isInWater()) {
|
|
||||||
if (this.level() instanceof ServerLevel) {
|
|
||||||
causeExplode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void causeExplode() {
|
|
||||||
CustomExplosion explosion = new CustomExplosion(this.level(), this,
|
|
||||||
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 55,
|
|
||||||
this.getX(), this.getY(), this.getZ(), 6.5f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
|
|
||||||
explosion.explode();
|
|
||||||
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion);
|
|
||||||
explosion.finalizeExplosion(false);
|
|
||||||
ParticleTool.spawnMediumExplosionParticles(this.level(), this.position());
|
|
||||||
this.discard();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected float getGravity() {
|
|
||||||
return 0.07F;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +1,11 @@
|
||||||
package net.mcreator.superbwarfare.entity;
|
package net.mcreator.superbwarfare.entity;
|
||||||
|
|
||||||
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
import net.mcreator.superbwarfare.init.ModDamageTypes;
|
import net.mcreator.superbwarfare.init.ModDamageTypes;
|
||||||
import net.mcreator.superbwarfare.init.ModEntities;
|
import net.mcreator.superbwarfare.init.ModEntities;
|
||||||
import net.mcreator.superbwarfare.init.ModItems;
|
import net.mcreator.superbwarfare.init.ModItems;
|
||||||
|
import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
|
import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage;
|
||||||
import net.mcreator.superbwarfare.tools.CustomExplosion;
|
import net.mcreator.superbwarfare.tools.CustomExplosion;
|
||||||
import net.mcreator.superbwarfare.tools.ParticleTool;
|
import net.mcreator.superbwarfare.tools.ParticleTool;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
@ -11,6 +14,7 @@ import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
|
@ -25,6 +29,7 @@ import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.EntityHitResult;
|
import net.minecraft.world.phys.EntityHitResult;
|
||||||
import net.minecraft.world.phys.HitResult;
|
import net.minecraft.world.phys.HitResult;
|
||||||
import net.minecraftforge.network.NetworkHooks;
|
import net.minecraftforge.network.NetworkHooks;
|
||||||
|
import net.minecraftforge.network.PacketDistributor;
|
||||||
import net.minecraftforge.network.PlayMessages;
|
import net.minecraftforge.network.PlayMessages;
|
||||||
|
|
||||||
public class HandGrenadeEntity extends ThrowableItemProjectile {
|
public class HandGrenadeEntity extends ThrowableItemProjectile {
|
||||||
|
@ -77,6 +82,14 @@ public class HandGrenadeEntity extends ThrowableItemProjectile {
|
||||||
EntityHitResult entityResult = (EntityHitResult) result;
|
EntityHitResult entityResult = (EntityHitResult) result;
|
||||||
Entity entity = entityResult.getEntity();
|
Entity entity = entityResult.getEntity();
|
||||||
|
|
||||||
|
if (this.getOwner() instanceof LivingEntity living) {
|
||||||
|
if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
|
||||||
|
living.level().playSound(null, living.blockPosition(), ModSounds.INDICATION.get(), SoundSource.VOICE, 1, 1);
|
||||||
|
|
||||||
|
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
double speed_e = this.getDeltaMovement().length();
|
double speed_e = this.getDeltaMovement().length();
|
||||||
if (speed_e > 0.1) {
|
if (speed_e > 0.1) {
|
||||||
entity.hurt(entity.damageSources().thrown(this, this.getOwner()), 1.0F);
|
entity.hurt(entity.damageSources().thrown(this, this.getOwner()), 1.0F);
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
package net.mcreator.superbwarfare.entity;
|
||||||
|
|
||||||
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
|
import net.mcreator.superbwarfare.init.ModDamageTypes;
|
||||||
|
import net.mcreator.superbwarfare.init.ModEntities;
|
||||||
|
import net.mcreator.superbwarfare.init.ModItems;
|
||||||
|
import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
|
import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage;
|
||||||
|
import net.mcreator.superbwarfare.tools.CustomExplosion;
|
||||||
|
import net.mcreator.superbwarfare.tools.ParticleTool;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraft.sounds.SoundEvent;
|
||||||
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.EntityType;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.level.Explosion;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.EntityHitResult;
|
||||||
|
import net.minecraft.world.phys.HitResult;
|
||||||
|
import net.minecraftforge.network.NetworkHooks;
|
||||||
|
import net.minecraftforge.network.PacketDistributor;
|
||||||
|
import net.minecraftforge.network.PlayMessages;
|
||||||
|
|
||||||
|
public class RgoGrenadeEntity extends ThrowableItemProjectile {
|
||||||
|
private int fuse = 80;
|
||||||
|
|
||||||
|
public RgoGrenadeEntity(EntityType<? extends RgoGrenadeEntity> type, Level world) {
|
||||||
|
super(type, world);
|
||||||
|
}
|
||||||
|
|
||||||
|
public RgoGrenadeEntity(EntityType<? extends RgoGrenadeEntity> type, LivingEntity entity, Level world) {
|
||||||
|
super(type, entity, world);
|
||||||
|
}
|
||||||
|
|
||||||
|
public RgoGrenadeEntity(LivingEntity entity, Level level, int fuse) {
|
||||||
|
super(ModEntities.RGO_GRENADE.get(), entity, level);
|
||||||
|
this.fuse = fuse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RgoGrenadeEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
||||||
|
this(ModEntities.RGO_GRENADE.get(), level);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||||
|
return NetworkHooks.getEntitySpawningPacket(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Item getDefaultItem() {
|
||||||
|
return ModItems.RGO_GRENADE.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onHit(HitResult result) {
|
||||||
|
switch (result.getType()) {
|
||||||
|
case BLOCK:
|
||||||
|
BlockHitResult blockResult = (BlockHitResult) result;
|
||||||
|
BlockPos resultPos = blockResult.getBlockPos();
|
||||||
|
BlockState state = this.level().getBlockState(resultPos);
|
||||||
|
SoundEvent event = state.getBlock().getSoundType(state, this.level(), resultPos, this).getBreakSound();
|
||||||
|
double speed = this.getDeltaMovement().length();
|
||||||
|
if (speed > 0.1) {
|
||||||
|
this.level().playSound(null, result.getLocation().x, result.getLocation().y, result.getLocation().z, event, SoundSource.AMBIENT, 1.0F, 1.0F);
|
||||||
|
}
|
||||||
|
this.bounce(blockResult.getDirection());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ENTITY:
|
||||||
|
EntityHitResult entityResult = (EntityHitResult) result;
|
||||||
|
Entity entity = entityResult.getEntity();
|
||||||
|
|
||||||
|
if (this.getOwner() instanceof LivingEntity living) {
|
||||||
|
if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
|
||||||
|
living.level().playSound(null, living.blockPosition(), ModSounds.INDICATION.get(), SoundSource.VOICE, 1, 1);
|
||||||
|
|
||||||
|
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
double speed_e = this.getDeltaMovement().length();
|
||||||
|
if (speed_e > 0.1) {
|
||||||
|
entity.hurt(entity.damageSources().thrown(this, this.getOwner()), 1.0F);
|
||||||
|
}
|
||||||
|
this.bounce(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite());
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().multiply(0.25, 1.0, 0.25));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bounce(Direction direction) {
|
||||||
|
switch (direction.getAxis()) {
|
||||||
|
case X:
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().multiply(-0.5, 0.75, 0.75));
|
||||||
|
break;
|
||||||
|
case Y:
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().multiply(0.75, -0.25, 0.75));
|
||||||
|
if (this.getDeltaMovement().y() < this.getGravity()) {
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().multiply(1, 0, 1));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Z:
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().multiply(0.75, 0.75, -0.5));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.fuse = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick() {
|
||||||
|
super.tick();
|
||||||
|
--this.fuse;
|
||||||
|
|
||||||
|
if (this.fuse <= 0) {
|
||||||
|
this.discard();
|
||||||
|
if (!this.level().isClientSide) {
|
||||||
|
causeExplode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) {
|
||||||
|
ParticleTool.sendParticle(serverLevel, ParticleTypes.SMOKE, this.xo, this.yo, this.zo,
|
||||||
|
1, 0, 0, 0, 0.01, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void causeExplode() {
|
||||||
|
CustomExplosion explosion = new CustomExplosion(this.level(), this,
|
||||||
|
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 75,
|
||||||
|
this.getX(), this.getY(), this.getZ(), 5.75f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1.25f);
|
||||||
|
explosion.explode();
|
||||||
|
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion);
|
||||||
|
explosion.finalizeExplosion(false);
|
||||||
|
ParticleTool.spawnMediumExplosionParticles(this.level(), this.position());
|
||||||
|
this.discard();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected float getGravity() {
|
||||||
|
return 0.07F;
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,8 +37,7 @@ public class ModEntities {
|
||||||
.setUpdateInterval(1).sized(0.5f, 0.5f));
|
.setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||||
public static final RegistryObject<EntityType<GunGrenadeEntity>> GUN_GRENADE = register("projectile_gun_grenade",
|
public static final RegistryObject<EntityType<GunGrenadeEntity>> GUN_GRENADE = register("projectile_gun_grenade",
|
||||||
EntityType.Builder.<GunGrenadeEntity>of(GunGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(GunGrenadeEntity::new).sized(0.5f, 0.5f));
|
EntityType.Builder.<GunGrenadeEntity>of(GunGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(GunGrenadeEntity::new).sized(0.5f, 0.5f));
|
||||||
public static final RegistryObject<EntityType<DroneGrenadeEntity>> DRONE_GRENADE = register("projectile_drone_grenade",
|
|
||||||
EntityType.Builder.<DroneGrenadeEntity>of(DroneGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(DroneGrenadeEntity::new).sized(0.5f, 0.5f));
|
|
||||||
public static final RegistryObject<EntityType<FragEntity>> FRAG = register("projectile_frag",
|
public static final RegistryObject<EntityType<FragEntity>> FRAG = register("projectile_frag",
|
||||||
EntityType.Builder.<FragEntity>of(FragEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(FragEntity::new).sized(0.5f, 0.5f));
|
EntityType.Builder.<FragEntity>of(FragEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(FragEntity::new).sized(0.5f, 0.5f));
|
||||||
public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target",
|
public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target",
|
||||||
|
@ -55,6 +54,8 @@ public class ModEntities {
|
||||||
EntityType.Builder.<CannonShellEntity>of(CannonShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(CannonShellEntity::new).sized(0.5f, 0.5f));
|
EntityType.Builder.<CannonShellEntity>of(CannonShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(CannonShellEntity::new).sized(0.5f, 0.5f));
|
||||||
public static final RegistryObject<EntityType<HandGrenadeEntity>> HAND_GRENADE_ENTITY = register("projectile_hand_grenade_entity",
|
public static final RegistryObject<EntityType<HandGrenadeEntity>> HAND_GRENADE_ENTITY = register("projectile_hand_grenade_entity",
|
||||||
EntityType.Builder.<HandGrenadeEntity>of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(HandGrenadeEntity::new).sized(0.3f, 0.3f));
|
EntityType.Builder.<HandGrenadeEntity>of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(HandGrenadeEntity::new).sized(0.3f, 0.3f));
|
||||||
|
public static final RegistryObject<EntityType<RgoGrenadeEntity>> RGO_GRENADE = register("projectile_rgo_grenade",
|
||||||
|
EntityType.Builder.<RgoGrenadeEntity>of(RgoGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(RgoGrenadeEntity::new).sized(0.3f, 0.3f));
|
||||||
|
|
||||||
|
|
||||||
private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) {
|
private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) {
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class ModEntityRenderers {
|
||||||
event.registerEntityRenderer(ModEntities.FRAG.get(), FragRenderer::new);
|
event.registerEntityRenderer(ModEntities.FRAG.get(), FragRenderer::new);
|
||||||
event.registerEntityRenderer(ModEntities.MK_42.get(), Mk42Renderer::new);
|
event.registerEntityRenderer(ModEntities.MK_42.get(), Mk42Renderer::new);
|
||||||
event.registerEntityRenderer(ModEntities.DRONE.get(), DroneRenderer::new);
|
event.registerEntityRenderer(ModEntities.DRONE.get(), DroneRenderer::new);
|
||||||
event.registerEntityRenderer(ModEntities.DRONE_GRENADE.get(), DroneGrenadeRenderer::new);
|
|
||||||
event.registerEntityRenderer(ModEntities.HAND_GRENADE_ENTITY.get(), HandGrenadeEntityRenderer::new);
|
event.registerEntityRenderer(ModEntities.HAND_GRENADE_ENTITY.get(), HandGrenadeEntityRenderer::new);
|
||||||
|
event.registerEntityRenderer(ModEntities.RGO_GRENADE.get(), RgoGrenadeRenderer::new);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,14 +70,14 @@ public class ModItems {
|
||||||
public static final RegistryObject<Item> ROCKET = AMMO.register("rocket", Rocket::new);
|
public static final RegistryObject<Item> ROCKET = AMMO.register("rocket", Rocket::new);
|
||||||
public static final RegistryObject<Item> HE_5_INCHES = AMMO.register("he_5_inches", He5Inches::new);
|
public static final RegistryObject<Item> HE_5_INCHES = AMMO.register("he_5_inches", He5Inches::new);
|
||||||
public static final RegistryObject<Item> AP_5_INCHES = AMMO.register("ap_5_inches", Ap5Inches::new);
|
public static final RegistryObject<Item> AP_5_INCHES = AMMO.register("ap_5_inches", Ap5Inches::new);
|
||||||
|
public static final RegistryObject<Item> HAND_GRENADE = AMMO.register("hand_grenade", HandGrenade::new);
|
||||||
|
public static final RegistryObject<Item> RGO_GRENADE = AMMO.register("rgo_grenade", RgoGrenade::new);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* items
|
* items
|
||||||
*/
|
*/
|
||||||
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ModUtils.MODID);
|
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ModUtils.MODID);
|
||||||
|
|
||||||
public static final RegistryObject<Item> SENPAI_SPAWN_EGG = ITEMS.register("senpai_spawn_egg", () -> new ForgeSpawnEggItem(ModEntities.SENPAI, -11584987, -14014413, new Item.Properties()));
|
|
||||||
public static final RegistryObject<Item> MK_42_SPAWN_EGG = ITEMS.register("mk42_spawn_egg", () -> new ForgeSpawnEggItem(ModEntities.MK_42, -8348258, -2630437, new Item.Properties()));
|
|
||||||
public static final RegistryObject<Item> DRONE = ITEMS.register("drone", Drone::new);
|
public static final RegistryObject<Item> DRONE = ITEMS.register("drone", Drone::new);
|
||||||
|
|
||||||
public static final RegistryObject<Item> MONITOR = ITEMS.register("monitor", Monitor::new);
|
public static final RegistryObject<Item> MONITOR = ITEMS.register("monitor", Monitor::new);
|
||||||
|
@ -114,7 +114,8 @@ public class ModItems {
|
||||||
public static final RegistryObject<Item> SCHEELITE = ITEMS.register("scheelite", () -> new Item(new Item.Properties()));
|
public static final RegistryObject<Item> SCHEELITE = ITEMS.register("scheelite", () -> new Item(new Item.Properties()));
|
||||||
public static final RegistryObject<Item> DOG_TAG = ITEMS.register("dog_tag", DogTag::new);
|
public static final RegistryObject<Item> DOG_TAG = ITEMS.register("dog_tag", DogTag::new);
|
||||||
public static final RegistryObject<Item> SHIELD_CELL = ITEMS.register("shield_cell", () -> new Item(new Item.Properties().rarity(Rarity.RARE)));
|
public static final RegistryObject<Item> SHIELD_CELL = ITEMS.register("shield_cell", () -> new Item(new Item.Properties().rarity(Rarity.RARE)));
|
||||||
public static final RegistryObject<Item> HAND_GRENADE = ITEMS.register("hand_grenade", HandGrenade::new);
|
public static final RegistryObject<Item> SENPAI_SPAWN_EGG = ITEMS.register("senpai_spawn_egg", () -> new ForgeSpawnEggItem(ModEntities.SENPAI, -11584987, -14014413, new Item.Properties()));
|
||||||
|
public static final RegistryObject<Item> MK_42_SPAWN_EGG = ITEMS.register("mk42_spawn_egg", () -> new ForgeSpawnEggItem(ModEntities.MK_42, -8348258, -2630437, new Item.Properties()));
|
||||||
|
|
||||||
public static final RegistryObject<Item> IRON_BARREL = ITEMS.register("iron_barrel", () -> new Item(new Item.Properties()));
|
public static final RegistryObject<Item> IRON_BARREL = ITEMS.register("iron_barrel", () -> new Item(new Item.Properties()));
|
||||||
public static final RegistryObject<Item> IRON_ACTION = ITEMS.register("iron_action", () -> new Item(new Item.Properties()));
|
public static final RegistryObject<Item> IRON_ACTION = ITEMS.register("iron_action", () -> new Item(new Item.Properties()));
|
||||||
|
|
|
@ -18,5 +18,6 @@ public class ModModels {
|
||||||
event.registerLayerDefinition(ModelBocekArrow.LAYER_LOCATION, ModelBocekArrow::createBodyLayer);
|
event.registerLayerDefinition(ModelBocekArrow.LAYER_LOCATION, ModelBocekArrow::createBodyLayer);
|
||||||
event.registerLayerDefinition(ModelClaymore.LAYER_LOCATION, ModelClaymore::createBodyLayer);
|
event.registerLayerDefinition(ModelClaymore.LAYER_LOCATION, ModelClaymore::createBodyLayer);
|
||||||
event.registerLayerDefinition(ModelHandGrenade.LAYER_LOCATION, ModelHandGrenade::createBodyLayer);
|
event.registerLayerDefinition(ModelHandGrenade.LAYER_LOCATION, ModelHandGrenade::createBodyLayer);
|
||||||
|
event.registerLayerDefinition(ModelRgoGrenade.LAYER_LOCATION, ModelRgoGrenade::createBodyLayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,9 +44,9 @@ public class HandGrenade extends Item {
|
||||||
if (!worldIn.isClientSide) {
|
if (!worldIn.isClientSide) {
|
||||||
if (entityLiving instanceof Player player) {
|
if (entityLiving instanceof Player player) {
|
||||||
|
|
||||||
player.getCooldowns().addCooldown(stack.getItem(), 25);
|
|
||||||
|
|
||||||
int usingTime = this.getUseDuration(stack) - timeLeft;
|
int usingTime = this.getUseDuration(stack) - timeLeft;
|
||||||
|
if (usingTime > 3) {
|
||||||
|
player.getCooldowns().addCooldown(stack.getItem(), 25);
|
||||||
float power = Math.min(usingTime / 10.0f, 1.5f);
|
float power = Math.min(usingTime / 10.0f, 1.5f);
|
||||||
|
|
||||||
HandGrenadeEntity handGrenade = new HandGrenadeEntity(player, worldIn, 100 - usingTime);
|
HandGrenadeEntity handGrenade = new HandGrenadeEntity(player, worldIn, 100 - usingTime);
|
||||||
|
@ -63,6 +63,7 @@ public class HandGrenade extends Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack finishUsingItem(ItemStack pStack, Level pLevel, LivingEntity pLivingEntity) {
|
public ItemStack finishUsingItem(ItemStack pStack, Level pLevel, LivingEntity pLivingEntity) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package net.mcreator.superbwarfare.item;
|
package net.mcreator.superbwarfare.item;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
|
import com.google.common.collect.Multimap;
|
||||||
import net.mcreator.superbwarfare.entity.DroneEntity;
|
import net.mcreator.superbwarfare.entity.DroneEntity;
|
||||||
import net.mcreator.superbwarfare.tools.ItemNBTTool;
|
import net.mcreator.superbwarfare.tools.ItemNBTTool;
|
||||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||||
|
@ -7,19 +9,15 @@ import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
|
import net.minecraft.world.entity.ai.attributes.Attribute;
|
||||||
|
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
|
||||||
|
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.TooltipFlag;
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
|
||||||
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
|
|
||||||
import net.minecraft.world.entity.ai.attributes.Attribute;
|
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
|
||||||
|
|
||||||
import com.google.common.collect.Multimap;
|
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -89,6 +87,17 @@ public class Monitor extends Item {
|
||||||
super.inventoryTick(itemstack, world, entity, slot, selected);
|
super.inventoryTick(itemstack, world, entity, slot, selected);
|
||||||
if (!selected) {
|
if (!selected) {
|
||||||
itemstack.getOrCreateTag().putBoolean("Using",false);
|
itemstack.getOrCreateTag().putBoolean("Using",false);
|
||||||
|
DroneEntity drone = entity.level().getEntitiesOfClass(DroneEntity.class, entity.getBoundingBox().inflate(512))
|
||||||
|
.stream().filter(e -> e.getStringUUID().equals(itemstack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||||
|
|
||||||
|
if (drone != null) {
|
||||||
|
drone.getPersistentData().putBoolean("left", false);
|
||||||
|
drone.getPersistentData().putBoolean("right", false);
|
||||||
|
drone.getPersistentData().putBoolean("forward", false);
|
||||||
|
drone.getPersistentData().putBoolean("backward", false);
|
||||||
|
drone.getPersistentData().putBoolean("up", false);
|
||||||
|
drone.getPersistentData().putBoolean("down", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
package net.mcreator.superbwarfare.item;
|
||||||
|
|
||||||
|
import net.mcreator.superbwarfare.entity.RgoGrenadeEntity;
|
||||||
|
import net.mcreator.superbwarfare.init.ModDamageTypes;
|
||||||
|
import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
|
import net.mcreator.superbwarfare.tools.CustomExplosion;
|
||||||
|
import net.mcreator.superbwarfare.tools.ParticleTool;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
import net.minecraft.world.InteractionHand;
|
||||||
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Rarity;
|
||||||
|
import net.minecraft.world.item.UseAnim;
|
||||||
|
import net.minecraft.world.level.Explosion;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class RgoGrenade extends Item {
|
||||||
|
public RgoGrenade() {
|
||||||
|
super(new Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull InteractionResultHolder<ItemStack> use(Level worldIn, Player playerIn, InteractionHand handIn) {
|
||||||
|
ItemStack stack = playerIn.getItemInHand(handIn);
|
||||||
|
playerIn.startUsingItem(handIn);
|
||||||
|
if (playerIn instanceof ServerPlayer serverPlayer) {
|
||||||
|
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.GRENADE_PULL.get(), SoundSource.PLAYERS, 1, 1);
|
||||||
|
}
|
||||||
|
return InteractionResultHolder.consume(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull UseAnim getUseAnimation(@NotNull ItemStack stack) {
|
||||||
|
return UseAnim.SPEAR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void releaseUsing(ItemStack stack, Level worldIn, LivingEntity entityLiving, int timeLeft) {
|
||||||
|
if (!worldIn.isClientSide) {
|
||||||
|
if (entityLiving instanceof Player player) {
|
||||||
|
|
||||||
|
int usingTime = this.getUseDuration(stack) - timeLeft;
|
||||||
|
if (usingTime > 3) {
|
||||||
|
player.getCooldowns().addCooldown(stack.getItem(), 20);
|
||||||
|
float power = Math.min(usingTime / 8.0f, 1.8f);
|
||||||
|
|
||||||
|
RgoGrenadeEntity rgoGrenade = new RgoGrenadeEntity(player, worldIn, 80 - usingTime);
|
||||||
|
rgoGrenade.shootFromRotation(player, player.getXRot(), player.getYRot(), 0.0f, power, 0.0f);
|
||||||
|
worldIn.addFreshEntity(rgoGrenade);
|
||||||
|
|
||||||
|
if (player instanceof ServerPlayer serverPlayer) {
|
||||||
|
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.GRENADE_THROW.get(), SoundSource.PLAYERS, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!player.isCreative()) {
|
||||||
|
stack.shrink(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack finishUsingItem(ItemStack pStack, Level pLevel, LivingEntity pLivingEntity) {
|
||||||
|
if (!pLevel.isClientSide) {
|
||||||
|
CustomExplosion explosion = new CustomExplosion(pLevel, null,
|
||||||
|
ModDamageTypes.causeProjectileBoomDamage(pLevel.registryAccess(), pLivingEntity, pLivingEntity), 75,
|
||||||
|
pLivingEntity.getX(), pLivingEntity.getY(), pLivingEntity.getZ(), 5.75f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1.25f);
|
||||||
|
explosion.explode();
|
||||||
|
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(pLevel, explosion);
|
||||||
|
explosion.finalizeExplosion(false);
|
||||||
|
ParticleTool.spawnMediumExplosionParticles(pLevel, pLivingEntity.position());
|
||||||
|
|
||||||
|
if (pLivingEntity instanceof Player player) {
|
||||||
|
player.getCooldowns().addCooldown(pStack.getItem(), 20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.finishUsingItem(pStack, pLevel, pLivingEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getUseDuration(ItemStack stack) {
|
||||||
|
return 80;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -129,6 +129,7 @@
|
||||||
"item.superbwarfare.drone": "Drone",
|
"item.superbwarfare.drone": "Drone",
|
||||||
"item.superbwarfare.monitor": "Monitor",
|
"item.superbwarfare.monitor": "Monitor",
|
||||||
"item.superbwarfare.hand_grenade": "Hand Grenade",
|
"item.superbwarfare.hand_grenade": "Hand Grenade",
|
||||||
|
"item.superbwarfare.rgo_grenade": "RGO Grenade",
|
||||||
|
|
||||||
"attribute.superbwarfare.spread": "Spread",
|
"attribute.superbwarfare.spread": "Spread",
|
||||||
|
|
||||||
|
@ -194,8 +195,8 @@
|
||||||
"entity.superbwarfare.projectile_rpg_rocket": "RPG Rocket",
|
"entity.superbwarfare.projectile_rpg_rocket": "RPG Rocket",
|
||||||
"entity.superbwarfare.projectile_bocekarrow": "Arrow",
|
"entity.superbwarfare.projectile_bocekarrow": "Arrow",
|
||||||
"entity.superbwarfare.projectile_taser_bullet_projectile": "Taser Electrode",
|
"entity.superbwarfare.projectile_taser_bullet_projectile": "Taser Electrode",
|
||||||
"entity.superbwarfare.projectile_drone_grenade": "Grenade",
|
"entity.superbwarfare.projectile_hand_grenade_entity": "Exploding M67 Grenade",
|
||||||
"entity.superbwarfare.projectile_hand_grenade_entity": "Exploding Hand Grenade",
|
"entity.superbwarfare.projectile_rgo_grenade": "Exploding RGO Grenade",
|
||||||
"entity.superbwarfare.mortar": "Mortar",
|
"entity.superbwarfare.mortar": "Mortar",
|
||||||
"entity.superbwarfare.target": "Target",
|
"entity.superbwarfare.target": "Target",
|
||||||
"entity.superbwarfare.target_1": "Target",
|
"entity.superbwarfare.target_1": "Target",
|
||||||
|
|
|
@ -129,6 +129,7 @@
|
||||||
"item.superbwarfare.drone": "无人机",
|
"item.superbwarfare.drone": "无人机",
|
||||||
"item.superbwarfare.monitor": "遥控器",
|
"item.superbwarfare.monitor": "遥控器",
|
||||||
"item.superbwarfare.hand_grenade": "M67手榴弹",
|
"item.superbwarfare.hand_grenade": "M67手榴弹",
|
||||||
|
"item.superbwarfare.rgo_grenade": "RGO手榴弹",
|
||||||
|
|
||||||
"attribute.superbwarfare.spread": "散布",
|
"attribute.superbwarfare.spread": "散布",
|
||||||
|
|
||||||
|
@ -194,8 +195,8 @@
|
||||||
"entity.superbwarfare.projectile_rpg_rocket": "RPG火箭弹",
|
"entity.superbwarfare.projectile_rpg_rocket": "RPG火箭弹",
|
||||||
"entity.superbwarfare.projectile_bocekarrow": "箭矢",
|
"entity.superbwarfare.projectile_bocekarrow": "箭矢",
|
||||||
"entity.superbwarfare.projectile_taser_bullet_projectile": "电极",
|
"entity.superbwarfare.projectile_taser_bullet_projectile": "电极",
|
||||||
"entity.superbwarfare.projectile_drone_grenade": "榴弹",
|
"entity.superbwarfare.projectile_hand_grenade_entity": "快爆炸的M67手榴弹",
|
||||||
"entity.superbwarfare.projectile_hand_grenade_entity": "快爆炸的手榴弹",
|
"entity.superbwarfare.projectile_rgo_grenade": "快爆炸的RGO手榴弹",
|
||||||
"entity.superbwarfare.mortar": "迫击炮",
|
"entity.superbwarfare.mortar": "迫击炮",
|
||||||
"entity.superbwarfare.target": "标靶",
|
"entity.superbwarfare.target": "标靶",
|
||||||
"entity.superbwarfare.target_1": "标靶",
|
"entity.superbwarfare.target_1": "标靶",
|
||||||
|
|
|
@ -298,8 +298,8 @@
|
||||||
"translation": [0, -2, 0]
|
"translation": [0, -2, 0]
|
||||||
},
|
},
|
||||||
"gui": {
|
"gui": {
|
||||||
"rotation": [-162.56, -39.63, 178.66],
|
"rotation": [-140.06, -16.8, -135.22],
|
||||||
"translation": [0.25, -2.25, 0],
|
"translation": [-1.5, -2.25, 0],
|
||||||
"scale": [3, 3, 3]
|
"scale": [3, 3, 3]
|
||||||
},
|
},
|
||||||
"head": {
|
"head": {
|
||||||
|
|
|
@ -0,0 +1,661 @@
|
||||||
|
{
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"textures": {
|
||||||
|
"0": "superbwarfare:item/rgo_grenade",
|
||||||
|
"particle": "superbwarfare:item/rgo_grenade"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"name": "bone177",
|
||||||
|
"from": [7.4625, 6.70236, 7.4625],
|
||||||
|
"to": [8.5375, 7.29764, 8.5375],
|
||||||
|
"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [10, 9, 11, 9.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [10, 10, 11, 10.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 2, 8, 1], "texture": "#0"},
|
||||||
|
"down": {"uv": [3, 8, 2, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone179",
|
||||||
|
"from": [7.4625, 7.4625, 6.70236],
|
||||||
|
"to": [8.5375, 8.5375, 7.29764],
|
||||||
|
"rotation": {"angle": -45, "axis": "x", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 2, 9, 3], "texture": "#0"},
|
||||||
|
"east": {"uv": [0, 11, 0.5, 12], "texture": "#0"},
|
||||||
|
"south": {"uv": [3, 8, 4, 9], "texture": "#0"},
|
||||||
|
"west": {"uv": [11, 0, 11.5, 1], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone177",
|
||||||
|
"from": [7.4625, 6.70236, 7.4625],
|
||||||
|
"to": [8.5375, 7.29764, 8.5375],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"up": {"uv": [9, 4, 8, 3], "texture": "#0"},
|
||||||
|
"down": {"uv": [9, 4, 8, 5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone178",
|
||||||
|
"from": [7.4625, 6.70236, 7.4625],
|
||||||
|
"to": [8.5375, 7.29764, 8.5375],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 11, 2, 11.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [11, 1, 12, 1.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [6, 9, 5, 8], "texture": "#0"},
|
||||||
|
"down": {"uv": [9, 5, 8, 6], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone180",
|
||||||
|
"from": [8.70236, 7.4625, 7.4625],
|
||||||
|
"to": [9.29764, 8.5375, 8.5375],
|
||||||
|
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 11, 2.5, 12], "texture": "#0"},
|
||||||
|
"east": {"uv": [6, 8, 7, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [11, 2, 11.5, 3], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 6, 9, 7], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone177",
|
||||||
|
"from": [7.4625, 8.95236, 7.4625],
|
||||||
|
"to": [8.5375, 9.54764, 8.5375],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.25, 8]},
|
||||||
|
"faces": {
|
||||||
|
"up": {"uv": [8, 9, 7, 8], "texture": "#0"},
|
||||||
|
"down": {"uv": [9, 7, 8, 8], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone178",
|
||||||
|
"from": [7.4625, 8.95236, 7.4625],
|
||||||
|
"to": [8.5375, 9.54764, 8.5375],
|
||||||
|
"rotation": {"angle": 45, "axis": "x", "origin": [8, 8.25, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [3, 11, 4, 11.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [11, 3, 12, 3.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 9, 8, 8], "texture": "#0"},
|
||||||
|
"down": {"uv": [10, 0, 9, 1], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone180",
|
||||||
|
"from": [7.4625, 7.7125, 6.70236],
|
||||||
|
"to": [8.5375, 8.7875, 7.29764],
|
||||||
|
"rotation": {"angle": 45, "axis": "x", "origin": [8, 8.25, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 9, 2, 10], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 11, 4.5, 12], "texture": "#0"},
|
||||||
|
"south": {"uv": [9, 1, 10, 2], "texture": "#0"},
|
||||||
|
"west": {"uv": [11, 4, 11.5, 5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone178",
|
||||||
|
"from": [7.4625, 8.95236, 7.4625],
|
||||||
|
"to": [8.5375, 9.54764, 8.5375],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.25, 8]},
|
||||||
|
"faces": {
|
||||||
|
"up": {"uv": [3, 10, 2, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [10, 2, 9, 3], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone179",
|
||||||
|
"from": [7.4625, 8.95236, 7.4625],
|
||||||
|
"to": [8.5375, 9.54764, 8.5375],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8.25, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 11, 6, 11.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [11, 5, 12, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [4, 10, 3, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [10, 3, 9, 4], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone181",
|
||||||
|
"from": [8.70236, 7.7125, 7.4625],
|
||||||
|
"to": [9.29764, 8.7875, 8.5375],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8.25, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 11, 6.5, 12], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 9, 5, 10], "texture": "#0"},
|
||||||
|
"south": {"uv": [11, 6, 11.5, 7], "texture": "#0"},
|
||||||
|
"west": {"uv": [9, 4, 10, 5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone178",
|
||||||
|
"from": [7.613, 10.8282, 7.613],
|
||||||
|
"to": [8.387, 11.2568, 8.387],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10.3225, 8]},
|
||||||
|
"faces": {
|
||||||
|
"up": {"uv": [10.75, 0.75, 10, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [10.75, 1, 10, 1.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone177",
|
||||||
|
"from": [6.70236, 7.4625, 7.4625],
|
||||||
|
"to": [9.29764, 8.7875, 8.5375],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [4, 5, 5, 6.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [5, 4, 6, 5.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone178",
|
||||||
|
"from": [6.70236, 7.4625, 7.4625],
|
||||||
|
"to": [9.29764, 8.7875, 8.5375],
|
||||||
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [0, 6, 1, 7.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [1, 6, 2, 7.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [2.5, 1, 0, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [2.5, 1, 0, 2], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone179",
|
||||||
|
"from": [7.4625, 7.4625, 6.70236],
|
||||||
|
"to": [8.5375, 8.7875, 9.29764],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 6, 3, 7.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 2, 7, 3.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [1, 2, 0, 4.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone180",
|
||||||
|
"from": [7.4625, 7.4625, 6.70236],
|
||||||
|
"to": [8.5375, 8.7875, 9.29764],
|
||||||
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3, 6, 4, 7.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 4, 7, 5.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [2, 4.5, 1, 2], "texture": "#0"},
|
||||||
|
"down": {"uv": [3, 2, 2, 4.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone181",
|
||||||
|
"from": [7.663, 10.6555, 8.3657],
|
||||||
|
"to": [8.337, 11.7595, 8.9343],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 11.1425, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [7, 11, 7.5, 12], "texture": "#0"},
|
||||||
|
"west": {"uv": [11, 7, 11.5, 8], "texture": "#0"},
|
||||||
|
"up": {"uv": [10.75, 11.5, 10, 11], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone182",
|
||||||
|
"from": [7.663, 10.34492, 8.67293],
|
||||||
|
"to": [8.337, 11.44892, 9.24154],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10.83192, 8.30724]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [8, 11, 8.5, 12], "texture": "#0"},
|
||||||
|
"south": {"uv": [9, 6, 9.75, 7], "texture": "#0"},
|
||||||
|
"west": {"uv": [11, 8, 11.5, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [11.75, 10.5, 11, 10], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone183",
|
||||||
|
"from": [7.638, 10.68257, 9.56718],
|
||||||
|
"to": [8.362, 10.78257, 9.66718],
|
||||||
|
"rotation": {"angle": -45, "axis": "x", "origin": [8, 10.23057, 9.38288]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13, 2, 13.75, 2.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [14, 12, 14.25, 12.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [3, 13, 3.75, 13.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13, 14, 13.25, 14.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.75, 3.25, 13, 3], "texture": "#0"},
|
||||||
|
"down": {"uv": [4.75, 13, 4, 13.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone184",
|
||||||
|
"from": [8.362, 10.60199, 8.98324],
|
||||||
|
"to": [8.412, 11.57599, 9.03324],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8.387, 11.08899, 9.00824]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [12, 9, 12.25, 10], "texture": "#0"},
|
||||||
|
"east": {"uv": [10, 12, 10.25, 13], "texture": "#0"},
|
||||||
|
"south": {"uv": [12, 10, 12.25, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [11, 12, 11.25, 13], "texture": "#0"},
|
||||||
|
"up": {"uv": [14.25, 13.25, 14, 13], "texture": "#0"},
|
||||||
|
"down": {"uv": [14.25, 14, 14, 14.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone185",
|
||||||
|
"from": [7.60831, 11.05199, 8.98324],
|
||||||
|
"to": [8.362, 11.10199, 9.03324],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [7.975, 11.07699, 9.00824]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13, 4, 13.75, 4.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [0, 15, 0.25, 15.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [5, 13, 5.75, 13.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [15, 0, 15.25, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.75, 5.25, 13, 5], "texture": "#0"},
|
||||||
|
"down": {"uv": [6.75, 13, 6, 13.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone186",
|
||||||
|
"from": [7.493, 11.02824, 8.95949],
|
||||||
|
"to": [7.6205, 11.12574, 9.05699],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [7.83955, 11.07699, 9.00824]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 15, 1.25, 15.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [15, 1, 15.25, 1.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [2, 15, 2.25, 15.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [15, 2, 15.25, 2.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.25, 15.25, 3, 15], "texture": "#0"},
|
||||||
|
"down": {"uv": [15.25, 3, 15, 3.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone186",
|
||||||
|
"from": [7.52706, 11.05199, 8.68324],
|
||||||
|
"to": [7.57706, 11.10199, 9.33324],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.55206, 11.07699, 9.00824]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 15, 4.25, 15.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [13, 6, 13.75, 6.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [15, 4, 15.25, 4.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13, 7, 13.75, 7.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.25, 8.75, 13, 8], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 9, 13, 9.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone187",
|
||||||
|
"from": [7.29745, 10.49766, 8.68324],
|
||||||
|
"to": [7.34745, 10.54766, 9.33324],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.32245, 10.52266, 9.00824]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 15, 5.25, 15.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [10, 13, 10.75, 13.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [15, 5, 15.25, 5.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13, 10, 13.75, 10.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [11.25, 13.75, 11, 13], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 11, 13, 11.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone187",
|
||||||
|
"from": [7.39312, 10.52863, 9.28324],
|
||||||
|
"to": [7.44312, 11.07863, 9.33324],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.41812, 10.75363, 9.30824]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [14, 3, 14.25, 3.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 14, 4.25, 14.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [14, 4, 14.25, 4.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [5, 14, 5.25, 14.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [6.25, 15.25, 6, 15], "texture": "#0"},
|
||||||
|
"down": {"uv": [15.25, 6, 15, 6.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone188",
|
||||||
|
"from": [7.39312, 10.52863, 8.68324],
|
||||||
|
"to": [7.44312, 11.07863, 8.73324],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.41812, 10.75363, 8.70824]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [14, 5, 14.25, 5.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [6, 14, 6.25, 14.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [14, 6, 14.25, 6.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7, 14, 7.25, 14.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [7.25, 15.25, 7, 15], "texture": "#0"},
|
||||||
|
"down": {"uv": [15.25, 7, 15, 7.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone183",
|
||||||
|
"from": [7.763, 10.14492, 9.24154],
|
||||||
|
"to": [8.237, 11.24892, 9.29154],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10.83192, 8.30724]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [9, 11, 9.5, 12], "texture": "#0"},
|
||||||
|
"east": {"uv": [12, 11, 12.25, 12], "texture": "#0"},
|
||||||
|
"south": {"uv": [11, 9, 11.5, 10], "texture": "#0"},
|
||||||
|
"west": {"uv": [12, 12, 12.25, 13], "texture": "#0"},
|
||||||
|
"up": {"uv": [14.5, 7.25, 14, 7], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.5, 14, 8, 14.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone184",
|
||||||
|
"from": [7.763, 8.94771, 9.69848],
|
||||||
|
"to": [8.237, 9.05171, 9.74848],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 8.53471, 8.76418]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [14, 8, 14.5, 8.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 15, 8.25, 15.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [9, 14, 9.5, 14.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [15, 8, 15.25, 8.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [14.5, 9.25, 14, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [10.5, 14, 10, 14.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone184",
|
||||||
|
"from": [7.763, 9.3699, 9.42951],
|
||||||
|
"to": [8.237, 10.5739, 9.47951],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 10.0569, 8.49521]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7, 9, 7.5, 10.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [7, 12, 7.25, 13.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [9, 7, 9.5, 8.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [12, 7, 12.25, 8.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [14.5, 10.25, 14, 10], "texture": "#0"},
|
||||||
|
"down": {"uv": [11.5, 14, 11, 14.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone185",
|
||||||
|
"from": [7.763, 7.98895, 9.46551],
|
||||||
|
"to": [8.237, 9.29295, 9.51551],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 8.77595, 8.53121]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 9, 8.5, 10.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 12, 8.25, 13.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [9, 9, 9.5, 10.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [9, 12, 9.25, 13.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [14.5, 11.25, 14, 11], "texture": "#0"},
|
||||||
|
"down": {"uv": [12.5, 14, 12, 14.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone183",
|
||||||
|
"from": [7.663, 9.93554, 8.88818],
|
||||||
|
"to": [8.337, 10.73954, 9.35678],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 10.12254, 8.42248]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [11, 11, 11.5, 11.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [2, 10, 2.75, 10.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [0, 12, 0.5, 12.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [12.75, 0.5, 12, 0], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone184",
|
||||||
|
"from": [7.413, 9.43554, 8.68818],
|
||||||
|
"to": [8.587, 9.93554, 9.35678],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 10.12254, 8.42248]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [1, 12, 1.75, 12.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 10, 1.25, 10.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [12, 1, 12.75, 1.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [6.25, 9.75, 5, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [10.25, 5, 9, 5.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone185",
|
||||||
|
"from": [7.513, 9.53554, 9.35678],
|
||||||
|
"to": [8.487, 9.83554, 9.3685],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 10.12254, 8.42248]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [9, 15, 9.25, 15.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 13, 1, 13.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [15, 9, 15.25, 9.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [14, 0.25, 13, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [2, 13, 1, 13.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone182",
|
||||||
|
"from": [7.663, 11.11964, 7.93405],
|
||||||
|
"to": [8.337, 11.67364, 8.55265],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 11.24664, 8.24335]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 12, 2.75, 12.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [13, 1, 13.5, 1.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [2, 13, 2.5, 13.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [12.75, 2.5, 12, 2], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone183",
|
||||||
|
"from": [7.663, 11.06431, 7.64332],
|
||||||
|
"to": [8.337, 11.38291, 7.89732],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 11.07361, 8.07032]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [12, 13, 12.75, 13.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [10, 15, 10.25, 15.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [15, 10, 15.25, 10.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.75, 12, 13, 12.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone178",
|
||||||
|
"from": [7.0657, 9.1555, 7.613],
|
||||||
|
"to": [8.9343, 10.7095, 8.387],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 10.1425, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [5, 6, 5.75, 7.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [6, 6, 6.75, 7.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone179",
|
||||||
|
"from": [7.0657, 9.1555, 7.613],
|
||||||
|
"to": [8.9343, 10.7095, 8.387],
|
||||||
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 10.1425, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [7, 0, 7.75, 1.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7, 2, 7.75, 3.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.75, 5.75, 2, 5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone180",
|
||||||
|
"from": [7.613, 9.1555, 7.0657],
|
||||||
|
"to": [8.387, 10.7095, 8.9343],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 10.1425, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 7, 4.75, 8.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [7, 4, 7.75, 5.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone181",
|
||||||
|
"from": [7.613, 9.1555, 7.0657],
|
||||||
|
"to": [8.387, 10.7095, 8.9343],
|
||||||
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 10.1425, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7, 6, 7.75, 7.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 8, 0.75, 9.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [5.75, 3.75, 5, 2], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone181",
|
||||||
|
"from": [7.57817, 9.15307, 6.98161],
|
||||||
|
"to": [8.42183, 9.41193, 9.01839],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10.2289, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13, 13, 13.75, 13.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 14, 0.75, 14.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.75, 2, 3, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [3.75, 2, 3, 4], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone182",
|
||||||
|
"from": [7.57817, 9.15307, 6.98161],
|
||||||
|
"to": [8.42183, 9.41193, 9.01839],
|
||||||
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 10.2289, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [14, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [1, 14, 1.75, 14.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [4.75, 2, 4, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [4.75, 2, 4, 4], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone183",
|
||||||
|
"from": [6.98161, 9.15307, 7.57817],
|
||||||
|
"to": [9.01839, 9.41193, 8.42183],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10.2289, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [14, 1, 14.75, 1.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [2, 14, 2.75, 14.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [5, 4.75, 3, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [2, 5, 0, 5.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone184",
|
||||||
|
"from": [6.98161, 9.15307, 7.57817],
|
||||||
|
"to": [9.01839, 9.41193, 8.42183],
|
||||||
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 10.2289, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [14, 2, 14.75, 2.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [3, 14, 3.75, 14.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [7, 0.75, 5, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [7, 1, 5, 1.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone182",
|
||||||
|
"from": [8.5057, 9.9355, 7.613],
|
||||||
|
"to": [8.9343, 10.7095, 8.387],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 10.3225, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3, 12, 3.5, 12.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [10, 2, 10.75, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [12, 3, 12.5, 3.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [3, 10, 3.75, 10.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone180",
|
||||||
|
"from": [7.613, 10.8282, 7.613],
|
||||||
|
"to": [8.387, 11.2568, 8.387],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 10.3225, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 12, 4.75, 12.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [12, 4, 12.75, 4.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [10.75, 4.75, 10, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [5.75, 10, 5, 10.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone181",
|
||||||
|
"from": [7.613, 9.9355, 7.0657],
|
||||||
|
"to": [8.387, 10.7095, 7.4943],
|
||||||
|
"rotation": {"angle": 45, "axis": "x", "origin": [8, 10.3225, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 10, 6.75, 10.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [5, 12, 5.5, 12.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [10, 6, 10.75, 6.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [12, 5, 12.5, 5.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone179",
|
||||||
|
"from": [7.613, 10.8282, 7.613],
|
||||||
|
"to": [8.387, 11.2568, 8.387],
|
||||||
|
"rotation": {"angle": 45, "axis": "x", "origin": [8, 10.3225, 8]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [6, 12, 6.75, 12.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [12, 6, 12.75, 6.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [10.75, 7.75, 10, 7], "texture": "#0"},
|
||||||
|
"down": {"uv": [10.75, 8, 10, 8.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [-3, -19, -7.25],
|
||||||
|
"translation": [5.5, -0.75, -3.5],
|
||||||
|
"scale": [2, 2, 2]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [-3, -19, -7.25],
|
||||||
|
"translation": [5.5, -0.75, -3.5],
|
||||||
|
"scale": [2, 2, 2]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, -2, 0]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [-140.06, -16.8, -135.22],
|
||||||
|
"translation": [-2, -2.75, 0],
|
||||||
|
"scale": [2.8, 2.8, 2.8]
|
||||||
|
},
|
||||||
|
"head": {
|
||||||
|
"translation": [0, -1.75, -6.75],
|
||||||
|
"scale": [1.5, 1.5, 1.5]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"rotation": [90, -45, 90],
|
||||||
|
"translation": [0.75, -0.5, 0],
|
||||||
|
"scale": [2, 2, 2]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"name": "group",
|
||||||
|
"origin": [8, 8, 8],
|
||||||
|
"color": 0,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "bone175",
|
||||||
|
"origin": [8, 7.99219, -17.72809],
|
||||||
|
"color": 2,
|
||||||
|
"children": [0, 1, 2, 3, 4]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone175",
|
||||||
|
"origin": [8, 7.99219, -17.72809],
|
||||||
|
"color": 2,
|
||||||
|
"children": [5, 6, 7, 8, 9, 10, 11]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bone175",
|
||||||
|
"origin": [8, 7.99219, -17.72809],
|
||||||
|
"color": 2,
|
||||||
|
"children": [12, 13, 14, 15]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "group",
|
||||||
|
"origin": [7, 8.64843, 8.14623],
|
||||||
|
"color": 0,
|
||||||
|
"children": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "group",
|
||||||
|
"origin": [8, 10.8925, 8],
|
||||||
|
"color": 0,
|
||||||
|
"children": [35, 36, 37, 38]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "group",
|
||||||
|
"origin": [8, 10.8925, 8],
|
||||||
|
"color": 0,
|
||||||
|
"children": [39, 40, 41, 42]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "group",
|
||||||
|
"origin": [8, 11.0725, 8],
|
||||||
|
"color": 0,
|
||||||
|
"children": [43, 44, 45, 46]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 197 B |
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Loading…
Add table
Reference in a new issue