[fixes #969] Switched right/left tab + switched checkbox position + mirrored right side decal

This commit is contained in:
Sibo Van Gool 2021-07-25 23:46:31 +02:00
parent 34ddba4e2f
commit d9566dd558
3 changed files with 21 additions and 15 deletions

View File

@ -809,14 +809,14 @@ AppearanceCfg.lbl.texture.offset = Offset:
AppearanceCfg.lbl.texture.center = Center:
AppearanceCfg.lbl.texture.rotation = Rotation:
AppearanceCfg.lbl.texture.repeat = Repeat:
AppearanceCfg.lbl.InsideSameAsOutside = Same as outside
AppearanceCfg.lbl.InsideSameAsOutside = Same as inside
AppearanceCfg.lbl.LeftSideSameAsRightSide = Same as right side
AppearanceCfg.lbl.ttip.InsideSameAsOutside = Use the same appearance for the inside as for the outside
AppearanceCfg.lbl.ttip.LeftSideSameAsRightSide = Use the same appearance for the left side as for the right side
AppearanceCfg.lbl.ttip.LeftSideSameAsRightSide = Use the same appearance for the right side as for the left side
AppearanceCfg.lbl.EdgesSameAsInside = Use inside appearance for edges
AppearanceCfg.lbl.EdgesSameAsLeftSide = Use left side appearance for edges
AppearanceCfg.lbl.EdgesSameAsRightSide = Use right side appearance for edges
AppearanceCfg.lbl.ttip.EdgesSameAsInside = Use the inside appearance (checked) or outside appearance (unchecked) for the edges
AppearanceCfg.lbl.ttip.EdgesSameAsLeftSide = Use the left side appearance (checked) or right side appearance (unchecked) for the edges
AppearanceCfg.lbl.ttip.EdgesSameAsRightSide = Use the right side appearance (checked) or left side appearance (unchecked) for the edges
! Texture Wrap Modes
TextureWrap.Repeat = Repeat

View File

@ -313,10 +313,10 @@ public class AppearancePanel extends JPanel {
// Get translator keys
String tr_outside, tr_inside, tr_edges, tr_edges_ttip;
if (c instanceof FinSet) {
tr_outside = "RocketCompCfg.tab.RightSide";
tr_inside = "RocketCompCfg.tab.LeftSide";
tr_edges = "AppearanceCfg.lbl.EdgesSameAsLeftSide";
tr_edges_ttip = "AppearanceCfg.lbl.ttip.EdgesSameAsLeftSide";
tr_outside = "RocketCompCfg.tab.LeftSide";
tr_inside = "RocketCompCfg.tab.RightSide";
tr_edges = "AppearanceCfg.lbl.EdgesSameAsRightSide";
tr_edges_ttip = "AppearanceCfg.lbl.ttip.EdgesSameAsRightSide";
}
else {
tr_outside = "RocketCompCfg.tab.Outside";
@ -418,9 +418,9 @@ public class AppearancePanel extends JPanel {
});
materialDefault.setText(trans.get("AppearanceCfg.lbl.Usedefault"));
if (insideBuilder)
panel.add(materialDefault);
else
panel.add(materialDefault, "wrap");
else
panel.add(materialDefault);
// Get translation keys
String tr_insideOutside, tr_insideOutside_ttip;
@ -433,8 +433,8 @@ public class AppearancePanel extends JPanel {
tr_insideOutside_ttip = "AppearanceCfg.lbl.ttip.InsideSameAsOutside";
}
// Custom inside color
if (insideBuilder) {
// Custom inside color checkbox on outside tab
if (!insideBuilder) {
InsideColorComponentHandler handler = ((InsideColorComponent)c).getInsideColorComponentHandler();
BooleanModel b = new BooleanModel(handler.isInsideSameAsOutside());
JCheckBox customInside = new JCheckBox(b);

View File

@ -23,7 +23,13 @@ public class FinRenderer {
BoundingBox bounds = finSet.getInstanceBoundingBox();
gl.glMatrixMode(GL.GL_TEXTURE);
gl.glPushMatrix();
gl.glScaled(1 / (bounds.max.x - bounds.min.x), 1 / (bounds.max.y - bounds.min.y), 0);
// Mirror the right side fin texture to avoid e.g. mirrored decal text
if (which == Surface.INSIDE) {
gl.glScaled(-1 / (bounds.max.x - bounds.min.x), 1 / (bounds.max.y - bounds.min.y), 0);
}
else {
gl.glScaled(1 / (bounds.max.x - bounds.min.x), 1 / (bounds.max.y - bounds.min.y), 0);
}
gl.glTranslated(-bounds.min.x, -bounds.min.y - finSet.getBodyRadius(), 0);
gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
@ -62,7 +68,7 @@ public class FinRenderer {
GLU.gluTessCallback(tobj, GLU.GLU_TESS_END, cb);
// fin side: +z
if (which == Surface.OUTSIDE) {
if (which == Surface.INSIDE) { // Right side
GLU.gluTessBeginPolygon(tobj, null);
GLU.gluTessBeginContour(tobj);
gl.glNormal3f(0, 0, 1);
@ -78,7 +84,7 @@ public class FinRenderer {
}
// fin side: -z
if (which == Surface.INSIDE) {
if (which == Surface.OUTSIDE) { // Left side
GLU.gluTessBeginPolygon(tobj, null);
GLU.gluTessBeginContour(tobj);
gl.glNormal3f(0, 0, -1);