Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
{ "parent": "block/thin_block",
"elements": [
{ "from": [ 0, 0, 0 ],
"to": [ 16, 1, 16 ],
"faces": {
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#wool", "cullface": "down" },
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#wool" },
"north": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "north" },
"south": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "south" },
"west": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "west" },
"east": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "east" }
}
}
]
}
int min = 1;int max = 10;int FULL = min + rnd.nextInt(max - min + 1);if (FULL == 1){ставишь красную}if (FULL == 2){ставишь синюю} Это где?и уже где ставишь текстуру чекай на число
Таки ты мне подскажи@vixtor не слушай его! Он вообще на 1.5.2 застрял!
Таки ты
Таки дай рубль шоб на привоз погонять
чтобы когда я предметом ставил блок, у меня есть специальный предмет на это, то он ставил блок с разными текстурами типа, ну то есть рандомный блок ставился. Я примерно понимаю создать у блока подблоки, с разными текстурками, но вот как осуществить сам процесс, чтоб ставились разные блоки, вот код:Я не совсем понимаю что тебе надо! "рандом текстуры" - это что?
package ru.vixtor.item;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import ru.vixtor.Block.Blocksmy;
public class ItemTest extends Item {
public ItemTest()
{
this.setRegistryName("item_test");
this.setUnlocalizedName("itemTest");
this.maxStackSize = 1;
this.setMaxDamage(64);
this.setCreativeTab(CreativeTabs.MATERIALS);
}
/**
* Called when a Block is right-clicked with this Item
*/
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{
pos = pos.offset(facing);
ItemStack itemstack = player.getHeldItem(hand);
if (!player.canPlayerEdit(pos, facing, itemstack))
{
return EnumActionResult.FAIL;
}
else
{
if (worldIn.isAirBlock(pos))
{
worldIn.setBlockState(pos, Blocksmy.testBlock.getDefaultState());
}
itemstack.damageItem(1, player);
return EnumActionResult.SUCCESS;
}
}
}
if (worldIn.isAirBlock(pos))
{
worldIn.setBlockState(pos, Blocksmy.testBlock.getDefaultState());
}
switch для разного значения ставить блок с разными свойствами Property.Скинь класс блока чтобы можно было видеть как у тебя блокстейт настроен.
package ru.vixtor.Block;
import net.minecraft.block.Block;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.util.*;
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.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockTest extends Block {
private AxisAlignedBB boundingBox = CARPET_AABB;
public static final DataParameter<ItemStack> ITEM = EntityDataManager.<ItemStack>createKey(EntityItem.class, DataSerializers.OPTIONAL_ITEM_STACK);
private static final AxisAlignedBB ZERO_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
protected static final AxisAlignedBB CARPET_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.0625D, 1.0D);
public BlockTest () {
super(Material.CARPET);
this.setRegistryName("block_test");
this.setUnlocalizedName("blockTest");
this.setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
}
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
{
return CARPET_AABB;
}
@SideOnly(Side.CLIENT)
public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.ParticleManager manager)
{
return false;
}
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
return BlockRenderLayer.CUTOUT;
}
@Override
public boolean isOpaqueCube(IBlockState state)
{
return false;
}
@Override
public boolean isFullCube(IBlockState state)
{
return false;
}
@Override
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
for (EntityItem i :worldIn.getEntitiesWithinAABB(EntityItem.class, getEntityBoundingBox().expand(2.5D, 2.6D, 2.5D).offset(new BlockPos(pos.getX(), pos.getY(), pos.getZ())))) {
if (i.getEntityItem().getItem() == Items.APPLE) {
worldIn.setWorldTime(0);
i.setDead();
}
}
return super.onBlockActivated(worldIn, pos, state, playerIn, hand, facing, hitX, hitY, hitZ);
}
public AxisAlignedBB getEntityBoundingBox()
{
return this.boundingBox;
}
}
в кодеА пример по подробнее можно?
Это где?
Вопрос в том как сделать, соответственно я не знал того что ты сейчас сказал и по этому написал сюда@vixtor, твой блок не содержит свойств для блокстейта. Как ты хочешь устанавливать его рандомно если он имеет только одну разновидность?