Added Cloud toggle config and button in Video Settings
parent
cd9eff8f8a
commit
b96c3e3a7c
30
README.md
30
README.md
|
@ -16,12 +16,32 @@ Note that if you're using something like MultiMC or any of its derivates the fol
|
||||||
|
|
||||||
## List of changes
|
## List of changes
|
||||||
|
|
||||||
|
### Quality of Life changes
|
||||||
|
|
||||||
<details><summary>Sugar canes can now be places on sand</summary>
|
<details><summary>Sugar canes can now be places on sand</summary>
|
||||||
|
|
||||||
![sugar cane on sand](https://i.imgur.com/N7WjSx8.png)
|
![sugar cane on sand](https://i.imgur.com/N7WjSx8.png)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details><summary>More sounds</summary>
|
||||||
|
|
||||||
|
- Opening / closing chests
|
||||||
|
- Minecarts
|
||||||
|
- Items breaking
|
||||||
|
|
||||||
|
**Note: The mod doesn't add any sounds by itself, all of these sounds are already present in your "resources" folder, they are automatically downloaded by Minecraft itself**
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details><summary>Adds Clouds toggle in Video Settings</summary>
|
||||||
|
|
||||||
|
<video controls src="https://i.imgur.com/MUmqtmM.mp4" />
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
<details><summary>Fixes selected blocks being rendered under text in containers</summary>
|
<details><summary>Fixes selected blocks being rendered under text in containers</summary>
|
||||||
|
|
||||||
Before:
|
Before:
|
||||||
|
@ -102,16 +122,6 @@ After:<br>
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details><summary>More sounds</summary>
|
|
||||||
|
|
||||||
- Opening / closing chests
|
|
||||||
- Minecarts
|
|
||||||
- Items breaking
|
|
||||||
|
|
||||||
**Note: The mod doesn't add any sounds by itself, all of these sounds are already present in your "resources" folder, they are automatically downloaded by Minecraft itself**
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details><summary>Fixes leg armor not being updated while riding</summary>
|
<details><summary>Fixes leg armor not being updated while riding</summary>
|
||||||
|
|
||||||
Before:<br>
|
Before:<br>
|
||||||
|
|
|
@ -17,6 +17,9 @@ public class ModConfig {
|
||||||
public static final Option<Boolean> SUGAR_CANE_ON_SAND = make("Sugar Cane on sand", true, "Allows sugar canes to be placed on sand");
|
public static final Option<Boolean> SUGAR_CANE_ON_SAND = make("Sugar Cane on sand", true, "Allows sugar canes to be placed on sand");
|
||||||
public static final Option<Boolean> ADD_MORE_SOUNDS = make("Add more sounds", true,
|
public static final Option<Boolean> ADD_MORE_SOUNDS = make("Add more sounds", true,
|
||||||
"Links a few more sounds from your local 'resources' folder with the game, namely for item breaking, minecarts and chests");
|
"Links a few more sounds from your local 'resources' folder with the game, namely for item breaking, minecarts and chests");
|
||||||
|
public static final Option<Boolean> ENABLE_CLOUDS = make("Enable Clouds", true,
|
||||||
|
"Enables the rendering of clouds");
|
||||||
|
|
||||||
public static final Option<Boolean> FIX_BOW_MODEL = make("Fix bow model", true,
|
public static final Option<Boolean> FIX_BOW_MODEL = make("Fix bow model", true,
|
||||||
"Makes the box model held by players and skeletons bigger and facing forward");
|
"Makes the box model held by players and skeletons bigger and facing forward");
|
||||||
public static final Option<Boolean> FIX_MINECART_FLICKERING = make("Fix minecart flickering", true,
|
public static final Option<Boolean> FIX_MINECART_FLICKERING = make("Fix minecart flickering", true,
|
||||||
|
@ -75,6 +78,10 @@ public class ModConfig {
|
||||||
return this.fileConfig.getOrElse(o.name, o.defaultValue);
|
return this.fileConfig.getOrElse(o.name, o.defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public <T> T set(Option<T> o, T value) {
|
||||||
|
return this.fileConfig.set(o.name, value);
|
||||||
|
}
|
||||||
|
|
||||||
public static class Option<T> {
|
public static class Option<T> {
|
||||||
private String name;
|
private String name;
|
||||||
private String description;
|
private String description;
|
||||||
|
@ -94,5 +101,9 @@ public class ModConfig {
|
||||||
public T get() {
|
public T get() {
|
||||||
return ModConfig.instance().get(this);
|
return ModConfig.instance().get(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void set(T value) {
|
||||||
|
ModConfig.instance().set(this, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package xyz.pixelatedw.finalbeta.mixin;
|
package xyz.pixelatedw.finalbeta.mixin;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
@ -11,4 +13,7 @@ public class ScreenMixin {
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
public Minecraft minecraft;
|
public Minecraft minecraft;
|
||||||
|
|
||||||
|
@Shadow
|
||||||
|
public List buttons;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package xyz.pixelatedw.finalbeta.mixin;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
import net.minecraft.client.gui.screen.VideoSettingsScreen;
|
||||||
|
import net.minecraft.client.gui.widgets.Button;
|
||||||
|
import net.minecraft.client.resource.language.TranslationStorage;
|
||||||
|
import xyz.pixelatedw.finalbeta.ModConfig;
|
||||||
|
|
||||||
|
@Mixin(VideoSettingsScreen.class)
|
||||||
|
public class VideoSettingsScreenMixin extends ScreenMixin {
|
||||||
|
|
||||||
|
@Inject(method = "init", at = @At("TAIL"))
|
||||||
|
public void init(CallbackInfo ci) {
|
||||||
|
VideoSettingsScreen screen = (VideoSettingsScreen)(Object)this;
|
||||||
|
this.buttons.add(new Button(300, screen.width / 2 - 155, screen.height / 6 + 96, 150, 20, this.getCloudsLabel()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject(method = "buttonClicked", at = @At("HEAD"))
|
||||||
|
public void buttonClicked(Button btn, CallbackInfo ci) {
|
||||||
|
if(btn.active) {
|
||||||
|
if(btn.id == 300) {
|
||||||
|
ModConfig.ENABLE_CLOUDS.set(!ModConfig.ENABLE_CLOUDS.get());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getCloudsLabel() {
|
||||||
|
TranslationStorage i18n = TranslationStorage.getInstance();
|
||||||
|
return "Clouds: " + (ModConfig.ENABLE_CLOUDS.get() ? i18n.translate("options.on") : i18n.translate("options.off"));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package xyz.pixelatedw.finalbeta.mixin;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
import net.minecraft.client.render.WorldRenderer;
|
||||||
|
import xyz.pixelatedw.finalbeta.ModConfig;
|
||||||
|
|
||||||
|
@Mixin(WorldRenderer.class)
|
||||||
|
public class WorldRendererMixin {
|
||||||
|
|
||||||
|
@Inject(method = "method_1552", at = @At("HEAD"), cancellable = true)
|
||||||
|
public void cloudRenderer(float f, CallbackInfo ci) {
|
||||||
|
if(!ModConfig.ENABLE_CLOUDS.get()) {
|
||||||
|
ci.cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -24,7 +24,9 @@
|
||||||
"FishHookMixin",
|
"FishHookMixin",
|
||||||
"TileRendererMixin",
|
"TileRendererMixin",
|
||||||
"LivingEntityMixin",
|
"LivingEntityMixin",
|
||||||
"FurnaceEntityMixin"
|
"FurnaceEntityMixin",
|
||||||
|
"WorldRendererMixin",
|
||||||
|
"VideoSettingsScreenMixin"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
|
Loading…
Reference in New Issue