Skip to content

Commit 007f716

Browse files
committed
Remove abstraction
1 parent 7351b1f commit 007f716

File tree

8 files changed

+41
-82
lines changed

8 files changed

+41
-82
lines changed

src/main/java/btw/lowercase/optiboxes/OptiBoxesClient.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package btw.lowercase.optiboxes;
22

33
import btw.lowercase.optiboxes.config.OptiBoxesConfig;
4-
import btw.lowercase.optiboxes.skybox.OptiFineCustomSkybox;
4+
import btw.lowercase.optiboxes.skybox.OptiFineSkybox;
55
import btw.lowercase.optiboxes.skybox.SkyboxManager;
66
import btw.lowercase.optiboxes.utils.CommonUtils;
77
import btw.lowercase.optiboxes.utils.OptiFineResourceHelper;
8-
import btw.lowercase.optiboxes.utils.api.AbstractSkybox;
98
import com.google.gson.JsonArray;
109
import com.google.gson.JsonObject;
1110
import com.mojang.serialization.JsonOps;
@@ -129,16 +128,16 @@ private void convertNamespace(OptiFineResourceHelper optiFineResourceHelper, Str
129128
JsonObject overworldJson = new JsonObject();
130129
overworldJson.add("layers", overworldLayers);
131130
overworldJson.addProperty("world", "minecraft:overworld");
132-
AbstractSkybox abstractSkybox = OptiFineCustomSkybox.CODEC.decode(JsonOps.INSTANCE, overworldJson).getOrThrow().getFirst();
133-
SkyboxManager.INSTANCE.addSkybox(ResourceLocation.fromNamespaceAndPath(MOD_ID, "native-optifine-custom-sky-overworld"), abstractSkybox);
131+
OptiFineSkybox optiFineSkybox = OptiFineSkybox.CODEC.decode(JsonOps.INSTANCE, overworldJson).getOrThrow().getFirst();
132+
SkyboxManager.INSTANCE.addSkybox(ResourceLocation.fromNamespaceAndPath(MOD_ID, "native-optifine-custom-sky-overworld"), optiFineSkybox);
134133
}
135134

136135
if (!endLayers.isEmpty()) {
137136
JsonObject endJson = new JsonObject();
138137
endJson.add("layers", endLayers);
139138
endJson.addProperty("world", "minecraft:the_end");
140-
AbstractSkybox abstractSkybox = OptiFineCustomSkybox.CODEC.decode(JsonOps.INSTANCE, endJson).getOrThrow().getFirst();
141-
SkyboxManager.INSTANCE.addSkybox(ResourceLocation.fromNamespaceAndPath(MOD_ID, "native-optifine-custom-sky-end"), abstractSkybox);
139+
OptiFineSkybox optiFineSkybox = OptiFineSkybox.CODEC.decode(JsonOps.INSTANCE, endJson).getOrThrow().getFirst();
140+
SkyboxManager.INSTANCE.addSkybox(ResourceLocation.fromNamespaceAndPath(MOD_ID, "native-optifine-custom-sky-end"), optiFineSkybox);
142141
}
143142
}
144143
}

src/main/java/btw/lowercase/optiboxes/config/OptiBoxesConfig.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,23 @@
1616

