Skip to content

Commit 185ca07

Browse files
committed
2.11.24 - Fix defautl variant uv transform being overriden by animation ones when not different.
1 parent fd00a31 commit 185ca07

File tree

4 files changed

+40
-15
lines changed

4 files changed

+40
-15
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ plugins {
1111
}
1212

1313
group = "gg.generations"
14-
version = "2.11.23"
14+
version = "2.11.24"
1515

1616
java.toolchain.languageVersion.set(JavaLanguageVersion.of(17))
1717

src/library/java/gg/generations/rarecandy/pokeutils/PixelAsset.java

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,31 @@ public class PixelAsset {
4040
if (json.getAsJsonArray().size() == 2) {
4141
vec.set(json.getAsJsonArray().get(0).getAsFloat(), json.getAsJsonArray().get(1).getAsFloat());
4242
}
43+
} else if(json.isJsonObject()) {
44+
var obj = json.getAsJsonObject();
45+
46+
if(obj.has("x")) vec.x = obj.getAsJsonPrimitive("x").getAsFloat();
47+
if(obj.has("y")) vec.y = obj.getAsJsonPrimitive("y").getAsFloat();
4348
}
4449

4550
return vec;
4651
})
47-
.registerTypeAdapter(VariantDetails.class, new GenericJsonThing<VariantDetails>(new BiFunction<VariantDetails, JsonSerializationContext, JsonElement>() {
48-
@Override
49-
public JsonElement apply(VariantDetails variantDetails, JsonSerializationContext ctx) {
50-
var obj = new JsonObject();
51-
if (variantDetails.material() != null) obj.addProperty("material", variantDetails.material());
52-
if (variantDetails.hide() != null) obj.addProperty("hide", variantDetails.hide());
53-
if (variantDetails.offset() != null && variantDetails.offset() != AnimationController.NO_OFFSET)
54-
obj.add("offset", ctx.serialize(variantDetails.offset()));
52+
.registerTypeAdapter(VariantDetails.class, new GenericJsonThing<VariantDetails>((variantDetails, ctx) -> {
53+
var obj = new JsonObject();
54+
if (variantDetails.material() != null) obj.addProperty("material", variantDetails.material());
55+
if (variantDetails.hide() != null) obj.addProperty("hide", variantDetails.hide());
56+
if (variantDetails.offset() != null && variantDetails.offset() != AnimationController.NO_OFFSET)
57+
obj.add("transform", ctx.serialize(variantDetails.offset()));
5558

56-
return obj;
57-
}
59+
return obj;
5860
}, new BiFunction<JsonElement, JsonDeserializationContext, VariantDetails>() {
5961
@Override
6062
public VariantDetails apply(JsonElement jsonElement, JsonDeserializationContext ctx) {
6163
var obj = jsonElement.getAsJsonObject();
6264
var material = obj.has("material") ? obj.getAsJsonPrimitive("material").getAsString() : null;
6365
var hide = obj.has("hide") ? obj.getAsJsonPrimitive("hide").getAsBoolean() : null;
6466
Transform offset = obj.has("offset") ? ctx.deserialize(obj.get("offset"), Transform.class) : null;
67+
offset = offset == null && obj.has("transform") ? ctx.deserialize(obj.get("transform"), Transform.class) : null;
6568
return new VariantDetails(material, hide, offset);
6669
}
6770
}))
@@ -95,8 +98,15 @@ public VariantDetails apply(JsonElement jsonElement, JsonDeserializationContext
9598
if (json.getAsJsonArray().size() == 3) {
9699
vec.set(json.getAsJsonArray().get(0).getAsFloat(), json.getAsJsonArray().get(1).getAsFloat(), json.getAsJsonArray().get(2).getAsFloat());
97100
}
101+
} else if(json.isJsonObject()) {
102+
var obj = json.getAsJsonObject();
103+
104+
if(obj.has("x")) vec.x = obj.getAsJsonPrimitive("x").getAsFloat();
105+
if(obj.has("y")) vec.y = obj.getAsJsonPrimitive("y").getAsFloat();
106+
if(obj.has("z")) vec.y = obj.getAsJsonPrimitive("z").getAsFloat();
98107
}
99108

109+
100110
return vec;
101111
}))
102112
.registerTypeAdapter(Quaternionf.class, new GenericJsonThing<Quaternionf>((json, ctx) -> {

src/library/java/gg/generations/rarecandy/renderer/animation/Transform.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,20 @@
33
import org.joml.Vector2f;
44

55
public record Transform(Vector2f scale, Vector2f offset) {
6+
public static final Vector2f DEFAULT_SCALE = new Vector2f(1f, 1f);
7+
public static final Vector2f DEFAULT_OFFSET = new Vector2f(0f, 0f);
8+
69
public Transform() {
710
this(new Vector2f());
811
}
912

1013
public Transform(Vector2f offset) {
1114
this(new Vector2f(1f, 1f), offset);
1215
}
16+
17+
public boolean isUnit() {
18+
return offset.x == 0f && offset.y == 0f && scale.x == 1f && scale.y == 1f;
19+
}
1320
}
1421

1522

src/main/java/gg/generations/rarecandy/tools/gui/GuiPipelines.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,33 @@ public class GuiPipelines {
3434
if (ctx.instance() instanceof AnimatedObjectInstance instance) {
3535
var t = instance.getTransform(ctx.getMaterial().getMaterialName());
3636

37-
if (t != null) {
37+
if (t != null && !t.isUnit()) {
3838
transform = t;
3939
}
4040
}
4141

42-
ctx.uniform().uploadVec2f(transform.offset());
42+
var offset = transform.offset();
43+
44+
if(offset == null) offset = Transform.DEFAULT_OFFSET;
45+
46+
ctx.uniform().uploadVec2f(offset);
4347
})
4448
.supplyUniform("scale", ctx -> {
4549
Transform transform = ctx.object().getTransform(ctx.instance().variant());
4650

4751
if (ctx.instance() instanceof AnimatedObjectInstance instance) {
4852
var t = instance.getTransform(ctx.getMaterial().getMaterialName());
4953

50-
if (t != null) {
54+
if (t != null && !t.isUnit()) {
5155
transform = t;
5256
}
5357
}
5458

55-
ctx.uniform().uploadVec2f(transform.scale());
59+
var scale = transform.scale();
60+
61+
if(scale == null) scale = Transform.DEFAULT_SCALE;
62+
63+
ctx.uniform().uploadVec2f(scale);
5664
})
5765
.prePostDraw(material -> {
5866
if(material.getBoolean("disableDepth")) {

0 commit comments

Comments
 (0)