Skip to content

Commit c4b8bc3

Browse files
committed
v0.16.1.0-rc2 - PMW 0.16 Update
- Removed PMWSavedData - Added RadarMode#isCustom - Added a bunch of IRadarOverlay helper methods for easier pose management - Added a new debug overlay when the Debug option is on - Disabled the transparency config option - Changed how RadarOverlays are registered. No longer needs a supplier for registration - Added ability to unregister overlays at any time by its ID - Added some helper methods to RadarRenderData - Fix Darken Biomes on Radar option - Fix PMW debugging modes - Switch from RenderType#entityCutout to a custom one with no culling for rendering on both sides Took 3 hours 14 minutes
1 parent ff6ad90 commit c4b8bc3

File tree

15 files changed

+468
-211
lines changed

15 files changed

+468
-211
lines changed

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ parchment_mappings_version=2024.11.17
1717
mod_id=pmweatherapi
1818
mod_name=PMWeatherAPI
1919
mod_license=GNU GPL 3.0
20-
mod_version=0.16.1.0-rc1
20+
mod_version=0.16.1.0-rc2
2121
mod_group_id=net.nullved
2222
mod_authors=nullved
2323
mod_description=An API for interfacing with ProtoManly's Weather Mod
2424

2525
# Dependencies
2626
pmweather_version=0.16.1
27-
pmweather_version_range=[0.16.1-1.21.1-alpha,0.16.999-1.21.1-alpha)
27+
pmweather_version_range=[0.16.0-1.21.1-alpha,0.16.999-1.21.1-alpha)

src/main/java/net/nullved/pmweatherapi/PMWeatherAPI.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import net.nullved.pmweatherapi.client.render.radar.RadarOverlays;
2222
import net.nullved.pmweatherapi.config.PMWClientConfig;
2323
import net.nullved.pmweatherapi.data.PMWStorages;
24-
import net.nullved.pmweatherapi.example.ExampleOverlay;
2524
import net.nullved.pmweatherapi.metar.MetarServerStorage;
2625
import net.nullved.pmweatherapi.metar.MetarStorage;
2726
import net.nullved.pmweatherapi.metar.MetarStorageData;
@@ -86,14 +85,12 @@ private void registerPayloads(RegisterPayloadHandlersEvent event) {
8685
}
8786

