Compare commits
3 Commits
406fe6f861
...
a948d31d3c
Author | SHA1 | Date |
---|---|---|
Wynd | a948d31d3c | |
Wynd | 97c7f970dc | |
Wynd | 033d175097 |
50
README.md
50
README.md
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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());
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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() {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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: ";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -42,7 +42,8 @@
|
||||||
"RecipeRegistryMixin",
|
"RecipeRegistryMixin",
|
||||||
"SnowballMixin",
|
"SnowballMixin",
|
||||||
"EntityMixin",
|
"EntityMixin",
|
||||||
"SlimeMixin"
|
"SlimeMixin",
|
||||||
|
"DimensionMixin"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": -1
|
"defaultRequire": -1
|
||||||
|
|
Loading…
Reference in New Issue