September 12, 20196 yr Author Ok, I dont get the crash anymore when I join. Everything seems working right now, I returned LazyOptional.of(() -> INSTANCE).cast(); https://github.com/cinsiian/mod/tree/master/java/cinsiian/urtima/common/capability/mana Thats the full package related to mana, everything should be ok. Now I will start working on the Bar in the RenderGameOverlayEvent. Is RenderGameOverlayEvent executed every tick? I will check every tick: if the mana is 20 I render a thing, if its 19 render another thing ecc...
September 12, 20196 yr What part of "create it ONCE" did you not understand? Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
September 12, 20196 yr 13 minutes ago, cinsiian said: I dont have another instance of it ....so create one? Like, how hard is it to do this:https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/java/com/draco18s/harderores/entity/AxelTileEntity.java#L28 and https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/java/com/draco18s/harderores/entity/AxelTileEntity.java#L79 Edited September 12, 20196 yr by Draco18s Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
September 13, 20196 yr Author Ok so I managed to get the event work but the texture is not rendering correctly: public final ResourceLocation TEXTURE = new ResourceLocation(Reference.MODID, "textures/gui/mana_hud.png"); @SubscribeEvent public void renderOverlay(RenderGameOverlayEvent event) { if(event.getType() == ElementType.AIR) { Minecraft mc = Minecraft.getInstance(); int x = event.getWindow().getScaledWidth() / 2 + 10; int y = event.getWindow().getScaledHeight() - 48; if(!(mc.player.isSpectator() || mc.player.isCreative())) { mc.getTextureManager().bindTexture(TEXTURE); drawBackground(x, y); } } } private void drawBackground(int x, int y) { drawTexturedModalRect(x, y, 0, 0, 89, 9); } private void drawTexturedModalRect(int x, int y, int textureX, int textureY, int width, int height) { Minecraft mc = Minecraft.getInstance(); mc.ingameGUI.blit(x, y, textureX, textureY, width, height); } The texture: https://ibb.co/ct9XNRy In-game: https://ibb.co/PzyTqkP Edited September 13, 20196 yr by cinsiian
September 13, 20196 yr Author What are the RenderGameOverlayEvent.Pre and RenderGameOverlayEvent.Post ?
September 13, 20196 yr 5 hours ago, cinsiian said: the texture is not rendering correctly: I think Gui#blit expects the texture to be 256x256 VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 14, 20196 yr Author Thank you guys, now textures work perfectly but I have few last things to ask. 1) How can I see if the air bubble bar is rendered(so i can move the mana bar up so it does not contrast)? 2) What is the correct way to get/set the capability?, I used: player.getCapability(ManaProvider.MANA, null).orElseThrow(null).get() player.getCapability(ManaProvider.MANA, null).orElseThrow(null).set() It's really buggy, sometimes it doesnt even do anything Edited September 14, 20196 yr by cinsiian
September 14, 20196 yr 47 minutes ago, cinsiian said: Thank you guys, now textures work perfectly but I have few last things to ask. 1) How can I see if the air bubble bar is rendered(so i can move the mana bar up so it does not contrast)? 2) What is the correct way to get/set the capability?, I used: player.getCapability(ManaProvider.MANA, null).orElseThrow(null).get() player.getCapability(ManaProvider.MANA, null).orElseThrow(null).set() It's really buggy, sometimes it doesnt even do anything you could check if the player is inside water i think there was a way to get if the player is underwater
September 14, 20196 yr Author there is Player.isSwimming but I also need if the player is underwater even without swimming
September 14, 20196 yr 3 hours ago, cinsiian said: there is Player.isSwimming but I also need if the player is underwater even without swimming try EntityPlayer#isInsideOfMaterial and use Material.WATER as parameter thats the dirty way to do it but should work i think..
September 14, 20196 yr 8 hours ago, cinsiian said: there is Player.isSwimming but I also need if the player is underwater even without swimming Use PlayerEntity#areEyesInFluid(FluidTags.WATER) VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 15, 20196 yr Author Ok, it did work but i have few issues setting up the capability adding/setting the value. https://github.com/cinsiian/mod/blob/master/java/cinsiian/urtima/util/ManaUtils.java The hud displays the correct amount of mana but when I try consuming it for some reason it return that the player does not have the correct mana amount
September 15, 20196 yr 9 hours ago, cinsiian said: player does not have the correct mana amount You need a packet to sync the data you can read up about packets on the forge documentation. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 16, 20196 yr Author So basically what I did is this and seems that its working. public static void updateMana(PlayerEntity player) { IMana oldMana = ManaUtils.getMana(Minecraft.getInstance().player); IMana newMana = ManaUtils.getMana(player); if(oldMana != null && newMana != null) { oldMana.set(newMana.get()); } }
September 16, 20196 yr Author Basically if its the same player, it will take the data from the server(ManaUtils methods) and update them to the client player(Minecraft.getInstance().player). I tried to do that...
September 17, 20196 yr Author Can someone explain how to use the network system? I tried to get it work with the documentation as a reference without success.
September 17, 20196 yr 45 minutes ago, cinsiian said: Can someone explain how to use the network system? I tried to get it work with the documentation as a reference without success. https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/java/com/draco18s/harderores/network/PacketHandler.java#L12 Namely you just say "here's my packet class's constructor, toBytes, fromBytes, etc." You can call those methods whatever you want as long as they have the right signature. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
September 17, 20196 yr Author ok but how do i actually set the client mana? In the packet's Handler? https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/java/com/draco18s/harderores/network/ToClientMessageOreParticles.java#L54 Like here? And how can I get the serverplayer? Do I have to save it in the packet as well?
September 17, 20196 yr you can get the player from the context Supplier<NetworkEvent.Context> ctx https://github.com/MinecraftForge/MinecraftForge/blob/1.14.x/src/main/java/net/minecraftforge/fml/network/NetworkEvent.java#L194
September 18, 20196 yr Author 14 hours ago, cinsiian said: ok but how do i actually set the client mana? In the packet's Handler? https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/java/com/draco18s/harderores/network/ToClientMessageOreParticles.java#L54 Like here? ?
September 18, 20196 yr Author What handler? The handler of the actual packet or the handler of the network?
September 18, 20196 yr Author So the packet will be(Server-ToClient): public class ManaPacket { public int mana; public ManaPacket() {} public ManaPacket(int mana) { this.mana = mana; } public static void writeIn(ManaPacket packet, PacketBuffer buffer) { buffer.writeInt(packet.mana); } public static ManaPacket readIn(PacketBuffer buffer) { return new ManaPacket(buffer.readInt()); } public static class PacketHandler { public static void run(final ManaPacket packet, Supplier<NetworkEvent.Context> context) { context.get().enqueueWork(() -> { int i = context.get().getSender().getCapability(ManaProvider.MANA, null).orElseThrow(null).get(); packet.mana = i; }); } } }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.