Résolu Comment changer la direction d'un bloc avec rendu Techne lorsqu'on le pose
-
Bonjour/Bonsoir
J’ai un nouveau problème : malgré mes recherche intensive sur le site (et ailleurs) je n’arrive pas à trouver un moyens de faire changer la direction de mon nouveau bloc, la spécificité de ce bloc est que ce n’est pas un bloc normal :
Comme vous pouvez le remarquer c’est un bloc avec un rendu complexe fait grâce à Techne, là vous le voyez de face, mais il est toujours orienté vers le sud, mais je ne trouve pas la solution pour que quand le joueur pose le bloc le bloc est face au joueur, mais pas moyen de trouver même en cherchant dans la class des coffres.
Alors si vous pouviez m’aider ça serait gentil
(Au passage mon bloc fait des effets de particule violette et noir comme si il avait pas de texture quand je le casse, il y a un moyen de modifier ça ?)
-
@‘NicoKing60’:
malgré mes recherche intensive sur le site (et ailleurs)
http://www.minecraftforgefrance.fr/showthread.php?tid=127
“Bonus / Pour aller plus loin”
“Tourner votre modèle en fonction de la direction :” -
Envoi tes code
-
regarde dans le tuto de kevin_68 sur le model techne, il donne la solution
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) { int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3; TileEntity te = world.getBlockTileEntity(x, y, z); if(te != null && te instanceof TileEntitySculpture) { ((TileEntitySculpture)te).setDirection((byte)direction); world.markBlockForUpdate(x, y, z); } }
puis
if(te != null) { GL11.glRotatef(90F * te.getDirection(), 0.0F, 1.0F, 0.0F); }
-
@‘NicoKing60’:
malgré mes recherche intensive sur le site (et ailleurs)
-
J’ai beau chercher et modifier vos truc "une 2ème fois " parce que oui je les déjà vu et ça n’avais pas marché et là bah ça ne marche toujours pas donc conclusion soit ça ne marche pas en 1.7 ou alors je sais pas, ça m’étonnerais encore que ça ne marche pas en 1.7 puisque tout le monde me dis que c’est comme ça qu’on fait.
J’ai tout enlever et je vais retenter encore une fois et si ça marche pas tant pis c’est pas bien grave
-
Envoie ton code.
-
En faite quand je suit le tuto de kevin_68 j’arrive à un moment où j’ai une erreur :
private final ModelGemWorker model = new ModelGemWorker(); public static final ResourceLocation textureLocation = new ResourceLocation("battleforsurvive", "textures/blocks/model/gem_worker.png"); public GemWorkerTileEntitySpecialRender() { this.setTileEntityRenderer(TileEntityRenderer.instance); }
à this.setTileEntityRenderer(TileEntityRenderer.instance); le TileEntityRenderer.instance montre une erreur et il me propose de le corriger contre d’autre modèle de tile entity, pourtant de le tuto il dit pas qu’il y a une erreur et que c’est normal è_é
EDIT: J’ai oublié ça aussi :
public void renderGemWorkerTileEntityAt(GemWorkerTileEntity te, double x, double y, double z, float tick) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5F, y + 1.5F, z + 0.5F); this.bindTexture(textureLocation); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); if(te != null) { GL11.glRotatef(90F * te.getDirection(), 0.0F, 1.0F, 0.0F); } this.model.renderModel(0.0625F); GL11.glPopMatrix(); }
à getDirection() j’ai aussi une erreur et il me propose de mettre une methode dans la class de mon tile entity et ça donne ça
public float getDirection() { return 0; }
Il n’y a plus d’erreur dedans mais je sais pas si il fait que je laisse comme ça ou pas
-
au niveau du render il n’y a plus rien à faire normalement.
Il faut juste adapter la direction (qui est un entier entre 0 et 5 ou 0 et 3) afin que le tile entity l’enregistre et la donne quand il faut.Tu trouvera le code approprié dans le tutoriel de robin sur les blocs directionnels ou sur son github ici
-
ça y est je peut l’orienter !!!
Mais il n’a plus de texture et quand je le pose il me montre l’arrière plutôt que l’avant XD
EDIT : J’ai rien dit pour la texture, j’ai fait une faute dans le ResourceLocation (j’ai écrit RessourceLocation avec 2 s)
EDIT 2 : Et il ne conserve pas leur direction
EDIT 3 : C’est bon j’ai réussi à bien l’orienté quand je le pose, mais quand je quitte le monde ils ne conserve toujours pas leur orientation è_é
EDIT 4 : ok j’ai résolu le problème de la conservation de l’orientation de mon bloc lorsqu’on quitte minecraft, mais il reste encore le problème des particules qui ne sont pas de la même couleur que mon bloc lorsque je le casse…
-
tu met:
public Icon getIcon(int side, int metadata) { return Block.stone.getIcon(0, 0); }
cela permet de mettre les particule de stone quand tu le casse/sprint dessus
il suffit de remplacer par ton bloc -
Oui j’y ai pensé j’était en train d’essayer et j’ai vu ton message ^^
Sauf que dans ton code il y a une erreur : Block devient Blocks et Icon devient IIcon
public IIcon getIcon(int side, int metadata) { return Blocks.iron_block.getIcon(0, 0); }
Avec ça mon bloc fait des particules de bloc de fer, après je dis ça mais ton code est peut-être celui qui marche en 1.6 mais moi je code en 1.7 et avec ton code il y a des erreurs
-
oui c’est un code 1.6 ^^