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

@ -6,11 +6,11 @@ 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:
| OS | Location |
|-------|----------|
| Windows | %appdata%/.minecraft/config/finalbeta.toml |
| Linux | ~/.minecraft/config/finalbeta.toml |
| macOS | ~/Library/Application Support/minecraft/config/finalbeta.toml |
| OS | Location |
| ------- | ------------------------------------------------------------- |
| Windows | %appdata%/.minecraft/config/finalbeta.toml |
| Linux | ~/.minecraft/config/finalbeta.toml |
| macOS | ~/Library/Application Support/minecraft/config/finalbeta.toml |
Note that if you're using something like MultiMC or any of its derivates the folder will be in a different location, in those instances simply right click on your profile and click on "Folder", this will open the location where you can find the .minecraft folder and follow the path from above.
@ -29,6 +29,7 @@ Note that if you're using something like MultiMC or any of its derivates the fol
- Opening / closing chests
- Minecarts
- 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**
@ -40,6 +41,12 @@ Note that if you're using something like MultiMC or any of its derivates the fol
</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>
Before:<br>
@ -83,6 +90,20 @@ Real life days are calculated differently from the world time but are stored in
</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
<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)
**Note: Score will always be 0 as nothing gives score in this version**
</details>
<details><summary>Made bows bigger and facing the right direction</summary>
@ -124,9 +146,10 @@ After:
</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:**
- Cobblestone stairs
- Redstone ore
- Iron door
@ -141,6 +164,7 @@ After:
- Sticky pistons
**Extra axe blocks:**
- Wooden stairs
- Door
- Pressure plates
@ -153,6 +177,10 @@ After:
- Crafting tables
- Fences
**Extra shovel blocks:**
- Soul sand
</details>
<details><summary>Stairs will now drop themselves rather than cobble/planks</summary>
@ -259,14 +287,27 @@ Before:<br>
After:<br>
<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.
</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>
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
- made the chicken hitbox slightly taller
- 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
### 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)
- Run the installer and let it finish
- 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
### 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)
- 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
@ -302,4 +345,5 @@ A: Its very likely you have the Cursed Legacy API installed, you do not need it
A: Check the above answer
**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");
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.");
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,
"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.setPositionAndAngles(player.x, player.y + 0.5D, player.z, player.level.rand.nextFloat() * 360.0F, 0.0F);
// 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());

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

@ -19,7 +19,7 @@ public class LevelMixin {
public void tick(CallbackInfo ci) {
WyHelper.playTime++;
}
@Inject(method="updatePosition", at = @At("TAIL"))
public void updatePosition(Entity entity, boolean forceUpdate, CallbackInfo ci) {
if (ModConfig.FURNACE_MINECART_CHUNK_LOADING.get() && entity instanceof Minecart) {

View File

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

View File

@ -9,27 +9,42 @@ 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;
import xyz.pixelatedw.finalbeta.ModSlider;
@Mixin(VideoSettingsScreen.class)
public class VideoSettingsScreenMixin extends ScreenMixin {
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()));
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) {
if(btn.active) {
if(btn.id == 300) {
if (btn.active) {
if (btn.id == 300) {
ModConfig.ENABLE_CLOUDS.set(!ModConfig.ENABLE_CLOUDS.get());
ci.cancel();
}
else if(btn.id == 301) {
ci.cancel();
}
}
}
@Override
public void onCloseEvent() {
}
private String getCloudsLabel() {
TranslationStorage i18n = TranslationStorage.getInstance();
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,
"id": "finalbeta",
"version": "1.1.0",
"version": "1.2.0",
"name": "Final Beta",
"description": "A (Cursed) Fabric mod that adds some quality of life changes and fixes some common issues",

View File

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