mirror of https://github.com/webbukkit/dynmap.git
39 lines
1.3 KiB
Java
39 lines
1.3 KiB
Java
package org.dynmap.hdmap;
|
|
|
|
import java.util.BitSet;
|
|
|
|
import org.dynmap.renderer.DynmapBlockState;
|
|
|
|
public abstract class HDBlockModel {
|
|
private String blockset;
|
|
/**
|
|
* Block definition - positions correspond to Bukkit coordinates (+X is south, +Y is up, +Z is west)
|
|
* @param blockname - block name
|
|
* @param databits - bitmap of block data bits matching this model (bit N is set if data=N would match)
|
|
* @param blockset - ID of block definition set
|
|
*/
|
|
protected HDBlockModel(String blockname, BitSet databits, String blockset) {
|
|
this.blockset = blockset;
|
|
DynmapBlockState bblk = DynmapBlockState.getBaseStateByName(blockname);
|
|
if (bblk.isNotAir()) {
|
|
for (int i = 0; i < bblk.getStateCount(); i++) {
|
|
if (databits.isEmpty() || databits.get(i)) {
|
|
DynmapBlockState bs = bblk.getState(i);
|
|
HDBlockModel prev = HDBlockModels.models_by_id_data.put(bs.globalStateIndex, this);
|
|
if((prev != null) && (prev != this)) {
|
|
prev.removed(bs);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public String getBlockSet() {
|
|
return blockset;
|
|
}
|
|
|
|
public abstract int getTextureCount();
|
|
|
|
public void removed(DynmapBlockState blk) {
|
|
}
|
|
}
|