From b0ee9b27a127a9bb821fc7534529d6626b0a89da Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Thu, 10 Sep 2020 00:17:13 -0400 Subject: [PATCH] Blockdata backups --- .../com/volmit/iris/object/IrisBlockData.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/volmit/iris/object/IrisBlockData.java b/src/main/java/com/volmit/iris/object/IrisBlockData.java index d773f4c4b..9d9ded22b 100644 --- a/src/main/java/com/volmit/iris/object/IrisBlockData.java +++ b/src/main/java/com/volmit/iris/object/IrisBlockData.java @@ -41,6 +41,10 @@ public class IrisBlockData @Desc("The weight is used when this block data is inside of a list of blockdata. A weight of two is just as if you placed two of the same block data values in the same list making it more common when randomly picked.") private int weight = 1; + @DontObfuscate + @Desc("If the block cannot be created on this version, Iris will attempt to use this backup block data instead.") + private IrisBlockData backup = null; + @DontObfuscate @Desc("Optional properties for this block data such as 'waterlogged': true") private KMap data = new KMap<>(); @@ -81,6 +85,11 @@ public class IrisBlockData return b; } + if(backup != null) + { + return backup.getBlockData(); + } + return B.get("AIR"); }); } @@ -89,46 +98,46 @@ public class IrisBlockData { IrisBlockData b = new IrisBlockData(); String m = j.toLowerCase().trim(); - + if(m.contains(":")) { b.setKey(m.split("\\Q:\\E")[0]); String v = m.split("\\Q:\\E")[1]; - + if(v.contains("[")) { KList props = new KList<>(); String rp = v.split("\\Q[\\E")[1].replaceAll("\\Q]\\E", ""); b.setBlock(v.split("\\Q[\\E")[0]); - + if(rp.contains(",")) { props.add(rp.split("\\Q,\\E")); } - + else { props.add(rp); } - + for(String i : props) { Object kg = filter(i.split("\\Q=\\E")[1]); b.data.put(i.split("\\Q=\\E")[0], kg); } } - + else { b.setBlock(v); } } - + else { b.setBlock(m); } - + return b; }