Compare commits
3 Commits
406fe6f861
...
a948d31d3c
Author | SHA1 | Date |
---|---|---|
Wynd | a948d31d3c | |
Wynd | 97c7f970dc | |
Wynd | 033d175097 |
58
README.md
58
README.md
|
@ -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
|
||||
|
@ -303,3 +346,4 @@ A: Check the above answer
|
|||
|
||||
**Q: Entities and items don't seem to burn**
|
||||
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");
|
||||
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");
|
||||
|
|
|
@ -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.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());
|
||||
|
||||
|
|
|
@ -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.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() {}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ 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 {
|
||||
|
@ -16,20 +17,34 @@ 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: ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -42,7 +42,8 @@
|
|||
"RecipeRegistryMixin",
|
||||
"SnowballMixin",
|
||||
"EntityMixin",
|
||||
"SlimeMixin"
|
||||
"SlimeMixin",
|
||||
"DimensionMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": -1
|
||||
|
|
Loading…
Reference in New Issue