private Map<Property<?>, Object> adaptProperties(BlockType block, Map<IProperty<?>, Comparable<?>> mcProps) { Map<Property<?>, Object> props = new TreeMap<>(Comparator.comparing(Property::getName)); for (Map.Entry<IProperty<?>, Comparable<?>> prop : mcProps.entrySet()) { Object value = prop.getValue(); if (prop.getKey() instanceof PropertyDirection) { value = ForgeAdapter.adaptEnumFacing((EnumFacing) value); } else if (prop.getKey() instanceof PropertyEnum) { value = ((IStringSerializable) value).getName(); } props.put(block.getProperty(prop.getKey().getName()), value); } return props; }
public static Property<?> adaptProperty(IProperty<?> property) { if (property instanceof PropertyBool) { return new BooleanProperty(property.getName(), ImmutableList.copyOf(((PropertyBool) property).getAllowedValues())); } if (property instanceof PropertyInteger) { return new IntegerProperty(property.getName(), ImmutableList.copyOf(((PropertyInteger) property).getAllowedValues())); } if (property instanceof PropertyDirection) { return new DirectionalProperty(property.getName(), ((PropertyDirection) property).getAllowedValues().stream() .map(ForgeAdapter::adaptEnumFacing) .collect(Collectors.toList())); } if (property instanceof PropertyEnum) { return new EnumProperty(property.getName(), ((PropertyEnum<?>) property).getAllowedValues().stream() .map(e -> e.getName()) .collect(Collectors.toList())); } return new IPropertyAdapter<>(property); }
@Override public E getObjectFromString(String string) { for (E e: values) { if (e.getName().equalsIgnoreCase(string)) return e; } return values[0]; }
/** * {@link InventoryRenderHelper#registerRender(Item, int, String, String)} with registry name for every variant. * each variant represents one meta value */ public void registerRenderAllMeta(Item item, IStringSerializable[] variants) { for (int i = 0; i < variants.length; i++) { registerRender(item, i, variants[i].getName()); } }
/** * Registers an item model for all of the provided variants * @param item The item * @param name see #registerModelAllVariants * @param variants see #registerModelAllVariants */ protected void registerModelAllVariants(Item item, String name, IStringSerializable[] variants) { for (int i = 0; i < variants.length; i++) { IStringSerializable string = variants[i]; registerModel(item, i, name + "=" + string.getName()); } }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item) { for (E e: values) { ModelLoader.setCustomModelResourceLocation(item, e.ordinal(), new ModelResourceLocation(getRegistryName(), e.getClass().getSimpleName() + "=" + e.getName())); } } }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item) { String prefix = isDouble() ? "" : "half=bottom,"; for (E type: values) { ModelLoader.setCustomModelResourceLocation(item, type.ordinal(), new ModelResourceLocation(getRegistryName(), prefix + type.getClass().getSimpleName().toLowerCase() + "=" + type.getName())); } } }
@SideOnly(Side.CLIENT) protected ResourceLocation getResourceForEnum(E e) { return new ResourceLocation(MODID, getUnlocalizedName().replace(MODID + ".", "") + "_" + e.getName()); }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item) { ModelLoader.setCustomStateMapper(this, NO_WATER); for (E e: values) { ModelLoader.setCustomModelResourceLocation(item, e.ordinal(), new ModelResourceLocation(new ResourceLocation(MODID, e.getClass().getSimpleName().toLowerCase() + "_" + e.getName()), "inventory")); } } }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item, String name) { for (E e: values) { ModelLoader.setCustomModelResourceLocation(item, e.ordinal(), new ModelResourceLocation(getRegistryName(), e.getName())); } } }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item, String name) { for (E e: values) { ModelLoader.setCustomModelResourceLocation(item, e.ordinal(), new ModelResourceLocation(getRegistryName(), e.getName())); } } }
@Override public String getItemStackDisplayName(ItemStack stack) { String size = TextHelper.translate("sizeable." + getSize(stack).name().toLowerCase(Locale.ENGLISH)); String name = TextHelper.translate(prefix + "." + getEnumFromStack(stack).getName()); String format = TextHelper.translate("sizeable.format"); return String.format(format, size, name); }
@Override public String getUnlocalizedName(ItemStack stack) { if(stack.getMetadata() >= values.length) throw new RuntimeException(super.getUnlocalizedName() +" Meta: " + stack.getMetadata()); return super.getUnlocalizedName() + separator + values[stack.getMetadata()].getName(); } }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item, String name) { for (int i = 0; i < values.length; i++) { if (Character.toLowerCase(property.getName().charAt(0)) < Character.toLowerCase('f')) { ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation(getRegistryName(), property.getName() + "=" + getEnumFromMeta(i).getName() + ",facing=north")); } else { ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation(getRegistryName(), "facing=north," + property.getName() + "=" + getEnumFromMeta(i).getName())); } } } }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item, String name) { for (int i = 0; i < values.length; i++) { if (Character.toLowerCase(property.getName().charAt(0)) < Character.toLowerCase('f')) { ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation(getRegistryName(), property.getName() + "=" + getEnumFromMeta(i).getName() + ",facing=north")); } else { ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation(getRegistryName(), "facing=north," + property.getName() + "=" + getEnumFromMeta(i).getName())); } } } }
@Override public String getUnlocalizedName(ItemStack stack) { IBlockState blockState = getBlockState(stack); return super.getUnlocalizedName(stack) + '.' + genericBlock.getVariant(blockState).getName() + "." + genericBlock.getChiselingVariant(blockState).getName(); }
@SideOnly(Side.CLIENT) public void registerModels(Item item, String name) { for (int i = 0; i < values.length; i++) { ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation(getRegistryName(), property.getName() + "=" + getEnumFromMeta(i).getName())); } } }
/** * Registers all variants of an {@link IItemWithTier} as well as the custom mesh * definition Only works with items that only have variants based on tier */ private static void registerSimpleItemWithTier(IItemWithTier itemWithTier) { Item item = (Item) itemWithTier; ResourceLocation loc = new ResourceLocation(REFERENCE.MODID, "item/" + item.getRegistryName().getResourcePath()); ModelLoader.setCustomMeshDefinition(item, new IItemWithTier.SimpleMeshDefinition(loc)); for (IStringSerializable s : IItemWithTier.TIER.values()) { ModelLoader.registerItemVariants(item, new ModelResourceLocation(loc, "tier=" + s.getName())); } }
@Override public String getUnlocalizedName(ItemStack stack) { return getBlock().getUnlocalizedName() + getBlock().getTypes()[MathHelper.clamp(stack.getItemDamage(), 0, getBlock().getTypes().length - 1)].getName(); }
@SideOnly(Side.CLIENT) @Override public void registerModels(Item item, String name) { for (E e: values) { for (Size size: Size.values()) { ItemStack stack = e.getStack(item, size); ModelLoader.setCustomModelResourceLocation(stack.getItem(), stack.getItemDamage(), new ModelResourceLocation(getRegistryName(), e.getName() + "_" + size.getName())); } } } }