8887
private void clientSetup(FMLClientSetupEvent event) {
89-
//RadarMode.removeBaseRendering(true);
90-
9188
PMWClientStorages.registerStorage(RadarStorage.ID, RadarClientStorage.class, RadarClientStorage::new);
9289
PMWClientStorages.registerStorage(MetarStorage.ID, MetarClientStorage.class, MetarClientStorage::new);
9390
PMWClientStorages.registerStorage(WSRStorage.ID, WSRClientStorage.class, WSRClientStorage::new);
9491

95-
RadarOverlays.registerOverlay(() -> IDOverlay.INSTANCE);
96-
// RadarOverlays.registerOverlay(() -> ExampleOverlay.INSTANCE);
92+
RadarOverlays.registerOverlay(IDOverlay.INSTANCE);
93+
// RadarOverlays.registerOverlay(ExampleOverlay.INSTANCE);
9794
}
9895
public static ResourceLocation rl(String path) {
9996
return ResourceLocation.fromNamespaceAndPath(MODID, path);
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package net.nullved.pmweatherapi.client.render;
2+
3+
import com.mojang.blaze3d.vertex.PoseStack;
4+
import com.mojang.math.Axis;
5+
import net.nullved.pmweatherapi.PMWeatherAPI;
6+
import net.nullved.pmweatherapi.client.render.radar.IRadarOverlay;
7+
import net.nullved.pmweatherapi.radar.NearbyRadars;
8+
9+
public class DebugOverlay implements IRadarOverlay {
10+
public static final IRadarOverlay INSTANCE = new DebugOverlay();
11+
12+
@Override
13+
public void render(boolean canRender, RadarRenderData radarRenderData, Object... args) {
14+
NearbyRadars.client().forRadarNearBlock(radarRenderData.radarPos(), radarRenderData.simSize(), bp -> {
15+
PoseStack pose = radarRenderData.poseStack();
16+
pose.pushPose();
17+
placeOnRadar(bp.getCenter(), pose, radarRenderData);
18+
scale(pose, 0.05f);
19+
renderTextureUpwards(PMWeatherAPI.rl("textures/radar/test1.png"), radarRenderData, pose);
20+
21+
pose.translate(0, 1, 0);
22+
renderTexture(PMWeatherAPI.rl("textures/radar/test2.png"), radarRenderData, pose);
23+
pose.mulPose(Axis.YP.rotationDegrees(90));
24+
renderTexture(PMWeatherAPI.rl("textures/radar/test2.png"), radarRenderData, pose);
25+
pose.popPose();
26+
});
27+
}
28+
29+
@Override
30+
public String getModID() {
31+
return PMWeatherAPI.MODID;
32+
}
33+
34+
@Override
35+
public String getIDPath() {
36+
return "debug";
37+
}
38+
}

src/main/java/net/nullved/pmweatherapi/client/render/IDOverlay.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ public void render(boolean canRender, RadarRenderData radarRenderData, Object...
3636
float scale = radarRenderData.sizeRenderDiameter() / 3.0F;
3737

3838
poseStack.pushPose();
39-
poseStack.translate((side.x * scale) - 0.5F * (scale - 1), 1.055f, (side.z * scale) - 0.5F * (scale - 1));
39+
poseStack.translate((side.x * scale) - 0.5F * (scale - 1) - 0.5F, 0.005f, (side.z * scale) - 0.5F * (scale - 1) - 0.5F);
4040
poseStack.mulPose(Axis.YN.rotationDegrees(side.rotation));
4141
poseStack.mulPose(Axis.XP.rotationDegrees(90));
42-
poseStack.scale(0.01f, 0.01f, 0.01f);
42+
poseStack.scale(0.01F, 0.01F, 0.01F);
43+
poseStack.scale(scale, scale, scale);
4344

4445
renderText(Component.literal(mode.getId().toString()), radarRenderData, poseStack);
4546

@@ -48,13 +49,13 @@ public void render(boolean canRender, RadarRenderData radarRenderData, Object...
4849

4950
float lineHeight = 8.0f;
5051
float offset = lineHeight;
51-
for (Supplier<? extends IRadarOverlay> overlay: RadarOverlays.getOverlays()) {
52+
for (IRadarOverlay overlay: RadarOverlays.getOverlays()) {
5253
poseStack.pushPose();
5354
poseStack.translate(0, 0, offset);
5455
poseStack.scale(0.6f, 0.6f, 0.6f);
5556
poseStack.mulPose(Axis.XP.rotationDegrees(90));
5657

57-
renderText(Component.literal(overlay.get().getID().toString()).withColor(0xBBBBBB), radarRenderData, poseStack);
58+
renderText(Component.literal(overlay.getID().toString()).withColor(0xBBBBBB), radarRenderData, poseStack);
5859

5960
poseStack.popPose();
6061
offset += lineHeight * 0.6f;

src/main/java/net/nullved/pmweatherapi/client/render/RadarRenderData.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.mojang.blaze3d.vertex.PoseStack;
44
import dev.protomanly.pmweather.block.entity.RadarBlockEntity;
55
import net.minecraft.client.renderer.MultiBufferSource;
6-
import net.minecraft.world.level.block.entity.BlockEntity;
6+
import net.minecraft.core.BlockPos;
77

88
/**
99
* A wrapper class to be passed to {@link RadarRenderData}
@@ -18,4 +18,30 @@
1818
* @since 0.14.15.2
1919
*/
2020
public record RadarRenderData(RadarBlockEntity blockEntity, float sizeRenderDiameter, float simSize, float partialTicks, PoseStack poseStack, MultiBufferSource multiBufferSource, int combinedLightIn, int combinedOverlayIn) {
21-
}
21+
/**
22+
* Helper method to get the {@link BlockPos} of the {@link RadarBlockEntity}
23+
* @return The radar's {@link BlockPos}
24+
* @since 0.16.1.0-rc2
25+
*/
26+
public BlockPos radarPos() {
27+
return this.blockEntity.getBlockPos();
28+
}
29+
30+
/**
31+
* Helper method to get the x-position of the {@link RadarBlockEntity}
32+
* @return The radar's x-position
33+
* @since 0.16.1.0-rc2
34+
*/
35+
public int radarX() {
36+
return radarPos().getX();
37+
}
38+
39+
/**
40+
* Helper method to get the z-position of the {@link RadarBlockEntity}
41+
* @return The radar's z-position
42+
* @since 0.16.1.0-rc2
43+
*/
44+
public int radarZ() {
45+
return radarPos().getZ();
46+
}
47+
}

0 commit comments

Comments
 (0)