Compare commits

..

22 Commits
1.19 ... 1.19.4

Author SHA1 Message Date
Liz Graham
b10482d9e1 Update README.md 2023-06-21 02:48:58 +01:00
Liz Graham
10a4c88d9b Update gradle.properties 2023-05-23 19:06:12 +01:00
Liz Graham
2bc02401b0 Update fabric.mod.json 2023-05-23 19:00:31 +01:00
Liz Graham
a071eba485 Update build-release.yml 2023-05-22 03:58:09 +01:00
Liz Graham
0dde5fa1eb Bump to 1.4.0
Also lock version to 1.19.4
2023-05-22 03:29:26 +01:00
Liz Graham
f00d0171ae Improve error handling for incompatible particles 2023-05-22 03:28:49 +01:00
Liz Graham
93a18d622b Fix bugs and fix #4
Particles can no longer spawn under the world.
Particles no longer spawn in blocks, instead spawning in air.
Fixed bug present since 1.2.0, which meant particle amount was dependant on blocks around player.
New particle multiplier allowing greater control of particle amount.
New F3 screen text, allows user to debug particle amount.
Removed upper and lower limit buttons.
2023-05-22 03:26:34 +01:00
Liz Graham
cfe0ec666f UI update 2023-05-22 03:26:34 +01:00
Liz Graham
1b20ee94c4 Update build-release.yml 2023-05-21 23:26:55 +01:00
Liz Graham
f0fdd69260 Bump to 1.3.0 2023-05-21 07:47:21 +01:00
Liz Graham
6197a489b3 Update README.md 2023-05-21 07:44:36 +01:00
Liz Graham
2fb8ba966a set default id to white ash's id 2023-05-21 07:30:15 +01:00
Liz Graham
6a5d68cc84 update to 1.19.4 2023-05-21 07:27:43 +01:00
Liz Graham
b5687628df Fix issues with out of array IDs 2023-05-21 06:58:47 +01:00
Liz Graham
5486f49555 Fix different bug with bounds causing a crash 2023-05-21 06:26:21 +01:00
Liz Graham
3469807388 Fix bug with bounds causing a crash
Implement in-game particle cycling
2023-05-21 06:09:07 +01:00
Liz Graham
a05356f475 update loom to 1.2-snapshot 2023-05-21 02:46:17 +01:00
Liz Graham
149ddbe6fe update gradle to 8.1.1 2023-05-21 02:46:01 +01:00
Liz Graham
eabe134475 remove redundant functions for negative bounds 2023-05-21 02:42:57 +01:00
Liz Graham
fa76355a87 Update modmenu to 5.1.0-beta.3 2023-05-21 02:41:20 +01:00
Liz Graham
fb540f04ff Update to 1.19.3
Took 37 seconds
2023-01-19 01:00:17 +00:00
Liz Graham
c0c99c61bb Update to loom 1.0
Took 40 minutes
2023-01-19 00:59:47 +00:00
15 changed files with 168 additions and 193 deletions

View File

@@ -33,29 +33,10 @@ jobs:
run: ./gradlew build --stacktrace run: ./gradlew build --stacktrace
- name: Upload artifacts to Modrinth, Curseforge and GitHub - name: Upload artifacts to Modrinth, Curseforge and GitHub
uses: Kir-Antipov/mc-publish@v2.0 uses: Kir-Antipov/mc-publish@v3.3
with: with:
modrinth-id: jawg7zT1 modrinth-id: jawg7zT1
modrinth-token: ${{ secrets.MODRINTH_TOKEN }} modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
curseforge-id: 594750 curseforge-id: 594750
curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }}
github-token: ${{ secrets.GITHUB_TOKEN }}
files: build/libs/!(*-@(dev|sources|all)).jar
version-type: release
loaders: fabric
java: 17
dependencies: |
fabric | depends | 0.46.0
P7dR8mSH | depends | 0.46.0
kirin | includes | 1.10.0-beta.2
modmenu | recommends | *
mOgUt4GM | recommends | *
version-resolver: latest # Defaults to selecting the latest compatible version of Minecraft, using the tag from the fabric.mod.json

View File

@@ -1,5 +1,5 @@
plugins { plugins {
id 'fabric-loom' version '0.12-SNAPSHOT' id 'fabric-loom' version '1.2-SNAPSHOT'
id 'maven-publish' id 'maven-publish'
} }

View File

