mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-09 21:11:50 +00:00
add 'offset', 'bits' properties & fix is_solid_at
This commit is contained in:
parent
29021d1178
commit
7e0b58d96b
3 changed files with 22 additions and 5 deletions
|
|
@ -161,6 +161,8 @@ struct Variant {
|
|||
};
|
||||
|
||||
struct Variants {
|
||||
uint8_t offset;
|
||||
uint8_t mask;
|
||||
/// First variant is copy of Block::defaults
|
||||
util::stack_vector<Variant, BLOCK_MAX_VARIANTS> variants {};
|
||||
};
|
||||
|
|
@ -292,10 +294,12 @@ public:
|
|||
|
||||
void cloneTo(Block& dst);
|
||||
|
||||
constexpr const Variant& getVariant(uint8_t bits) const {
|
||||
if (bits == 0 || variants == nullptr)
|
||||
constexpr const Variant& getVariant(uint8_t userbits) const {
|
||||
if (userbits == 0 || variants == nullptr)
|
||||
return defaults;
|
||||
return variants->variants[bits % BLOCK_MAX_VARIANTS];
|
||||
return variants->variants[
|
||||
(userbits >> variants->offset) & variants->mask
|
||||
];
|
||||
}
|
||||
|
||||
constexpr const BlockModel& getModel(uint8_t bits) const {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue