Added ability to specify reinforcement and flash materials by number

(not X123, just 123).
Damage values are not supported.

This is mostly for enabling items from mods to be used as reinforcement
materials, as those don't show up in the Materials enum.
This commit is contained in:
anovak
2012-09-06 02:04:22 -07:00
parent 74a5661be5
commit 7113a0de65

View File

@@ -37,18 +37,25 @@ public class ReinforcementMaterial implements Comparable<ReinforcementMaterial>
private int flasherMaterialId;
public ReinforcementMaterial(LinkedHashMap map) {
Material material = Material.getMaterial((String) map.get("name"));
if (material == null) {
throw new IllegalArgumentException("Supplied name value is not a valid material.");
// Materials may be specified by name or by integer value
Material material = Material.getMaterial(map.get("name").toString());
if (material != null) {
materialId = material.getId();
} else {
materialId = Integer.parseInt(map.get("name").toString()); // Non-existent (Forge) materials
}
materialId = material.getId();
strength = (Integer) map.get("strength");
requirements = (Integer) map.get("requirements");
material = Material.getMaterial((String) map.get("flasher"));
if (material == null || !material.isBlock()) {
throw new IllegalArgumentException("Supplied flasher value is not a valid block material.");
material = Material.getMaterial(map.get("flasher").toString());
if (material != null) {
if(!material.isBlock()) {
throw new IllegalArgumentException("Supplied flasher value is a non-block material.");
}
flasherMaterialId = material.getId();
} else {
flasherMaterialId = Integer.parseInt((map.get("flasher").toString()));
}
flasherMaterialId = material.getId();
}
public ReinforcementMaterial(int materialId, int strength, int requirements, int flasherMaterialId) {