@@ -3,17 +3,17 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/develop # check these on https://fabricmc.net/develop
minecraft_version=1.19.2 minecraft_version=1.19.4
yarn_mappings=1.19.2+build.4 yarn_mappings=1.19.4+build.2
loader_version=0.14.9 loader_version=0.14.19
# Mod Properties # Mod Properties
mod_version = 1.2.0 mod_version = 1.4.1
maven_group = com.lizistired maven_group = com.lizistired
archives_base_name = cave_dust archives_base_name = cave_dust
# Dependencies # Dependencies
fabric_version=0.59.0+1.19.2 fabric_version=0.81.1+1.19.4
clothconfig_version = 8.0.75 clothconfig_version =9.0.94
modmenu_version = 4.0.6 modmenu_version =6.2.2
kirin_version=1.11.1-beta.1 kirin_version=1.14.0

Binary file not shown.

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

10
gradlew vendored
View File

@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# Copyright © 2015-2021 the original authors. # Copyright © 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -32,10 +32,10 @@
# Busybox and similar reduced shells will NOT work, because this script # Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features: # requires all of these POSIX shell features:
# * functions; # * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»; # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»; # * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit». # * various built-in commands including «command», «set», and «ulimit».
# #
# Important for patching: # Important for patching:
# #

View File

@@ -1,7 +1,10 @@
package net.lizistired.cavedust; package net.lizistired.cavedust;
//minecraft imports //minecraft imports
import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.particle.ParticleTypes;
import net.minecraft.registry.Registries;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
@@ -37,6 +40,9 @@ public class CaveDust implements ClientModInitializer {
return config; return config;
} }
public static int WHITE_ASH_ID = Registries.PARTICLE_TYPE.getRawId(ParticleTypes.WHITE_ASH);
public static int PARTICLE_AMOUNT = 0;
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
@@ -68,22 +74,24 @@ public class CaveDust implements ClientModInitializer {
//LOGGER.info(String.valueOf(((ClientWorldAccessor) client.world.getLevelProperties()).getFlatWorld())); //LOGGER.info(String.valueOf(((ClientWorldAccessor) client.world.getLevelProperties()).getFlatWorld()));
// ) // )
double probabilityNormalized = normalize(config.getLowerLimit(), config.getUpperLimit(), client.player.getBlockY()); double probabilityNormalized = normalize(config.getLowerLimit(), config.getUpperLimit(), client.player.getBlockY());
PARTICLE_AMOUNT = (int) (probabilityNormalized * config.getParticleMultiplier() * config.getParticleMultiplierMultiplier());
for (int i = 0; i < probabilityNormalized * config.getParticleMultiplier() * 10; i++) { for (int i = 0; i < PARTICLE_AMOUNT; i++) {
try { try {
double x = client.player.getPos().getX() + generateRandomDouble(config.getDimensionsMinX(), config.getDimensionsMaxX()); int x = (int) (client.player.getPos().getX() + (int) generateRandomDouble(config.getDimensionsX() * -1, config.getDimensionsX()));
double y = client.player.getPos().getY() + generateRandomDouble(config.getDimensionsMinX(), config.getDimensionsMaxY()); int y = (int) (client.player.getPos().getY() + (int) generateRandomDouble(config.getDimensionsY() * -1, config.getDimensionsY()));
double z = client.player.getPos().getZ() + generateRandomDouble(config.getDimensionsMinX(), config.getDimensionsMaxZ()); int z = (int) (client.player.getPos().getZ() + (int) generateRandomDouble(config.getDimensionsZ() * -1, config.getDimensionsZ()));
BlockPos particlePos = new BlockPos(x, y, z); BlockPos particlePos = new BlockPos(x, y, z);
if (!shouldParticlesSpawn(client, config, particlePos)){return;} if (shouldParticlesSpawn(client, config, particlePos)) {
if (client.world.getBlockState(particlePos).isAir()) {
world.addParticle(config.getParticle(), x, y, z, config.getVelocityRandomnessRandom(), config.getVelocityRandomnessRandom(), config.getVelocityRandomnessRandom()); world.addParticle(config.getParticle(), x, y, z, config.getVelocityRandomnessRandom(), config.getVelocityRandomnessRandom(), config.getVelocityRandomnessRandom());
} }
}
}
catch (NullPointerException e) { catch (NullPointerException e) {
LOGGER.error(String.valueOf(e)); LOGGER.error(String.valueOf(e));
getConfig().setParticle("minecraft:white_ash"); getConfig().setParticleID(WHITE_ASH_ID);
} }
} }
} }

