use of com.codetaylor.mc.artisanworktables.api.internal.tool.CustomMaterial in project artisan-worktables by codetaylor.
the class ModuleTools method onRegister.
@Override
public void onRegister(Registry registry) {
super.onRegister(registry);
List<String> allowedToolTypeList = new ArrayList<>(Arrays.asList(ModuleToolsConfig.ENABLED_TOOL_TYPES));
if (allowedToolTypeList.isEmpty()) {
// User has disabled all tool types.
return;
}
if (this.materialList.isEmpty()) {
// User has disabled all tool materials.
return;
}
for (EnumWorktableToolType type : EnumWorktableToolType.values()) {
String typeName = type.getName();
if (!allowedToolTypeList.contains(typeName)) {
// User has disabled this tool type.
continue;
}
for (CustomMaterial material : this.materialList) {
String materialName = material.getDataCustomMaterial().getName();
ItemWorktableToolBase item = new ItemWorktableTool(type, material);
this.registerTool(registry, typeName, materialName, item);
}
ArtisanCustomToolMaterialRegistrationEvent event = new ArtisanCustomToolMaterialRegistrationEvent();
MinecraftForge.EVENT_BUS.post(event);
List<CustomToolMaterialRegistrationEntry> materialList = event.getMaterialList();
CustomMaterialConverter customMaterialConverter = new CustomMaterialConverter(RecipeItemParser.INSTANCE);
for (CustomToolMaterialRegistrationEntry entry : materialList) {
try {
ICustomToolMaterial material = entry.getMaterial();
ICustomToolProvider provider = entry.getProvider();
CustomMaterial customMaterial = customMaterialConverter.convert(material);
ItemWorktableToolBase item = provider.get(type, customMaterial);
String materialName = customMaterial.getDataCustomMaterial().getName();
this.registerTool(registry, typeName, materialName, item);
} catch (MalformedRecipeItemException e) {
ModuleTools.LOGGER.error("", e);
}
}
}
registry.registerItemRegistrationStrategy(forgeRegistry -> {
if (ModuleToolsConfig.ENABLE_TOOL_TYPE_ORE_DICT_GROUPS) {
for (ItemWorktableToolBase item : this.registeredToolList) {
ItemStack itemStack = new ItemStack(item, 1, OreDictionary.WILDCARD_VALUE);
OreDictionary.registerOre(ModuleToolsConfig.TOOL_BY_TYPE_ORE_DICT_PREFIX + item.getType().getOreDictSuffix(), itemStack);
}
}
if (ModuleToolsConfig.ENABLE_TOOL_MATERIAL_ORE_DICT_GROUPS) {
for (ItemWorktableToolBase item : this.registeredToolList) {
ItemStack itemStack = new ItemStack(item, 1, OreDictionary.WILDCARD_VALUE);
OreDictionary.registerOre(item.getMaterial().getDataCustomMaterial().getOreDictKey(), itemStack);
}
}
});
}
use of com.codetaylor.mc.artisanworktables.api.internal.tool.CustomMaterial in project artisan-worktables by codetaylor.
the class ItemWorktableToolBase method getItemStackDisplayName.
@Nonnull
@Override
public String getItemStackDisplayName(@Nonnull ItemStack stack) {
// This is called on the server so we can't use net/minecraft/client/resources/I18n here.
Item item = stack.getItem();
if (item instanceof ItemWorktableToolBase) {
CustomMaterial material = ((ItemWorktableToolBase) item).getMaterial();
String parameter = I18n.translateToLocalFormatted(material.getDataCustomMaterial().getLangKey());
return I18n.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", parameter);
}
return super.getItemStackDisplayName(stack);
}
use of com.codetaylor.mc.artisanworktables.api.internal.tool.CustomMaterial in project artisan-worktables by codetaylor.
the class CustomMaterialListConverter method convert.
public List<CustomMaterial> convert(DataCustomMaterialList data, Logger logger) {
List<CustomMaterial> result = new ArrayList<>();
List<DataCustomMaterial> list = data.getList();
for (ICustomToolMaterial dataCustomMaterial : list) {
try {
this.customMaterialValidator.validate(dataCustomMaterial);
} catch (CustomMaterialValidationException e) {
logger.error("", e);
continue;
}
try {
result.add(this.customMaterialConverter.convert(dataCustomMaterial));
} catch (MalformedRecipeItemException e) {
logger.error("", e);
}
}
return result;
}
Aggregations