添加炮击指示器模型,HUD,配方
This commit is contained in:
parent
cba9ad73f8
commit
2e4fd79576
10 changed files with 453 additions and 36 deletions
|
@ -214,7 +214,7 @@ public class ClickHandler {
|
|||
}
|
||||
|
||||
if (player.isUsingItem() && player.getUseItem().is(ModItems.ARTILLERY_INDICATOR.get())) {
|
||||
artilleryIndicatorCustomZoom = Mth.clamp(artilleryIndicatorCustomZoom + 0.4 * scroll, 0, 9);
|
||||
artilleryIndicatorCustomZoom = Mth.clamp(artilleryIndicatorCustomZoom + 0.4 * scroll, -2, 6);
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,17 +2,24 @@ package com.atsuishio.superbwarfare.client.overlay;
|
|||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
import com.atsuishio.superbwarfare.tools.FormatTool;
|
||||
import com.atsuishio.superbwarfare.tools.TraceTool;
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import net.minecraft.client.CameraType;
|
||||
import net.minecraft.client.DeltaTracker;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.client.gui.LayeredDraw;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.ClipContext;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
@ -21,18 +28,48 @@ import net.neoforged.api.distmarker.OnlyIn;
|
|||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import static com.atsuishio.superbwarfare.client.RenderHelper.preciseBlit;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class SpyglassRangeOverlay implements LayeredDraw.Layer {
|
||||
|
||||
public static final ResourceLocation ID = Mod.loc("spyglass_range");
|
||||
|
||||
private static float scopeScale = 1;
|
||||
|
||||
@Override
|
||||
@ParametersAreNonnullByDefault
|
||||
public void render(GuiGraphics guiGraphics, DeltaTracker deltaTracker) {
|
||||
int w = guiGraphics.guiWidth();
|
||||
int h = guiGraphics.guiHeight();
|
||||
PoseStack poseStack = guiGraphics.pose();
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player != null && (player.getMainHandItem().getItem() == Items.SPYGLASS || player.getOffhandItem().getItem() == Items.SPYGLASS) && player.isUsingItem()) {
|
||||
if (player == null) return;
|
||||
|
||||
var screenWidth = guiGraphics.guiWidth();
|
||||
var screenHeight = guiGraphics.guiHeight();
|
||||
|
||||
if (((player.isUsingItem() && player.getUseItem().is(ModItems.ARTILLERY_INDICATOR.get())) || player.isScoping()) && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON) {
|
||||
if (player.getMainHandItem().getItem() == ModItems.ARTILLERY_INDICATOR.get()) {
|
||||
poseStack.pushPose();
|
||||
RenderSystem.disableDepthTest();
|
||||
RenderSystem.depthMask(false);
|
||||
RenderSystem.enableBlend();
|
||||
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
||||
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
||||
RenderSystem.setShaderColor(1, 1, 1, 1);
|
||||
|
||||
float deltaFrame = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks();
|
||||
scopeScale = (float) Mth.lerp(0.5F * deltaFrame, scopeScale, 1.35F + (0.2f * ClientEventHandler.firePos));
|
||||
float f = (float) Math.min(screenWidth, screenHeight);
|
||||
float f1 = Math.min((float) screenWidth / f, (float) screenHeight / f) * scopeScale;
|
||||
float i = Mth.floor(f * f1);
|
||||
float j = Mth.floor(f * f1);
|
||||
float k = ((screenWidth - i) / 2);
|
||||
float l = ((screenHeight - j) / 2);
|
||||
float w = i * 21 / 9;
|
||||
preciseBlit(guiGraphics, Mod.loc("textures/screens/spyglass.png"), k - (2 * w / 7), l, 0, 0.0F, w, j, w, j);
|
||||
poseStack.popPose();
|
||||
}
|
||||
|
||||
boolean lookAtEntity = false;
|
||||
|
||||
BlockHitResult result = player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getViewVector(1).scale(512)),
|
||||
|
@ -54,17 +91,19 @@ public class SpyglassRangeOverlay implements LayeredDraw.Layer {
|
|||
if (lookAtEntity) {
|
||||
guiGraphics.drawString(Minecraft.getInstance().font, Component.translatable("tips.superbwarfare.drone.range")
|
||||
.append(Component.literal(FormatTool.format1D(entityRange, "M ") + lookingEntity.getDisplayName().getString())),
|
||||
w / 2 + 12, h / 2 - 28, -1, false);
|
||||
screenWidth / 2 + 12, screenHeight / 2 - 28, -1, false);
|
||||
} else {
|
||||
if (blockRange > 500) {
|
||||
guiGraphics.drawString(Minecraft.getInstance().font, Component.translatable("tips.superbwarfare.drone.range")
|
||||
.append(Component.literal("---M")), w / 2 + 12, h / 2 - 28, -1, false);
|
||||
.append(Component.literal("---M")), screenWidth / 2 + 12, screenHeight / 2 - 28, -1, false);
|
||||
} else {
|
||||
guiGraphics.drawString(Minecraft.getInstance().font, Component.translatable("tips.superbwarfare.drone.range")
|
||||
.append(Component.literal(FormatTool.format1D(blockRange, "M"))),
|
||||
w / 2 + 12, h / 2 - 28, -1, false);
|
||||
screenWidth / 2 + 12, screenHeight / 2 - 28, -1, false);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
scopeScale = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1025,12 +1025,22 @@ public class ClientEventHandler {
|
|||
ItemStack rightHandItem = player.getItemInHand(rightHand);
|
||||
final var tag = NBTTool.getTag(rightHandItem);
|
||||
|
||||
if (event.getHand() == leftHand && rightHandItem.getItem() instanceof GunItem) {
|
||||
event.setCanceled(true);
|
||||
if (event.getHand() == leftHand) {
|
||||
if (rightHandItem.getItem() instanceof GunItem) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
if (player.isUsingItem() && player.getUseItem().is(ModItems.ARTILLERY_INDICATOR.get())) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (event.getHand() == rightHand && rightHandItem.getItem() instanceof GunItem && drawTime > 0.15) {
|
||||
event.setCanceled(true);
|
||||
if (event.getHand() == rightHand) {
|
||||
if (rightHandItem.getItem() instanceof GunItem && drawTime > 0.15) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
if (player.isUsingItem() && player.getUseItem().is(ModItems.ARTILLERY_INDICATOR.get())) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
|
@ -1462,17 +1472,13 @@ public class ClientEventHandler {
|
|||
|
||||
double factor;
|
||||
|
||||
if (stack.is(ModItems.ARTILLERY_INDICATOR.get())) {
|
||||
if (player.isUsingItem() && player.getUseItem().is(ModItems.ARTILLERY_INDICATOR.get())) {
|
||||
factor = 2 + artilleryIndicatorCustomZoom;
|
||||
} else {
|
||||
factor = 1;
|
||||
}
|
||||
if (player.isUsingItem() && player.getUseItem().is(ModItems.ARTILLERY_INDICATOR.get()) && mc.options.getCameraType() == CameraType.FIRST_PERSON) {
|
||||
factor = 4 + artilleryIndicatorCustomZoom;
|
||||
} else {
|
||||
factor = 1;
|
||||
}
|
||||
|
||||
artilleryIndicatorZoom = Mth.lerp(0.6 * times, artilleryIndicatorZoom, factor);
|
||||
artilleryIndicatorZoom = Mth.lerp(0.3 * times, artilleryIndicatorZoom, factor);
|
||||
|
||||
event.setFOV(event.getFOV() / artilleryIndicatorZoom);
|
||||
|
||||
|
@ -1561,6 +1567,10 @@ public class ClientEventHandler {
|
|||
if (player == null) return;
|
||||
if (!mc.options.getCameraType().isFirstPerson()) return;
|
||||
|
||||
if (player.isUsingItem() && player.getUseItem().is(ModItems.ARTILLERY_INDICATOR.get())) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
final var tag = NBTTool.getTag(stack);
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ import com.atsuishio.superbwarfare.tools.TraceTool;
|
|||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.nbt.Tag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.codec.ByteBufCodecs;
|
||||
import net.minecraft.network.codec.StreamCodec;
|
||||
|
@ -31,6 +33,7 @@ import java.util.Objects;
|
|||
import java.util.stream.StreamSupport;
|
||||
|
||||
import static com.atsuishio.superbwarfare.entity.vehicle.MortarEntity.FIRE_TIME;
|
||||
import static com.atsuishio.superbwarfare.item.ArtilleryIndicator.TAG_MORTARS;
|
||||
|
||||
public record SetFiringParametersMessage(int msgType) implements CustomPacketPayload {
|
||||
public static final Type<SetFiringParametersMessage> TYPE = new Type<>(Mod.loc("set_firing_parameters"));
|
||||
|
@ -77,9 +80,26 @@ public record SetFiringParametersMessage(int msgType) implements CustomPacketPay
|
|||
}
|
||||
|
||||
if (mainStack.is(ModItems.ARTILLERY_INDICATOR.get())) {
|
||||
// TODO 这数据读写是一坨什么玩意
|
||||
BlockPos pos;
|
||||
if (player.isShiftKeyDown()) {
|
||||
var mainTag = NBTTool.getTag(mainStack);
|
||||
ListTag tags = mainTag.getList(TAG_MORTARS, Tag.TAG_COMPOUND);
|
||||
for (int i = 0; i < tags.size(); i++) {
|
||||
var tag = tags.getCompound(i);
|
||||
Entity entity = EntityFindUtil.findEntity(player.level(), tag.getString("UUID"));
|
||||
if (entity instanceof MortarEntity mortarEntity) {
|
||||
if (player.isShiftKeyDown()) {
|
||||
if (mortarEntity.stack.getItem() instanceof MortarShell && mortarEntity.getEntityData().get(FIRE_TIME) == 0) {
|
||||
mortarEntity.fire(player);
|
||||
}
|
||||
} else {
|
||||
if (!mortarEntity.setTarget(mainStack)) {
|
||||
player.displayClientMessage(Component.translatable("tips.superbwarfare.mortar.warn").withStyle(ChatFormatting.RED), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
BlockPos pos;
|
||||
if (lookAtEntity) {
|
||||
pos = lookingEntity.blockPosition();
|
||||
} else {
|
||||
|
@ -94,21 +114,20 @@ public record SetFiringParametersMessage(int msgType) implements CustomPacketPay
|
|||
+ "," + pos.getZ()
|
||||
+ "]")), true);
|
||||
}
|
||||
|
||||
List<Entity> entities = getCannon(player, player.level(), NBTTool.getTag(mainStack).getString("LinkedCannon"));
|
||||
for (var e : entities) {
|
||||
if (e instanceof MortarEntity mortarEntity) {
|
||||
if (player.isShiftKeyDown()) {
|
||||
if (!mortarEntity.setTarget(mainStack)) {
|
||||
player.displayClientMessage(Component.translatable("tips.superbwarfare.mortar.warn").withStyle(ChatFormatting.RED), true);
|
||||
}
|
||||
} else {
|
||||
if (mortarEntity.stack.getItem() instanceof MortarShell && mortarEntity.getEntityData().get(FIRE_TIME) == 0) {
|
||||
mortarEntity.fire(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// List<Entity> entities = getCannon(player, player.level(), mainStack.getOrCreateTag().getString("LinkedCannon"));
|
||||
// for (var e : entities) {
|
||||
// if (e instanceof MortarEntity mortarEntity) {
|
||||
// if (player.isShiftKeyDown()) {
|
||||
// if (!mortarEntity.setTarget(mainStack)) {
|
||||
// player.displayClientMessage(Component.translatable("tips.superbwarfare.mortar.warn").withStyle(ChatFormatting.RED), true);
|
||||
// }
|
||||
// } else {
|
||||
// if (mortarEntity.stack.getItem() instanceof MortarShell && mortarEntity.getEntityData().get(FIRE_TIME) == 0) {
|
||||
// mortarEntity.fire(player);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -251,6 +251,7 @@
|
|||
"item.superbwarfare.light_armament_module": "Light Armament Module",
|
||||
"item.superbwarfare.medium_armament_module": "Medium Armament Module",
|
||||
"item.superbwarfare.heavy_armament_module": "Heavy Armament Module",
|
||||
"item.superbwarfare.artillery_indicator": "Artillery Indicator",
|
||||
|
||||
"attribute.superbwarfare.bullet_resistance": "Bullet Resistance",
|
||||
|
||||
|
|
|
@ -251,6 +251,7 @@
|
|||
"item.superbwarfare.light_armament_module": "轻型武装模块",
|
||||
"item.superbwarfare.medium_armament_module": "中型武装模块",
|
||||
"item.superbwarfare.heavy_armament_module": "重型武装模块",
|
||||
"item.superbwarfare.artillery_indicator": "火炮指示器",
|
||||
|
||||
"attribute.superbwarfare.bullet_resistance": "子弹防护",
|
||||
|
||||
|
|
|
@ -0,0 +1,328 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"1": "superbwarfare:item/artillery_indicator",
|
||||
"particle": "superbwarfare:item/artillery_indicator"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [9.9, 4.9, 6.9],
|
||||
"to": [12.1, 8.6, 9.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 7.5, 3.5, 9.5], "texture": "#1"},
|
||||
"east": {"uv": [3.5, 7.5, 4.5, 9.5], "texture": "#1"},
|
||||
"south": {"uv": [4.5, 7.5, 5.5, 9.5], "texture": "#1"},
|
||||
"west": {"uv": [7.5, 7, 8.5, 9], "texture": "#1"},
|
||||
"up": {"uv": [2.5, 11, 1.5, 10], "texture": "#1"},
|
||||
"down": {"uv": [3.5, 10, 2.5, 11], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.25, 11, 7.25],
|
||||
"to": [11.75, 12, 8.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 9.5, 3.5, 10], "texture": "#1"},
|
||||
"east": {"uv": [10.5, 8.5, 11.5, 9], "texture": "#1"},
|
||||
"south": {"uv": [3.5, 9.5, 7, 10], "texture": "#1"},
|
||||
"west": {"uv": [10.5, 9, 11.5, 9.5], "texture": "#1"},
|
||||
"up": {"uv": [9.5, 6, 6, 5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 11, 7],
|
||||
"to": [12, 11.1, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.5, 5, 13, 5.5], "texture": "#1"},
|
||||
"east": {"uv": [10.5, 9.5, 11.5, 10], "texture": "#1"},
|
||||
"south": {"uv": [9.5, 5.5, 13, 6], "texture": "#1"},
|
||||
"west": {"uv": [10.5, 10, 11.5, 10.5], "texture": "#1"},
|
||||
"up": {"uv": [9.5, 7, 6, 6], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.75, 11.75, 6.75],
|
||||
"to": [12.25, 12.25, 7.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [7, 4, 11, 4.5], "texture": "#1"},
|
||||
"east": {"uv": [2.5, 7, 3, 7.5], "texture": "#1"},
|
||||
"south": {"uv": [7, 4.5, 11, 5], "texture": "#1"},
|
||||
"west": {"uv": [8.5, 10, 9, 10.5], "texture": "#1"},
|
||||
"up": {"uv": [12, 0.5, 8, 0], "texture": "#1"},
|
||||
"down": {"uv": [12, 0.5, 8, 1], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.75, 11.75, 8.75],
|
||||
"to": [12.25, 12.25, 9.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 1.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 1, 12, 1.5], "texture": "#1"},
|
||||
"east": {"uv": [11.5, 3.5, 12, 4], "texture": "#1"},
|
||||
"south": {"uv": [8, 1.5, 12, 2], "texture": "#1"},
|
||||
"west": {"uv": [4, 11.5, 4.5, 12], "texture": "#1"},
|
||||
"up": {"uv": [12, 2.5, 8, 2], "texture": "#1"},
|
||||
"down": {"uv": [12, 2.5, 8, 3], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11.75, 11.75, 7.25],
|
||||
"to": [12.25, 12.25, 8.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [4.75, 0, 10.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [10.5, 10.5, 11.5, 11], "texture": "#1"},
|
||||
"west": {"uv": [1.5, 11, 2.5, 11.5], "texture": "#1"},
|
||||
"up": {"uv": [3, 12, 2.5, 11], "texture": "#1"},
|
||||
"down": {"uv": [3.5, 11, 3, 12], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.75, 11.75, 7.25],
|
||||
"to": [5.25, 12.25, 8.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-2, 0, 10.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [3.5, 11, 4.5, 11.5], "texture": "#1"},
|
||||
"west": {"uv": [11, 4, 12, 4.5], "texture": "#1"},
|
||||
"up": {"uv": [5, 12, 4.5, 11], "texture": "#1"},
|
||||
"down": {"uv": [11.5, 6, 11, 7], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.1, 5.35, 7],
|
||||
"to": [9.6, 6.1, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-2, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 3, 12, 3.5], "texture": "#1"},
|
||||
"east": {"uv": [11, 4.5, 12, 5], "texture": "#1"},
|
||||
"south": {"uv": [3.5, 10, 5.5, 10.5], "texture": "#1"},
|
||||
"west": {"uv": [7.5, 11, 8.5, 11.5], "texture": "#1"},
|
||||
"up": {"uv": [7.5, 9.5, 5.5, 8.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 7, 8.5, 8], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.85, 5.1, 7.85],
|
||||
"to": [7.1, 5.35, 9.1],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [6.85, 5.725, 7.85]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 11.5, 5.5, 12], "texture": "#1"},
|
||||
"east": {"uv": [11.5, 6, 12, 6.5], "texture": "#1"},
|
||||
"south": {"uv": [6.5, 11.5, 7, 12], "texture": "#1"},
|
||||
"west": {"uv": [11.5, 6.5, 12, 7], "texture": "#1"},
|
||||
"up": {"uv": [8, 12, 7.5, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [8.5, 11.5, 8, 12], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.1, 5.1, 7.85],
|
||||
"to": [9.1, 5.35, 8.85],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [8.85, 5.725, 7.85]},
|
||||
"faces": {
|
||||
"north": {"uv": [11.5, 8.5, 12, 9], "texture": "#1"},
|
||||
"east": {"uv": [9, 11.5, 9.5, 12], "texture": "#1"},
|
||||
"south": {"uv": [11.5, 9, 12, 9.5], "texture": "#1"},
|
||||
"west": {"uv": [9.5, 11.5, 10, 12], "texture": "#1"},
|
||||
"up": {"uv": [12, 10, 11.5, 9.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 11.5, 10, 12], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.75, 6, 6.75],
|
||||
"to": [12.25, 11, 9.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 8, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 2.5], "texture": "#1"},
|
||||
"east": {"uv": [3, 5, 4.5, 7.5], "texture": "#1"},
|
||||
"south": {"uv": [0, 2.5, 4, 5], "texture": "#1"},
|
||||
"west": {"uv": [4.5, 5, 6, 7.5], "texture": "#1"},
|
||||
"up": {"uv": [8, 1.5, 4, 0], "texture": "#1"},
|
||||
"down": {"uv": [8, 1.5, 4, 3], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9.25, 6.5, 9.25],
|
||||
"to": [12, 10.75, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10.625, 8.625, 9.375]},
|
||||
"faces": {
|
||||
"east": {"uv": [5.5, 10, 6, 12], "texture": "#1"},
|
||||
"south": {"uv": [0, 7, 1.5, 9], "texture": "#1"},
|
||||
"up": {"uv": [1.5, 9.5, 0, 9], "texture": "#1"},
|
||||
"down": {"uv": [11.5, 3.5, 10, 4], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.6525, 6.5, 8.73333],
|
||||
"to": [9.4025, 10.75, 8.98333],
|
||||
"rotation": {"angle": -22.5, "axis": "y", "origin": [8.0275, 8.625, 8.85833]},
|
||||
"faces": {
|
||||
"south": {"uv": [6, 10, 6.5, 12], "texture": "#1"},
|
||||
"up": {"uv": [12, 10.5, 11.5, 10], "texture": "#1"},
|
||||
"down": {"uv": [11, 11.5, 10.5, 12], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12.25, 6, 7.25],
|
||||
"to": [12.75, 10.5, 8.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 8, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [7, 9.5, 7.5, 12], "texture": "#1"},
|
||||
"east": {"uv": [1.5, 7, 2.5, 9.5], "texture": "#1"},
|
||||
"south": {"uv": [1, 10, 1.5, 12.5], "texture": "#1"},
|
||||
"up": {"uv": [6, 8.5, 5.5, 7.5], "texture": "#1"},
|
||||
"down": {"uv": [5.5, 10.5, 5, 11.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 9.75, 6.5],
|
||||
"to": [6.5, 10.25, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 8, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.5, 11, 10.5, 11.5], "texture": "#1"},
|
||||
"east": {"uv": [3.5, 10.5, 5, 11], "texture": "#1"},
|
||||
"south": {"uv": [10.5, 11, 11.5, 11.5], "texture": "#1"},
|
||||
"west": {"uv": [10.5, 7, 12, 7.5], "texture": "#1"},
|
||||
"up": {"uv": [8.5, 10.5, 7.5, 9], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 8, 9.5, 9.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 8.75, 6.5],
|
||||
"to": [6.5, 9.25, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5.5, 9, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 11.5, 1, 12], "texture": "#1"},
|
||||
"east": {"uv": [7.5, 10.5, 9, 11], "texture": "#1"},
|
||||
"south": {"uv": [1.5, 11.5, 2.5, 12], "texture": "#1"},
|
||||
"west": {"uv": [10.5, 7.5, 12, 8], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 11, 9.5, 9.5], "texture": "#1"},
|
||||
"down": {"uv": [1, 10, 0, 11.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.25, 8.5, 6.5],
|
||||
"to": [5.75, 9, 6.75],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [4.75, 8.75, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [11.5, 10.5, 12, 11], "texture": "#1"},
|
||||
"east": {"uv": [11, 11.5, 11.5, 12], "texture": "#1"},
|
||||
"west": {"uv": [11.5, 11, 12, 11.5], "texture": "#1"},
|
||||
"up": {"uv": [12, 12, 11.5, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [0.5, 12, 0, 12.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.25, 7.5, 6.5],
|
||||
"to": [5.75, 8, 6.75],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [4.75, 7.75, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 0, 12.5, 0.5], "texture": "#1"},
|
||||
"east": {"uv": [0.5, 12, 1, 12.5], "texture": "#1"},
|
||||
"west": {"uv": [12, 0.5, 12.5, 1], "texture": "#1"},
|
||||
"up": {"uv": [12.5, 1.5, 12, 1], "texture": "#1"},
|
||||
"down": {"uv": [2, 12, 1.5, 12.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 5.5, 7.25],
|
||||
"to": [10, 9.75, 8.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 7, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 3, 7, 5], "texture": "#1"},
|
||||
"south": {"uv": [0, 5, 3, 7], "texture": "#1"},
|
||||
"west": {"uv": [8.5, 8, 9.5, 10], "texture": "#1"},
|
||||
"down": {"uv": [10, 3, 7, 4], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.75, 6.25, 6.25],
|
||||
"to": [11.75, 9, 6.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10.25, 7.625, 6.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 7, 7.5, 8.5], "texture": "#1"},
|
||||
"east": {"uv": [6.5, 10, 7, 11.5], "texture": "#1"},
|
||||
"west": {"uv": [9, 10, 9.5, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [12, 8, 10.5, 8.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.75, 8.79966, 6.75716],
|
||||
"to": [11.75, 10.29966, 7.25716],
|
||||
"rotation": {"angle": 22.5, "axis": "x", "origin": [10.25, 10.17466, 7.00716]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.5, 6, 11, 7], "texture": "#1"},
|
||||
"east": {"uv": [8.5, 11, 9, 12], "texture": "#1"},
|
||||
"west": {"uv": [3.5, 11.5, 4, 12.5], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [-2, -2, 0]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [-2, -2, 0]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [10.98, 1.37, 4.05],
|
||||
"translation": [-3.25, -0.25, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [10.98, 1.37, 4.05],
|
||||
"translation": [-3.25, -0.25, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"rotation": [90, 0, 0]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [-67.5, 0, 45],
|
||||
"translation": [0.25, -0.5, 0],
|
||||
"scale": [1.5, 1.5, 1.5]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, -0.25, -13.25],
|
||||
"scale": [1.6, 1.6, 1.6]
|
||||
},
|
||||
"fixed": {
|
||||
"translation": [0, 0, -1.5],
|
||||
"scale": [1.5, 1.5, 1.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [7, 8, 9]
|
||||
},
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 725 B |
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "misc",
|
||||
"pattern": [
|
||||
"aba"
|
||||
],
|
||||
"key": {
|
||||
"a": {
|
||||
"item": "minecraft:spyglass"
|
||||
},
|
||||
"b": {
|
||||
"item": "superbwarfare:monitor"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"id": "superbwarfare:artillery_indicator",
|
||||
"count": 1
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue