finished relicense of master branch

This commit is contained in:
Robin Bärtschi 2024-06-28 08:24:19 +02:00
parent f78e208a95
commit 7cf4f606a5
41 changed files with 530 additions and 235 deletions

View File

@ -1,13 +1,13 @@
import java.net.URI import java.net.URI
plugins { plugins {
`java-library` `java-library`
eclipse eclipse
idea idea
`maven-publish` `maven-publish`
id("io.freefair.lombok") version "8.6" id("io.freefair.lombok") version "8.6"
id ("net.neoforged.gradle.userdev") version ("7.0.142") id ("net.neoforged.gradle.userdev") version ("7.0.142")
id("com.diffplug.spotless") version "7.0.0.BETA1" id("com.diffplug.spotless") version "7.0.0.BETA1"
} }
val minecraftVersion: String by project val minecraftVersion: String by project
@ -33,32 +33,32 @@ version = modVersion
group = modGroupId group = modGroupId
repositories { repositories {
mavenLocal() mavenLocal()
maven { maven {
url = URI.create("https://maven.k-4u.nl") url = URI.create("https://maven.k-4u.nl")
} }
maven { maven {
url = URI.create("https://maven.blamejared.com") url = URI.create("https://maven.blamejared.com")
} }
maven { url = URI.create("https://maven.shedaniel.me/") } maven { url = URI.create("https://maven.shedaniel.me/") }
maven { url = URI.create("https://maven.architectury.dev/") } maven { url = URI.create("https://maven.architectury.dev/") }
} }
base { base {
archivesName = modId archivesName = modId
} }
java.toolchain.languageVersion = JavaLanguageVersion.of(21) java.toolchain.languageVersion = JavaLanguageVersion.of(21)
spotless { spotless {
format("misc") { format("misc") {
target("*.gradle.kts", ".gitattributes", ".gitignore") target("*.gradle.kts", ".gitattributes", ".gitignore")
trimTrailingWhitespace() trimTrailingWhitespace()
indentWithTabs() indentWithTabs()
endWithNewline() endWithNewline()
} }
java { java {
// Originally, this was from Kaupenjoe's repo, and was licensed by BluSunrize as the original code was from her, so we exclude it to not add our License Header // Originally, this was from Kaupenjoe's repo, and was licensed by BluSunrize as the original code was from her, so we exclude it to not add our License Header
@ -72,30 +72,30 @@ spotless {
sourceSets { sourceSets {
// Include resources generated by data generators. // Include resources generated by data generators.
main.configure { main.configure {
resources { resources {
srcDir("src/generated/resources") srcDir("src/generated/resources")
} }
} }
create("junit") { create("junit") {
java { java {
} }
compileClasspath += sourceSets.main.get().output compileClasspath += sourceSets.main.get().output
runtimeClasspath += sourceSets.main.get().output runtimeClasspath += sourceSets.main.get().output
} }
} }
val junitImplementation: Configuration by configurations.getting { val junitImplementation: Configuration by configurations.getting {
extendsFrom(configurations.implementation.get()) extendsFrom(configurations.implementation.get())
} }
val junitRuntimeOnly: Configuration by configurations.getting { val junitRuntimeOnly: Configuration by configurations.getting {
extendsFrom(configurations.runtimeOnly.get()) extendsFrom(configurations.runtimeOnly.get())
} }
@ -112,69 +112,69 @@ configurations["junitImplementation"].extendsFrom(configurations.implementation.
// Default run configurations. // Default run configurations.
// These can be tweaked, removed, or duplicated as needed. // These can be tweaked, removed, or duplicated as needed.
runs { runs {
// applies to all the run configs below // applies to all the run configs below
configureEach { configureEach {
// Recommended logging data for an userdev environment // Recommended logging data for an userdev environment
// The markers can be added/remove as needed separated by commas. // The markers can be added/remove as needed separated by commas.
// "SCAN": For mods scan. // "SCAN": For mods scan.
// "REGISTRIES": For firing of registry events. // "REGISTRIES": For firing of registry events.
// "REGISTRYDUMP": For getting the contents of all registries. // "REGISTRYDUMP": For getting the contents of all registries.
systemProperty ("forge.logging.markers", "REGISTRIES") systemProperty ("forge.logging.markers", "REGISTRIES")
// Recommended logging level for the console // Recommended logging level for the console
// You can set various levels here. // You can set various levels here.
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
systemProperty ("forge.logging.console.level", "debug") systemProperty ("forge.logging.console.level", "debug")
modSource (project.sourceSets["main"]) modSource (project.sourceSets["main"])
} }
create("junit") { create("junit") {
junit(true) junit(true)
unitTestSources(sourceSets["junit"]) unitTestSources(sourceSets["junit"])
} }
create("client") { create("client") {
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces. // Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty ("forge.enabledGameTestNamespaces", modId) systemProperty ("forge.enabledGameTestNamespaces", modId)
} }
create("server") { create("server") {
systemProperty ("forge.enabledGameTestNamespaces", modId) systemProperty ("forge.enabledGameTestNamespaces", modId)
programArgument ("--nogui") programArgument ("--nogui")
} }
// This run config launches GameTestServer and runs all registered gametests, then exits. // This run config launches GameTestServer and runs all registered gametests, then exits.
// By default, the server will crash when no gametests are provided. // By default, the server will crash when no gametests are provided.
// The gametest system is also enabled by default for other run configs under the /test command. // The gametest system is also enabled by default for other run configs under the /test command.
create("gameTestServer") { create("gameTestServer") {
systemProperty ("forge.enabledGameTestNamespaces", modId) systemProperty ("forge.enabledGameTestNamespaces", modId)
} }
create("data") { create("data") {
// example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it
// workingDirectory project.file("run-data") // workingDirectory project.file("run-data")
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
programArguments.addAll ("--mod", modId, "--all", "--output", file("src/generated/resources/").absolutePath, "--existing", file("src/main/resources/").absolutePath) programArguments.addAll ("--mod", modId, "--all", "--output", file("src/generated/resources/").absolutePath, "--existing", file("src/main/resources/").absolutePath)
} }
} }
dependencies { dependencies {
// Specify the version of Minecraft to use. // Specify the version of Minecraft to use.
// Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above. // Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above.
// The group for userdev is net.neoforge, the module name is neoforge, and the version is the same as the neoforge version. // The group for userdev is net.neoforge, the module name is neoforge, and the version is the same as the neoforge version.
// You can however also use the vanilla plugin (net.neoforged.gradle.vanilla) to use a version of Minecraft without the neoforge loader. // You can however also use the vanilla plugin (net.neoforged.gradle.vanilla) to use a version of Minecraft without the neoforge loader.
// And its provides the option to then use net.minecraft as the group, and one of; client, server or joined as the module name, plus the game version as version. // And its provides the option to then use net.minecraft as the group, and one of; client, server or joined as the module name, plus the game version as version.
// For all intends and purposes: You can treat this dependency as if it is a normal library you would use. // For all intends and purposes: You can treat this dependency as if it is a normal library you would use.
implementation ("net.neoforged:neoforge:${neoVersion}") implementation ("net.neoforged:neoforge:${neoVersion}")
// Wait until 1.20.6 has a stable neoforge version, so that all mods should work when updated // Wait until 1.20.6 has a stable neoforge version, so that all mods should work when updated
// implementation("mcjty.theoneprobe:theoneprobe:${topVersion}") // implementation("mcjty.theoneprobe:theoneprobe:${topVersion}")
// //
// runtimeOnly("me.shedaniel:RoughlyEnoughItems-neoforge:${reiVersion}") // runtimeOnly("me.shedaniel:RoughlyEnoughItems-neoforge:${reiVersion}")
@ -182,40 +182,40 @@ dependencies {
// compileOnly("me.shedaniel:RoughlyEnoughItems-default-plugin-neoforge:${reiVersion}") // compileOnly("me.shedaniel:RoughlyEnoughItems-default-plugin-neoforge:${reiVersion}")
// Testing // Testing
junitImplementation(platform("org.junit:junit-bom:${junitVersion}")) junitImplementation(platform("org.junit:junit-bom:${junitVersion}"))
junitImplementation("org.junit.jupiter:junit-jupiter-params") junitImplementation("org.junit.jupiter:junit-jupiter-params")
junitRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") junitRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
junitImplementation("org.assertj:assertj-core:${assertjVersion}") junitImplementation("org.assertj:assertj-core:${assertjVersion}")
// Example mod dependency with JEI // Example mod dependency with JEI
// The JEI API is declared for compile time use, while the full JEI artifact is used at runtime // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
// compileOnly("mezz.jei:jei-${minecraftVersion}-common-api:${jei_version}") // compileOnly("mezz.jei:jei-${minecraftVersion}-common-api:${jei_version}")
// compileOnly("mezz.jei:jei-${minecraftVersion}-forge-api:${jei_version}") // compileOnly("mezz.jei:jei-${minecraftVersion}-forge-api:${jei_version}")
// runtimeOnly("mezz.jei:jei-${minecraftVersion}-forge:${jei_version}") // runtimeOnly("mezz.jei:jei-${minecraftVersion}-forge:${jei_version}")
// Example mod dependency using a mod jar from ./libs with a flat dir repository // Example mod dependency using a mod jar from ./libs with a flat dir repository
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
// The group id is ignored when searching -- in this case, it is "blank" // The group id is ignored when searching -- in this case, it is "blank"
// implementation "blank:coolmod-${mc_version}:${coolmod_version}" // implementation "blank:coolmod-${mc_version}:${coolmod_version}"
// Example mod dependency using a file as dependency // Example mod dependency using a file as dependency
// implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar") // implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar")
// Example project dependency using a sister or child project: // Example project dependency using a sister or child project:
// implementation project(":myproject") // implementation project(":myproject")
// For more info: // For more info:
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html // http://www.gradle.org/docs/current/userguide/dependency_management.html
} }
afterEvaluate { afterEvaluate {
// runs["junit"].modSources(runs["junit"].modSources) // runs["junit"].modSources(runs["junit"].modSources)
// runs["junit"].modSources = runs["junit"].modSources.get().stream().filter { it != sourceSets.main.get() }.toList() // runs["junit"].modSources = runs["junit"].modSources.get().stream().filter { it != sourceSets.main.get() }.toList()
runs["junit"].modSources.all().get().values().remove(sourceSets.main.get()) runs["junit"].modSources.all().get().values().remove(sourceSets.main.get())
} }
@ -225,49 +225,49 @@ afterEvaluate {
// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. // When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments.
// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
tasks.withType<ProcessResources>().configureEach { tasks.withType<ProcessResources>().configureEach {
val replaceProperties = mapOf( val replaceProperties = mapOf(
"minecraft_version" to minecraftVersion, "minecraft_version" to minecraftVersion,
"minecraft_version_range" to minecraftVersionRange, "minecraft_version_range" to minecraftVersionRange,
"neo_version" to neoVersion, "neo_version" to neoVersion,
"neo_version_range" to neoVersionRange, "neo_version_range" to neoVersionRange,
"loader_version_range" to loaderVersionRange, "loader_version_range" to loaderVersionRange,
"mod_id" to modId, "mod_id" to modId,
"mod_name" to modName, "mod_name" to modName,
"mod_license" to modLicense, "mod_license" to modLicense,
"mod_version" to modVersion, "mod_version" to modVersion,
"mod_authors" to modAuthors, "mod_authors" to modAuthors,
"mod_description" to modDescription) "mod_description" to modDescription)
inputs.properties(replaceProperties) inputs.properties(replaceProperties)
filesMatching("META-INF/neoforge.mods.toml") { filesMatching("META-INF/neoforge.mods.toml") {
expand(replaceProperties) expand(replaceProperties)
} }
} }
// Example configuration to allow publishing using the maven-publish plugin // Example configuration to allow publishing using the maven-publish plugin
publishing { publishing {
publications { publications {
register<MavenPublication>("mavenJava") { register<MavenPublication>("mavenJava") {
from (components["java"]) from (components["java"])
} }
} }
repositories { repositories {
maven { maven {
url = project.projectDir.toURI() url = project.projectDir.toURI()
} }
} }
} }
// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior. // IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior.
idea { idea {
module { module {
isDownloadJavadoc = true isDownloadJavadoc = true
isDownloadSources = true isDownloadSources = true
} }
} }
tasks.test { tasks.test {
useJUnitPlatform() useJUnitPlatform()
} }

View File

@ -1,11 +1,11 @@
pluginManagement { pluginManagement {
repositories { repositories {
mavenLocal() mavenLocal()
gradlePluginPortal() gradlePluginPortal()
maven ("https://maven.neoforged.net/releases") maven ("https://maven.neoforged.net/releases")
} }
} }
plugins { plugins {
id ("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" id ("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
} }

View File

@ -1,3 +1,9 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.unittest; package robaertschi.environmenttech.unittest;

View File

@ -1,6 +1,13 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.unittest; package robaertschi.environmenttech.unittest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import robaertschi.environmenttech.client.screen.ProgressArrowUtils; import robaertschi.environmenttech.client.screen.ProgressArrowUtils;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;

View File

@ -1,3 +1,9 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech; package robaertschi.environmenttech;
import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.bus.api.SubscribeEvent;

View File

@ -1,7 +1,11 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech; package robaertschi.environmenttech;
import com.mojang.logging.LogUtils;
import net.minecraft.resources.ResourceLocation;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.ModContainer; import net.neoforged.fml.ModContainer;
@ -11,6 +15,11 @@ import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.RegisterCommandsEvent; import net.neoforged.neoforge.event.RegisterCommandsEvent;
import net.neoforged.neoforge.event.tick.PlayerTickEvent; import net.neoforged.neoforge.event.tick.PlayerTickEvent;
import org.slf4j.Logger; import org.slf4j.Logger;
import net.minecraft.resources.ResourceLocation;
import com.mojang.logging.LogUtils;
import robaertschi.environmenttech.command.EnvironmenttechCommand; import robaertschi.environmenttech.command.EnvironmenttechCommand;
import robaertschi.environmenttech.data.attachments.ETAttachments; import robaertschi.environmenttech.data.attachments.ETAttachments;
import robaertschi.environmenttech.data.capabilities.ETCapabilities; import robaertschi.environmenttech.data.capabilities.ETCapabilities;

View File

@ -1,14 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.client; package robaertschi.environmenttech.client;
import com.mojang.blaze3d.platform.InputConstants;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.renderer.item.ItemProperties;
import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.jarjar.nio.util.Lazy;
import net.neoforged.neoforge.client.event.*; import net.neoforged.neoforge.client.event.*;
import org.lwjgl.glfw.GLFW;
import net.minecraft.client.renderer.item.ItemProperties;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
import robaertschi.environmenttech.client.particle.EnvParticleProvider; import robaertschi.environmenttech.client.particle.EnvParticleProvider;
import robaertschi.environmenttech.client.screen.EnvCollectorScreen; import robaertschi.environmenttech.client.screen.EnvCollectorScreen;

View File

@ -1,13 +1,22 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.client.particle; package robaertschi.environmenttech.client.particle;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.Particle;
import net.minecraft.client.particle.ParticleProvider; import net.minecraft.client.particle.ParticleProvider;
import net.minecraft.client.particle.SpriteSet; import net.minecraft.client.particle.SpriteSet;
import net.minecraft.core.particles.SimpleParticleType; import net.minecraft.core.particles.SimpleParticleType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import robaertschi.environmenttech.level.particle.EnvParticle; import robaertschi.environmenttech.level.particle.EnvParticle;
@AllArgsConstructor() @AllArgsConstructor()

View File

@ -1,6 +1,13 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.client.renderer; package robaertschi.environmenttech.client.renderer;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.util.FastColor; import net.minecraft.util.FastColor;

View File

@ -1,11 +1,19 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.client.screen; package robaertschi.environmenttech.client.screen;
import org.jetbrains.annotations.NotNull;
import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Inventory;
import org.jetbrains.annotations.NotNull;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
import robaertschi.environmenttech.client.renderer.EnvStorageRenderer; import robaertschi.environmenttech.client.renderer.EnvStorageRenderer;
import robaertschi.environmenttech.menu.EnvCollectorMenu; import robaertschi.environmenttech.menu.EnvCollectorMenu;

View File

@ -1,6 +1,13 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.client.screen; package robaertschi.environmenttech.client.screen;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
public class ProgressArrowUtils { public class ProgressArrowUtils {

View File

@ -1,12 +1,20 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.command; package robaertschi.environmenttech.command;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.LongArgumentType;
import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkAccess;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.LongArgumentType;
import robaertschi.environmenttech.data.attachments.ETAttachments; import robaertschi.environmenttech.data.attachments.ETAttachments;
import static net.minecraft.commands.Commands.*; import static net.minecraft.commands.Commands.*;

View File

@ -1,13 +1,21 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.attachments; package robaertschi.environmenttech.data.attachments;
import com.mojang.serialization.Codec; import java.util.function.Supplier;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.attachment.AttachmentType; import net.neoforged.neoforge.attachment.AttachmentType;
import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.DeferredRegister;
import net.neoforged.neoforge.registries.NeoForgeRegistries; import net.neoforged.neoforge.registries.NeoForgeRegistries;
import robaertschi.environmenttech.EnvironmentTech;
import java.util.function.Supplier; import com.mojang.serialization.Codec;
import robaertschi.environmenttech.EnvironmentTech;
public class ETAttachments { public class ETAttachments {
private static final DeferredRegister<AttachmentType<?>> ATTACHMENT_TYPES = DeferredRegister.create(NeoForgeRegistries.ATTACHMENT_TYPES, EnvironmentTech.MODID); private static final DeferredRegister<AttachmentType<?>> ATTACHMENT_TYPES = DeferredRegister.create(NeoForgeRegistries.ATTACHMENT_TYPES, EnvironmentTech.MODID);

View File

@ -1,10 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.capabilities; package robaertschi.environmenttech.data.capabilities;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import net.minecraft.world.item.ItemStack;
import net.neoforged.neoforge.items.IItemHandlerModifiable; import net.neoforged.neoforge.items.IItemHandlerModifiable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import net.minecraft.world.item.ItemStack;
@AllArgsConstructor @AllArgsConstructor
public class AdaptedItemHandler implements IItemHandlerModifiable { public class AdaptedItemHandler implements IItemHandlerModifiable {
private final IItemHandlerModifiable handler; private final IItemHandlerModifiable handler;

View File

@ -1,10 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.capabilities; package robaertschi.environmenttech.data.capabilities;
import net.minecraft.core.Direction;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.capabilities.BlockCapability; import net.neoforged.neoforge.capabilities.BlockCapability;
import net.neoforged.neoforge.capabilities.Capabilities; import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
import net.minecraft.core.Direction;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
import robaertschi.environmenttech.level.block.entity.ETBlockEntities; import robaertschi.environmenttech.level.block.entity.ETBlockEntities;

View File

@ -1,3 +1,9 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.capabilities; package robaertschi.environmenttech.data.capabilities;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;

View File

@ -1,3 +1,9 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.capabilities; package robaertschi.environmenttech.data.capabilities;
public enum EnvType { public enum EnvType {

View File

@ -1,3 +1,9 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.capabilities; package robaertschi.environmenttech.data.capabilities;
/** /**

View File

@ -1,9 +1,17 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.components; package robaertschi.environmenttech.data.components;
import net.minecraft.core.component.DataComponentType;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.core.component.DataComponentType;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
public class ETComponents { public class ETComponents {

View File

@ -1,10 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.components; package robaertschi.environmenttech.data.components;
import io.netty.buffer.ByteBuf;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder; import com.mojang.serialization.codecs.RecordCodecBuilder;
import io.netty.buffer.ByteBuf;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
public record FilledComponent(int filled) { public record FilledComponent(int filled) {
public static final Codec<FilledComponent> CODEC = RecordCodecBuilder.create(filledComponentInstance -> public static final Codec<FilledComponent> CODEC = RecordCodecBuilder.create(filledComponentInstance ->

View File

@ -1,11 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.recipes; package robaertschi.environmenttech.data.recipes;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.crafting.RecipeType;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;

View File

@ -1,6 +1,19 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.recipes; package robaertschi.environmenttech.data.recipes;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import java.util.LinkedHashMap;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import net.minecraft.advancements.Advancement; import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.AdvancementRequirements; import net.minecraft.advancements.AdvancementRequirements;
import net.minecraft.advancements.AdvancementRewards; import net.minecraft.advancements.AdvancementRewards;
@ -18,11 +31,6 @@ import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.LinkedHashMap;
import java.util.Map;
public record EnvCollectorRecipe(Ingredient input, ItemStack output, int envUsed) implements Recipe<Container> { public record EnvCollectorRecipe(Ingredient input, ItemStack output, int envUsed) implements Recipe<Container> {
@Override @Override

View File

@ -1,14 +1,22 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.data.recipes; package robaertschi.environmenttech.data.recipes;
import com.mojang.serialization.Codec; import org.jetbrains.annotations.NotNull;
import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.codec.StreamCodec;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeSerializer;
import org.jetbrains.annotations.NotNull;
import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
public class EnvCollectorRecipeSerializer implements RecipeSerializer<EnvCollectorRecipe> { public class EnvCollectorRecipeSerializer implements RecipeSerializer<EnvCollectorRecipe> {
public static final MapCodec<EnvCollectorRecipe> CODEC = RecordCodecBuilder.mapCodec( public static final MapCodec<EnvCollectorRecipe> CODEC = RecordCodecBuilder.mapCodec(

View File

@ -1,9 +1,17 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.datagen; package robaertschi.environmenttech.datagen;
import net.minecraft.data.PackOutput;
import net.neoforged.neoforge.client.model.generators.BlockStateProvider; import net.neoforged.neoforge.client.model.generators.BlockStateProvider;
import net.neoforged.neoforge.client.model.generators.ModelFile; import net.neoforged.neoforge.client.model.generators.ModelFile;
import net.neoforged.neoforge.common.data.ExistingFileHelper; import net.neoforged.neoforge.common.data.ExistingFileHelper;
import net.minecraft.data.PackOutput;
import robaertschi.environmenttech.level.block.ETBlocks; import robaertschi.environmenttech.level.block.ETBlocks;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;

View File

@ -1,14 +1,21 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.datagen; package robaertschi.environmenttech.datagen;
import net.minecraft.core.HolderLookup; import java.util.concurrent.CompletableFuture;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.PackOutput;
import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.common.data.ExistingFileHelper; import net.neoforged.neoforge.common.data.ExistingFileHelper;
import net.neoforged.neoforge.data.event.GatherDataEvent; import net.neoforged.neoforge.data.event.GatherDataEvent;
import java.util.concurrent.CompletableFuture; import net.minecraft.core.HolderLookup;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.PackOutput;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;

View File

@ -1,11 +1,19 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.datagen; package robaertschi.environmenttech.datagen;
import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceLocation;
import net.neoforged.neoforge.client.model.generators.ItemModelBuilder; import net.neoforged.neoforge.client.model.generators.ItemModelBuilder;
import net.neoforged.neoforge.client.model.generators.ItemModelProvider; import net.neoforged.neoforge.client.model.generators.ItemModelProvider;
import net.neoforged.neoforge.client.model.generators.ModelFile; import net.neoforged.neoforge.client.model.generators.ModelFile;
import net.neoforged.neoforge.common.data.ExistingFileHelper; import net.neoforged.neoforge.common.data.ExistingFileHelper;
import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceLocation;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
import robaertschi.environmenttech.level.block.ETBlocks; import robaertschi.environmenttech.level.block.ETBlocks;
import robaertschi.environmenttech.level.item.ETItems; import robaertschi.environmenttech.level.item.ETItems;

View File

@ -1,5 +1,16 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.datagen; package robaertschi.environmenttech.datagen;
import java.util.concurrent.CompletableFuture;
import net.neoforged.neoforge.common.Tags;
import org.jetbrains.annotations.NotNull;
import net.minecraft.advancements.critereon.InventoryChangeTrigger; import net.minecraft.advancements.critereon.InventoryChangeTrigger;
import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.advancements.critereon.ItemPredicate;
import net.minecraft.core.HolderLookup; import net.minecraft.core.HolderLookup;
@ -11,14 +22,11 @@ import net.minecraft.data.recipes.ShapedRecipeBuilder;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items; import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Ingredient;
import net.neoforged.neoforge.common.Tags;
import org.jetbrains.annotations.NotNull;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
import robaertschi.environmenttech.data.recipes.EnvCollectorRecipe; import robaertschi.environmenttech.data.recipes.EnvCollectorRecipe;
import robaertschi.environmenttech.level.item.ETItems; import robaertschi.environmenttech.level.item.ETItems;
import java.util.concurrent.CompletableFuture;
public class ETRecipeProvider extends RecipeProvider { public class ETRecipeProvider extends RecipeProvider {
public ETRecipeProvider(PackOutput pOutput, CompletableFuture<HolderLookup.Provider> pRegistries) { public ETRecipeProvider(PackOutput pOutput, CompletableFuture<HolderLookup.Provider> pRegistries) {
super(pOutput, pRegistries); super(pOutput, pRegistries);

View File

@ -1,11 +1,20 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level; package robaertschi.environmenttech.level;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.minecraft.world.level.chunk.LevelChunk;
import net.minecraft.world.level.chunk.status.ChunkStatus;
import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.event.level.ChunkEvent; import net.neoforged.neoforge.event.level.ChunkEvent;
import net.minecraft.world.level.chunk.LevelChunk;
import net.minecraft.world.level.chunk.status.ChunkStatus;
import robaertschi.environmenttech.Config; import robaertschi.environmenttech.Config;
import robaertschi.environmenttech.EnvironmentTech; import robaertschi.environmenttech.EnvironmentTech;
import robaertschi.environmenttech.data.attachments.ETAttachments; import robaertschi.environmenttech.data.attachments.ETAttachments;

View File

@ -1,10 +1,17 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.block; package robaertschi.environmenttech.level.block;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredBlock; import net.neoforged.neoforge.registries.DeferredBlock;
import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.world.level.block.state.BlockBehaviour;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;
public class ETBlocks { public class ETBlocks {

View File

@ -1,7 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.block; package robaertschi.environmenttech.level.block;
import com.mojang.serialization.MapCodec;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.annotation.ParametersAreNonnullByDefault;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
@ -27,13 +38,12 @@ import net.minecraft.world.phys.shapes.BooleanOp;
import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShape;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import com.mojang.serialization.MapCodec;
import robaertschi.environmenttech.level.block.entity.ETBlockEntities; import robaertschi.environmenttech.level.block.entity.ETBlockEntities;
import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity; import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity;
import javax.annotation.ParametersAreNonnullByDefault;
@ParametersAreNonnullByDefault() @ParametersAreNonnullByDefault()
@Slf4j @Slf4j
public class EnvCollectorBlock extends BaseEntityBlock { public class EnvCollectorBlock extends BaseEntityBlock {

View File

@ -1,7 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.block; package robaertschi.environmenttech.level.block;
import com.mojang.serialization.MapCodec;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.annotation.ParametersAreNonnullByDefault;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
@ -16,13 +27,12 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.DirectionProperty; import net.minecraft.world.level.block.state.properties.DirectionProperty;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import com.mojang.serialization.MapCodec;
import robaertschi.environmenttech.level.block.entity.ETBlockEntities; import robaertschi.environmenttech.level.block.entity.ETBlockEntities;
import robaertschi.environmenttech.level.block.entity.EnvDistributorBlockEntity; import robaertschi.environmenttech.level.block.entity.EnvDistributorBlockEntity;
import javax.annotation.ParametersAreNonnullByDefault;
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@Slf4j @Slf4j
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault

View File

@ -1,12 +1,19 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.block.entity; package robaertschi.environmenttech.level.block.entity;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.level.block.entity.BlockEntityType;
import robaertschi.environmenttech.level.block.ETBlocks; import robaertschi.environmenttech.level.block.ETBlocks;
import robaertschi.environmenttech.level.block.EnvDistributorBlock;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;

View File

@ -1,6 +1,22 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.block.entity; package robaertschi.environmenttech.level.block.entity;
import lombok.Getter; import lombok.Getter;
import net.neoforged.jarjar.nio.util.Lazy;
import net.neoforged.neoforge.items.IItemHandler;
import net.neoforged.neoforge.items.IItemHandlerModifiable;
import net.neoforged.neoforge.items.ItemStackHandler;
import net.neoforged.neoforge.items.wrapper.CombinedInvWrapper;
import net.neoforged.neoforge.items.wrapper.RecipeWrapper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.HolderLookup; import net.minecraft.core.HolderLookup;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
@ -20,14 +36,7 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkAccess;
import net.neoforged.jarjar.nio.util.Lazy;
import net.neoforged.neoforge.items.IItemHandler;
import net.neoforged.neoforge.items.IItemHandlerModifiable;
import net.neoforged.neoforge.items.ItemStackHandler;
import net.neoforged.neoforge.items.wrapper.CombinedInvWrapper;
import net.neoforged.neoforge.items.wrapper.RecipeWrapper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import robaertschi.environmenttech.data.attachments.ETAttachments; import robaertschi.environmenttech.data.attachments.ETAttachments;
import robaertschi.environmenttech.data.capabilities.AdaptedItemHandler; import robaertschi.environmenttech.data.capabilities.AdaptedItemHandler;
import robaertschi.environmenttech.data.capabilities.EnvStorage; import robaertschi.environmenttech.data.capabilities.EnvStorage;

View File

@ -1,22 +1,28 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.block.entity; package robaertschi.environmenttech.level.block.entity;
import lombok.Getter; import lombok.Getter;
import javax.annotation.ParametersAreNonnullByDefault;
import org.jetbrains.annotations.NotNull;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.HolderLookup; import net.minecraft.core.HolderLookup;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkAccess;
import org.jetbrains.annotations.NotNull;
import robaertschi.environmenttech.data.attachments.ETAttachments; import robaertschi.environmenttech.data.attachments.ETAttachments;
import robaertschi.environmenttech.data.capabilities.EnvStorage; import robaertschi.environmenttech.data.capabilities.EnvStorage;
import robaertschi.environmenttech.data.capabilities.EnvType; import robaertschi.environmenttech.data.capabilities.EnvType;
import robaertschi.environmenttech.data.components.ETComponents;
import javax.annotation.ParametersAreNonnullByDefault;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;

View File

@ -1,7 +1,14 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.block.entity.renderer; package robaertschi.environmenttech.level.block.entity.renderer;
import com.mojang.blaze3d.vertex.PoseStack; import java.util.Objects;
import com.mojang.math.Axis; import javax.annotation.ParametersAreNonnullByDefault;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
@ -16,13 +23,14 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis;
import robaertschi.environmenttech.level.block.EnvCollectorBlock; import robaertschi.environmenttech.level.block.EnvCollectorBlock;
import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity; import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity;
import robaertschi.environmenttech.level.particle.ETParticles; import robaertschi.environmenttech.level.particle.ETParticles;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Objects;
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
public class EnvCollectorRenderer implements BlockEntityRenderer<EnvCollectorBlockEntity> { public class EnvCollectorRenderer implements BlockEntityRenderer<EnvCollectorBlockEntity> {
@SuppressWarnings("unused") @SuppressWarnings("unused")

View File

@ -1,5 +1,16 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.item; package robaertschi.environmenttech.level.item;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.core.component.DataComponents; import net.minecraft.core.component.DataComponents;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
@ -8,10 +19,7 @@ import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.component.CustomModelData; import net.minecraft.world.item.component.CustomModelData;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredRegister;
import robaertschi.environmenttech.level.block.ETBlocks; import robaertschi.environmenttech.level.block.ETBlocks;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;

View File

@ -1,5 +1,16 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.item; package robaertschi.environmenttech.level.item;
import java.util.List;
import javax.annotation.ParametersAreNonnullByDefault;
import org.jetbrains.annotations.NotNull;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
@ -9,14 +20,11 @@ import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull;
import robaertschi.environmenttech.data.attachments.ETAttachments; import robaertschi.environmenttech.data.attachments.ETAttachments;
import robaertschi.environmenttech.data.components.ETComponents; import robaertschi.environmenttech.data.components.ETComponents;
import robaertschi.environmenttech.data.components.FilledComponent; import robaertschi.environmenttech.data.components.FilledComponent;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
public class EnvDetectorItem extends Item { public class EnvDetectorItem extends Item {
public static final int STEPS = 9; public static final int STEPS = 9;

View File

@ -1,11 +1,18 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.particle; package robaertschi.environmenttech.level.particle;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.core.particles.ParticleType; import net.minecraft.core.particles.ParticleType;
import net.minecraft.core.particles.SimpleParticleType; import net.minecraft.core.particles.SimpleParticleType;
import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.BuiltInRegistries;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;

View File

@ -1,12 +1,19 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.level.particle; package robaertschi.environmenttech.level.particle;
import org.jetbrains.annotations.NotNull;
import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.particle.ParticleRenderType; import net.minecraft.client.particle.ParticleRenderType;
import net.minecraft.client.particle.SpriteSet; import net.minecraft.client.particle.SpriteSet;
import net.minecraft.client.particle.TextureSheetParticle; import net.minecraft.client.particle.TextureSheetParticle;
import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.core.particles.ParticleType; import net.minecraft.core.particles.ParticleType;
import org.jetbrains.annotations.NotNull;
public class EnvParticle extends TextureSheetParticle implements ParticleOptions { public class EnvParticle extends TextureSheetParticle implements ParticleOptions {
private final SpriteSet spriteSet; private final SpriteSet spriteSet;

View File

@ -1,12 +1,19 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.menu; package robaertschi.environmenttech.menu;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.inventory.MenuType;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.common.extensions.IMenuTypeExtension; import net.neoforged.neoforge.common.extensions.IMenuTypeExtension;
import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.inventory.MenuType;
import static robaertschi.environmenttech.EnvironmentTech.MODID; import static robaertschi.environmenttech.EnvironmentTech.MODID;
public class ETMenus { public class ETMenus {

View File

@ -1,14 +1,23 @@
/*
* EnvironmentTech Copyright (C) 2024 Robin B??rtschi
* This program comes with ABSOLUTELY NO WARRANTY; for details open the file LICENSE at the root of the source code.
* This is free software, and you are welcome to redistribute it
* under certain conditions; read the LICENSE file at the root of the source code for details.
*/
package robaertschi.environmenttech.menu; package robaertschi.environmenttech.menu;
import lombok.Getter; import lombok.Getter;
import net.neoforged.neoforge.items.SlotItemHandler;
import org.jetbrains.annotations.NotNull;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.Container; import net.minecraft.world.Container;
import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.*; import net.minecraft.world.inventory.*;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.neoforged.neoforge.items.SlotItemHandler;
import org.jetbrains.annotations.NotNull;
import robaertschi.environmenttech.level.block.ETBlocks; import robaertschi.environmenttech.level.block.ETBlocks;
import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity; import robaertschi.environmenttech.level.block.entity.EnvCollectorBlockEntity;