View File

@@ -1,10 +1,12 @@
package net.lizistired.cavedust; package net.lizistired.cavedust;
import net.lizistired.cavedust.utils.JsonFile; import net.lizistired.cavedust.utils.JsonFile;
import net.minecraft.client.MinecraftClient;
import net.minecraft.particle.ParticleEffect; import net.minecraft.particle.ParticleEffect;
import net.minecraft.particle.ParticleTypes; import net.minecraft.particle.ParticleTypes;
import net.minecraft.registry.Registries;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import static net.lizistired.cavedust.CaveDust.*; import static net.lizistired.cavedust.CaveDust.*;
import static net.lizistired.cavedust.utils.MathHelper.*; import static net.lizistired.cavedust.utils.MathHelper.*;
@@ -14,98 +16,61 @@ public class CaveDustConfig extends JsonFile {
private transient final net.lizistired.cavedust.CaveDust CaveDust; private transient final net.lizistired.cavedust.CaveDust CaveDust;
private int dimensionMaxX = 5; private int dimensionX = 5;
private int dimensionMaxY = 5; private int dimensionY = 5;
private int dimensionMaxZ = 5; private int dimensionZ = 5;
private int dimensionMinX = -5;
private int dimensionMinY = -5;
private int dimensionMinZ = -5;
private int velocityRandomness = 1; private int velocityRandomness = 1;
private boolean caveDustEnabled = true; private boolean caveDustEnabled = true;
private String particleName = "white_ash";
private boolean seaLevelCheck = true; private boolean seaLevelCheck = true;
private boolean superFlatStatus = false; private boolean superFlatStatus = false;
//private boolean enhancedDetection = true;
private float upperLimit = 64; private float upperLimit = 64;
private float lowerLimit = -64; private float lowerLimit = -64;
private int particleMultiplier = 1; private int particleMultiplier = 1;
private int particleMultiplierMultiplier = 10;
private int particleID = WHITE_ASH_ID;
public CaveDustConfig(Path file, net.lizistired.cavedust.CaveDust caveDust) { public CaveDustConfig(Path file, net.lizistired.cavedust.CaveDust caveDust) {
super(file); super(file);
this.CaveDust = caveDust; this.CaveDust = caveDust;
} }
public float setDimensionsMinX(float size){ public float setDimensionsX(float size){
if (this.dimensionMinX != size) { if (this.dimensionX != size) {
this.dimensionMinX = (int)size; this.dimensionX = (int)size;
save(); save();
} }
return getDimensionsMinX(); return getDimensionsX();
} }
public float setDimensionsMinY(float size){ public float setDimensionsY(float size){
if (this.dimensionMinY != size) { if (this.dimensionY != size) {
this.dimensionMinY = (int)size; this.dimensionY = (int)size;
save(); save();
} }
return getDimensionsMinY(); return getDimensionsY();
} }
public float setDimensionsMinZ(float size){ public float setDimensionsZ(float size){
if (this.dimensionMinZ != size) { if (this.dimensionZ != size) {
this.dimensionMinZ = (int)size; this.dimensionZ = (int)size;
save(); save();
} }
return getDimensionsMinZ(); return getDimensionsZ();
} }
public float getDimensionsMinX(){ public float getDimensionsX(){
return dimensionMinX; return dimensionX;
} }
public float getDimensionsMinY(){ public float getDimensionsY(){
return dimensionMinY; return dimensionY;
} }
public float getDimensionsMinZ(){ public float getDimensionsZ(){
return dimensionMinZ; return dimensionZ;
}
public float setDimensionsMaxX(float size){
if (this.dimensionMaxX != size) {
this.dimensionMaxX = (int)size;
save();
}
return getDimensionsMaxX();
}
public float setDimensionsMaxY(float size){
if (this.dimensionMaxY != size) {
this.dimensionMaxY = (int)size;
save();
}
return getDimensionsMaxY();
}
public float setDimensionsMaxZ(float size){
if (this.dimensionMaxZ != size) {
this.dimensionMaxZ = (int)size;
save();
}
return getDimensionsMaxZ();
}
public float getDimensionsMaxX(){
return dimensionMaxX;
}
public float getDimensionsMaxY(){
return dimensionMaxY;
}
public float getDimensionsMaxZ(){
return dimensionMaxZ;
} }
public float setUpperLimit(float upperLimit){ public float setUpperLimit(float upperLimit){
@@ -150,6 +115,16 @@ public class CaveDustConfig extends JsonFile {
return getParticleMultiplier(); return getParticleMultiplier();
} }
public int getParticleMultiplierMultiplier(){
return particleMultiplierMultiplier;
}
public float setParticleMultiplierMultiplier(float particleMultiplierMultiplier){
this.particleMultiplierMultiplier = (int) particleMultiplierMultiplier;
save();
return getParticleMultiplierMultiplier();
}
public boolean toggleCaveDust(){ public boolean toggleCaveDust(){
caveDustEnabled = !caveDustEnabled; caveDustEnabled = !caveDustEnabled;
save(); save();
@@ -161,17 +136,17 @@ public class CaveDustConfig extends JsonFile {
} }
public ParticleEffect setParticle(String particleType){ public ParticleEffect setParticle(String particleType){
particleName = particleType; //particleName = particleType;
save(); save();
return getParticle(); return getParticle();
} }
public ParticleEffect getParticle(){ public ParticleEffect getParticle(){
try { try {
return (ParticleEffect) Registry.PARTICLE_TYPE.get(new Identifier(particleName.toLowerCase())); return (ParticleEffect) Registries.PARTICLE_TYPE.get(new Identifier(Registries.PARTICLE_TYPE.getEntry(getParticleID()).get().getKey().get().getValue().toString().toLowerCase()));
} catch (ClassCastException e) { } catch (ClassCastException e) {
LOGGER.error(e + "\nThere was an error loading the specified particle from the config, make sure a valid particle name is specified. Falling back to \"minecraft:white_ash\"."); MinecraftClient.getInstance().player.sendMessage(Text.literal("Issue loading particle, defaulting to white ash particle!"), false);
particleName = "minecraft:white_ash"; setParticleID(WHITE_ASH_ID);
save(); save();
return ParticleTypes.WHITE_ASH; return ParticleTypes.WHITE_ASH;
} }
@@ -212,33 +187,42 @@ public class CaveDustConfig extends JsonFile {
return getSuperFlatStatus(); return getSuperFlatStatus();
} }
/*public boolean getEnhancedDetection(){ public void iterateParticle(){
return enhancedDetection; if(getParticleID() > Registries.PARTICLE_TYPE.size() - 2) {
particleID = 1;
save();
} else {
particleID = getParticleID() + 1;
save();
}
} }
public boolean setEnhancedDetection(){ public void setParticleID(int particleID){
enhancedDetection = !enhancedDetection; this.particleID = particleID;
save(); save();
return getEnhancedDetection(); }
}*/
public int getParticleID(){
if ((!Registries.PARTICLE_TYPE.getEntry(particleID).isPresent())) {
setParticleID(WHITE_ASH_ID);
}
return particleID;
}
public void resetConfig(){ public void resetConfig(){
dimensionMinX = -5; dimensionX = 5;
dimensionMinY = -5; dimensionY = 5;
dimensionMinZ = -5; dimensionZ = 5;
dimensionMaxX = 5;
dimensionMaxY = 5;
dimensionMaxZ = 5;
upperLimit = 64; upperLimit = 64;
lowerLimit = -64; lowerLimit = -64;
particleMultiplier = 1; particleMultiplier = 1;
particleMultiplierMultiplier = 10;
seaLevelCheck = true; seaLevelCheck = true;
caveDustEnabled = true; caveDustEnabled = true;
particleName = "minecraft:white_ash"; particleID = WHITE_ASH_ID;
save(); save();
} }
} }

View File

@@ -5,9 +5,10 @@ import com.minelittlepony.common.client.gui.element.*;
import net.lizistired.cavedust.utils.TranslatableTextHelper; import net.lizistired.cavedust.utils.TranslatableTextHelper;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.particle.ParticleEffect;
import net.minecraft.registry.Registries;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import org.jetbrains.annotations.Nullable;
import javax.annotation.Nullable;
public class ModMenuConfigScreen extends GameGui { public class ModMenuConfigScreen extends GameGui {
public ModMenuConfigScreen(@Nullable Screen parent) { public ModMenuConfigScreen(@Nullable Screen parent) {
@@ -26,7 +27,7 @@ public class ModMenuConfigScreen extends GameGui {
addButton(new Label(width / 2, 30)).setCentered().getStyle() addButton(new Label(width / 2, 30)).setCentered().getStyle()
.setText(getTitle()); .setText(getTitle());
addButton(new Button(left, row += -60).onClick(sender -> { addButton(new Button(left += -110, row += -60).onClick(sender -> {
sender.getStyle().setText("menu.cavedust.global." + config.toggleCaveDust()).setTooltip(Text.translatable("menu.cavedust.global.tooltip." + config.getCaveDustEnabled())); sender.getStyle().setText("menu.cavedust.global." + config.toggleCaveDust()).setTooltip(Text.translatable("menu.cavedust.global.tooltip." + config.getCaveDustEnabled()));
})).getStyle() })).getStyle()
.setText("menu.cavedust.global." + config.getCaveDustEnabled()) .setText("menu.cavedust.global." + config.getCaveDustEnabled())
@@ -44,37 +45,9 @@ public class ModMenuConfigScreen extends GameGui {
.setText("menu.cavedust.superflatstatus." + config.getSuperFlatStatus()) .setText("menu.cavedust.superflatstatus." + config.getSuperFlatStatus())
.setTooltip(Text.translatable("menu.cavedust.superflatstatus.tooltip")); .setTooltip(Text.translatable("menu.cavedust.superflatstatus.tooltip"));
addButton(new Slider(left += -110, row += 24, -50, 0, config.getDimensionsMinX()))
.onChange(config::setDimensionsMinX)
.setTextFormat(transText::formatMinX)
.getStyle().setTooltip(Text.translatable("menu.cavedust.minX.tooltip"));
addButton(new Slider(left, row += 24, -50, 0, config.getDimensionsMinY()))
.onChange(config::setDimensionsMinY)
.setTextFormat(transText::formatMinY)
.getStyle().setTooltip(Text.translatable("menu.cavedust.minY.tooltip"));
addButton(new Slider(left, row += 24, -50, 0, config.getDimensionsMinZ())) /*addButton(new Slider(left, row += 48, -64, 319, config.getUpperLimit()))
.onChange(config::setDimensionsMinZ)
.setTextFormat(transText::formatMinZ)
.getStyle().setTooltip(Text.translatable("menu.cavedust.minZ.tooltip"));
addButton(new Slider(left += 220, row += -48, 0, 50, config.getDimensionsMaxX()))
.onChange(config::setDimensionsMaxX)
.setTextFormat(transText::formatMaxX)
.getStyle().setTooltip(Text.translatable("menu.cavedust.maxX.tooltip"));
addButton(new Slider(left, row += 24, 0, 50, config.getDimensionsMaxY()))
.onChange(config::setDimensionsMaxY)
.setTextFormat(transText::formatMaxY)
.getStyle().setTooltip(Text.translatable("menu.cavedust.maxY.tooltip"));
addButton(new Slider(left, row += 24, 0, 50, config.getDimensionsMaxZ()))
.onChange(config::setDimensionsMaxZ)
.setTextFormat(transText::formatMaxZ)
.getStyle().setTooltip(Text.translatable("menu.cavedust.maxZ.tooltip"));
addButton(new Slider(left += -110, row += 24, -64, 319, config.getUpperLimit()))
.onChange(config::setUpperLimit) .onChange(config::setUpperLimit)
.setTextFormat(transText::formatUpperLimit) .setTextFormat(transText::formatUpperLimit)
.getStyle().setTooltip(Text.translatable("menu.cavedust.upperlimit.tooltip")); .getStyle().setTooltip(Text.translatable("menu.cavedust.upperlimit.tooltip"));
@@ -82,27 +55,53 @@ public class ModMenuConfigScreen extends GameGui {
addButton(new Slider(left, row += 24, -64, 319, config.getLowerLimit())) addButton(new Slider(left, row += 24, -64, 319, config.getLowerLimit()))
.onChange(config::setLowerLimit) .onChange(config::setLowerLimit)
.setTextFormat(transText::formatLowerLimit) .setTextFormat(transText::formatLowerLimit)
.getStyle().setTooltip(Text.translatable("menu.cavedust.lowerlimit.tooltip")); .getStyle().setTooltip(Text.translatable("menu.cavedust.lowerlimit.tooltip"));*/
addButton(new Slider(left, row += 24, 1, 100, config.getParticleMultiplier())) addButton(new Slider(left, row += 24, 1, 100, config.getParticleMultiplier()))
.onChange(config::setParticleMultiplier) .onChange(config::setParticleMultiplier)
.setTextFormat(transText::formatParticleMultiplier) .setTextFormat(transText::formatParticleMultiplier)
.getStyle().setTooltip(Text.translatable("menu.cavedust.particlemultiplier.tooltip")); .getStyle().setTooltip(Text.translatable("menu.cavedust.particlemultiplier.tooltip"));
addButton(new Slider(left, row += 24, 1, 100, config.getParticleMultiplierMultiplier()))
.onChange(config::setParticleMultiplierMultiplier)
.setTextFormat(transText::formatParticleMultiplierMultiplier)
.getStyle().setTooltip(Text.translatable("menu.cavedust.particlemultipliermultiplier.tooltip"));
addButton(new Button(left, row += 24).onClick(sender ->{
config.iterateParticle();
sender.getStyle().setText("Particle: " + (getNameOfParticle()));
})).getStyle().setText("Particle: " + (getNameOfParticle()))
.setTooltip(Text.translatable("menu.cavedust.particle.tooltip"));
addButton(new Slider(left += 220, row -= 96, 1, 50, config.getDimensionsX()))
.onChange(config::setDimensionsX)
.setTextFormat(transText::formatMaxX)
.getStyle().setTooltip(Text.translatable("menu.cavedust.X.tooltip"));
addButton(new Slider(left, row += 24, 1, 50, config.getDimensionsY()))
.onChange(config::setDimensionsY)
.setTextFormat(transText::formatMaxY)
.getStyle().setTooltip(Text.translatable("menu.cavedust.Y.tooltip"));
addButton(new Slider(left, row += 24, 1, 50, config.getDimensionsZ()))
.onChange(config::setDimensionsZ)
.setTextFormat(transText::formatMaxZ)
.getStyle().setTooltip(Text.translatable("menu.cavedust.Z.tooltip"));
addButton(new Slider(left, row += 24, 0, 10, config.getVelocityRandomness())) addButton(new Slider(left, row += 24, 0, 10, config.getVelocityRandomness()))
.onChange(config::setVelocityRandomness) .onChange(config::setVelocityRandomness)
.setTextFormat(transText::formatVelocityRandomness) .setTextFormat(transText::formatVelocityRandomness)
.getStyle().setTooltip(Text.translatable("menu.cavedust.velocityrandomness.tooltip")); .getStyle().setTooltip(Text.translatable("menu.cavedust.velocityrandomness.tooltip"));
addButton(new Button(left, row += 24).onClick(sender -> { addButton(new Button(left -= 110, row += 60).onClick(sender -> {
config.resetConfig(); config.resetConfig();
finish(); finish();
})).getStyle().setText(Text.translatable("menu.cavedust.reset")).setTooltip(Text.translatable("menu.cavedust.reset.tooltip")); })).getStyle().setText(Text.translatable("menu.cavedust.reset")).setTooltip(Text.translatable("menu.cavedust.reset.tooltip"));
addButton(new Button(left, row += 60) addButton(new Button(left, row += 24)
.onClick(sender -> finish())).getStyle() .onClick(sender -> finish())).getStyle()
.setText("gui.done"); .setText("gui.done");
} }
@@ -111,4 +110,9 @@ public class ModMenuConfigScreen extends GameGui {
renderBackground(matrices); renderBackground(matrices);
super.render(matrices, mouseX, mouseY, partialTicks); super.render(matrices, mouseX, mouseY, partialTicks);
} }
private String getNameOfParticle(){
CaveDustConfig config = CaveDust.getInstance().getConfig();
config.load();
return Registries.PARTICLE_TYPE.getEntry(config.getParticleID()).get().getKey().get().getValue().toString();
}
} }

View File

@@ -7,6 +7,8 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.List; import java.util.List;
import static net.lizistired.cavedust.CaveDust.PARTICLE_AMOUNT;
import static net.lizistired.cavedust.utils.ParticleSpawnUtil.shouldParticlesSpawn; import static net.lizistired.cavedust.utils.ParticleSpawnUtil.shouldParticlesSpawn;
@Mixin(DebugHud.class) @Mixin(DebugHud.class)
@@ -16,7 +18,7 @@ public abstract class MixinDebugScreenOverlay {
List<String> messages = cir.getReturnValue(); List<String> messages = cir.getReturnValue();
messages.add(""); messages.add("");
messages.add("Should particles spawn: " + shouldParticlesSpawn); messages.add("Particle amount evaluated: " + PARTICLE_AMOUNT);
messages.add(""); messages.add("");
} }
} }

