Jump to content

_Cruelar_

Members
  • Posts

    292
  • Joined

  • Last visited

Everything posted by _Cruelar_

  1. Tried with BlockHorizontal.Facing got an error from that when Placed.
  2. Let's say rocks are pink now ? Block package com.cruelar.cruelars_triforcemod.blocks; import com.cruelar.cruelars_triforcemod.Cruelars_Triforcemod_Core; import com.cruelar.cruelars_triforcemod.tileentity.MirrorOfTwilight_TileEntity; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockHorizontal; import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockFaceShape; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; public class BlockMirrorOfTwilight /*extends BlockContainer*/extends Block { public static final PropertyDirection FACING = PropertyDirection.create("facing"); public BlockMirrorOfTwilight(){ super(Material.ROCK); this.setRegistryName("block_mirror_of_twilight"); this.setUnlocalizedName(Cruelars_Triforcemod_Core.MODID+".block_mirror_of_twilight"); } @Nullable @SuppressWarnings("deprecation") @Override public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) { return new AxisAlignedBB(0,0,0,1,2,1); } @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, FACING); } @SideOnly(Side.CLIENT) public void initModel(){ ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory")); } @Override @SuppressWarnings("deprecation") public boolean isBlockNormalCube(IBlockState blockState){ return false; } @Override @SuppressWarnings("deprecation") public boolean isOpaqueCube(IBlockState blockState){ return false; } @Override @SuppressWarnings("deprecation") public boolean isFullBlock(IBlockState state) { return false; } @Override @SuppressWarnings("deprecation") public boolean isTopSolid(IBlockState state) { return false; } @Override @SuppressWarnings("deprecation") public IBlockState getStateFromMeta(int meta) { return getDefaultState() .withProperty(FACING, EnumFacing.getFront(meta & 5)); } @Override public int getMetaFromState(IBlockState blockState) { return blockState.getValue(FACING).getIndex(); } public static EnumFacing getFacingFromEntity(BlockPos clickedBlock, EntityLivingBase entity) { return EnumFacing.getFacingFromVector( (float) (entity.posX - clickedBlock.getX()), (float) 0, (float) (entity.posZ - clickedBlock.getZ())); } @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { world.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2); } @Override @SuppressWarnings("deprecation") public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) { return BlockFaceShape.UNDEFINED; } } blockstate.json { "forge_marker": 1, "defaults": { "custom":{}, "model": "cruelars_triforcemod:block_mirror_of_twilight" }, "variants": { "normal": [{}], "inventory": [{}], "facing": { "north": {}, "south": {"y":180}, "west": {"y":270}, "east": {"y":90} } } } model.json { "credit": "Made with Blockbench", "textures": { "0": "cruelars_triforcemod:blocks/mirror_front", "1": "cruelars_triforcemod:blocks/mirror_gold", "2": "cruelars_triforcemod:blocks/mirror_gold_striped", "3": "cruelars_triforcemod:blocks/mirror_dark", "4": "cruelars_triforcemod:blocks/mirror_back", "5": "cruelars_triforcemod:blocks/mirror_dark_striped" }, "elements": [ { "from": [6, 0, 6], "to": [10, 4, 10], "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, "south": {"uv": [0, 0, 16, 16], "texture": "#2"}, "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, "up": {"uv": [0, 0, 4, 4], "texture": "#1"}, "down": {"uv": [0, 0, 4, 4], "texture": "#1"} } }, { "from": [7, 4, 7], "to": [9, 6, 9], "rotation": {"angle": 0, "axis": "y", "origin": [8, 5, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "east": {"uv": [0, 0, 16, 16], "texture": "#5"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, "west": {"uv": [0, 0, 16, 16], "texture": "#5"} } }, { "from": [6, 6, 6], "to": [10, 8, 10], "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, "faces": { "north": {"uv": [0, 0, 16, 8], "texture": "#2"}, "east": {"uv": [0, 0, 16, 8], "texture": "#2"}, "south": {"uv": [0, 0, 16, 8], "texture": "#2"}, "west": {"uv": [0, 0, 16, 8], "texture": "#2"}, "up": {"uv": [0, 0, 4, 2], "texture": "#1"}, "down": {"uv": [0, 0, 4, 2], "texture": "#1"} } }, { "from": [0, 6, 7], "to": [16, 8, 9], "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "east": {"uv": [0, 0, 16, 16], "texture": "#5"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, "west": {"uv": [0, 0, 16, 16], "texture": "#5"}, "up": {"uv": [0, 0, 1, 1], "texture": "#3"}, "down": {"uv": [0, 0, 1, 1], "texture": "#3"} } }, { "from": [0, 8, 7], "to": [2, 16, 9], "rotation": {"angle": 0, "axis": "y", "origin": [1, 12, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 270}, "east": {"uv": [0, 0, 1, 1], "texture": "#3"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 90}, "west": {"uv": [0, 0, 8, 2], "texture": "#5", "rotation": 90}, "up": {"uv": [0, 0, 2, 2], "texture": "#3"} } }, { "from": [14, 8, 7], "to": [16, 16, 9], "rotation": {"angle": 0, "axis": "y", "origin": [15, 12, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 90}, "east": {"uv": [0, 0, 8, 2], "texture": "#5", "rotation": 90}, "south": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 270}, "west": {"uv": [0, 0, 2, 8], "texture": "#3"}, "up": {"uv": [0, 0, 2, 2], "texture": "#3"} } }, { "from": [2, 13, 7], "to": [3, 15, 9], "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 14, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "east": {"uv": [0, 0, 1, 2], "texture": "#3"}, "south": {"uv": [0, 0, 1, 2], "texture": "#3"}, "up": {"uv": [0, 0, 1, 2], "texture": "#3"}, "down": {"uv": [0, 0, 1, 2], "texture": "#3"} } }, { "from": [13, 13, 7], "to": [14, 15, 9], "rotation": {"angle": 0, "axis": "y", "origin": [13.5, 14, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, "west": {"uv": [0, 0, 2, 2], "texture": "#3"}, "up": {"uv": [0, 0, 1, 2], "texture": "#3"}, "down": {"uv": [0, 0, 1, 2], "texture": "#3"} } }, { "from": [3, 9, 7], "to": [13, 19, 9], "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 14, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#0"}, "east": {"uv": [0, 0, 2, 10], "texture": "#3"}, "south": {"uv": [0, 0, 16, 16], "texture": "#4"}, "west": {"uv": [0, 0, 2, 10], "texture": "#3"}, "up": {"uv": [0, 0, 2, 10], "texture": "#3"}, "down": {"uv": [0, 0, 2, 10], "texture": "#3"} } }, { "from": [3, 0, 7], "to": [6, 1, 8], "faces": { "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, "up": {"uv": [0, 0, 3, 1], "texture": "#1"}, "down": {"uv": [0, 0, 3, 1], "texture": "#1"} } }, { "from": [10, 0, 7], "to": [13, 1, 8], "faces": { "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, "up": {"uv": [0, 0, 3, 1], "texture": "#1"}, "down": {"uv": [0, 0, 3, 1], "texture": "#1"} } }, { "from": [3, 1, 7], "to": [4, 3, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [12, 1, 7], "to": [13, 3, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [4, 2, 7], "to": [6, 3, 8], "faces": { "north": {"uv": [0, 0, 2, 1], "texture": "#1"}, "east": {"uv": [0, 0, 2, 1], "texture": "#1"}, "south": {"uv": [0, 0, 2, 1], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 1], "texture": "#1"}, "down": {"uv": [0, 0, 2, 1], "texture": "#1"} } }, { "from": [10, 2, 7], "to": [12, 3, 8], "faces": { "north": {"uv": [0, 0, 2, 1], "texture": "#1"}, "east": {"uv": [0, 0, 2, 1], "texture": "#1"}, "south": {"uv": [0, 0, 2, 1], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 1], "texture": "#1"}, "down": {"uv": [0, 0, 2, 1], "texture": "#1"} } }, { "from": [5, 3, 7], "to": [6, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [10, 3, 7], "to": [11, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [4, 4, 7], "to": [5, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, "down": {"uv": [0, 0, 1, 1], "texture": "#1"} } }, { "from": [11, 4, 7], "to": [12, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, "down": {"uv": [0, 0, 1, 1], "texture": "#1"} } } ], "display": { "thirdperson_righthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, -30], "translation": [0, 0, 0] }, "thirdperson_lefthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, -30] }, "firstperson_righthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, 0] }, "firstperson_lefthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, 0] }, "ground": { "scale": [0.5, 0.5, 0.5] }, "fixed": { "translation": [0, -1, -1] }, "gui": { "scale": [0.7, 0.7, 0.7], "rotation": [0, 180, 0], "translation": [0, -1, 0] } } }
  3. I'm not sure why this should fix it as the Problem isn't him not finding any texture but not finding the six specified textures of the Model. I'll try to use the texture on a block let's see if the Error occurs there. This might tell us where the Problem is.
  4. You could do some complicated stuff with /tp but In Vanilla the ArmorStand can't actually walk
  5. I have different pngs for the 6 textures. And in the wiki it states it refers to a texture.
  6. I just noticed the Entity now also has no Ai anymore.☹️
  7. How can my Entity "die" without causing one of my Breakpoints? The only Output I get is on Loading a World cause off EntityPlayer being null
  8. No Problem happens to me also sometimes
  9. should be enough. But is your path in your models directory items or item? Cause this refers to items
  10. Nope, it refers to the file fizzo:models/items/fizzyo_bow_pulling_0.json. Every override needs an own model file
  11. In your Itemclass you create Property Overrides without giving them textures in your model file. Look at the Vannila Bow
  12. Full log starting with Attempting connection What I read out of it is missing variants for Up and down. Logical looking at the Model.
  13. Cadiboo I'm using Blockbench for making a custom Blockmodel in my new topic. Thanks for the suggestion.
  14. So I made a model with blockbench(cause of blockbench having a webapp, didn't wanted to install something for one object). But Forge tells me the textures aren't there, although I checked that and they are in the right folder. In the Java code I changed nothing than deleting the TESR and the TileEntity so here is he log output: My model. json: { "credit": "Made with Blockbench", "textures": { "0": "cruelars_triforcemod:blocks/mirror_front", "1": "cruelars_triforcemod:blocks/mirror_gold", "2": "cruelars_triforcemod:blocks/mirror_gold_striped", "3": "cruelars_triforcemod:blocks/mirror_dark", "4": "cruelars_triforcemod:blocks/mirror_back", "5": "cruelars_triforcemod:blocks/mirror_dark_striped" }, "elements": [ { "from": [6, 0, 6], "to": [10, 4, 10], "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, "south": {"uv": [0, 0, 16, 16], "texture": "#2"}, "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, "up": {"uv": [0, 0, 4, 4], "texture": "#1"}, "down": {"uv": [0, 0, 4, 4], "texture": "#1"} } }, { "from": [7, 4, 7], "to": [9, 6, 9], "rotation": {"angle": 0, "axis": "y", "origin": [8, 5, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "east": {"uv": [0, 0, 16, 16], "texture": "#5"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, "west": {"uv": [0, 0, 16, 16], "texture": "#5"} } }, { "from": [6, 6, 6], "to": [10, 8, 10], "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, "faces": { "north": {"uv": [0, 0, 16, 8], "texture": "#2"}, "east": {"uv": [0, 0, 16, 8], "texture": "#2"}, "south": {"uv": [0, 0, 16, 8], "texture": "#2"}, "west": {"uv": [0, 0, 16, 8], "texture": "#2"}, "up": {"uv": [0, 0, 4, 2], "texture": "#1"}, "down": {"uv": [0, 0, 4, 2], "texture": "#1"} } }, { "from": [0, 6, 7], "to": [16, 8, 9], "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "east": {"uv": [0, 0, 16, 16], "texture": "#5"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, "west": {"uv": [0, 0, 16, 16], "texture": "#5"}, "up": {"uv": [0, 0, 1, 1], "texture": "#3"}, "down": {"uv": [0, 0, 1, 1], "texture": "#3"} } }, { "from": [0, 8, 7], "to": [2, 16, 9], "rotation": {"angle": 0, "axis": "y", "origin": [1, 12, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 270}, "east": {"uv": [0, 0, 1, 1], "texture": "#3"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 90}, "west": {"uv": [0, 0, 8, 2], "texture": "#5", "rotation": 90}, "up": {"uv": [0, 0, 2, 2], "texture": "#3"} } }, { "from": [14, 8, 7], "to": [16, 16, 9], "rotation": {"angle": 0, "axis": "y", "origin": [15, 12, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 90}, "east": {"uv": [0, 0, 8, 2], "texture": "#5", "rotation": 90}, "south": {"uv": [0, 0, 16, 16], "texture": "#5", "rotation": 270}, "west": {"uv": [0, 0, 2, 8], "texture": "#3"}, "up": {"uv": [0, 0, 2, 2], "texture": "#3"} } }, { "from": [2, 13, 7], "to": [3, 15, 9], "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 14, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "east": {"uv": [0, 0, 1, 2], "texture": "#3"}, "south": {"uv": [0, 0, 1, 2], "texture": "#3"}, "up": {"uv": [0, 0, 1, 2], "texture": "#3"}, "down": {"uv": [0, 0, 1, 2], "texture": "#3"} } }, { "from": [13, 13, 7], "to": [14, 15, 9], "rotation": {"angle": 0, "axis": "y", "origin": [13.5, 14, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, "west": {"uv": [0, 0, 2, 2], "texture": "#3"}, "up": {"uv": [0, 0, 1, 2], "texture": "#3"}, "down": {"uv": [0, 0, 1, 2], "texture": "#3"} } }, { "from": [3, 9, 7], "to": [13, 19, 9], "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 14, 8]}, "faces": { "north": {"uv": [0, 0, 16, 16], "texture": "#0"}, "east": {"uv": [0, 0, 2, 10], "texture": "#3"}, "south": {"uv": [0, 0, 16, 16], "texture": "#4"}, "west": {"uv": [0, 0, 2, 10], "texture": "#3"}, "up": {"uv": [0, 0, 2, 10], "texture": "#3"}, "down": {"uv": [0, 0, 2, 10], "texture": "#3"} } }, { "from": [3, 0, 7], "to": [6, 1, 8], "faces": { "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, "up": {"uv": [0, 0, 3, 1], "texture": "#1"}, "down": {"uv": [0, 0, 3, 1], "texture": "#1"} } }, { "from": [10, 0, 7], "to": [13, 1, 8], "faces": { "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, "up": {"uv": [0, 0, 3, 1], "texture": "#1"}, "down": {"uv": [0, 0, 3, 1], "texture": "#1"} } }, { "from": [3, 1, 7], "to": [4, 3, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [12, 1, 7], "to": [13, 3, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [4, 2, 7], "to": [6, 3, 8], "faces": { "north": {"uv": [0, 0, 2, 1], "texture": "#1"}, "east": {"uv": [0, 0, 2, 1], "texture": "#1"}, "south": {"uv": [0, 0, 2, 1], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 1], "texture": "#1"}, "down": {"uv": [0, 0, 2, 1], "texture": "#1"} } }, { "from": [10, 2, 7], "to": [12, 3, 8], "faces": { "north": {"uv": [0, 0, 2, 1], "texture": "#1"}, "east": {"uv": [0, 0, 2, 1], "texture": "#1"}, "south": {"uv": [0, 0, 2, 1], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 1], "texture": "#1"}, "down": {"uv": [0, 0, 2, 1], "texture": "#1"} } }, { "from": [5, 3, 7], "to": [6, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [10, 3, 7], "to": [11, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, "up": {"uv": [0, 0, 1, 2], "texture": "#1"} } }, { "from": [4, 4, 7], "to": [5, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, "down": {"uv": [0, 0, 1, 1], "texture": "#1"} } }, { "from": [11, 4, 7], "to": [12, 5, 8], "faces": { "north": {"uv": [0, 0, 1, 1], "texture": "#1"}, "east": {"uv": [0, 0, 1, 1], "texture": "#1"}, "south": {"uv": [0, 0, 1, 1], "texture": "#1"}, "west": {"uv": [0, 0, 1, 1], "texture": "#1"}, "up": {"uv": [0, 0, 1, 1], "texture": "#1"}, "down": {"uv": [0, 0, 1, 1], "texture": "#1"} } } ], "display": { "thirdperson_righthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, -30], "translation": [0, 0, 0] }, "thirdperson_lefthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, -30] }, "firstperson_righthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, 0] }, "firstperson_lefthand": { "scale": [0.5, 0.5, 0.5], "rotation": [0, 180, 0] }, "ground": { "scale": [0.5, 0.5, 0.5] }, "fixed": { "translation": [0, -1, -1] }, "gui": { "scale": [0.7, 0.7, 0.7], "rotation": [0, 180, 0], "translation": [0, -1, 0] } } } All my textures are in assets/cruelars_triforcemod/textures/blocks
  15. I never tried to make a json model so I wanted to avoid it. *sigh* I'll try. Thanks. Thanks. Yes but I thought I get in a modder forum more likely programs that are handy for mc modding.
  16. I don't want to us obj as my programm for objs has problems with textures causing the import to fail.(I use 3DBuilder from Windows. If you know a better one please tell me.) for the texture png. As you might see in the first post the model is clearly not a normal Block. Can you give me a clear reason why this isn't possible. The only thing that I should add here is that the model around one and a half block high is.
  17. Not Helpful. The Vanilla Banner does that. Should I then make an Entity like the ArmorStand and make it immobile? Or what should I do?
  18. I want to make a block with a custom model which extends ModelBase so it isn't an obj. I started with mostly adapting the Code of the Banner. But when I load the game with my texture I get this The texture is matching the Models texturemap. Code: Block: package com.cruelar.cruelars_triforcemod.blocks; import com.cruelar.cruelars_triforcemod.Cruelars_Triforcemod_Core; import com.cruelar.cruelars_triforcemod.tileentity.MirrorOfTwilight_TileEntity; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockFaceShape; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; public class BlockMirrorOfTwilight extends BlockContainer { public static final PropertyDirection FACING = PropertyDirection.create("facing"); public BlockMirrorOfTwilight(){ super(Material.ROCK); this.setRegistryName("block_mirror_of_twilight"); this.setUnlocalizedName(Cruelars_Triforcemod_Core.MODID+".block_mirror_of_twilight"); } @Nullable @SuppressWarnings("deprecation") @Override public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) { return new AxisAlignedBB(0,0,0,1,2,1); } @Nullable @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new MirrorOfTwilight_TileEntity(); } @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, FACING); } @SideOnly(Side.CLIENT) public void initModel(){ ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory")); } @SuppressWarnings("deprecation") public boolean isBlockNormalCube(IBlockState blockState){ return false; } @SuppressWarnings("deprecation") public boolean isOpaqueCube(IBlockState blockState){ return false; } @Override @SuppressWarnings("deprecation") public IBlockState getStateFromMeta(int meta) { return getDefaultState() .withProperty(FACING, EnumFacing.getFront(meta & 7)); } @Override public int getMetaFromState(IBlockState blockState) { return blockState.getValue(FACING).getIndex(); } public static EnumFacing getFacingFromEntity(BlockPos clickedBlock, EntityLivingBase entity) { return EnumFacing.getFacingFromVector( (float) (entity.posX - clickedBlock.getX()), (float) (entity.posY - clickedBlock.getY()), (float) (entity.posZ - clickedBlock.getZ())); } @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { world.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2); if (stack.hasDisplayName()) { TileEntity lvt_6_1_ = world.getTileEntity(pos); } } @Override @SuppressWarnings("deprecation") public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) { return BlockFaceShape.UNDEFINED; } } TileEntity (only need it for TESR as far as I know, tell me if I'm wrong + methods are only there cause of they're going to be useful for me later on): package com.cruelar.cruelars_triforcemod.tileentity; import javax.annotation.Nullable; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.play.server.SPacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; public class MirrorOfTwilight_TileEntity extends TileEntity { public NBTTagCompound writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); return compound; } public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); } @Nullable public SPacketUpdateTileEntity getUpdatePacket() { return new SPacketUpdateTileEntity(this.pos, 6, this.getUpdateTag()); } public NBTTagCompound getUpdateTag() { return this.writeToNBT(new NBTTagCompound()); } } TESR: package com.cruelar.cruelars_triforcemod.client.renderer.tileentity; import com.cruelar.cruelars_triforcemod.model.ModelMirrorOfTwilight; import com.cruelar.cruelars_triforcemod.tileentity.MirrorOfTwilight_TileEntity; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; @SideOnly(Side.CLIENT) public class TileEntityMirrorOfTwilightRenderer extends TileEntitySpecialRenderer<MirrorOfTwilight_TileEntity> { private final ModelMirrorOfTwilight modelMirrorOfTwilight = new ModelMirrorOfTwilight(); public void render(MirrorOfTwilight_TileEntity te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { boolean flag = te.getWorld() != null; int i = flag ? te.getBlockMetadata() : 0; long j = flag ? te.getWorld().getTotalWorldTime() : 0L; GlStateManager.pushMatrix(); float f = 0.6666667F; float f2 = 0.0F; if (i == 2) { f2 = 180.0F; } if (i == 4) { f2 = 90.0F; } if (i == 5) { f2 = -90.0F; } GlStateManager.translate((float)x + 0.5F, (float)y - 0.16666667F, (float)z + 0.5F); GlStateManager.rotate(-f2, 0.0F, 1.0F, 0.0F); GlStateManager.translate(0.0F, -0.3125F, -0.4375F); BlockPos blockpos = te.getPos(); float f3 = (float)(blockpos.getX() * 7 + blockpos.getY() * 9 + blockpos.getZ() * 13) + (float)j + partialTicks; GlStateManager.enableRescaleNormal(); ResourceLocation resourcelocation = this.getResourceLocation(te); if (resourcelocation != null) { this.bindTexture(resourcelocation); GlStateManager.pushMatrix(); GlStateManager.scale(0.6666667F, -0.6666667F, -0.6666667F); this.modelMirrorOfTwilight.render(); GlStateManager.popMatrix(); } GlStateManager.color(1.0F, 1.0F, 1.0F, alpha); GlStateManager.popMatrix(); } @Nullable private ResourceLocation getResourceLocation(MirrorOfTwilight_TileEntity mirrrorObj) { return new ResourceLocation("cruelars_triforcemod:textures/blocks/mirror_of_twilight.png"); } } Model: package com.cruelar.cruelars_triforcemod.model; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; /** * ModelMirrorOfTwilight - Cruelar * Created using Tabula 7.0.0 */ public class ModelMirrorOfTwilight extends ModelBase { public ModelRenderer standbottom; public ModelRenderer standmiddle; public ModelRenderer standaxisY; public ModelRenderer standmainframebottom; public ModelRenderer mirror; public ModelRenderer standmainframeright; public ModelRenderer standmainframeleft; public ModelRenderer standaxisXleft; public ModelRenderer standaxisXright; public ModelRenderer misc1left; public ModelRenderer misc2left; public ModelRenderer misc3left; public ModelRenderer misc4left; public ModelRenderer misc5left; public ModelRenderer misc1right; public ModelRenderer misc2right; public ModelRenderer misc3right; public ModelRenderer misc4right; public ModelRenderer misc5right; public ModelMirrorOfTwilight() { this.textureWidth = 64; this.textureHeight = 32; this.misc2right = new ModelRenderer(this, 36, 0); this.misc2right.mirror = true; this.misc2right.setRotationPoint(-2.5F, 19.0F, 0.5F); this.misc2right.addBox(-0.5F, -1.0F, -0.5F, 1, 2, 1, 0.0F); this.standaxisXright = new ModelRenderer(this, 0, 12); this.standaxisXright.mirror = true; this.standaxisXright.setRotationPoint(-5.5F, 10.0F, 0.0F); this.standaxisXright.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); this.misc4left = new ModelRenderer(this, 36, 0); this.misc4left.setRotationPoint(4.5F, 21.0F, 0.5F); this.misc4left.addBox(-0.5F, -1.0F, -0.5F, 1, 2, 1, 0.0F); this.mirror = new ModelRenderer(this, 0, 0); this.mirror.setRotationPoint(0.0F, 9.5F, 0.0F); this.mirror.addBox(-5.0F, -4.5F, -1.0F, 10, 10, 2, 0.0F); this.setRotateAngle(mirror, -0.3490658503988659F, 0.0F, 0.0F); this.misc2left = new ModelRenderer(this, 36, 0); this.misc2left.setRotationPoint(2.5F, 19.0F, 0.5F); this.misc2left.addBox(-0.5F, -1.0F, -0.5F, 1, 2, 1, 0.0F); this.standbottom = new ModelRenderer(this, 40, 0); this.standbottom.setRotationPoint(0.0F, 22.0F, 0.0F); this.standbottom.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.misc5right = new ModelRenderer(this, 30, 3); this.misc5right.mirror = true; this.misc5right.setRotationPoint(-3.5F, 22.5F, 0.5F); this.misc5right.addBox(-1.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); this.misc5left = new ModelRenderer(this, 30, 3); this.misc5left.setRotationPoint(3.5F, 22.5F, 0.5F); this.misc5left.addBox(-1.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F); this.misc1left = new ModelRenderer(this, 40, 0); this.misc1left.setRotationPoint(3.5F, 18.5F, 0.5F); this.misc1left.addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, 0.0F); this.standmiddle = new ModelRenderer(this, 32, 5); this.standmiddle.setRotationPoint(0.0F, 19.0F, 0.0F); this.standmiddle.addBox(-1.0F, -1.0F, -1.0F, 2, 2, 2, 0.0F); this.standaxisXleft = new ModelRenderer(this, 0, 12); this.standaxisXleft.setRotationPoint(5.5F, 10.0F, 0.0F); this.standaxisXleft.addBox(-0.5F, -1.0F, -1.0F, 1, 2, 2, 0.0F); this.standmainframeright = new ModelRenderer(this, 56, 0); this.standmainframeright.mirror = true; this.standmainframeright.setRotationPoint(-7.0F, 12.0F, 0.0F); this.standmainframeright.addBox(-1.0F, -4.0F, -1.0F, 2, 8, 2, 0.0F); this.standmainframeleft = new ModelRenderer(this, 56, 0); this.standmainframeleft.setRotationPoint(7.0F, 12.0F, 0.0F); this.standmainframeleft.addBox(-1.0F, -4.0F, -1.0F, 2, 8, 2, 0.0F); this.misc3right = new ModelRenderer(this, 30, 0); this.misc3right.mirror = true; this.misc3right.setRotationPoint(-3.0F, 20.5F, 0.5F); this.misc3right.addBox(-1.0F, -0.5F, -0.5F, 2, 1, 1, 0.0F); this.standaxisY = new ModelRenderer(this, 2, 12); this.standaxisY.setRotationPoint(0.0F, 17.0F, 0.0F); this.standaxisY.addBox(-2.0F, -1.0F, -2.0F, 4, 2, 4, 0.0F); this.standmainframebottom = new ModelRenderer(this, 0, 28); this.standmainframebottom.setRotationPoint(0.0F, 17.0F, 0.0F); this.standmainframebottom.addBox(-8.0F, -1.0F, -1.0F, 16, 2, 2, 0.0F); this.misc3left = new ModelRenderer(this, 30, 0); this.misc3left.setRotationPoint(3.0F, 20.5F, 0.5F); this.misc3left.addBox(-1.0F, -0.5F, -0.5F, 2, 1, 1, 0.0F); this.misc4right = new ModelRenderer(this, 36, 0); this.misc4right.mirror = true; this.misc4right.setRotationPoint(-4.5F, 21.0F, 0.5F); this.misc4right.addBox(-0.5F, -1.0F, -0.5F, 1, 2, 1, 0.0F); this.misc1right = new ModelRenderer(this, 40, 0); this.misc1right.mirror = true; this.misc1right.setRotationPoint(-3.5F, 18.5F, 0.5F); this.misc1right.addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, 0.0F); } @Override @SideOnly(Side.CLIENT) public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { this.misc2right.render(f5); this.standaxisXright.render(f5); this.misc4left.render(f5); this.mirror.render(f5); this.misc2left.render(f5); this.standbottom.render(f5); this.misc5right.render(f5); this.misc5left.render(f5); this.misc1left.render(f5); this.standmiddle.render(f5); this.standaxisXleft.render(f5); this.standmainframeright.render(f5); this.standmainframeleft.render(f5); this.misc3right.render(f5); this.standaxisY.render(f5); this.standmainframebottom.render(f5); this.misc3left.render(f5); this.misc4right.render(f5); this.misc1right.render(f5); } @SideOnly(Side.CLIENT) public void render(){ this.render((Entity)null,0,0,0,0,0,0.0625F); } /** * This is a helper function from Tabula to set the rotation of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { modelRenderer.rotateAngleX = x; modelRenderer.rotateAngleY = y; modelRenderer.rotateAngleZ = z; } } blockstate json { "forge_marker": 1, "defaults": { "custom":{}, "model": "cruelars_triforcemod:block_mirror_of_twilight" }, "variants": { "normal": [{}], "inventory": [{}], "facing": { "south": {}, "north": {"y":180}, "east": {"y":270}, "west": {"y":90} } } } model json { "parent": "block/cube_all", "textures":{ "all": "cruelars_triforcemod:blocks/mirror_of_twilight" } }
  19. At the moment I mainly use tabula, but I see what you mean. Maybe I'll give it a try later.
  20. I'll try that cause that sounds simpler to me (I've always problems with json) but if it fails I'll try Cubik Studio sounds very useful.
  21. So a Model as java file and refer in the Json to it or everything in the json?
  22. So this? ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(Objects.requireNonNull(getRegistryName()), "inventory")); Cause then I need something in the Json to give it the actual model. So what goes into the json?
  23. Where would I give the model to the Item because I already know. My Problem is more about how to bind an Model to an item
  24. I'm making a mod which adds a huge amount of shields. My problem is I've no idea how to give them a model like the vanilla shield. I know vanilla uses "parent": "builtin/entity" in the shield.json. But as far as I found out that searches for the vanilla shield so when I use it the shield is invisible. Also vanilla uses ItemModelMesher what modders shouldn't use (Problematic code #2) So how do I get a model for my custom shield? My Code: ModShield(Basecode for most shields): package com.cruelar.cruelars_triforcemod.init; import com.cruelar.cruelars_triforcemod.Cruelars_Triforcemod_Core; import com.cruelar.cruelars_triforcemod.inventory.cruelars_triforcemod; import net.minecraft.block.BlockDispenser; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.*; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; public class ModShields extends Item { public int damage; public ModShields(int maxDamage,String name) { damage = maxDamage; this.canRepair = true; this.isDamageable(); this.isRepairable(); this.showDurabilityBar(new ItemStack(this)); this.setUnlocalizedName(Cruelars_Triforcemod_Core.MODID+"."+name); this.setRegistryName(name); this.maxStackSize = 1; this.setCreativeTab(cruelars_triforcemod.CRUELARS_TRIFORCEMOD_SHIELDS); this.setMaxDamage(damage); this.addPropertyOverride(new ResourceLocation("blocking"), new IItemPropertyGetter() { @SideOnly(Side.CLIENT) public float apply(ItemStack p_apply_1_, @Nullable World p_apply_2_, @Nullable EntityLivingBase p_apply_3_) { return p_apply_3_ != null && p_apply_3_.isHandActive() && p_apply_3_.getActiveItemStack() == p_apply_1_ ? 1.0F : 0.0F; } }); BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(this, ItemArmor.DISPENSER_BEHAVIOR); } public EnumAction getItemUseAction(ItemStack p_getItemUseAction_1_) { return EnumAction.BLOCK; } public int getMaxItemUseDuration(ItemStack p_getMaxItemUseDuration_1_) { return 72000; } public ActionResult<ItemStack> onItemRightClick(World p_onItemRightClick_1_, EntityPlayer p_onItemRightClick_2_, EnumHand p_onItemRightClick_3_) { ItemStack lvt_4_1_ = p_onItemRightClick_2_.getHeldItem(p_onItemRightClick_3_); p_onItemRightClick_2_.setActiveHand(p_onItemRightClick_3_); return new ActionResult(EnumActionResult.SUCCESS, lvt_4_1_); } public boolean isRepairable(){ return true; } public boolean getIsRepairable(ItemStack p_getIsRepairable_1_, ItemStack p_getIsRepairable_2_) { return p_getIsRepairable_2_.getItem() == Item.getItemFromBlock(Blocks.PLANKS) ? true : super.getIsRepairable(p_getIsRepairable_1_, p_getIsRepairable_2_); } public boolean isDamageable(){ return true; } } Phantom_Shield(example): package com.cruelar.cruelars_triforcemod.items; import com.cruelar.cruelars_triforcemod.init.ModShields; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import java.util.Objects; public class PhantomShieldPH extends ModShields { public PhantomShieldPH() { super(1248,"phantom_shield_ph"); } @SideOnly(Side.CLIENT) public void initModel(){ ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(Objects.requireNonNull(getRegistryName()), "inventory")); } } phantom_shield_ph.json: { "parent":"builtin/entity", "display": { "thirdperson_righthand": { "rotation": [ 0, 90, 0 ], "translation": [ 10.51, 6, -4 ], "scale": [ 1, 1, 1 ] }, "thirdperson_lefthand": { "rotation": [ 0, 90, 0 ], "translation": [ 10.51, 6, 12 ], "scale": [ 1, 1, 1 ] }, "firstperson_righthand": { "rotation": [ 0, 180, 5 ], "translation": [ -10, 2, -10 ], "scale": [ 1.25, 1.25, 1.25 ] }, "firstperson_lefthand": { "rotation": [ 0, 180, 5 ], "translation": [ 10, 0, -10 ], "scale": [ 1.25, 1.25, 1.25 ] }, "gui": { "rotation": [ 15, -25, -5 ], "translation": [ 2, 3, 0 ], "scale": [ 0.65, 0.65, 0.65 ] }, "fixed": { "rotation": [ 0, 180, 0 ], "translation": [ -2, 4, -5], "scale":[ 0.5, 0.5, 0.5] }, "ground": { "rotation": [ 0, 0, 0 ], "translation": [ 4, 4, 2], "scale":[ 0.25, 0.25, 0.25] } }, "overrides": [ { "predicate": { "blocking": 1 }, "model": "cruelars_triforcemod:item/phantom_shield_ph_blocking" } ] } phantom_shield_ph_blocking.json: { "parent":"builtin/entity", "display": { "thirdperson_righthand": { "rotation": [ 45, 135, 0 ], "translation": [ 3.51, 11, -2 ], "scale": [ 1, 1, 1 ] }, "thirdperson_lefthand": { "rotation": [ 45, 135, 0 ], "translation": [ 13.51, 3, 5 ], "scale": [ 1, 1, 1 ] }, "firstperson_righthand": { "rotation": [ 0, 180, -5 ], "translation": [ -15, 5, -11 ], "scale": [ 1.25, 1.25, 1.25 ] }, "firstperson_lefthand": { "rotation": [ 0, 180, -5 ], "translation": [ 5, 5, -11 ], "scale": [ 1.25, 1.25, 1.25 ] }, "gui": { "rotation": [ 15, -25, -5 ], "translation": [ 2, 3, 0 ], "scale": [ 0.65, 0.65, 0.65 ] } } } I hope this is enough for you to help me, otherwise ask for the missing code.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.