Résolu Load .obj
-
Ton truc des armes 3D c’est énorme j’ai grave envie de plagier
Dire que forge avait prévu les .obj -
J’ai quelque chose qui pourrait vous plaire, un loader de .obj ET .mtl en Java pour LWJGL
Je vais juste essayer de le “convertir” pour Minecraft -
Double post, dsl ^^’
J’ai un bon début
-
@‘rafoudiablol’:
Ton truc des armes 3D c’est énorme j’ai grave envie de plagier
Dire que forge avait prévu les .objNo problemo, c’est pas exclusif
@‘jglrxavpok’:
J’ai quelque chose qui pourrait vous plaire, un loader de .obj ET .mtl en Java pour LWJGL
Je vais juste essayer de le “convertir” pour MinecraftCe serais magnifique
-
J’avais un problème avec les textures multiples donc j’ai changé de loader
-
En fait, j’arrive sans problème à charger les objets, sauf pour les textures multiple
-
@‘Mugiwaxar’:
En fait, j’arrive sans problème à charger les objets, sauf pour les textures multiple
Justement, je suis en train de bosser dessus
-
@‘jglrxavpok’:
@‘Mugiwaxar’:
En fait, j’arrive sans problème à charger les objets, sauf pour les textures multiple
Justement, je suis en train de bosser dessus
Trop sympatique
Ps: Petit question gratuite comme ça:
Quand on supprime un bloc, son TileEntity ce supprime avec ou j’ai rater un gros truc ?? -
Je crois bien qu’elle se supprime aussi
-
Lol, ba sa marche pas chez moi, la fonction updateEntity continue
-
En passant, les multiples textures sont gérées
-
Non, il faut vérifier dans ton update entity qu’elle est sur le bon bloc.
Et supprimer ton Tilentity à la destruction de ton boc -
@‘jglrxavpok’:
En passant, les multiples textures sont gérées
Ca m’interesse
@‘rafoudiablol’:
Non, il faut vérifier dans ton update entity qu’elle est sur le bon bloc.
Et supprimer ton Tilentity à la destruction de ton bocOk, donc faut les supprimer manuellement
-
Je vais commencer à faire du code que j’ai quelque chose de lisible et utilisable
-
@‘Mugiwaxar’:
@‘jglrxavpok’:
En passant, les multiples textures sont gérées
Ca m’interesse
@‘rafoudiablol’:
Non, il faut vérifier dans ton update entity qu’elle est sur le bon bloc.
Et supprimer ton Tilentity à la destruction de ton bocOk, donc faut les supprimer manuellement
Non, elle se supprime automatiquement, tu as sûrement oublié la fonction
public boolean hasTileEntity(int metadata) { return true; }
Dans la classe de ton bloc.
Et sinon GG xavpok, tu comptes faire un petit api ? (ou l’intégrer à FFMT lib ? )
-
Petite API, oui
Intégration à FFMT Libs ? Oui, mais je ferais aussi une petite API pour ceux qui veulent uniquement cette dernièreL’API marchera pour les versions de Minecraft suivantes: Float.NEGATIVE_INFINITY à Float.POSITIVE_INFINITY, du moins tant que MC ne change pas pour autre chose que LWJGL
-
@‘robin4002’:
@‘Mugiwaxar’:
Ok, donc faut les supprimer manuellement
Non, elle se supprime automatiquement, tu as sûrement oublié la fonction
public boolean hasTileEntity(int metadata) { return true; }
Dans la classe de ton bloc.
Voila pourquoi
Edit: A ba nan, toujours pas
-
Ton tile entity est bien enregistré ?
Sinon envoie la classe de ton bloc. -
package com.yvelis.mworldcraft.blocks; import com.yvelis.mworldcraft.common.Mmain; import com.yvelis.mworldcraft.tileEntity.CraftTileEntity; import cpw.mods.fml.common.network.FMLNetworkHandler; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.util.Icon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class SmeltingBlock extends BlockContainer { private Icon top; private Icon sud; private Icon other; public SmeltingBlock(int id) { super(id, Material.anvil); } @Override public TileEntity createNewTileEntity(World world) { return new CraftTileEntity(); } @Override public boolean hasTileEntity(int meta) { return true; } @Override public Icon getIcon(int side, int meta) { return side == 1 ? this.top : (side == 0 ? this.top : (side != meta ? this.other : this.sud)); } public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack) { int l = MathHelper.floor_double((double)(par5EntityLivingBase.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; if (l == 0) { par1World.setBlockMetadataWithNotify(par2, par3, par4, 2, 2); } if (l == 1) { par1World.setBlockMetadataWithNotify(par2, par3, par4, 5, 2); } if (l == 2) { par1World.setBlockMetadataWithNotify(par2, par3, par4, 3, 2); } if (l == 3) { par1World.setBlockMetadataWithNotify(par2, par3, par4, 4, 2); } } @Override public void registerIcons(IconRegister register) { top = register.registerIcon("mworldcraft:foundryTop"); sud = register.registerIcon("mworldcraft:foundrySud"); other = register.registerIcon("mworldcraft:foundryOther"); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) { FMLNetworkHandler.openGui(player, Mmain.m_instance, 0, world, x, y, z); return true; } }
-
Dans la classe Block il y ça :
public void breakBlock(World par1World, int par2, int par3, int par4, Block par5, int par6) { if (hasTileEntity(par6) && !(this instanceof BlockContainer)) { par1World.removeTileEntity(par2, par3, par4); } }
Donc vire le extends BlockContainer.