Résolu Bloc qui change de texture en fonction du Gamemode
-
Pour créer des blocs de trigger ( Collision, lumière, etc etc … )
J’ai pensé a un truc du genre
public void registerIcons(IconRegister iconRegister) { GM1 = iconRegister.registerIcon("city01:collision"); GM2 = iconRegister.registerIcon("city01:Transp"); } @SideOnly(Side.CLIENT) public Icon getIcon(int side, int metadata) { if (gamemode == 1) { return GM1; } else { return GM2; } }
Mais c’est pas ça. Merci d’avance de vos réponses.
-
Impossible le gamemode est une variable dans le joueur, il faudrait une fonction avec le joueur en paramètre, et je sais pas où trouver ça. -
Pourtant c’est présent dans adventureCraft ?
-
Heu oublie ma première réponse, les rendus c’est en Client, donc on peut faire ça :
@SideOnly(Side.CLIENT) public Icon getIcon(int side, int metadata) { if (FMLClientHandler.instance().getClient().thePlayer.capabilities.isCreativeMode) { return GM1; } else { return GM2; } }
-
Parfait, merci -
question: c’est dans la classe du bloc ou dans la classe du rendu qu’il faut mettre ce code?
-
Dans la class du bloc.
-
cela ne fait rien:
package Portal.Blocks; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.util.Icon; public class blockinvi extends Block { private Icon GM1; private Icon GM2; public blockinvi(int id) { super(id, Material.rock); this.setCreativeTab(CreativeTabs.tabBlock); } public int getRenderBlockPass() { return 0; } /** * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. */ public boolean isOpaqueCube() { return false; } /** * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ public boolean renderAsNormalBlock() { return false; } public void registerIcons(IconRegister iconRegister) { GM1 = iconRegister.registerIcon("city01:collision"); GM2 = iconRegister.registerIcon("city01:Transp"); } @SideOnly(Side.CLIENT) public Icon getIcon(int side, int metadata) { if (FMLClientHandler.instance().getClient().thePlayer.capabilities.isCreativeMode) { return GM1; } else { return GM2; } } }
-
Il faut actualiser le block … genre en mettant un autre a coté
-
srx? on peut pas faire en sorte qu’il s’actualisa tout seul?
-
Intéressent tout sa :D, et moi qui voulais ajouté a un de mais mod un bloc invisible et incassable “sauf en mod créatif, comme la bedrock”, Je pourrai reprendre se code stp ?.
Cordialement.
-
par contre on peut pas faire un système d’update dans le mod pour que le rendu se fasse en auto?
-
Je pense pas, il faudrait faire update les chunks autour du joueur lors du changement de gamemode, je vois pas comment faire ça.
De toute façon, une déco reco, un changement de dimension, un tp et c’est bon. -
sinon j’ai trouvé, moi c’est bloc me serve juste a bloqué la sortie d’une zone (pour le spawn tutoriel par exemple) sa chaque parois est connecté a une autre par un autre bloc barrière, une impulsion redstone dans un de c’est bloc et le tour est joué.