Compare commits

...

3 Commits

Author SHA1 Message Date
Wynd a948d31d3c Bumped the mod's version 2024-08-30 13:45:02 +03:00
Wynd 97c7f970dc Updated the README with the new 1.2.0 fixes 2024-08-30 13:44:26 +03:00
Wynd 033d175097 Added a cloud height slider in video options 2024-08-30 13:18:57 +03:00
10 changed files with 190 additions and 19 deletions

View File

@ -7,7 +7,7 @@ A (Cursed) Fabric mod for Minecraft Beta 1.7.3 that adds some quality of life ch
You can change what fixes get applied using the config found in one of the following paths: You can change what fixes get applied using the config found in one of the following paths:
| OS | Location | | OS | Location |
|-------|----------| | ------- | ------------------------------------------------------------- |
| Windows | %appdata%/.minecraft/config/finalbeta.toml | | Windows | %appdata%/.minecraft/config/finalbeta.toml |
| Linux | ~/.minecraft/config/finalbeta.toml | | Linux | ~/.minecraft/config/finalbeta.toml |
| macOS | ~/Library/Application Support/minecraft/config/finalbeta.toml | | macOS | ~/Library/Application Support/minecraft/config/finalbeta.toml |
@ -29,6 +29,7 @@ Note that if you're using something like MultiMC or any of its derivates the fol
- Opening / closing chests - Opening / closing chests
- Minecarts - Minecarts
- Items breaking - Items breaking
- Climbing ladders
**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** **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**
@ -40,6 +41,12 @@ Note that if you're using something like MultiMC or any of its derivates the fol
</details> </details>
<details><summary>Adds Cloud height slider in Video Settings</summary>
<video controls src="https://i.imgur.com/UED8RTl.mp4" />
</details>
<details><summary>Removes the id tags above entities while in F3 mode</summary> <details><summary>Removes the id tags above entities while in F3 mode</summary>
Before:<br> Before:<br>
@ -83,6 +90,20 @@ Real life days are calculated differently from the world time but are stored in
</details> </details>
<details><summary>Minecart improvements</summary>
Such as a 25% increased in speed
<video controls src="https://i.imgur.com/LPlalym.mp4" />
Or furnace minecarts pushing other minecarts in their path
<video controls src="https://i.imgur.com/utqVWaS.mp4" />
Or furnace minecarts loading chunks around them when going on tracks.
</details>
### Fixes ### 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>
@ -104,6 +125,7 @@ After:
![death screen displaying a yellow score of 0](https://i.imgur.com/rTHeTOk.png) ![death screen displaying a yellow score of 0](https://i.imgur.com/rTHeTOk.png)
**Note: Score will always be 0 as nothing gives score in this version** **Note: Score will always be 0 as nothing gives score in this version**
</details> </details>
<details><summary>Made bows bigger and facing the right direction</summary> <details><summary>Made bows bigger and facing the right direction</summary>
@ -124,9 +146,10 @@ After:
</details> </details>
<details><summary>Updated list of blocks that pickaxes and axes can mine quicker</summary> <details><summary>Updated list of blocks that pickaxes, shovels and axes can mine quicker</summary>
**Extra pickaxe blocks:** **Extra pickaxe blocks:**
- Cobblestone stairs - Cobblestone stairs
- Redstone ore - Redstone ore
- Iron door - Iron door
@ -141,6 +164,7 @@ After:
- Sticky pistons - Sticky pistons
**Extra axe blocks:** **Extra axe blocks:**
- Wooden stairs - Wooden stairs
- Door - Door
- Pressure plates - Pressure plates
@ -153,6 +177,10 @@ After:
- Crafting tables - Crafting tables
- Fences - Fences
**Extra shovel blocks:**
- Soul sand
</details> </details>
<details><summary>Stairs will now drop themselves rather than cobble/planks</summary> <details><summary>Stairs will now drop themselves rather than cobble/planks</summary>
@ -259,14 +287,27 @@ Before:<br>
After:<br> After:<br>
<video controls src="https://i.imgur.com/8Dj19lR.mp4" /> <video controls src="https://i.imgur.com/8Dj19lR.mp4" />
**Note**: This is not the prettiest of fixes and edge cases might still exist as I didn't test it in normal gameplay for long periods of time. If you experience any issues with already placed doors break them and then place them again, this should fix them. **Note**: This is not the prettiest of fixes and edge cases might still exist as I didn't test it in normal gameplay for long periods of time. If you experience any issues with already placed doors break them and then place them again, this should fix them.
</details> </details>
<details><summary>Fixes furnace minecarts permanently destroying unused coal loaded in them</summary>
Before:
<video controls src="https://i.imgur.com/mMo6Vdl.mp4"/>
After:
<video controls src="https://i.imgur.com/9FOf9yn.mp4" />
</details>
<br> <br>
As well as a bunch of other minor issues not worth having before/after images such as: As well as a bunch of other minor issues not worth having before/after images such as:
- ghasts getting killed in 1 hit by their reflected fireballs
- slimes not splitting when their HP gets reduced below 0
- fixes grass block items being rendered incorrectly - fixes grass block items being rendered incorrectly
- made the chicken hitbox slightly taller - made the chicken hitbox slightly taller
- allows the use of `shift` key to drop the entire held stack and to exit vehicles - allows the use of `shift` key to drop the entire held stack and to exit vehicles
@ -278,6 +319,7 @@ As well as a bunch of other minor issues not worth having before/after images su
## Install ## Install
### Vanilla Launcher ### Vanilla Launcher
- Download the Vanilla Launcher installer of Cursed Legacy Fabric from [https://minecraft-cursed-legacy.github.io/downloads.html](https://minecraft-cursed-legacy.github.io/downloads.html) - Download the Vanilla Launcher installer of Cursed Legacy Fabric from [https://minecraft-cursed-legacy.github.io/downloads.html](https://minecraft-cursed-legacy.github.io/downloads.html)
- Run the installer and let it finish - Run the installer and let it finish
- Download the latest version of the mod - Download the latest version of the mod
@ -285,6 +327,7 @@ As well as a bunch of other minor issues not worth having before/after images su
- Start the launcher and make sure you pick the Cursed Fabric profile before starting the game - Start the launcher and make sure you pick the Cursed Fabric profile before starting the game
### MultiMC / Prism Launcher ### MultiMC / Prism Launcher
- Download the MultiMC archive of Cursed Legacy Fabric from [https://minecraft-cursed-legacy.github.io/downloads.html](https://minecraft-cursed-legacy.github.io/downloads.html) - Download the MultiMC archive of Cursed Legacy Fabric from [https://minecraft-cursed-legacy.github.io/downloads.html](https://minecraft-cursed-legacy.github.io/downloads.html)
- Open your MultiMC / Prism Launcher - Open your MultiMC / Prism Launcher
- Drag the .zip file into the launcher (you can also choose a different name for this profile now) and click Ok - Drag the .zip file into the launcher (you can also choose a different name for this profile now) and click Ok
@ -303,3 +346,4 @@ A: Check the above answer
**Q: Entities and items don't seem to burn** **Q: Entities and items don't seem to burn**
A: Check the above answer A: Check the above answer

View File

@ -48,6 +48,8 @@ public class ModConfig {
"Enables furance minecarts to push forward the first minecart it comes in contact with"); "Enables furance minecarts to push forward the first minecart it comes in contact with");
public static final Option<Boolean> FURNACE_MINECART_CHUNK_LOADING = make("Enable furnace minecarts to load chunks", true, public static final Option<Boolean> FURNACE_MINECART_CHUNK_LOADING = make("Enable furnace minecarts to load chunks", true,
"Name says it all, furnace minecarts will load chunks as they go on tracks."); "Name says it all, furnace minecarts will load chunks as they go on tracks.");
public static final Option<Double> CLOUDS_HEIGHT = make("Clouds Height", 0.0,
"Clouds height modifier, goes from 0.0, meaning the default 108 blocks height, to 1.0, meaning a 324 blocks height.");
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");

View File

@ -0,0 +1,79 @@
package xyz.pixelatedw.finalbeta;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.widgets.Button;
public class ModSlider extends Button {
public float value = 1.0F;
public boolean dragged = false;
public final String defaultText;
private final IChanceValue changeEvent;
public ModSlider(int id, int x, int y, String label, float initialValue, IChanceValue changeEvent) {
super(id, x, y, 150, 20, label);
this.value = initialValue;
this.defaultText = label;
this.changeEvent = changeEvent;
this.text = this.defaultText + "" + String.format("%.2f", this.value);
}
@Override
protected int getYImage(boolean flag) {
return 0;
}
@Override
protected void postRender(Minecraft minecraft, int i, int j) {
if (this.visible) {
if (this.dragged) {
this.value = (float) (i - (this.x + 4)) / (float) (this.width - 8);
if (this.value < 0.0F) {
this.value = 0.0F;
}
if (this.value > 1.0F) {
this.value = 1.0F;
}
this.changeEvent.changeValue(this.value);
this.text = this.defaultText + "" + String.format("%.2f", this.value);
}
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.blit(this.x + (int) (this.value * (this.width - 8)), this.y, 0, 66, 4, 20);
this.blit(this.x + (int) (this.value * (this.width - 8)) + 4, this.y, 196, 66, 4, 20);
}
}
@Override
public boolean isMouseOver(Minecraft minecraft, int i, int j) {
if (super.isMouseOver(minecraft, i, j)) {
this.value = (float) (i - (this.x + 4)) / (float) (this.width - 8);
if (this.value < 0.0F) {
this.value = 0.0F;
}
if (this.value > 1.0F) {
this.value = 1.0F;
}
this.changeEvent.changeValue(this.value);
this.text = this.defaultText + "" + String.format("%.2f", this.value);
this.dragged = true;
return true;
} else {
return false;
}
}
@Override
public void mouseReleased(int i, int j) {
this.dragged = false;
}
public interface IChanceValue {
void changeValue(float value);
}
}

View File

@ -95,7 +95,7 @@ public class WyHelper {
// Slime slime = new Slime(player.level); // Slime slime = new Slime(player.level);
// slime.setPositionAndAngles(player.x, player.y + 0.5D, player.z, player.level.rand.nextFloat() * 360.0F, 0.0F); // slime.setPositionAndAngles(player.x, player.y + 0.5D, player.z, player.level.rand.nextFloat() * 360.0F, 0.0F);
// player.level.spawnEntity(slime); // player.level.spawnEntity(slime);
// slime.setSize(10); // slime.setSize(5);
// player.level.entities.stream().filter(e -> !(e instanceof Player)).forEach((e) -> ((net.minecraft.entity.Entity)e).remove()); // player.level.entities.stream().filter(e -> !(e instanceof Player)).forEach((e) -> ((net.minecraft.entity.Entity)e).remove());

View File

@ -0,0 +1,20 @@
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.CallbackInfoReturnable;
import net.minecraft.level.dimension.Dimension;
import xyz.pixelatedw.finalbeta.ModConfig;
@Mixin(Dimension.class)
public class DimensionMixin {
private static final float CLOUD_HEIGHT = 108.0F;
@Inject(method = "getCloudHeight", at = @At("RETURN"), cancellable = true)
private void getCloudHeight(CallbackInfoReturnable<Float> cir) {
float height = CLOUD_HEIGHT + (CLOUD_HEIGHT * 2.0f * ModConfig.CLOUDS_HEIGHT.get().floatValue());
cir.setReturnValue(height);
}
}

View File

@ -4,6 +4,9 @@ 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;
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.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Screen; import net.minecraft.client.gui.Screen;
@ -16,4 +19,11 @@ public class ScreenMixin {
@Shadow @Shadow
public List buttons; public List buttons;
@Inject(method = "onClose", at = @At("HEAD"))
public void onClose(CallbackInfo ci) {
this.onCloseEvent();
}
public void onCloseEvent() {}
} }

View File

@ -9,6 +9,7 @@ import net.minecraft.client.gui.screen.VideoSettingsScreen;
import net.minecraft.client.gui.widgets.Button; import net.minecraft.client.gui.widgets.Button;
import net.minecraft.client.resource.language.TranslationStorage; import net.minecraft.client.resource.language.TranslationStorage;
import xyz.pixelatedw.finalbeta.ModConfig; import xyz.pixelatedw.finalbeta.ModConfig;
import xyz.pixelatedw.finalbeta.ModSlider;
@Mixin(VideoSettingsScreen.class) @Mixin(VideoSettingsScreen.class)
public class VideoSettingsScreenMixin extends ScreenMixin { public class VideoSettingsScreenMixin extends ScreenMixin {
@ -16,20 +17,34 @@ public class VideoSettingsScreenMixin extends ScreenMixin {
@Inject(method = "init", at = @At("TAIL")) @Inject(method = "init", at = @At("TAIL"))
public void init(CallbackInfo ci) { public void init(CallbackInfo ci) {
VideoSettingsScreen screen = (VideoSettingsScreen)(Object)this; VideoSettingsScreen screen = (VideoSettingsScreen)(Object)this;
this.buttons.add(new Button(300, screen.width / 2 - 155, screen.height / 6 + 96, 150, 20, this.getCloudsLabel())); this.buttons.add(new Button(300, screen.width / 2 - 155, screen.height / 6 + 96, 150, 20, this.getCloudsLabel()));
this.buttons.add(new ModSlider(301, screen.width / 2 + 5, screen.height / 6 + 96, this.getCloudHeightLabel(), ModConfig.CLOUDS_HEIGHT.get().floatValue(), (val) -> ModConfig.CLOUDS_HEIGHT.set((double) val)));
} }
@Inject(method = "buttonClicked", at = @At("HEAD")) @Inject(method = "buttonClicked", at = @At("HEAD"), cancellable = true)
public void buttonClicked(Button btn, CallbackInfo ci) { public void buttonClicked(Button btn, CallbackInfo ci) {
if (btn.active) { if (btn.active) {
if (btn.id == 300) { if (btn.id == 300) {
ModConfig.ENABLE_CLOUDS.set(!ModConfig.ENABLE_CLOUDS.get()); ModConfig.ENABLE_CLOUDS.set(!ModConfig.ENABLE_CLOUDS.get());
ci.cancel();
}
else if(btn.id == 301) {
ci.cancel();
} }
} }
} }
@Override
public void onCloseEvent() {
}
private String getCloudsLabel() { private String getCloudsLabel() {
TranslationStorage i18n = TranslationStorage.getInstance(); TranslationStorage i18n = TranslationStorage.getInstance();
return "Clouds: " + (ModConfig.ENABLE_CLOUDS.get() ? i18n.translate("options.on") : i18n.translate("options.off")); return "Clouds: " + (ModConfig.ENABLE_CLOUDS.get() ? i18n.translate("options.on") : i18n.translate("options.off"));
} }
private String getCloudHeightLabel() {
return "Clouds Height: ";
}
} }

View File

@ -1,7 +1,7 @@
{ {
"schemaVersion": 1, "schemaVersion": 1,
"id": "finalbeta", "id": "finalbeta",
"version": "1.1.0", "version": "1.2.0",
"name": "Final Beta", "name": "Final Beta",
"description": "A (Cursed) Fabric mod that adds some quality of life changes and fixes some common issues", "description": "A (Cursed) Fabric mod that adds some quality of life changes and fixes some common issues",

View File

@ -42,7 +42,8 @@
"RecipeRegistryMixin", "RecipeRegistryMixin",
"SnowballMixin", "SnowballMixin",
"EntityMixin", "EntityMixin",
"SlimeMixin" "SlimeMixin",
"DimensionMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": -1 "defaultRequire": -1