View File

@@ -66,7 +66,7 @@ public class ParticleSpawnUtil {
|| client.isPaused() || client.isPaused()
|| client.world == null || client.world == null
|| !client.world.getDimension().bedWorks() || !client.world.getDimension().bedWorks()
|| Objects.requireNonNull(client.player).isSubmergedInWater() || (client.world.getBottomY() > pos.getY())
|| client.world.getBiome(Objects.requireNonNull(pos)).matchesKey(LUSH_CAVES)) || client.world.getBiome(Objects.requireNonNull(pos)).matchesKey(LUSH_CAVES))
{ {

View File

@@ -3,24 +3,17 @@ package net.lizistired.cavedust.utils;
import com.minelittlepony.common.client.gui.element.AbstractSlider; import com.minelittlepony.common.client.gui.element.AbstractSlider;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import javax.swing.*;
public class TranslatableTextHelper { public class TranslatableTextHelper {
public Text formatMinX(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.minX", (int)Math.floor(slider.getValue()));
}
public Text formatMinY(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.minY", (int)Math.floor(slider.getValue()));
}
public Text formatMinZ(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.minZ", (int)Math.floor(slider.getValue()));
}
public Text formatMaxX(AbstractSlider<Float> slider) { public Text formatMaxX(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.maxX", (int)Math.floor(slider.getValue())); return Text.translatable("menu.cavedust.X", (int)Math.floor(slider.getValue()));
} }
public Text formatMaxY(AbstractSlider<Float> slider) { public Text formatMaxY(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.maxY", (int)Math.floor(slider.getValue())); return Text.translatable("menu.cavedust.Y", (int)Math.floor(slider.getValue()));
} }
public Text formatMaxZ(AbstractSlider<Float> slider) { public Text formatMaxZ(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.maxZ", (int)Math.floor(slider.getValue())); return Text.translatable("menu.cavedust.Z", (int)Math.floor(slider.getValue()));
} }
public Text formatUpperLimit(AbstractSlider<Float> slider) { public Text formatUpperLimit(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.upperlimit", (int)Math.floor(slider.getValue())); return Text.translatable("menu.cavedust.upperlimit", (int)Math.floor(slider.getValue()));
@@ -31,6 +24,10 @@ public class TranslatableTextHelper {
public Text formatParticleMultiplier(AbstractSlider<Float> slider) { public Text formatParticleMultiplier(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.particlemultiplier", (int)Math.floor(slider.getValue())); return Text.translatable("menu.cavedust.particlemultiplier", (int)Math.floor(slider.getValue()));
} }
public Text formatParticleMultiplierMultiplier(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.particlemultipliermultiplier", (int)Math.floor(slider.getValue()));
}
public Text formatVelocityRandomness(AbstractSlider<Float> slider) { public Text formatVelocityRandomness(AbstractSlider<Float> slider) {
return Text.translatable("menu.cavedust.velocityrandomness", (int) Math.floor(slider.getValue())); return Text.translatable("menu.cavedust.velocityrandomness", (int) Math.floor(slider.getValue()));
} }

View File

@@ -4,26 +4,22 @@
"menu.cavedust.global.true": "Cave Dust: Enabled", "menu.cavedust.global.true": "Cave Dust: Enabled",
"menu.cavedust.global.tooltip.false": "Enable cave dust particles?", "menu.cavedust.global.tooltip.false": "Enable cave dust particles?",
"menu.cavedust.global.tooltip.true": "Disable cave dust particles?", "menu.cavedust.global.tooltip.true": "Disable cave dust particles?",
"menu.cavedust.minX": "Minimum X: %s", "menu.cavedust.X": "X bounds: %s",
"menu.cavedust.minY": "Minimum Y: %s", "menu.cavedust.Y": "Y bounds: %s",
"menu.cavedust.minZ": "Minimum Z: %s", "menu.cavedust.Z": "Z bounds: %s",
"menu.cavedust.maxX": "Maximum X: %s", "menu.cavedust.X.tooltip": "X axis bounds for particle spawning.",
"menu.cavedust.maxY": "Maximum Y: %s", "menu.cavedust.Y.tooltip": "Y axis bounds for particle spawning.",
"menu.cavedust.maxZ": "Maximum Z: %s", "menu.cavedust.Z.tooltip": "Z axis bounds for particle spawning.",
"menu.cavedust.minX.tooltip": "Minimum X: %s", "menu.cavedust.upperlimit": "Upper limit height: %s",
"menu.cavedust.minY.tooltip": "Minimum Y: %s", "menu.cavedust.lowerlimit": "Lower limit height: %s",
"menu.cavedust.minZ.tooltip": "Minimum Z: %s",
"menu.cavedust.maxX.tooltip": "Maximum X: %s",
"menu.cavedust.maxY.tooltip": "Maximum Y: %s",
"menu.cavedust.maxZ.tooltip": "Maximum Z: %s",
"menu.cavedust.upperlimit": "Upper limit: %s",
"menu.cavedust.lowerlimit": "Lower limit: %s",
"menu.cavedust.upperlimit.tooltip": "The height where particles will fade out and stop spawning (uses player y).", "menu.cavedust.upperlimit.tooltip": "The height where particles will fade out and stop spawning (uses player y).",
"menu.cavedust.lowerlimit.tooltip": "The height where particles spawn the most (uses player y).", "menu.cavedust.lowerlimit.tooltip": "The height where particles spawn the most (uses player y).",
"menu.cavedust.reset": "Reset settings", "menu.cavedust.reset": "Reset settings",
"menu.cavedust.reset.tooltip": "Are you sure you want to reset all settings?", "menu.cavedust.reset.tooltip": "Are you sure you want to reset all settings?",
"menu.cavedust.particlemultiplier": "Particle multiplier: %s", "menu.cavedust.particlemultiplier": "Particle amount: %s",
"menu.cavedust.particlemultiplier.tooltip": "Multiplies the amount of particles at any given depth.", "menu.cavedust.particlemultiplier.tooltip": "Amount of particles to spawn at any given depth.",
"menu.cavedust.particlemultipliermultiplier": "Particle multiplier: %s",
"menu.cavedust.particlemultipliermultiplier.tooltip": "Multiplies particle amount.",
"menu.cavedust.velocityrandomness": "Velocity randomness: %s", "menu.cavedust.velocityrandomness": "Velocity randomness: %s",
"menu.cavedust.velocityrandomness.tooltip": "The randomness of the velocity of the particles.", "menu.cavedust.velocityrandomness.tooltip": "The randomness of the velocity of the particles.",
"menu.cavedust.enhanceddetection.true": "Enhanced detection: Enabled", "menu.cavedust.enhanceddetection.true": "Enhanced detection: Enabled",
@@ -32,6 +28,8 @@
"menu.cavedust.superflatstatus.true": "Superflat particles: Enabled", "menu.cavedust.superflatstatus.true": "Superflat particles: Enabled",
"menu.cavedust.superflatstatus.false": "Superflat particles: Disabled", "menu.cavedust.superflatstatus.false": "Superflat particles: Disabled",
"menu.cavedust.superflatstatus.tooltip": "Should particles spawn on superflat worlds?", "menu.cavedust.superflatstatus.tooltip": "Should particles spawn on superflat worlds?",
"menu.cavedust.particle": "Particle: ",
"menu.cavedust.particle.tooltip": "Particle to spawn. Click to cycle.",
"key.cavedust.reload": "Reload Config", "key.cavedust.reload": "Reload Config",
"key.cavedust.toggle": "Toggle Particles", "key.cavedust.toggle": "Toggle Particles",

View File

@@ -4,7 +4,8 @@
"package": "net.lizistired.cavedust.mixin", "package": "net.lizistired.cavedust.mixin",
"compatibilityLevel": "JAVA_16", "compatibilityLevel": "JAVA_16",
"mixins": [ "mixins": [
"ClientWorldAccessor" "ClientWorldAccessor",
"MixinDebugScreenOverlay"
], ],
"client": [ "client": [
], ],

View File

@@ -28,7 +28,7 @@
"depends": { "depends": {
"fabricloader": ">=0.14.5", "fabricloader": ">=0.14.5",
"fabric": "*", "fabric": "*",
"minecraft": ">=1.19-beta.5", "minecraft": "1.19.4",
"java": ">=17" "java": ">=17"
}, },
"suggests": { "suggests": {