mirror of
https://github.com/minetest/minetest.git
synced 2025-03-06 20:48:40 +01:00
transformNodeBox(): Rotate first by facedir
This commit is contained in:
parent
1e81c454c8
commit
966abc85da
1 changed files with 14 additions and 92 deletions
|
@ -187,122 +187,44 @@ void transformNodeBox(const MapNode &n, const NodeBox &nodebox,
|
||||||
if (nodebox.type == NODEBOX_LEVELED)
|
if (nodebox.type == NODEBOX_LEVELED)
|
||||||
box.MaxEdge.Y = (-0.5f + n.getLevel(nodemgr) / 64.0f) * BS;
|
box.MaxEdge.Y = (-0.5f + n.getLevel(nodemgr) / 64.0f) * BS;
|
||||||
|
|
||||||
switch (axisdir) {
|
if(facedir == 1) {
|
||||||
case 0:
|
|
||||||
if(facedir == 1)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXZBy(-90);
|
box.MinEdge.rotateXZBy(-90);
|
||||||
box.MaxEdge.rotateXZBy(-90);
|
box.MaxEdge.rotateXZBy(-90);
|
||||||
}
|
} else if(facedir == 2) {
|
||||||
else if(facedir == 2)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXZBy(180);
|
box.MinEdge.rotateXZBy(180);
|
||||||
box.MaxEdge.rotateXZBy(180);
|
box.MaxEdge.rotateXZBy(180);
|
||||||
}
|
} else if(facedir == 3) {
|
||||||
else if(facedir == 3)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXZBy(90);
|
box.MinEdge.rotateXZBy(90);
|
||||||
box.MaxEdge.rotateXZBy(90);
|
box.MaxEdge.rotateXZBy(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (axisdir) {
|
||||||
|
case 0:
|
||||||
break;
|
break;
|
||||||
case 1: // z+
|
case 1: // z+
|
||||||
box.MinEdge.rotateYZBy(90);
|
box.MinEdge.rotateYZBy(90);
|
||||||
box.MaxEdge.rotateYZBy(90);
|
box.MaxEdge.rotateYZBy(90);
|
||||||
if(facedir == 1)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXYBy(90);
|
|
||||||
box.MaxEdge.rotateXYBy(90);
|
|
||||||
}
|
|
||||||
else if(facedir == 2)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXYBy(180);
|
|
||||||
box.MaxEdge.rotateXYBy(180);
|
|
||||||
}
|
|
||||||
else if(facedir == 3)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXYBy(-90);
|
|
||||||
box.MaxEdge.rotateXYBy(-90);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 2: //z-
|
case 2: //z-
|
||||||
box.MinEdge.rotateYZBy(-90);
|
box.MinEdge.rotateYZBy(-90);
|
||||||
box.MaxEdge.rotateYZBy(-90);
|
box.MaxEdge.rotateYZBy(-90);
|
||||||
if(facedir == 1)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXYBy(-90);
|
|
||||||
box.MaxEdge.rotateXYBy(-90);
|
|
||||||
}
|
|
||||||
else if(facedir == 2)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXYBy(180);
|
|
||||||
box.MaxEdge.rotateXYBy(180);
|
|
||||||
}
|
|
||||||
else if(facedir == 3)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXYBy(90);
|
|
||||||
box.MaxEdge.rotateXYBy(90);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 3: //x+
|
case 3: //x+
|
||||||
box.MinEdge.rotateXYBy(-90);
|
box.MinEdge.rotateXYBy(-90);
|
||||||
box.MaxEdge.rotateXYBy(-90);
|
box.MaxEdge.rotateXYBy(-90);
|
||||||
if(facedir == 1)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateYZBy(90);
|
|
||||||
box.MaxEdge.rotateYZBy(90);
|
|
||||||
}
|
|
||||||
else if(facedir == 2)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateYZBy(180);
|
|
||||||
box.MaxEdge.rotateYZBy(180);
|
|
||||||
}
|
|
||||||
else if(facedir == 3)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateYZBy(-90);
|
|
||||||
box.MaxEdge.rotateYZBy(-90);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 4: //x-
|
case 4: //x-
|
||||||
box.MinEdge.rotateXYBy(90);
|
box.MinEdge.rotateXYBy(90);
|
||||||
box.MaxEdge.rotateXYBy(90);
|
box.MaxEdge.rotateXYBy(90);
|
||||||
if(facedir == 1)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateYZBy(-90);
|
|
||||||
box.MaxEdge.rotateYZBy(-90);
|
|
||||||
}
|
|
||||||
else if(facedir == 2)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateYZBy(180);
|
|
||||||
box.MaxEdge.rotateYZBy(180);
|
|
||||||
}
|
|
||||||
else if(facedir == 3)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateYZBy(90);
|
|
||||||
box.MaxEdge.rotateYZBy(90);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
box.MinEdge.rotateXYBy(-180);
|
box.MinEdge.rotateXYBy(-180);
|
||||||
box.MaxEdge.rotateXYBy(-180);
|
box.MaxEdge.rotateXYBy(-180);
|
||||||
if(facedir == 1)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXZBy(90);
|
|
||||||
box.MaxEdge.rotateXZBy(90);
|
|
||||||
}
|
|
||||||
else if(facedir == 2)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXZBy(180);
|
|
||||||
box.MaxEdge.rotateXZBy(180);
|
|
||||||
}
|
|
||||||
else if(facedir == 3)
|
|
||||||
{
|
|
||||||
box.MinEdge.rotateXZBy(-90);
|
|
||||||
box.MaxEdge.rotateXZBy(-90);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
box.repair();
|
box.repair();
|
||||||
boxes.push_back(box);
|
boxes.push_back(box);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue