net.minecraft.block.properties.PropertyEnum Java Examples

The following examples show how to use net.minecraft.block.properties.PropertyEnum. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: StoneBlock.java    From GregTech with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
protected BlockStateContainer createBlockState() {
    Class<T> enumClass = GTUtility.getActualTypeParameter(getClass(), StoneBlock.class, 0);
    this.VARIANT = PropertyEnum.create("variant", enumClass);
    this.VALUES = enumClass.getEnumConstants();
    return new BlockStateContainer(this, VARIANT, CHISELING_VARIANT);
}
 
Example #2
Source File: VariantBlock.java    From GregTech with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
protected BlockStateContainer createBlockState() {
    Class<T> enumClass = GTUtility.getActualTypeParameter(getClass(), VariantBlock.class, 0);
    this.VARIANT = PropertyEnum.create("variant", enumClass);
    this.VALUES = enumClass.getEnumConstants();
    return new BlockStateContainer(this, VARIANT);
}
 
Example #3
Source File: BlockHelper.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Gets the property for the given subtypes. Returns the same instance of a property for the same array of subtypes.
 * Order of the subtypes does not matter.
 */
public static PropertyEnum<EnumSubtype> getSubtypeProperty(int[] subtypes)
{
    int[] sortedSubtypes = Arrays.stream(subtypes)
                                 .distinct()
                                 .sorted()
                                 .toArray();

    return subtypeProperties.computeIfAbsent(new IntArray(sortedSubtypes), BlockHelper::createSubtypeProperty);
}
 
Example #4
Source File: BlockHelperTests.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
@Test
public void test_getSubtypeProperty()
{
    PropertyEnum<EnumSubtype> property = BlockHelper.getSubtypeProperty(new int[] {0, 5});
    Collection<EnumSubtype> allowedValues = property.getAllowedValues();

    assertEquals(2, allowedValues.size());
    assertTrue(allowedValues.contains(EnumSubtype.SUBTYPE0));
    assertTrue(allowedValues.contains(EnumSubtype.SUBTYPE5));
}
 
Example #5
Source File: BlockHelperTests.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
@Test
public void test_getSubtypeProperty_ignoresDuplicates()
{
    PropertyEnum<EnumSubtype> property = BlockHelper.getSubtypeProperty(new int[] {0, 0, 5, 5});
    Collection<EnumSubtype> allowedValues = property.getAllowedValues();

    assertEquals(2, allowedValues.size());
    assertTrue(allowedValues.contains(EnumSubtype.SUBTYPE0));
    assertTrue(allowedValues.contains(EnumSubtype.SUBTYPE5));
}
 
Example #6
Source File: BlockHelperTests.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
@Test
public void test_getSubtypeProperty_ignoresDuplicates2()
{
    PropertyEnum<EnumSubtype> property1 = BlockHelper.getSubtypeProperty(new int[] {0, 0, 5, 5});
    PropertyEnum<EnumSubtype> property2 = BlockHelper.getSubtypeProperty(new int[] {0, 5});

    assertSame(property1, property2);
}
 
Example #7
Source File: BlockHelperTests.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
@Test
public void test_getSubtypeProperty_multipleCallsReturnsSameProperty()
{
    PropertyEnum<EnumSubtype> property1 = BlockHelper.getSubtypeProperty(new int[] {0, 5});
    PropertyEnum<EnumSubtype> property2 = BlockHelper.getSubtypeProperty(new int[] {0, 5});

    assertSame(property1, property2);
}
 
Example #8
Source File: BlockHelperTests.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
@Test
public void test_getSubtypeProperty_subtypeOrderDoesNotMatter()
{
    PropertyEnum<EnumSubtype> property1 = BlockHelper.getSubtypeProperty(new int[] {0, 5});
    PropertyEnum<EnumSubtype> property2 = BlockHelper.getSubtypeProperty(new int[] {5, 0});

    assertSame(property1, property2);
}
 
Example #9
Source File: BlockGregSapling.java    From GregTech with GNU Lesser General Public License v3.0 4 votes vote down vote up
public WorldGenBigTreeCustom(boolean notify, IBlockState logBlock, IBlockState leavesBlock, PropertyEnum<EnumAxis> logAxisProperty) {
    super(notify);
    this.logBlock = logBlock;
    this.leavesBlock = leavesBlock;
    this.logAxisProperty = logAxisProperty;
}
 
Example #10
Source File: BlockHelper.java    From customstuff4 with GNU General Public License v3.0 4 votes vote down vote up
private static PropertyEnum<EnumSubtype> createSubtypeProperty(IntArray subtypes)
{
    return PropertyEnum.create("subtype", EnumSubtype.class, EnumSubtype.getValues(subtypes.array));
}
 
Example #11
Source File: CraftingHelper.java    From malmo with MIT License 4 votes vote down vote up
/**
 * Little utility method for dumping out a list of all the Minecraft items, plus as many useful attributes as
 * we can find for them. This is primarily used by decision_tree_test.py but might be useful for real-world applications too.
 *
 * @param filename location to save the dumped list.
 * @throws IOException
 */
public static void dumpItemProperties(String filename) throws IOException {
    FileOutputStream fos = new FileOutputStream("..//..//build//install//Python_Examples//item_database.json");
    OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
    BufferedWriter writer = new BufferedWriter(osw);
    JsonArray itemTypes = new JsonArray();
    for (ResourceLocation i : Item.REGISTRY.getKeys()) {
        Item item = Item.REGISTRY.getObject(i);
        if (item != null) {
            JsonObject json = new JsonObject();
            json.addProperty("type", Item.REGISTRY.getNameForObject(item).toString().replace("minecraft:", ""));
            json.addProperty("damageable", item.isDamageable());
            json.addProperty("rendersIn3D", item.isFull3D());
            json.addProperty("repairable", item.isRepairable());
            CreativeTabs tab = item.getCreativeTab();
            json.addProperty("tab", ((tab != null) ? item.getCreativeTab().getTabLabel() : "none"));
            ItemStack is = item.getDefaultInstance();
            json.addProperty("stackable", is.isStackable());
            json.addProperty("enchantable", is.isItemEnchantable());
            json.addProperty("rare", (is.getRarity() == EnumRarity.RARE));    // Enum has four types, but only two (COMMON and RARE) appear to be used.
            json.addProperty("action", is.getItemUseAction().toString());
            json.addProperty("hasSubtypes", item.getHasSubtypes());
            json.addProperty("maxDamage", is.getMaxDamage());
            json.addProperty("maxUseDuration", is.getMaxItemUseDuration());
            json.addProperty("block", item instanceof ItemBlock);
            json.addProperty("hasContainerItem", item.hasContainerItem());
            if (item instanceof ItemBlock) {
                ItemBlock ib = (ItemBlock) item;
                Block b = ib.getBlock();
                IBlockState bs = b.getDefaultState();
                json.addProperty("slipperiness", b.slipperiness);
                json.addProperty("hardness", bs.getBlockHardness(null, null));
                json.addProperty("causesSuffocation", bs.causesSuffocation());
                json.addProperty("canProvidePower", bs.canProvidePower());
                json.addProperty("translucent", bs.isTranslucent());
                Material mat = bs.getMaterial();
                if (mat != null) {
                    json.addProperty("canBurn", mat.getCanBurn());
                    json.addProperty("isLiquid", mat.isLiquid());
                    json.addProperty("blocksMovement", mat.blocksMovement());
                    json.addProperty("needsNoTool", mat.isToolNotRequired());
                    json.addProperty("isReplaceable", mat.isReplaceable());
                    json.addProperty("pistonPushable", mat.getMobilityFlag() == EnumPushReaction.NORMAL);
                    json.addProperty("woodenMaterial", mat == Material.WOOD);
                    json.addProperty("ironMaterial", mat == Material.IRON);
                    json.addProperty("glassyMaterial", mat == Material.GLASS);
                    json.addProperty("clothMaterial", mat == Material.CLOTH);
                }

                boolean hasDirection = false;
                boolean hasColour = false;
                boolean hasVariant = false;
                for (IProperty prop : bs.getProperties().keySet()) {
                    System.out.println(Item.REGISTRY.getNameForObject(item).toString() + " -- " + prop);
                    if (prop instanceof PropertyDirection)
                        hasDirection = true;
                    if (prop instanceof PropertyEnum && prop.getName().equals("color"))
                        hasColour = true;
                    if (prop instanceof PropertyEnum && prop.getName().equals("variant")) {
                        hasVariant = true;
                        json.addProperty("variant", bs.getValue(prop).toString());
                    }
                }
                json.addProperty("hasDirection", hasDirection);
                json.addProperty("hasColour", hasColour);
                json.addProperty("hasVariant", hasVariant);
            }
            itemTypes.add(json);
        }
    }
    writer.write(itemTypes.toString());
    writer.close();
}
 
Example #12
Source File: BlockMachine.java    From Production-Line with MIT License 4 votes vote down vote up
@Nonnull
@Override
public PropertyEnum<Type> getBlockTypeContainer() {
    return PROPERTY_TYPE;
}
 
Example #13
Source File: BlockMisc.java    From Production-Line with MIT License 4 votes vote down vote up
@Nonnull
@Override
public PropertyEnum<Type> getBlockTypeContainer() {
    return PROPERTY_TYPE;
}
 
Example #14
Source File: ClientProxy.java    From enderutilities with GNU Lesser General Public License v3.0 4 votes vote down vote up
private BlockColorHandlerDyes(int targetTintIndex, int defaultColor, PropertyEnum<EnumDyeColor> prop)
{
    this.targetTintIndex = targetTintIndex;
    this.defaultColor = defaultColor;
    this.prop = prop;
}