将标枪导弹的模型UI替换为GUI
|
@ -1,27 +0,0 @@
|
|||
package net.mcreator.superbwarfare.client.layer;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.JavelinItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class JavelinLayer extends GeoRenderLayer<JavelinItem> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/javelin_e.png");
|
||||
|
||||
public JavelinLayer(GeoRenderer<JavelinItem> entityRenderer) {
|
||||
super(entityRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, JavelinItem animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
}
|
|
@ -34,12 +34,6 @@ public class JavelinItemModel extends GeoModel<JavelinItem> {
|
|||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone javelin = getAnimationProcessor().getBone("javelin");
|
||||
CoreGeoBone screen = getAnimationProcessor().getBone("screen");
|
||||
CoreGeoBone seek = getAnimationProcessor().getBone("seek");
|
||||
CoreGeoBone top = getAnimationProcessor().getBone("top");
|
||||
CoreGeoBone dir = getAnimationProcessor().getBone("dir");
|
||||
CoreGeoBone missile_green = getAnimationProcessor().getBone("missile_green");
|
||||
CoreGeoBone missile_red = getAnimationProcessor().getBone("missile_red");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
|
@ -49,11 +43,7 @@ public class JavelinItemModel extends GeoModel<JavelinItem> {
|
|||
double p = player.getPersistentData().getDouble("zoom_pos");
|
||||
double zp = player.getPersistentData().getDouble("zoom_pos_z");
|
||||
|
||||
top.setHidden(!stack.getOrCreateTag().getBoolean("TopMode"));
|
||||
dir.setHidden(stack.getOrCreateTag().getBoolean("TopMode"));
|
||||
missile_green.setHidden(!(stack.getOrCreateTag().getInt("ammo") > 0));
|
||||
missile_red.setHidden(stack.getOrCreateTag().getInt("ammo") > 0);
|
||||
seek.setHidden(!(stack.getOrCreateTag().getInt("SeekTime") > 1 && stack.getOrCreateTag().getInt("SeekTime") < 20 ));
|
||||
|
||||
|
||||
gun.setPosX(1.62f * (float) p);
|
||||
gun.setPosY(6.3f * (float) p - (float) (0.2f * zp));
|
||||
|
@ -62,9 +52,7 @@ public class JavelinItemModel extends GeoModel<JavelinItem> {
|
|||
gun.setRotZ(-4.75f * Mth.DEG_TO_RAD * (float) p + (float) (0.02f * zp));
|
||||
|
||||
javelin.setHidden(gun.getPosX() > 1.55);
|
||||
screen.setHidden(gun.getPosX() <= 1.55);
|
||||
|
||||
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.4));
|
||||
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.55));
|
||||
|
||||
double fp = player.getPersistentData().getDouble("fire_pos");
|
||||
double fr = player.getPersistentData().getDouble("fire_rot");
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package net.mcreator.superbwarfare.client.renderer.item;
|
||||
|
||||
import net.mcreator.superbwarfare.client.layer.JavelinLayer;
|
||||
import net.mcreator.superbwarfare.client.model.item.JavelinItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.JavelinItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
|
@ -11,7 +10,6 @@ import software.bernie.geckolib.renderer.GeoItemRenderer;
|
|||
public class JavelinItemRenderer extends GeoItemRenderer<JavelinItem> {
|
||||
public JavelinItemRenderer() {
|
||||
super(new JavelinItemModel());
|
||||
this.addRenderLayer(new JavelinLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
package net.mcreator.superbwarfare.client.screens;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.client.event.RenderGuiEvent;
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod.EventBusSubscriber(value = Dist.CLIENT)
|
||||
public class JavelinHudOverlay {
|
||||
|
||||
public static final int TEXTURE_WIDTH = 771;
|
||||
public static final int TEXTURE_HEIGHT = 1006;
|
||||
|
||||
public static final int HUD_WIDTH = 1720;
|
||||
public static final int HUD_HEIGHT = 720;
|
||||
|
||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||
public static void eventHandler(RenderGuiEvent.Pre event) {
|
||||
int w = event.getWindow().getGuiScaledWidth();
|
||||
int h = event.getWindow().getGuiScaledHeight();
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player != null) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
|
||||
if ((stack.getItem() == ModItems.JAVELIN.get() && !stack.getOrCreateTag().getBoolean("HoloHidden"))) {
|
||||
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 f = (float)Math.min(w, h);
|
||||
float f1 = Math.min((float)w / f, (float)h / f) * 1.35f;
|
||||
int i = Mth.floor(f * f1);
|
||||
int j = Mth.floor(f * f1);
|
||||
int k = (w - i) / 2;
|
||||
int l = (h - j) / 2;
|
||||
int i1 = k + i;
|
||||
int j1 = l + j;
|
||||
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, "textures/screens/javelin/javelin_hud.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j);
|
||||
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, stack.getOrCreateTag().getBoolean("TopMode") ? "textures/screens/javelin/top.png" : "textures/screens/javelin/dir.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j);
|
||||
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, stack.getOrCreateTag().getInt("ammo") > 0 ? "textures/screens/javelin/missile_green.png" : "textures/screens/javelin/missile_red.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j);
|
||||
if (stack.getOrCreateTag().getInt("SeekTime") > 1 && stack.getOrCreateTag().getInt("SeekTime") < 20) {
|
||||
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, "textures/screens/javelin/seek.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j);
|
||||
}
|
||||
event.getGuiGraphics().fill(RenderType.guiOverlay(), 0, l, k, j1, -90, -16777216);
|
||||
event.getGuiGraphics().fill(RenderType.guiOverlay(), i1, l, w, j1, -90, -16777216);
|
||||
RenderSystem.depthMask(true);
|
||||
RenderSystem.defaultBlendFunc();
|
||||
RenderSystem.enableDepthTest();
|
||||
RenderSystem.disableBlend();
|
||||
RenderSystem.setShaderColor(1, 1, 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -44,177 +44,6 @@
|
|||
"parent": "0",
|
||||
"pivot": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"name": "screen",
|
||||
"parent": "roll",
|
||||
"pivot": [0.26172, 0.5, -66],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-6.58203, 1, -64.99609],
|
||||
"size": [17.7, 13, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [9.40381, 82.52881], "uv_size": [62.125, 45.375]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-31.73828, 11.5, -65],
|
||||
"size": [68, 20, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 84], "uv_size": [2, 2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-31.73828, -16.5, -65],
|
||||
"size": [68, 20, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 84], "uv_size": [2, 2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-31.73828, 3.5, -65],
|
||||
"size": [28, 8, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 84], "uv_size": [2, 2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [8.26172, 3.5, -65],
|
||||
"size": [28, 8, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 84], "uv_size": [2, 2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [6.3214, 6.97919, -65],
|
||||
"size": [0.24922, 0.5, 0],
|
||||
"pivot": [2.26193, 11.41327, -65],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 84], "uv_size": [2, 2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [6.3214, 15.34736, -65],
|
||||
"size": [0.24922, 0.5, 0],
|
||||
"pivot": [2.26193, 11.41327, -65],
|
||||
"rotation": [0, 0, -135],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 84], "uv_size": [2, 2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [6.3214, -0.85361, -65],
|
||||
"size": [0.24922, 0.5, 0],
|
||||
"pivot": [2.26193, 3.58048, -65],
|
||||
"rotation": [0, 0, 135],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 86], "uv_size": [2, -2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [6.3214, 7.51456, -65],
|
||||
"size": [0.24922, 0.5, 0],
|
||||
"pivot": [2.26193, 3.58048, -65],
|
||||
"rotation": [0, 0, 45],
|
||||
"uv": {
|
||||
"south": {"uv": [0, 86], "uv_size": [2, -2]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "seek",
|
||||
"parent": "screen",
|
||||
"pivot": [-2.50703, 12.83359, -64.99609],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-3.83203, 11.50859, -64.99609],
|
||||
"size": [2.65, 2.65, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [83.90381, 89.15381], "uv_size": [9.4, 9.4]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "top",
|
||||
"parent": "screen",
|
||||
"pivot": [-5.31875, 10.71953, -64.99609],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-6.64375, 9.39453, -64.99609],
|
||||
"size": [2.65, 2.65, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [74.27881, 89.27881], "uv_size": [9.4, 9.4]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "dir",
|
||||
"parent": "screen",
|
||||
"pivot": [-5.28359, 7.53203, -64.99609],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-6.60859, 6.20703, -64.99609],
|
||||
"size": [2.65, 2.65, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [74.02881, 100.40381], "uv_size": [9.4, 9.4]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "missile_green",
|
||||
"parent": "screen",
|
||||
"pivot": [0.63047, 2.19297, -64.99609],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-0.69453, 0.86797, -64.99609],
|
||||
"size": [2.65, 2.65, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [84.15381, 100.52881], "uv_size": [9.4, 9.4]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "missile_red",
|
||||
"parent": "screen",
|
||||
"pivot": [-2.56875, 2.2125, -64.99609],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-3.89375, 0.8875, -64.99609],
|
||||
"size": [2.65, 2.65, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [74.74512, 111.48096], "uv_size": [9.4, 9.4]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone20",
|
||||
"parent": "screen",
|
||||
"pivot": [2.26172, 7.5, -65],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [2.24672, 1.5, -65],
|
||||
"size": [0.03, 12, 0],
|
||||
"pivot": [2.26172, 7.5, -65],
|
||||
"rotation": [0, 0, 90],
|
||||
"uv": {
|
||||
"south": {"uv": [2.5, 84], "uv_size": [1, 1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [2.24672, 3.5, -65],
|
||||
"size": [0.03, 8, 0],
|
||||
"uv": {
|
||||
"south": {"uv": [2.5, 84], "uv_size": [1, 1]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "javelin",
|
||||
"parent": "roll",
|
||||
|
|
Before Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.2 KiB |