Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.17.1] Trying to get blocks to get a block to be see through.


Recommended Posts

Hey, I have added certain blocks to my game. Some that require for the black spots that Minecraft gives to solid blocks to be opaque. I understand in 1.16 you could render it to have no opaqueness, but a lot of the 1.16 forge methods no longer work in 1.17.

Link to comment
Share on other sites

6 hours ago, Cratthorax said:


...is not a real block.

Glass would be a better thing to examine.

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.

Link to comment
Share on other sites

On 10/21/2021 at 3:43 AM, Zevinn said:

Hey, I have added certain blocks to my game. Some that require for the black spots that Minecraft gives to solid blocks to be opaque. I understand in 1.16 you could render it to have no opaqueness, but a lot of the 1.16 forge methods no longer work in 1.17.

Look at how the glass block is registered, there might be a property for that.
You'll also most likely need to subscribe to FMLClientSetupEvent and then use ItemBlockRenderTypes#setRenderLayer. You'll need to pass it your block and the render type.

Link to comment
Share on other sites

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.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Sorry... The server mods were created from "Server.jar" from curseforge. In an attempt to work, I put the client mods on the server
    • Capability class: public class ManaCapability { public static final ResourceLocation LOCATION=new ResourceLocation(ElderNorseGods.MOD_ID, "mana"); @CapabilityInject(IManaHandler.class) public static Capability<IManaHandler> CAP_INSTANCE=null; public static class ManaStorage implements IStorage<IManaHandler> { @Override public INBT writeNBT(Capability<IManaHandler> cap, IManaHandler manaHandler, Direction side) { CompoundNBT tag=new CompoundNBT(); tag.putFloat("Mana", manaHandler.getMana()); tag.putBoolean("Status", manaHandler.getStatus()); return tag; } @Override public void readNBT(Capability<IManaHandler> cap, IManaHandler manaHandler, Direction side, INBT nbt) { manaHandler.setMana(((CompoundNBT)nbt).getFloat("Mana")); manaHandler.setStatus(((CompoundNBT)nbt).getBoolean("Status")); } } public static class ManaProvider implements ICapabilitySerializable<CompoundNBT> { private final ManaHandler mana=new ManaHandler(); private final LazyOptional<IManaHandler> manaOptional=LazyOptional.of(()->this.mana); public void invalidate() { this.manaOptional.invalidate(); } @Override public CompoundNBT serializeNBT() { if(ManaCapability.CAP_INSTANCE==null) return new CompoundNBT(); else return (CompoundNBT)ManaCapability.CAP_INSTANCE.writeNBT(this.mana, null); } @Override public void deserializeNBT(CompoundNBT nbt) { if(ManaCapability.CAP_INSTANCE!=null) ManaCapability.CAP_INSTANCE.readNBT(this.mana, null, nbt); } @Override public <T> LazyOptional<T> getCapability(Capability<T> cap, Direction side) { return cap==ManaCapability.CAP_INSTANCE?this.manaOptional.cast():LazyOptional.empty(); } } } Capability handler class: public class ManaHandler implements IManaHandler { private float mana; private boolean active; public ManaHandler() { this.mana=0F; this.active=false; } @Override public void setMana(float amount) { if(amount<0F) this.mana=0F; else if(amount>20F) this.mana=20F; else this.mana=amount; } @Override public float getMana() { return this.mana; } @Override public void setStatus(boolean value) { this.active=value; } @Override public boolean getStatus() { return this.active; } @Override public void update(ServerPlayerEntity player) { NetworkHandler.sendToPlayer(player, new ManaDataPacket(this.getMana(), this.getStatus())); } } Capability event handler class: @EventBusSubscriber(modid=ElderNorseGods.MOD_ID, bus=EventBusSubscriber.Bus.FORGE) public abstract class ManaEventHandler { private static void sendUpdates(ServerPlayerEntity player) { if(!player.getCommandSenderWorld().isClientSide()) { player.getCapability(ManaCapability.CAP_INSTANCE).ifPresent(mana->mana.update(player)); } } @SubscribeEvent public static void onPlayerChangedDimension(PlayerChangedDimensionEvent event) { ManaEventHandler.sendUpdates((ServerPlayerEntity)event.getPlayer()); } @SubscribeEvent public static void onPlayerRespawn(PlayerRespawnEvent event) { ManaEventHandler.sendUpdates((ServerPlayerEntity)event.getPlayer()); } @SubscribeEvent public static void onPlayerLoggedIn(PlayerLoggedInEvent event) { ManaEventHandler.sendUpdates((ServerPlayerEntity)event.getPlayer()); } @SubscribeEvent public static void onPlayerClone(PlayerEvent.Clone event) { if(!event.isWasDeath()) return; IManaHandler oldMana=event.getOriginal().getCapability(ManaCapability.CAP_INSTANCE).orElse(null); IManaHandler newMana=event.getPlayer().getCapability(ManaCapability.CAP_INSTANCE).orElse(null); if(oldMana!=null&&newMana!=null) { newMana.setMana(oldMana.getMana()); newMana.setStatus(oldMana.getStatus()); } } } Packet class: public class ManaDataPacket { private float value; private boolean status; public ManaDataPacket(float value, boolean status) { this.value=value; this.status=status; } public static void encode(ManaDataPacket packet, PacketBuffer buffer) { buffer.writeFloat(packet.value); buffer.writeBoolean(packet.status); } public static ManaDataPacket decode(PacketBuffer buffer) { return new ManaDataPacket(buffer.readFloat(), buffer.readBoolean()); } public static void handle(ManaDataPacket packet, Supplier<NetworkEvent.Context> ctx) { ctx.get().enqueueWork(()->DistExecutor.unsafeRunWhenOn(Dist.CLIENT, ()->()->PacketHandler.handlePacket(packet, ctx))); ctx.get().setPacketHandled(true); } private static class PacketHandler { private static void handlePacket(ManaDataPacket packet, Supplier<NetworkEvent.Context> ctx) { Minecraft mc=Minecraft.getInstance(); mc.player.getCapability(ManaCapability.CAP_INSTANCE).ifPresent ( mana-> { mana.setMana(packet.value); mana.setStatus(packet.status); } ); } } }
  • Topics

  • Who's Online (See full list)

  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.