Skip to content

Commit ff6ad90

Browse files
committed
v0.16.1.0-rc1 - PMW 0.16 Update
- Update to PMW 0.16 (no 0.16.0.X version since PMWAPI was not updated yet) - Add MIXED_REFLECTIVITY, SNOW_REFLECTIVITY, SST, and HURRICANE_WINDSPEED color maps - Add some more utility methods to IRadarOverlays - Renamed RenderData to RadarRenderData - RadarRenderData#blockEntity is now a RadarBlockEntity - Changed NearbyRadars#radarsNearBlock to use RadarStorage#getAllWithinRange - Added some more options - PMWClientStorages#RADAR_MODE_COLORS now uses a RadarBlockEntity as the key - Start transitioning from Colors to integers - Deprecated StormType in favor of PMW's StormType - Removed StringValue and StringProperty - Removed SolarEverest - and more... Took 5 hours 26 minutes
1 parent da0ef5a commit ff6ad90

29 files changed

Lines changed: 1133 additions & 1025 deletions

gradle.properties

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
org.gradle.jvmargs=-Xmx2G
1+
org.gradle.jvmargs=-Xmx8G -XX:+UseCompressedOops
22
org.gradle.daemon=true
33
org.gradle.parallel=true
44
org.gradle.caching=true
@@ -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.15.3.3-rc3
20+
mod_version=0.16.1.0-rc1
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
26-
pmweather_version=0.15.3
27-
pmweather_version_range=[0.15.3-1.21.1-alpha,0.15.999-1.21.1-alpha)
26+
pmweather_version=0.16.1
27+
pmweather_version_range=[0.16.1-1.21.1-alpha,0.16.999-1.21.1-alpha)

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

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import net.neoforged.bus.api.IEventBus;
66
import net.neoforged.fml.ModContainer;
77
import net.neoforged.fml.ModList;
8-
import net.neoforged.fml.ModLoader;
98
import net.neoforged.fml.common.Mod;
109
import net.neoforged.fml.config.ModConfig;
1110
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
@@ -19,25 +18,21 @@
1918
import net.nullved.pmweatherapi.client.radar.RadarClientStorage;
2019
import net.nullved.pmweatherapi.client.radar.WSRClientStorage;
2120
import net.nullved.pmweatherapi.client.render.IDOverlay;
22-
import net.nullved.pmweatherapi.client.render.RadarOverlays;
21+
import net.nullved.pmweatherapi.client.render.radar.RadarOverlays;
2322
import net.nullved.pmweatherapi.config.PMWClientConfig;
2423
import net.nullved.pmweatherapi.data.PMWStorages;
2524
import net.nullved.pmweatherapi.example.ExampleOverlay;
2625
import net.nullved.pmweatherapi.metar.MetarServerStorage;
2726
import net.nullved.pmweatherapi.metar.MetarStorage;
2827
import net.nullved.pmweatherapi.metar.MetarStorageData;
2928
import net.nullved.pmweatherapi.network.PMWNetworking;
30-
import net.nullved.pmweatherapi.radar.RadarMode;
3129
import net.nullved.pmweatherapi.radar.storage.*;
3230
import net.nullved.pmweatherapi.storage.data.BlockPosData;
3331
import net.nullved.pmweatherapi.storage.data.StorageDataManager;
3432
import org.apache.maven.artifact.versioning.ArtifactVersion;
3533
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
36-
import org.checkerframework.checker.units.qual.C;
3734
import org.slf4j.Logger;
3835

