diff --git a/src/main/java/net/mcreator/superbwarfare/client/layer/JavelinLayer.java b/src/main/java/net/mcreator/superbwarfare/client/layer/JavelinLayer.java deleted file mode 100644 index 9b3b19de5..000000000 --- a/src/main/java/net/mcreator/superbwarfare/client/layer/JavelinLayer.java +++ /dev/null @@ -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 { - private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/javelin_e.png"); - - public JavelinLayer(GeoRenderer 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); - } -} diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java index 8f179425d..7f8af5167 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java @@ -34,12 +34,6 @@ public class JavelinItemModel extends GeoModel { 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 { 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 { 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"); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/JavelinItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/JavelinItemRenderer.java index 4dbac6cad..37fba79d8 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/JavelinItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/JavelinItemRenderer.java @@ -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 { public JavelinItemRenderer() { super(new JavelinItemModel()); - this.addRenderLayer(new JavelinLayer(this)); } @Override diff --git a/src/main/java/net/mcreator/superbwarfare/client/screens/JavelinHudOverlay.java b/src/main/java/net/mcreator/superbwarfare/client/screens/JavelinHudOverlay.java new file mode 100644 index 000000000..fb36074e8 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/JavelinHudOverlay.java @@ -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); + } + } + } +} diff --git a/src/main/resources/assets/superbwarfare/geo/javelin.geo.json b/src/main/resources/assets/superbwarfare/geo/javelin.geo.json index fd9c7d273..9dfe2fae7 100644 --- a/src/main/resources/assets/superbwarfare/geo/javelin.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/javelin.geo.json @@ -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", diff --git a/src/main/resources/assets/superbwarfare/textures/item/javelin_e.png b/src/main/resources/assets/superbwarfare/textures/item/javelin_e.png deleted file mode 100644 index 6ba363a81..000000000 Binary files a/src/main/resources/assets/superbwarfare/textures/item/javelin_e.png and /dev/null differ diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/dir.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/dir.png new file mode 100644 index 000000000..0e6ba21e4 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/screens/javelin/dir.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/javelin_hud.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/javelin_hud.png new file mode 100644 index 000000000..55e6daa51 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/screens/javelin/javelin_hud.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/missile_green.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/missile_green.png new file mode 100644 index 000000000..d2b84be32 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/screens/javelin/missile_green.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/missile_red.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/missile_red.png new file mode 100644 index 000000000..2e5d1cc27 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/screens/javelin/missile_red.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/seek.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/seek.png new file mode 100644 index 000000000..caff66f88 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/screens/javelin/seek.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/top.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/top.png new file mode 100644 index 000000000..b1aafb24c Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/screens/javelin/top.png differ