BlockFactory: fixed 0 being assumed to be default if used

this defeated the whole point of adding this code ...
This commit is contained in:
Dylan K. Taylor 2018-10-20 21:42:34 +01:00
parent 159c3a1a91
commit 742fbc25c3

View File

@ -467,9 +467,8 @@ class BlockFactory{
if(!$override and self::isRegistered($id, $variant)){
throw new \InvalidArgumentException("Block registration conflicts with an existing block");
}
self::fillStaticArrays(($id << 4) | $variant, $block); //register default state mapped to variant, for blocks which don't use 0 as valid state
for($m = $variant + 1; $m <= ($variant | $stateMask); ++$m){
for($m = $variant; $m <= ($variant | $stateMask); ++$m){
if(($m & ~$stateMask) !== $variant){
continue;
}
@ -486,6 +485,10 @@ class BlockFactory{
self::fillStaticArrays($index, $v);
}
}
if(!self::isRegistered($id, $variant)){
self::fillStaticArrays(($id << 4) | $variant, $block); //register default state mapped to variant, for blocks which don't use 0 as valid state
}
}
private static function fillStaticArrays(int $index, Block $block) : void{