From 5d3bf73d9cd81dbbc0615245aa9778315eebcbc0 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 9 Sep 2018 18:05:17 -0500 Subject: [PATCH] Add state index range support to models (data=x-y) --- .../java/org/dynmap/hdmap/HDBlockModels.java | 55 +++++++++++++++++-- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockModels.java b/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockModels.java index 54a449d9..6aba1e97 100644 --- a/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockModels.java +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockModels.java @@ -375,8 +375,17 @@ public class HDBlockModels { blknames.add(getBlockName(modname,av[1])); } else if(av[0].equals("data")) { - if(av[1].equals("*")) + if(av[1].equals("*")) { databits.clear(); + } + else if (av[1].indexOf('-') > 0) { + String[] sp = av[1].split("-"); + int m0 = getIntValue(varvals, sp[0]); + int m1 = getIntValue(varvals, sp[1]); + for (int m = m0; m <= m1; m++) { + databits.set(m); + } + } else databits.set(getIntValue(varvals,av[1])); } @@ -532,8 +541,17 @@ public class HDBlockModels { blknames.add(getBlockName(modname,av[1])); } else if(av[0].equals("data")) { - if(av[1].equals("*")) + if(av[1].equals("*")) { databits.clear(); + } + else if (av[1].indexOf('-') > 0) { + String[] sp = av[1].split("-"); + int m0 = getIntValue(varvals, sp[0]); + int m1 = getIntValue(varvals, sp[1]); + for (int m = m0; m <= m1; m++) { + databits.set(m); + } + } else databits.set(getIntValue(varvals,av[1])); } @@ -717,8 +735,17 @@ public class HDBlockModels { blknames.add(getBlockName(modname,av[1])); } else if(av[0].equals("data")) { - if(av[1].equals("*")) + if(av[1].equals("*")) { databits.clear(); + } + else if (av[1].indexOf('-') > 0) { + String[] sp = av[1].split("-"); + int m0 = getIntValue(varvals, sp[0]); + int m1 = getIntValue(varvals, sp[1]); + for (int m = m0; m <= m1; m++) { + databits.set(m); + } + } else databits.set(getIntValue(varvals,av[1])); } @@ -789,8 +816,17 @@ public class HDBlockModels { blknames.add(getBlockName(modname,av[1])); } else if(av[0].equals("data")) { - if(av[1].equals("*")) + if(av[1].equals("*")) { databits.clear(); + } + else if (av[1].indexOf('-') > 0) { + String[] sp = av[1].split("-"); + int m0 = getIntValue(varvals, sp[0]); + int m1 = getIntValue(varvals, sp[1]); + for (int m = m0; m <= m1; m++) { + databits.set(m); + } + } else databits.set(getIntValue(varvals,av[1])); } @@ -853,8 +889,17 @@ public class HDBlockModels { blknames.add(getBlockName(modname, av[1])); } else if(av[0].equals("data")) { - if(av[1].equals("*")) + if(av[1].equals("*")) { databits.clear(); + } + else if (av[1].indexOf('-') > 0) { + String[] sp = av[1].split("-"); + int m0 = getIntValue(varvals, sp[0]); + int m1 = getIntValue(varvals, sp[1]); + for (int m = m0; m <= m1; m++) { + databits.set(m); + } + } else databits.set(getIntValue(varvals,av[1])); }