39-
import java.awt.*;
40-
4136
@Mod(PMWeatherAPI.MODID)
4237
public class PMWeatherAPI {
4338
public static final String MODID = "pmweatherapi";
@@ -57,7 +52,7 @@ public PMWeatherAPI(IEventBus modEventBus, ModContainer modContainer) {
5752

5853
ArtifactVersion pmweatherVer = pmweather.getModInfo().getVersion();
5954
String pmweatherVerS = pmweatherVer.getMajorVersion() + "." + pmweatherVer.getMinorVersion() + "." + pmweatherVer.getIncrementalVersion();
60-
String pmweatherExpected = "0.15.3-1.21.1-alpha";
55+
String pmweatherExpected = "0.16.1-1.21.1-alpha";
6156
int pmweatherCompared = pmweatherVer.compareTo(new DefaultArtifactVersion(pmweatherExpected));
6257

6358
if (pmweatherCompared == 0) {
@@ -98,7 +93,7 @@ private void clientSetup(FMLClientSetupEvent event) {
9893
PMWClientStorages.registerStorage(WSRStorage.ID, WSRClientStorage.class, WSRClientStorage::new);
9994

10095
RadarOverlays.registerOverlay(() -> IDOverlay.INSTANCE);
101-
//RadarOverlays.registerOverlay(() -> ExampleOverlay.INSTANCE);
96+
// RadarOverlays.registerOverlay(() -> ExampleOverlay.INSTANCE);
10297
}
10398
public static ResourceLocation rl(String path) {
10499
return ResourceLocation.fromNamespaceAndPath(MODID, path);

src/main/java/net/nullved/pmweatherapi/client/data/PMWClientStorages.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.nullved.pmweatherapi.client.data;
22

3+
import dev.protomanly.pmweather.block.entity.RadarBlockEntity;
34
import net.minecraft.client.Minecraft;
45
import net.minecraft.client.multiplayer.ClientLevel;
56
import net.minecraft.core.BlockPos;
@@ -38,7 +39,7 @@ public class PMWClientStorages {
3839
* A {@link Map} of {@link RadarMode}s to {@link Map}s of pixel ids and their {@link Color}
3940
* @since 0.14.15.6
4041
*/
41-
public static Map<BlockPos, Map<RadarMode, Map<Integer, Color>>> RADAR_MODE_COLORS = new HashMap<>();
42+
public static Map<RadarBlockEntity, Map<RadarMode, Map<Long, Integer>>> RADAR_MODE_COLORS = new HashMap<>();
4243

4344
public static final Map<ResourceLocation, ClientStorageInstance<?, ?>> STORAGE_INSTANCES = new HashMap<>();
4445

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

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package net.nullved.pmweatherapi.client.render;
22

3-
import com.mojang.blaze3d.vertex.BufferBuilder;
43
import com.mojang.blaze3d.vertex.PoseStack;
54
import com.mojang.math.Axis;
65
import net.minecraft.client.Minecraft;
76
import net.minecraft.network.chat.Component;
87
import net.neoforged.api.distmarker.Dist;
98
import net.neoforged.api.distmarker.OnlyIn;
109
import net.nullved.pmweatherapi.PMWeatherAPI;
10+
import net.nullved.pmweatherapi.client.render.radar.IRadarOverlay;
11+
import net.nullved.pmweatherapi.client.render.radar.RadarOverlays;
1112
import net.nullved.pmweatherapi.config.PMWClientConfig;
1213
import net.nullved.pmweatherapi.radar.RadarMode;
1314

@@ -24,23 +25,23 @@ public class IDOverlay implements IRadarOverlay {
2425
public static final IRadarOverlay INSTANCE = new IDOverlay();
2526

2627
@Override
27-
public void render(boolean canRender, RenderData renderData, BufferBuilder bufferBuilder, Object... args) {
28+
public void render(boolean canRender, RadarRenderData radarRenderData, Object... args) {
2829
if (!PMWClientConfig.showRadarModeId) return;
2930
if (!Minecraft.getInstance().player.isCrouching()) return;
3031

31-
RadarMode mode = getRadarMode(renderData);
32-
PoseStack poseStack = renderData.poseStack();
32+
RadarMode mode = getRadarMode(radarRenderData);
33+
PoseStack poseStack = radarRenderData.poseStack();
3334
PMWClientConfig.RadarModeIDSide side = PMWClientConfig.radarModeIDSide;
3435

35-
float scale = renderData.sizeRenderDiameter() / 3.0F;
36+
float scale = radarRenderData.sizeRenderDiameter() / 3.0F;
3637

3738
poseStack.pushPose();
3839
poseStack.translate((side.x * scale) - 0.5F * (scale - 1), 1.055f, (side.z * scale) - 0.5F * (scale - 1));
3940
poseStack.mulPose(Axis.YN.rotationDegrees(side.rotation));
4041
poseStack.mulPose(Axis.XP.rotationDegrees(90));
4142
poseStack.scale(0.01f, 0.01f, 0.01f);
4243

43-
renderText(Component.literal(mode.getId().toString()), renderData, poseStack);
44+
renderText(Component.literal(mode.getId().toString()), radarRenderData, poseStack);
4445

4546
poseStack.mulPose(Axis.XP.rotationDegrees(-90));
4647

@@ -53,18 +54,13 @@ public void render(boolean canRender, RenderData renderData, BufferBuilder buffe
5354
poseStack.scale(0.6f, 0.6f, 0.6f);
5455
poseStack.mulPose(Axis.XP.rotationDegrees(90));
5556

56-
renderText(Component.literal(overlay.get().getID().toString()).withColor(0x888888), renderData, poseStack);
57+
renderText(Component.literal(overlay.get().getID().toString()).withColor(0xBBBBBB), radarRenderData, poseStack);
5758

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

6263
poseStack.popPose();
63-
64-
// While I could reset the pose, it is not strictly necessary
65-
// poseStack.scale(100f, 100f, 100f);
66-
// poseStack.mulPose(Axis.ZP.rotationDegrees(-side.rotation));
67-
// poseStack.translate(-side.x, -1.055f, -side.z);
6864
}
6965

7066
@Override

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

Lines changed: 0 additions & 166 deletions
This file was deleted.
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package net.nullved.pmweatherapi.client.render;
22

3-
import net.minecraft.world.phys.Vec3;
4-
53
/**
64
* Specific rendering data for a pixel on the radar
75
* @param canRender {@code true} if either the server doesn't require WSR-88D or a WSR-88D is complete within 4 chunks of the radar
@@ -11,9 +9,10 @@
119
* @param x The x-position of the pixel (from {@code -resolution} to {@code resolution})
1210
* @param z The z-position of the pixel (from {@code -resolution} to {@code resolution})
1311
* @param resolution The resolution of the radar
14-
* @param worldPos The world position of the pixel
15-
* @param renderData The associated {@link RenderData}
12+
* @param wx The world x position of the pixel
13+
* @param wz The world z position of the pixel
14+
* @param radarRenderData The associated {@link RadarRenderData}
1615
* @since 0.14.15.6
1716
*/
18-
public record PixelRenderData(boolean canRender, float rdbz, float velocity, float temp, int x, int z, int resolution, Vec3 worldPos, RenderData renderData) {
17+
public record PixelRenderData(boolean canRender, float rdbz, float velocity, float temp, int x, int z, int resolution, double wx, double wz, RadarRenderData radarRenderData) {
1918
}

src/main/java/net/nullved/pmweatherapi/client/render/RenderData.java renamed to src/main/java/net/nullved/pmweatherapi/client/render/RadarRenderData.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
package net.nullved.pmweatherapi.client.render;
22

33
import com.mojang.blaze3d.vertex.PoseStack;
4+
import dev.protomanly.pmweather.block.entity.RadarBlockEntity;
45
import net.minecraft.client.renderer.MultiBufferSource;
56
import net.minecraft.world.level.block.entity.BlockEntity;
67

78
/**
8-
* A wrapper class to be passed to {@link RenderData}
9-
* @param blockEntity The {@link BlockEntity} associated with the render call
9+
* A wrapper class to be passed to {@link RadarRenderData}
10+
* @param blockEntity The {@link RadarBlockEntity} associated with the render call
1011
* @param sizeRenderDiameter The size in blocks of the radar
12+
* @param simSize The size of the radar
1113
* @param partialTicks The time, in partial ticks, since last full tick
1214
* @param poseStack The {@link PoseStack}
1315
* @param multiBufferSource The {@link MultiBufferSource}
1416
* @param combinedLightIn The current light value on the block entity
1517
* @param combinedOverlayIn The current overlay of the block entity
1618
* @since 0.14.15.2
1719
*/
18-
public record RenderData(BlockEntity blockEntity, float sizeRenderDiameter, float partialTicks, PoseStack poseStack, MultiBufferSource multiBufferSource, int combinedLightIn, int combinedOverlayIn) {
20+
public record RadarRenderData(RadarBlockEntity blockEntity, float sizeRenderDiameter, float simSize, float partialTicks, PoseStack poseStack, MultiBufferSource multiBufferSource, int combinedLightIn, int combinedOverlayIn) {
1921
}

0 commit comments

Comments
 (0)