plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
- id "dev.architectury.loom" version "0.11.0-SNAPSHOT" apply false
+ id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false
}
architectury {
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.resources.language.I18n;
import net.minecraft.network.chat.Component;
-import net.minecraft.network.chat.TextComponent;
-import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.util.Mth;
-import java.util.Optional;
-
public class ClothScreen {
public static Screen getConfigScreenByCloth(Screen parent) {
- ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslatableComponent("key.lightoverlay.category"));
+ ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(Component.translatable("key.lightoverlay.category"));
ConfigEntryBuilder eb = builder.entryBuilder();
- ConfigCategory general = builder.getOrCreateCategory(new TranslatableComponent("config.lightoverlay.general"));
+ ConfigCategory general = builder.getOrCreateCategory(Component.translatable("config.lightoverlay.general"));
general.addEntry(eb.startTextDescription(Component.nullToEmpty("ยง7" + I18n.get("description.lightoverlay.caching"))).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Component.nullToEmpty("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
- IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableComponent("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(0).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
+ general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
+ general.addEntry(eb.startIntSlider(Component.translatable("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Component.nullToEmpty("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
+ IntegerSliderEntry crossLevel = eb.startIntSlider(Component.translatable("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(0).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
general.addEntry(crossLevel);
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
- .setDefaultValue(7).setTextGetter(integer -> new TextComponent(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
- general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.mushroom"), LightOverlay.mushroom).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.mushroom = bool).build());
- general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.lineWidth"), Mth.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> new TextComponent("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
- general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
+ general.addEntry(eb.startIntSlider(Component.translatable("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
+ .setDefaultValue(7).setTextGetter(integer -> Component.literal(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
+ general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
+ general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
+ general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.mushroom"), LightOverlay.mushroom).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.mushroom = bool).build());
+ general.addEntry(eb.startIntSlider(Component.translatable("config.lightoverlay.lineWidth"), Mth.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> Component.literal("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
+ general.addEntry(eb.startColorField(Component.translatable("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
+ general.addEntry(eb.startColorField(Component.translatable("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
+ general.addEntry(eb.startColorField(Component.translatable("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
return builder.setSavingRunnable(() -> {
try {
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LightLayer;
import net.minecraft.world.level.biome.Biome;
+import net.minecraft.world.level.biome.Biomes;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.ChunkStatus;
Unsafe unsafe = (Unsafe) f.get(null);
// instantiate entity type
- EntityType<Entity> type = (EntityType<Entity>) unsafe.allocateInstance(EntityType.class);
- return type;
+ return (EntityType<Entity>) unsafe.allocateInstance(EntityType.class);
} catch (Exception e) {
throw new RuntimeException(e);
}
POS.clear();
CHUNK_MAP.clear();
BlockPos playerPos = player.blockPosition();
+ assert world != null;
LayerLightEventListener block = world.getLightEngine().getLayerListener(LightLayer.BLOCK);
LayerLightEventListener sky = LightOverlay.showNumber ? null : world.getLightEngine().getLayerListener(LightLayer.SKY);
BlockPos.MutableBlockPos downPos = new BlockPos.MutableBlockPos();
}
}
} else {
+ assert Minecraft.getInstance().level != null;
var height = Mth.ceil(Minecraft.getInstance().level.getHeight() / 32.0);
var start = Math.floorDiv(Minecraft.getInstance().level.getMinBuildHeight(), 32);
int playerPosX = ((int) player.getX()) >> 4;
int playerPosX1 = ((int) minecraft.player.getX()) >> 4;
int playerPosY1 = ((int) minecraft.player.getY()) >> 5;
int playerPosZ1 = ((int) minecraft.player.getZ()) >> 4;
- if (finalC1 != null) processChunk(finalC1, playerPosX1, playerPosY1, playerPosZ1, collisionContext);
+ processChunk(finalC1, playerPosX1, playerPosY1, playerPosZ1, collisionContext);
if (finalC2 != null) processChunk(finalC2, playerPosX1, playerPosY1, playerPosZ1, collisionContext);
if (finalC3 != null) processChunk(finalC3, playerPosX1, playerPosY1, playerPosZ1, collisionContext);
});
return;
}
try {
+ assert minecraft.level != null;
calculateChunk(minecraft.level.getChunkSource().getChunk(pos.x, pos.z, ChunkStatus.FULL, false), minecraft.level, pos, context);
} catch (Throwable throwable) {
LogManager.getLogger().throwing(throwable);
// Check block state allow spawning (excludes bedrock and barriers automatically)
if (!blockBelowState.isValidSpawn(world, down, TESTING_ENTITY_TYPE.get()))
return LightOverlay.CROSS_NONE;
- if (!LightOverlay.mushroom && Biome.BiomeCategory.MUSHROOM == Biome.getBiomeCategory(biome))
+ if (!LightOverlay.mushroom && biome.is(Biomes.MUSHROOM_FIELDS))
return LightOverlay.CROSS_NONE;
int blockLightLevel = block.getLightValue(pos);
int skyLightLevel = sky.getLightValue(pos);
plugins {
- id "com.github.johnrengelman.shadow" version "7.0.0"
+ id "com.github.johnrengelman.shadow" version "7.1.2"
}
loom {
remapJar {
dependsOn(shadowJar)
- input.set(shadowJar.archivePath)
+ inputFile.set(shadowJar.archivePath)
classifier null
}
--- /dev/null
+loom.platform=fabric
\ No newline at end of file
{
"required": true,
"package": "me.shedaniel.lightoverlay.fabric.mixin",
- "minVersion": "0.7.11",
- "compatibilityLevel": "JAVA_8",
+ "minVersion": "0.8",
+ "compatibilityLevel": "JAVA_17",
"mixins": [],
"client": [
"MixinClientConnection"
plugins {
- id "com.github.johnrengelman.shadow" version "7.0.0"
+ id "com.github.johnrengelman.shadow" version "7.1.2"
}
configurations {
remapJar {
dependsOn(shadowJar)
- input.set(shadowJar.archivePath)
- archiveClassifier = "forge"
+ inputFile.set(shadowJar.archivePath)
+ archiveClassifier.set("forge")
}
-loom.forge=true
\ No newline at end of file
+loom.platform=forge
\ No newline at end of file
{
"required": true,
"package": "me.shedaniel.lightoverlay.forge.mixin",
- "minVersion": "0.7.11",
- "compatibilityLevel": "JAVA_8",
+ "minVersion": "0.8",
+ "compatibilityLevel": "JAVA_17",
"mixins": [],
"client": [
"MixinClientConnection",
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
-mod_version=6.0.5
-minecraft_version=1.18.2
+mod_version=6.1.0
+minecraft_version=1.19
-architectury_version=4.0.29
+architectury_version=5.6.22
# fabric
-fabric_loader_version=0.13.3
-fabric_api_version=0.47.8+1.18.2
-cloth_config_version=6.2.57
-modmenu_version=3.0.0
+fabric_loader_version=0.14.7
+fabric_api_version=0.55.3+1.19
+cloth_config_version=7.0.72
+modmenu_version=4.0.0
# forge
-forge_version=40.0.1
\ No newline at end of file
+forge_version=41.0.17
\ No newline at end of file
repositories {
maven { url "https://maven.fabricmc.net/" }
maven { url "https://maven.shedaniel.me/" }
+ maven { url "https://maven.architectury.dev/" }
maven { url "https://files.minecraftforge.net/maven/" }
gradlePluginPortal()
}