Skip to content

Commit 7f4dff5

Browse files
committed
feat: remove blueprint reference from render for gc
1 parent bc9efbb commit 7f4dff5

File tree

4 files changed

+13
-20
lines changed

4 files changed

+13
-20
lines changed

api/src/main/java/kr/toxicity/model/api/data/blueprint/BlueprintTexture.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
*/
2626
public record BlueprintTexture(
2727
@NotNull String name,
28-
BufferedImage image,
28+
@NotNull BufferedImage image,
2929
int uvWidth,
3030
int uvHeight
3131
) {

api/src/main/java/kr/toxicity/model/api/data/renderer/ModelRenderer.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import kr.toxicity.model.api.BetterModel;
1111
import kr.toxicity.model.api.bone.BoneName;
1212
import kr.toxicity.model.api.data.blueprint.BlueprintAnimation;
13-
import kr.toxicity.model.api.data.blueprint.ModelBlueprint;
1413
import kr.toxicity.model.api.tracker.DummyTracker;
1514
import kr.toxicity.model.api.tracker.EntityTracker;
1615
import kr.toxicity.model.api.tracker.TrackerModifier;
@@ -26,7 +25,6 @@
2625
import java.util.Map;
2726
import java.util.Objects;
2827
import java.util.Optional;
29-
import java.util.Set;
3028
import java.util.function.Consumer;
3129
import java.util.stream.Stream;
3230

@@ -35,14 +33,16 @@
3533
/**
3634
* A blueprint renderer.
3735
*
38-
* @param parent parent blueprint
36+
* @param name name
3937
* @param type type
4038
* @param rendererGroups group map
39+
* @param animations animations
4140
*/
4241
public record ModelRenderer(
43-
@NotNull ModelBlueprint parent,
42+
@NotNull String name,
4443
@NotNull Type type,
45-
@NotNull @Unmodifiable Map<BoneName, RendererGroup> rendererGroups
44+
@NotNull @Unmodifiable Map<BoneName, RendererGroup> rendererGroups,
45+
@NotNull @Unmodifiable Map<String, BlueprintAnimation> animations
4646
) {
4747
/**
4848
* Gets a renderer group by tree
@@ -74,22 +74,14 @@ public record ModelRenderer(
7474
return rendererGroups.values().stream().flatMap(RendererGroup::flatten);
7575
}
7676

77-
/**
78-
* Gets all names of animation.
79-
* @return names
80-
*/
81-
public @NotNull @Unmodifiable Set<String> animations() {
82-
return parent.animations().keySet();
83-
}
84-
8577
/**
8678
* Gets blueprint animation by name
8779
*
8880
* @param name name
8981
* @return optional animation
9082
*/
9183
public @NotNull Optional<BlueprintAnimation> animation(@NotNull String name) {
92-
return Optional.ofNullable(parent.animations().get(name));
84+
return Optional.ofNullable(animations().get(name));
9385
}
9486

9587
/**
@@ -98,7 +90,7 @@ public record ModelRenderer(
9890
* @return name
9991
*/
10092
public @NotNull String name() {
101-
return parent.name();
93+
return name;
10294
}
10395

10496
//----- Dummy -----

core/src/main/kotlin/kr/toxicity/model/manager/CommandManagerImpl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ object CommandManagerImpl : CommandManager, GlobalManager {
6565
withAliases("t")
6666
withArguments(
6767
modelKeys,
68-
StringArgument("animation").suggestNullable { BetterModel.modelOrNull(it.previousArgs["model"] as String)?.animations() }
68+
StringArgument("animation").suggestNullable { BetterModel.modelOrNull(it.previousArgs["model"] as String)?.animations()?.keys }
6969
)
7070
withOptionalArguments(
7171
playerArgs,
@@ -92,7 +92,7 @@ object CommandManagerImpl : CommandManager, GlobalManager {
9292
withAliases("p")
9393
withArguments(
9494
limbKeys,
95-
StringArgument("animation").suggestNullable { BetterModel.limbOrNull(it.previousArgs["limb"] as String)?.animations() }
95+
StringArgument("animation").suggestNullable { BetterModel.limbOrNull(it.previousArgs["limb"] as String)?.animations()?.keys }
9696
)
9797
withOptionalArguments(
9898
StringArgument("loop_type").suggest(AnimationIterator.Type.entries.map { it.name.lowercase() }),

core/src/main/kotlin/kr/toxicity/model/manager/ModelManagerImpl.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,10 +303,11 @@ object ModelManagerImpl : ModelManager, GlobalManager {
303303
)
304304
}
305305
return ModelRenderer(
306-
this,
306+
name,
307307
type,
308308
group.filterIsInstance<BlueprintGroup>()
309-
.associate { it.name to it.parse() }
309+
.associate { it.name to it.parse() },
310+
animations
310311
)
311312
}
312313
}

0 commit comments

Comments
 (0)