1717
public class OptiBoxesConfig {
1818
private static final ConfigClassHandler<OptiBoxesConfig> CONFIG =
19-
ConfigClassHandler.createBuilder(OptiBoxesConfig.class)
20-
.serializer(config ->
21-
GsonConfigSerializerBuilder.create(config)
22-
.setPath(YACLPlatform.getConfigDir().resolve(OptiBoxesClient.MOD_ID + ".json"))
23-
.build()
24-
).build();
19+
ConfigClassHandler.createBuilder(OptiBoxesConfig.class).serializer(config ->
20+
GsonConfigSerializerBuilder.create(config)
21+
.setPath(YACLPlatform.getConfigDir().resolve(OptiBoxesClient.MOD_ID + ".json"))
22+
.build()).build();
2523

2624
@SerialEntry
2725
public boolean enabled = true;
26+
2827
@SerialEntry
2928
public boolean processOptiFine = true;
29+
3030
@SerialEntry
3131
public boolean processMCPatcher = false;
32+
3233
@SerialEntry
3334
public boolean renderSunMoonStars = true;
35+
3436
@SerialEntry
3537
public boolean useNewSunriseRendering = false;
3638

src/main/java/btw/lowercase/optiboxes/mixins/MixinLevelRenderer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package btw.lowercase.optiboxes.mixins;
22

33
import btw.lowercase.optiboxes.config.OptiBoxesConfig;
4+
import btw.lowercase.optiboxes.skybox.OptiFineSkybox;
45
import btw.lowercase.optiboxes.skybox.SkyboxManager;
5-
import btw.lowercase.optiboxes.utils.api.AbstractSkybox;
66
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
77
import com.mojang.blaze3d.vertex.PoseStack;
88
import net.minecraft.client.Minecraft;
@@ -28,10 +28,10 @@ public abstract class MixinLevelRenderer {
2828

2929
@Inject(method = "method_62215", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;setShaderFog(Lnet/minecraft/client/renderer/FogParameters;)V", shift = At.Shift.AFTER), cancellable = true)
3030
private void optiboxes$renderSkyboxes(FogParameters fogParameters, DimensionSpecialEffects.SkyType skyType, float tickDelta, DimensionSpecialEffects dimensionSpecialEffects, CallbackInfo ci) {
31-
List<AbstractSkybox> activeSkyboxes = SkyboxManager.INSTANCE.getActiveSkyboxes();
31+
List<OptiFineSkybox> activeSkyboxes = SkyboxManager.INSTANCE.getActiveSkyboxes();
3232
if (OptiBoxesConfig.instance().enabled && !activeSkyboxes.isEmpty()) {
33-
for (AbstractSkybox abstractSkybox : activeSkyboxes) {
34-
abstractSkybox.render(
33+
for (OptiFineSkybox optiFineSkybox : activeSkyboxes) {
34+
optiFineSkybox.render(
3535
this.skyRenderer,
3636
new PoseStack(),
3737
tickDelta,

src/main/java/btw/lowercase/optiboxes/skybox/OptiFineCustomSkybox.java renamed to src/main/java/btw/lowercase/optiboxes/skybox/OptiFineSkybox.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package btw.lowercase.optiboxes.skybox;
22

33
import btw.lowercase.optiboxes.config.OptiBoxesConfig;
4-
import btw.lowercase.optiboxes.utils.api.AbstractSkybox;
54
import btw.lowercase.optiboxes.utils.components.Blend;
65
import com.google.common.collect.ImmutableList;
76
import com.mojang.blaze3d.platform.GlStateManager;
@@ -22,23 +21,22 @@
2221

2322
import java.util.List;
2423

25-
public class OptiFineCustomSkybox implements AbstractSkybox {
26-
public static final Codec<OptiFineCustomSkybox> CODEC = RecordCodecBuilder.create(instance -> instance.group(
27-
OptiFineSkyLayer.CODEC.listOf().optionalFieldOf("layers", ImmutableList.of()).forGetter(OptiFineCustomSkybox::getLayers),
28-
Level.RESOURCE_KEY_CODEC.fieldOf("world").forGetter(OptiFineCustomSkybox::getWorldResourceKey)
29-
).apply(instance, OptiFineCustomSkybox::new));
24+
public class OptiFineSkybox {
25+
public static final Codec<OptiFineSkybox> CODEC = RecordCodecBuilder.create(instance -> instance.group(
26+
OptiFineSkyLayer.CODEC.listOf().optionalFieldOf("layers", ImmutableList.of()).forGetter(OptiFineSkybox::getLayers),
27+
Level.RESOURCE_KEY_CODEC.fieldOf("world").forGetter(OptiFineSkybox::getWorldResourceKey)
28+
).apply(instance, OptiFineSkybox::new));
3029

3130
private final List<OptiFineSkyLayer> layers;
3231
private final ResourceKey<Level> worldResourceKey;
3332
private ClientLevel level = Minecraft.getInstance().level;
3433
private boolean active = true;
3534

36-
public OptiFineCustomSkybox(List<OptiFineSkyLayer> layers, ResourceKey<Level> worldResourceKey) {
35+
public OptiFineSkybox(List<OptiFineSkyLayer> layers, ResourceKey<Level> worldResourceKey) {
3736
this.layers = layers;
3837
this.worldResourceKey = worldResourceKey;
3938
}
4039

41-
@Override
4240
public void render(SkyRenderer skyRenderer, PoseStack poseStack, float tickDelta, Camera camera, MultiBufferSource.BufferSource bufferSource, FogParameters fogParameters) {
4341
this.level = (ClientLevel) camera.getEntity().getCommandSenderWorld();
4442
this.renderSky(skyRenderer, poseStack, tickDelta, camera, fogParameters, bufferSource);
@@ -105,7 +103,7 @@ public void renderSky(SkyRenderer skyRenderer, PoseStack poseStack, float tickDe
105103
{
106104
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
107105
poseStack.pushPose();
108-
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, rainLevel);
106+
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, rainLevel); // TODO/NOTE: needed?
109107
this.render(poseStack, tickDelta);
110108
poseStack.popPose();
111109
if (OptiBoxesConfig.instance().renderSunMoonStars) {
@@ -149,7 +147,6 @@ private void render(PoseStack poseStack, float tickDelta) {
149147
Blend.ADD.apply(1.0F - rainLevel);
150148
}
151149

152-
@Override
153150
public void tick(ClientLevel level) {
154151
this.active = true;
155152
if (!level.dimension().equals(this.worldResourceKey)) {
@@ -160,7 +157,6 @@ public void tick(ClientLevel level) {
160157
}
161158
}
162159

163-
@Override
164160
public boolean isActive() {
165161
return this.active;
166162
}
Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package btw.lowercase.optiboxes.skybox;
22

3-
import btw.lowercase.optiboxes.utils.api.AbstractSkybox;
4-
import btw.lowercase.optiboxes.utils.api.AbstractSkyboxManager;
53
import com.google.common.base.Preconditions;
64
import com.google.common.collect.Iterables;
75
import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap;
@@ -14,45 +12,41 @@
1412
import java.util.List;
1513
import java.util.Map;
1614

17-
public class SkyboxManager implements AbstractSkyboxManager {
15+
public class SkyboxManager {
1816
public static final SkyboxManager INSTANCE = new SkyboxManager();
1917

2018
private final List<ResourceLocation> preloadedTextures = new ArrayList<>();
21-
private final Map<ResourceLocation, AbstractSkybox> skyboxMap = new Object2ObjectLinkedOpenHashMap<>();
22-
private final Map<ResourceLocation, AbstractSkybox> permanentSkyboxMap = new Object2ObjectLinkedOpenHashMap<>();
23-
private final List<AbstractSkybox> activeAbstractSkyboxes = new LinkedList<>();
19+
private final Map<ResourceLocation, OptiFineSkybox> skyboxMap = new Object2ObjectLinkedOpenHashMap<>();
20+
private final Map<ResourceLocation, OptiFineSkybox> permanentSkyboxMap = new Object2ObjectLinkedOpenHashMap<>();
21+
private final List<OptiFineSkybox> activeSkyboxes = new LinkedList<>();
2422

25-
@Override
26-
public void addSkybox(ResourceLocation resourceLocation, AbstractSkybox abstractSkybox) {
23+
public void addSkybox(ResourceLocation resourceLocation, OptiFineSkybox optiFineSkybox) {
2724
Preconditions.checkNotNull(resourceLocation, "Identifier was null");
28-
Preconditions.checkNotNull(abstractSkybox, "Skybox was null");
29-
this.skyboxMap.put(resourceLocation, abstractSkybox);
25+
Preconditions.checkNotNull(optiFineSkybox, "Skybox was null");
26+
this.skyboxMap.put(resourceLocation, optiFineSkybox);
3027
}
3128

32-
@Override
3329
public void clearSkyboxes() {
3430
this.skyboxMap.clear();
35-
this.activeAbstractSkyboxes.clear();
31+
this.activeSkyboxes.clear();
3632
this.preloadedTextures.forEach(Minecraft.getInstance().getTextureManager()::release);
3733
this.preloadedTextures.clear();
3834
}
3935

40-
@Override
4136
public void tick(ClientLevel level) {
42-
for (AbstractSkybox abstractSkybox : Iterables.concat(this.skyboxMap.values(), this.permanentSkyboxMap.values())) {
43-
abstractSkybox.tick(level);
37+
for (OptiFineSkybox optiFineSkybox : Iterables.concat(this.skyboxMap.values(), this.permanentSkyboxMap.values())) {
38+
optiFineSkybox.tick(level);
4439
}
4540

46-
this.activeAbstractSkyboxes.removeIf(abstractSkybox -> !abstractSkybox.isActive());
47-
for (AbstractSkybox abstractSkybox : Iterables.concat(this.skyboxMap.values(), this.permanentSkyboxMap.values())) {
48-
if (!this.activeAbstractSkyboxes.contains(abstractSkybox) && abstractSkybox.isActive()) {
49-
this.activeAbstractSkyboxes.add(abstractSkybox);
41+
this.activeSkyboxes.removeIf(abstractSkybox -> !abstractSkybox.isActive());
42+
for (OptiFineSkybox optiFineSkybox : Iterables.concat(this.skyboxMap.values(), this.permanentSkyboxMap.values())) {
43+
if (!this.activeSkyboxes.contains(optiFineSkybox) && optiFineSkybox.isActive()) {
44+
this.activeSkyboxes.add(optiFineSkybox);
5045
}
5146
}
5247
}
5348

54-
@Override
55-
public List<AbstractSkybox> getActiveSkyboxes() {
56-
return this.activeAbstractSkyboxes;
49+
public List<OptiFineSkybox> getActiveSkyboxes() {
50+
return this.activeSkyboxes;
5751
}
5852
}

src/main/java/btw/lowercase/optiboxes/utils/api/AbstractSkybox.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/main/java/btw/lowercase/optiboxes/utils/api/AbstractSkyboxManager.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/main/java/btw/lowercase/optiboxes/utils/components/Loop.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package btw.lowercase.optiboxes.utils.components;
22

3+
import btw.lowercase.optiboxes.utils.CommonUtils;
34
import com.google.common.collect.ImmutableList;
45
import com.mojang.serialization.Codec;
56
import com.mojang.serialization.codecs.RecordCodecBuilder;
6-
import btw.lowercase.optiboxes.utils.CommonUtils;
77

88
import java.util.List;
99

0 commit comments

Comments
 (0)