FlenixCityes Core en 1.8.9 (depuis la 1.7.10)



  • Bonjour, j'ai récement pris le code source de flenix citie core pour le transformé en mods 1.8.9, le problème, c'est que je n'arrive pas a faire le rendercore en 1.8.9, 'jai beau cherché custom render block, ou RenderBlocks on 1.8.9 sur google, mais j ne trouve rien, voici le code que j'ai commencé a faire :

    , voici le code disponible sur le github : https://github.com/Flenix/FlenixCitiesCore/blob/master/src/main/java/com/silvaniastudios/cities/core/client/renders/BlockRenderCore.java merci de votre aide !</bakedquad></bakedquad>


  • Administrateurs

    ISimpleBlockRenderingHandler n'existe plus du tout maintenant, il faut passer par les blocs states + les json dans la majorité des cas.
    D'en d'autres il faut en effet IBakedModel.

    à quoi ressemble ce bloc en jeu ?



  • De tête, il rasemble  tout les block voici l'exemple de certain block :

    de plus, je ne suis plus sur mon pc fix, donc pour tout refaire en testant un par un ca va être long 😕


  • Administrateurs

    La plupart peuvent être refait via des jsons.
    Il y a juste ceux qui ont des rotations qui risques de causer problème.



  • Daccord et les escalier je peux faire le rendu avec loutil de mr crazyfish?


  • Administrateurs

    Les rotations vont causer problème (les jsons c'est 45, 90 ou 22.5). à voire si 22,5 est bon ou pas.



  • Bonjour, je reviens car j'ai un soucis avec l'escalier (gros up excuser moi j'ai pas voulue réouvrire un sujet :/), sur MrCrayfish's Model Creator il rend bien, sauf que lorsque je le met en json que je le register il ne marche pas, j'ai pourtant bien register ect.. car j'ai testé avec le RightCorner (un autre block) et la l'escalier s'afifche bien, donc j'ai copié la classe, voici ma classe ou je l'enregistre :

    [font=Courier Newpackage ]fr.ph1823.MyLife%(#cc7832)[;
    ]
    import com.silvaniastudios.cities.core.CoreBlocks%(#cc7832)[;
    ]import com.silvaniastudios.cities.core.CoreItems%(#cc7832)[;
    ]import net.minecraft.item.Item%(#cc7832)[;
    ]import net.minecraftforge.fml.common.FMLLog%(#cc7832)[;
    ]import tv.twitch.Core%(#cc7832)[;
    ]
    import static fr.ph1823.MyLife.GloryRP.*%(#cc7832)[;
    ]
    %(#629755)[*/**
    *]%(#629755)[* * Created by ph1823 - Minecraft on 29/12/2016.
    *]%(#629755)[* */
    *]public class CoreTexture {
    
       public static void registerBlock() {
    
           *itemNewLife*()%(#cc7832)[;
    ]        *itemFlenix*()%(#cc7832)[;
    ]        *blockNewLife*()%(#cc7832)[;
    ]
       }
       static void blockNewLife() {
           *proxyClient*.registerItemTexture(*cannabisSeed*, "cannabis_seed")%(#cc7832)[;
    ]        %(#808080)[//proxyClient.registerItemTexture(CoreItems.atmScreen, "atmBlock");
    ]    }
    
       static void itemNewLife() {
           *proxyClient*.registerBlockTexture(*cannabisPlant*, "cannabisb")%(#cc7832)[;
    ]        *proxyClient*.registerBlockTexture(*RightTurnsign*, "rightcorner")%(#cc7832)[;
    ]        *proxyClient*.registerBlockTexture(*stopsign*, "stopsign")%(#cc7832)[;
    ]        *proxyClient*.registerBlockTexture(*yieldsign*, "yieldsign")%(#cc7832)[;
    ]        *proxyClient*.registerBlockTexture(*trafficcone*, "trafficcone")%(#cc7832)[;
    ]
       }
    
       static  void itemFlenix() {
    
          %(#808080)[// proxyClient.registerBlockTexture(CoreBlocks.atmBlock, "atmBlock");
    ]
           *proxyClient*.registerBlockTexture(CoreBlocks.*oakWalkwayStairs*, "oakWalkwayStairs")%(#cc7832)[;
    ]    }
    
    }
    

    (la texture, et voici comme Flenix fait le rendue -> https://github.com/Flenix/FlenixCitiesCore/tree/master/src/main/java/com/silvaniastudios/cities/core/client/renders) , mais la n'es pas le problème, lorsque je le place, il ne ce place pas comme il faut, la aussi j'ai cherché et je n'ai pas trouvé, voici donc ma classe pour l'instant :

    [font=Courier Newpackage ]com.silvaniastudios.cities.core.blocks%(#cc7832)[;
    ]
    import java.util.List%(#cc7832)[;
    ]
    import com.silvaniastudios.cities.core.FlenixCities_Core%(#cc7832)[;
    ]
    import fr.ph1823.MyLife.Proxy.ClientProxy%(#cc7832)[;
    ]import net.minecraft.block.Block%(#cc7832)[;
    ]import net.minecraft.block.material.Material%(#cc7832)[;
    ]import net.minecraft.block.state.IBlockState%(#cc7832)[;
    ]import net.minecraft.entity.Entity%(#cc7832)[;
    ]import net.minecraft.entity.EntityLivingBase%(#cc7832)[;
    ]import net.minecraft.item.ItemStack%(#cc7832)[;
    ]import net.minecraft.util.*%(#cc7832)[;
    ]import net.minecraft.world.IBlockAccess%(#cc7832)[;
    ]import net.minecraft.world.World%(#cc7832)[;
    ]import net.minecraftforge.fml.relauncher.Side%(#cc7832)[;
    ]import net.minecraftforge.fml.relauncher.SideOnly%(#cc7832)[;
    ]
    import net.minecraft.block.Block.SoundType%(#cc7832)[;
    ]public class BlockWalkwayStairs extends Block {
    
      String textureName%(#cc7832)[;
    ]   String oversizeName%(#cc7832)[;
    ]   %(#808080)[//getBlockState().getBaseState()
    ]  
      public BlockWalkwayStairs(Material mat, SoundType sound, String icon, String icon2) {
         super(mat)%(#cc7832)[;
    ]      this.setCreativeTab(FlenixCities_Core.*tabCity*)%(#cc7832)[;
    ]      this.textureName = icon%(#cc7832)[;
    ]      this.oversizeName = icon2%(#cc7832)[;
    ]      this.setStepSound(sound)%(#cc7832)[;
    ]      this.setHardness(2.0F)%(#cc7832)[;
    ]      this.setResistance(12.0F)%(#cc7832)[;
    ]
      }
    
      %(#bbb529)[@Override
    ]   public void onBlockPlacedBy(World world, BlockPos blockPos, IBlockState state, EntityLivingBase entity, ItemStack stack) {
          int direction = MathHelper.*floor_double*((entity.rotationYaw * 4F) / 360F + 0.5D) & 3%(#cc7832)[;
    ]      world.setBlockState(blockPos, getBlockState().getBlock().getStateFromMeta(direction),0)%(#cc7832)[;
    ]
      %(#808080)[//    world.setBlockMetadataWithNotify(blockPos, direction, 0);
    ]   }
    
      %(#bbb529)[@Override
    ]   public void addCollisionBoxesToList(World world, BlockPos blockPos, IBlockState state, AxisAlignedBB mask, List <axisalignedbb>list, Entity entity) {
         boolean hasCollision = %(#cc7832)[false;
    ]      int meta = world.getBlockState(blockPos).getBlock().getMetaFromState(state)%(#cc7832)[;
    ]      if (!(world.getBlockState(blockPos.add(0,-1,0)).getBlock() instanceof BlockWalkwayStairs)) {
            hasCollision = %(#cc7832)[true;
    ]        
             if (meta == 0) { %(#808080)[//South-facing
    ]            setBlockBounds(0.0F, 0.0F,  0.0F,  1.0F, 0.0625F, 0.25F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.0F, 0.25F, 0.25F, 1.0F, 0.3125F, 0.50F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.0F, 0.50F, 0.50F, 1.0F, 0.5625F, 0.75F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.0F, 0.75F, 0.75F, 1.0F, 0.8125F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]         } else if (meta == 1) { %(#808080)[//West-facing
    ]            setBlockBounds(0.75F, 0.0F, 0.0F,  1.00F, 0.0625F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.50F, 0.25F, 0.0F, 0.75F, 0.3125F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.25F, 0.50F, 0.0F, 0.50F, 0.5625F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.0F,  0.75F, 0.0F, 0.25F, 0.8125F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]         } else if (meta == 2) { %(#808080)[//North-facing
    ]            setBlockBounds(0.0F, 0.0F, 0.75F,  1.0F, 0.0625F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.0F, 0.25F, 0.50F, 1.0F, 0.3125F, 0.75F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.0F, 0.50F, 0.25F, 1.0F, 0.5625F, 0.50F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.0F, 0.75F, 0.0F,  1.0F, 0.8125F, 0.25F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]         } else if (meta == 3) { %(#808080)[//East-facing
    ]            setBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 0.0625F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.25F, 0.25F, 0.0F, 0.50F, 0.3125F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.50F, 0.50F, 0.0F, 0.75F, 0.5625F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]            setBlockBounds(0.75F, 0.75F, 0.0F, 1.00F, 0.8125F, 1.0F)%(#cc7832)[;
    ]            super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]         }
         }
    
         boolean connectNorth = checkConnections(world, blockPos.add(0,0,-1), - 1); %(#808080)[//z-1
    ]      boolean connectEast  = checkConnections(world, blockPos.add(1,0,0), - 1);  %(#808080)[//x+1
    ]      boolean connectSouth = checkConnections(world, blockPos.add(0,0,1), - 1); %(#808080)[//z+1
    ]      boolean connectWest  = checkConnections(world, blockPos.add(-1,0,0), - 1);  %(#808080)[//x-1
    ]      
         boolean hitboxNorth = %(#cc7832)[false;
    ]      boolean hitboxEast  = %(#cc7832)[false;
    ]      boolean hitboxSouth = %(#cc7832)[false;
    ]      boolean hitboxWest  = %(#cc7832)[false;
    ]      
          if (meta == 0 || meta == 2) {
            if (!connectEast) { hitboxEast = true; }
            if (!connectWest) { hitboxWest = true; }
         } else if (meta == 1 || meta == 3) {
            if (!connectNorth) { hitboxNorth = true; }
            if (!connectSouth) { hitboxSouth = true; }
         }
    
         if (hitboxNorth) {
            hasCollision = %(#cc7832)[true;
    ]         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.25F, 0.0625F)%(#cc7832)[;
    ]         super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]      }
    
         if (hitboxSouth) {
            hasCollision = %(#cc7832)[true;
    ]         setBlockBounds(0.0F, 0.0F, 0.9375F, 1.0F, 2.25F, 1.0F)%(#cc7832)[;
    ]         super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]      }
    
         if (hitboxEast) {
            hasCollision = %(#cc7832)[true;
    ]         setBlockBounds(0.9375F, 0.0F, 0.0625F, 1.0F, 2.25F, 1.0F)%(#cc7832)[;
    ]         super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]      }
    
         if (hitboxWest) {
            hasCollision = %(#cc7832)[true;
    ]         setBlockBounds(0.0F, 0.0F, 0.0F, 0.0625F, 2.25F, 1.0F)%(#cc7832)[;
    ]         super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]      }
    
         if (!hasCollision) {
            setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F)%(#cc7832)[;
    ]         super.addCollisionBoxesToList(world, blockPos,state, mask, list, entity)%(#cc7832)[;
    ]      }
    
         setBlockBoundsForItemRender()%(#cc7832)[;
    ]   }
    
      %(#bbb529)[@Override
    ]   public void setBlockBoundsForItemRender() {
         setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F)%(#cc7832)[;
    ]   }
    
      public boolean checkConnections(World world, BlockPos blockPos, int targetMeta) {
         if (world.getBlockState(blockPos).getBlock().isNormalCube(world, blockPos)) {
            %(#cc7832)[return true;
    ]      }
         if (world.getBlockState(blockPos).getBlock() instanceof BlockWalkwayStairs) {
            %(#cc7832)[return true;
    ]      }
    
         if (targetMeta >= 0) {
            if (world.getBlockState(blockPos.add(0,-1,0)).getBlock() instanceof BlockWalkwayStairs) {%(#808080)[//y-1
    ]            int meta = world.getBlockState(blockPos).getBlock().getMetaFromState(world.getBlockState(blockPos))%(#cc7832)[;
    ]            if (meta == targetMeta || meta == (targetMeta + 2)) {
                  %(#cc7832)[return true;
    ]            }
            }
         }
         %(#cc7832)[return false;
    ]   }
    
         %(#808080)[//blockIcon = iconRegister.registerIcon(FlenixCities_Core.modid + ":" + textureName);
    ]%(#808080)[      //oversizeIcon = iconRegister.registerIcon(FlenixCities_Core.modid + ":" + oversizeName);
    ]
      @SideOnly(Side.*CLIENT*)
      public boolean shouldSideBeRendered(IBlockAccess world, BlockPos pos, EnumFacing side) {
         %(#cc7832)[return true;
    ]   }
    
    }
    

    Voila j'espère avoir expliqué clairement mon problème, a et aussi, il y a plusieurs type d'escalier, je dois donc register plus .json? Merci pour vos futur réponse, si vous avez besoin de plus de code, ou que j'espliqué mieux dite le moi =)</axisalignedbb>