Skip to content

Commit 1d7e760

Browse files
committed
Update seasons addon for S7, improved color caching and GUI adjustments, v0.2.4
1 parent 705c9af commit 1d7e760

File tree

8 files changed

+55
-39
lines changed

8 files changed

+55
-39
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ minecraft_version = 1.6.4
55
yarn_mappings = 1.6.4+build.420
66
loader_version = 0.14.19
77

8-
mod_version = 0.2.3
8+
mod_version = 0.2.4
99
maven_group = btw.community
1010
archives_base_name = seasons-addon
1111

src/main/java/btw/arminias/seasons/BiomeCustomSeason.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
public interface BiomeCustomSeason extends ClimateInfluenced {
44
void seasonsAddon$setSeasonColorLookupGrass(int[] arr);
55
void seasonsAddon$setSeasonColorLookupFoliage(int[] arr);
6+
void seasonsAddon$updateColorCache(boolean override);
67

78
default int seasonsAddon$getSeasonSpecificColor(int season, int color) {
89
int alpha = (color >> 24) & 0xFF;

src/main/java/btw/arminias/seasons/mixin/BiomeGenBaseMixin.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,12 @@ private void callCustomInit(int par1, CallbackInfo ci) {
5858
int seasons = seasonsAddon$getSeasons();
5959
seasonsAddon$setSeasonColorLookupGrass(new int[seasons]);
6060
seasonsAddon$setSeasonColorLookupFoliage(new int[seasons]);
61-
// Only in this super class
62-
updateColorCache(false);
6361
}
6462
}
6563

66-
@Environment(EnvType.CLIENT)
67-
@Inject(method= "setTemperatureRainfall", at = @At("RETURN"))
68-
private void callGenerateColorCache(CallbackInfoReturnable<BiomeGenBase> cir) {
69-
updateColorCache(true);
70-
}
71-
7264
@Unique
7365
@Environment(EnvType.CLIENT)
74-
private void updateColorCache(boolean override) {
66+
public void seasonsAddon$updateColorCache(boolean override) {
7567
int seasons = seasonsAddon$getSeasons();
7668
for (int season = 0; season < seasons; season++) {
7769
float r = MathHelper.clamp_float(rainfall * seasonsAddon$getRainfallSpline().getUnit((float) season / seasons), 0F, 1F);
@@ -142,8 +134,8 @@ private void adaptFoliage(CallbackInfoReturnable<Integer> cir) {
142134
@Environment(EnvType.CLIENT)
143135
public int seasonsAddon$getMonthSpecificColorCached(int month, boolean grass, boolean override) {
144136
int[] arr = grass ? monthColorLookupGrass : monthColorLookupFoliage;
145-
int i = arr[month];
146-
if (i == 0 || override) {
137+
int color = arr[month];
138+
if (color == 0 || override) {
147139
int seasons = seasonsAddon$getSeasons();
148140
int months = SeasonsAddonMod.MONTHS;
149141
assert months > seasons;
@@ -175,9 +167,9 @@ private void adaptFoliage(CallbackInfoReturnable<Integer> cir) {
175167
int green = (int) sp_g.getUnit((float)month/months);
176168
int blue = (int) sp_b.getUnit((float)month/months);
177169
arr[month] = (0xFF << 24) | (red << 16) | (green << 8) | blue;
178-
i = arr[month];
170+
color = arr[month];
179171
}
180-
return i;
172+
return color;
181173
}
182174

183175
@Unique

src/main/java/btw/arminias/seasons/mixin/ExampleMixin.java

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package btw.arminias.seasons.mixin;
2+
3+
import btw.arminias.seasons.BiomeCustomSeason;
4+
import net.minecraft.src.BiomeGenBase;
5+
import net.minecraft.src.FoliageColorReloadListener;
6+
import net.minecraft.src.GrassColorReloadListener;
7+
import net.minecraft.src.ResourceManager;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12+
13+
@Mixin({GrassColorReloadListener.class, FoliageColorReloadListener.class})
14+
public class GrassColorReloadListenerMixin {
15+
16+
@Inject(method = "onResourceManagerReload", at = @At("RETURN"))
17+
private void onResourceManagerReloadInject(ResourceManager par1, CallbackInfo ci) {
18+
for (BiomeGenBase biome : BiomeGenBase.biomeList) {
19+
if (biome != null) {
20+
((BiomeCustomSeason) biome).seasonsAddon$updateColorCache(true);
21+
}
22+
}
23+
}
24+
}

src/main/java/btw/arminias/seasons/mixin/GuiCreateWorldMixin.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@
77
import net.minecraft.src.GuiButton;
88
import net.minecraft.src.GuiCreateWorld;
99
import net.minecraft.src.GuiScreen;
10+
import net.minecraft.src.GuiTextField;
1011
import org.spongepowered.asm.mixin.Mixin;
12+
import org.spongepowered.asm.mixin.Shadow;
1113
import org.spongepowered.asm.mixin.injection.At;
1214
import org.spongepowered.asm.mixin.injection.Inject;
1315
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1416

1517
@Mixin(GuiCreateWorld.class)
1618
public abstract class GuiCreateWorldMixin extends GuiScreen implements SettingsProvider {
19+
@Shadow
20+
private GuiTextField textboxWorldName;
1721
private GuiButton buttonSeasonSettings;
1822
private SeasonSettings settings = SeasonSettings.REALISTIC;
1923

@@ -29,7 +33,7 @@ public abstract class GuiCreateWorldMixin extends GuiScreen implements SettingsP
2933

3034
@Inject(method = "initGui", at = @At("RETURN"))
3135
public void initGuiInject(CallbackInfo ci) {
32-
this.buttonSeasonSettings = new GuiButton(73, 320, 60, 98, 20, "Seasons Settings");
36+
this.buttonSeasonSettings = new GuiButton(73, ((GuiTextFieldAccessor) textboxWorldName).getXPos() + ((GuiTextFieldAccessor) textboxWorldName).getWidth() + 2, ((GuiTextFieldAccessor) textboxWorldName).getYPos(), 98, 20, "Seasons Settings");
3337
this.buttonList.add(this.buttonSeasonSettings);
3438
}
3539

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package btw.arminias.seasons.mixin;
2+
3+
import net.minecraft.src.GuiTextField;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Accessor;
6+
7+
@Mixin(GuiTextField.class)
8+
public interface GuiTextFieldAccessor {
9+
@Accessor
10+
int getXPos();
11+
12+
@Accessor
13+
int getYPos();
14+
15+
@Accessor
16+
int getWidth();
17+
}

src/main/resources/seasonsaddon.mixins.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"CropsBlockMixin",
1616
"DailyGrowthCropsBlockMixin",
1717
"EntityRendererMixin",
18+
"GuiTextFieldAccessor",
1819
"HempCropBlockMixin",
1920
"IceBlockMixin",
2021
"LeavesBlockMixin",
@@ -27,6 +28,7 @@
2728
"WorldProviderMixin"
2829
],
2930
"client": [
31+
"GrassColorReloadListenerMixin",
3032
"GuiCreateWorldMixin"
3133
],
3234
"injectors": {

0 commit comments

Comments
 (0)