diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..67572fd7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,20 @@ +# Auto detect text files and normalize to LF +* text=auto eol=lf + +# Ensure these are always LF +*.java text eol=lf +*.kt text eol=lf +*.json text eol=lf +*.gradle text eol=lf +*.properties text eol=lf +*.xml text eol=lf +*.yml text eol=lf +*.yaml text eol=lf +*.md text eol=lf +*.txt text eol=lf + +# Binary files +*.png binary +*.jpg binary +*.jar binary +*.ogg binary diff --git a/.gitignore b/.gitignore index d5f737e7..cf8151ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,119 +1,26 @@ -# User-specific stuff -.idea/ - -*.iml +build/ *.ipr +run*/ *.iws - -# IntelliJ out/ -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -.gradle -build/ - -# Ignore Gradle GUI config -gradle-app.setting - -# Cache of project -.gradletasknamecache - -**/build/ - -# Common working directory -run/ -runs/ +*.iml +.gradle/ +output/ +bin/ -# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) -!gradle-wrapper.jar +.classpath +*/.factorypath +.project +.idea/ +.vscode/ +.run/ +classes/ +.metadata +.settings +*.launch +*/src/generated/resources/.cache/ + +*.patch +*.DS_Store + +qodana.yaml diff --git a/README.md b/README.md index 28ae8216..bf5793b7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- title + title


@@ -13,7 +13,7 @@

- English | + English | 简体中文

@@ -55,4 +55,4 @@ | Tetra | | 🔲 | | | Tinker's Construct 3 | | ✅ | | | Industrial Foregoing | | ✅ | | -| Industrial Foregoing Extra Upgrades | | ✅ | | \ No newline at end of file +| Industrial Foregoing Extra Upgrades | | ✅ | | diff --git a/all/build.gradle b/all/build.gradle new file mode 100644 index 00000000..5c6bcc84 --- /dev/null +++ b/all/build.gradle @@ -0,0 +1,124 @@ +ext.ai_mod_id = 'avaritia_integration_all' +ext.ai_mod_name = 'Avaritia Integration All' +ext.ai_mod_description = 'Aggregated Avaritia Integration distribution.' +ext.ai_run_directory = 'all' +ext.ai_archive_name = mod_id +ext.ai_aggregate = true +ext.ai_dependency_blocks = """[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_ae2" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_botania" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_create" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_enderio" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_industrialforegoing" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_ifeu" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_mekanism" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_mekanism_generators" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_pneumaticcraft" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_refinedstorage" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_thermal_expansion_data" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +[[dependencies."avaritia_integration_all"]] +modId = "avaritia_integration_tconstruct_data" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" +""" + +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + def embeddedProjects = [ + ':core', + ':integrations:ae2', + ':integrations:botania', + ':integrations:create', + ':integrations:enderio', + ':integrations:industrialforegoing', + ':integrations:ifeu', + ':integrations:mekanism', + ':integrations:mekanism-generators', + ':integrations:pneumaticcraft', + ':integrations:refinedstorage', + ':integrations:thermal-expansion-data', + ':integrations:tconstruct-data' + ] + + embeddedProjects.each { path -> + implementation project(path) + jarJar(project(path)) { + transitive = false + } + } +} diff --git a/all/src/main/java/committee/nova/mods/avaritia_integration/all/AvaritiaIntegrationAll.java b/all/src/main/java/committee/nova/mods/avaritia_integration/all/AvaritiaIntegrationAll.java new file mode 100644 index 00000000..a427aad3 --- /dev/null +++ b/all/src/main/java/committee/nova/mods/avaritia_integration/all/AvaritiaIntegrationAll.java @@ -0,0 +1,11 @@ +package committee.nova.mods.avaritia_integration.all; + +import net.neoforged.fml.common.Mod; + +@Mod(AvaritiaIntegrationAll.MOD_ID) +public final class AvaritiaIntegrationAll { + + public static final String MOD_ID = "avaritia_integration_all"; + + public AvaritiaIntegrationAll() {} +} diff --git a/all/src/main/templates/META-INF/neoforge.mods.toml b/all/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..a2f8fc7b --- /dev/null +++ b/all/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,26 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +${dependency_blocks} diff --git a/build.gradle b/build.gradle index 78ffad85..c7f0817a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,172 +1,32 @@ plugins { - id 'java-library' - id 'maven-publish' - id 'idea' - id 'net.neoforged.moddev' version '2.0.140' + alias(libs.plugins.modDevGradle) apply false + alias(libs.plugins.spotless) + alias(libs.plugins.lombok) apply false } -version = mod_version -group = mod_group_id +apply from: rootProject.file('gradle/scripts/spotless.gradle') -base { - archivesName = mod_id -} - -java.toolchain.languageVersion = JavaLanguageVersion.of(21) - -neoForge { - - version = project.neo_version - - parchment { - mappingsVersion = project.parchment_mappings_version - minecraftVersion = project.parchment_minecraft_version - } - - runs { - client { - client() - - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - server { - server() - programArgument '--nogui' - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - gameTestServer { - type = "gameTestServer" - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - data { - data() - - programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() - } - - configureEach { - systemProperty 'forge.logging.markers', 'REGISTRIES' - - logLevel = org.slf4j.event.Level.DEBUG - } - } - - mods { - - "${mod_id}" { - sourceSet(sourceSets.main) - } - } -} +allprojects { + group = mod_group_id + version = mod_version -// Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } - -repositories { - - mavenCentral() - maven { - // For Botania 1.21.1 - url = "https://maven.blamejared.com" - } - maven { - name = "Curios" - url = uri("https://maven.theillusivec4.top/") - } - maven { - url = "https://www.cursemaven.com" - content { - includeGroup "curse.maven" + repositories { + mavenLocal() + mavenCentral() + maven { + // For Botania 1.21.1 + url = "https://maven.blamejared.com" } - } - maven { url 'https://modmaven.dev/' } - -} - -dependencies { - - //Avaritia - implementation "curse.maven:re-avaritia-623969:${avaritia_version}" - //JEI - implementation "curse.maven:jei-238222:${jei_version}" - //Refined Storage - implementation "curse.maven:refined-storage-243076:${refined_Storage_version}" - //Create - implementation "curse.maven:create-328085:${create_version}" - //PneumaticCraft: Repressurized - implementation "curse.maven:pneumaticcraft-repressurized-281849:${pneumaticcraft_repressurized_version}" - //Ender IO - implementation "curse.maven:ender-io-64578:${ender_io_version}" - //Applied Energistics - implementation "org.appliedenergistics:appliedenergistics2:${applied_energistics_version}" - //GuideME - implementation "org.appliedenergistics:guideme:${guideme_version}" - //Patchouli - implementation "curse.maven:patchouli-306770:${patchouli_version}" - //Curios - implementation "curse.maven:curios-309927:${curios_version}" - //Jade - implementation "curse.maven:jade-324717:${jade_version}" - //Titanium - implementation "curse.maven:titanium-287342:${titanium_version}" - //Industrial Foregoing - implementation "curse.maven:industrial-foregoing-266515:${industrial_foregoing_version}" - //Industrial Foregoing Extra Upgrades - implementation "curse.maven:industrial-foregoing-extra-upgrades-1161049:${industrial_foregoing_extra_upgrades_version}" - //Botania - implementation "vazkii.botania:botania-neoforge-1.21.1:${botania_version}" - //Mekanism - implementation "mekanism:Mekanism:${mekanism_version}" - runtimeOnly "mekanism:Mekanism:${mekanism_version}:additions" - implementation "mekanism:Mekanism:${mekanism_version}:generators" - runtimeOnly "mekanism:Mekanism:${mekanism_version}:tools" - - runtimeOnly "curse.maven:iglee-library-541199:7000755" - implementation "curse.maven:evolved-mekanism-1230085:7599592" - -} - -var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) { - var replaceProperties = [minecraft_version : minecraft_version, - minecraft_version_range: minecraft_version_range, - neo_version : neo_version, - neo_version_range : neo_version_range, - loader_version_range : loader_version_range, - mod_id : mod_id, - mod_name : mod_name, - mod_license : mod_license, - mod_version : mod_version, - mod_authors : mod_authors, - mod_description : mod_description] - inputs.properties replaceProperties - expand replaceProperties - from "src/main/templates" - into "build/generated/sources/modMetadata" -} - -sourceSets.main.resources.srcDir generateModMetadata - -neoForge.ideSyncTask generateModMetadata - -publishing { - publications { - register('mavenJava', MavenPublication) { - from components.java + maven { + name = "Curios" + url = uri("https://maven.theillusivec4.top/") } - } - repositories { maven { - url "file://${project.projectDir}/repo" + url = "https://www.cursemaven.com" + content { + includeGroup "curse.maven" + } } - } -} - -idea { - module { - downloadSources = true - downloadJavadoc = true + maven { url 'https://modmaven.dev/' } } } diff --git a/core/build.gradle b/core/build.gradle new file mode 100644 index 00000000..56a5a733 --- /dev/null +++ b/core/build.gradle @@ -0,0 +1,47 @@ +ext.ai_mod_id = mod_id +ext.ai_mod_name = mod_name +ext.ai_mod_description = mod_description +ext.ai_run_directory = 'core' + +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + // Avaritia + implementation forge.reAvaritia +// // JEI +// implementation forge.jei +// // Refined Storage +// implementation forge.refinedStorage +// // Create +// implementation forge.create +// // PneumaticCraft: Repressurized +// implementation forge.pneumaticcraftRepressurized +// // Ender IO +// implementation forge.enderIo +// // Applied Energistics +// implementation forge.appliedEnergistics +// // GuideME +// implementation forge.guideme +// // Patchouli +// implementation forge.patchouli +// // Curios +// implementation forge.curios +// // Jade +// implementation forge.jade +// // Titanium +// implementation forge.titanium +// // Industrial Foregoing +// implementation forge.industrialForegoing +// // Industrial Foregoing Extra Upgrades +// implementation forge.industrialForegoingExtraUpgrades +// // Botania +// implementation forge.botania +// // Mekanism +// implementation forge.mekanism +// runtimeOnly variantOf(forge.mekanism) { classifier('additions') } +// implementation variantOf(forge.mekanism) { classifier('generators') } +// runtimeOnly variantOf(forge.mekanism) { classifier('tools') } +// +// runtimeOnly forge.igleeLibrary +// implementation forge.evolvedMekanism +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/AvaritiaIntegration.java b/core/src/main/java/committee/nova/mods/avaritia_integration/AvaritiaIntegration.java new file mode 100644 index 00000000..7a07705b --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/AvaritiaIntegration.java @@ -0,0 +1,52 @@ +package committee.nova.mods.avaritia_integration; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationLoadApi; +import committee.nova.mods.avaritia_integration.init.registry.AIBlocks; +import committee.nova.mods.avaritia_integration.init.registry.AICreativeTabs; +import committee.nova.mods.avaritia_integration.init.registry.AIFluidTypes; +import committee.nova.mods.avaritia_integration.init.registry.AIFluids; +import committee.nova.mods.avaritia_integration.init.registry.AIItems; + +import net.minecraft.resources.ResourceLocation; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.ModList; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.loading.FMLPaths; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.nio.file.Path; + +@Mod(AvaritiaIntegration.MOD_ID) +public class AvaritiaIntegration { + + public static final String MOD_ID = "avaritia_integration"; + public static final String MOD_NAME = "AvaritiaIntegration"; + public static final Logger LOGGER = LogManager.getLogger(MOD_NAME); + public static IEventBus MOD_EVENT_BUS; + + public AvaritiaIntegration(IEventBus bus, ModContainer modContainer) { + MOD_EVENT_BUS = bus; + + AICreativeTabs.REGISTRY.register(bus); + AIItems.REGISTRY.register(bus); + AIBlocks.REGISTRY.register(bus); + AIFluidTypes.REGISTRY.register(bus); + AIFluids.REGISTRY.register(bus); + IntegrationLoadApi.reload(); + } + + public static ResourceLocation rl(String name) { + return ResourceLocation.fromNamespaceAndPath(MOD_ID, name); + } + + public static boolean isModLoaded(String name) { + return ModList.get().isLoaded(name); + } + + public static Path getGameDir() { + return FMLPaths.CONFIGDIR.get(); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/DependencyRule.java b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/DependencyRule.java new file mode 100644 index 00000000..a0a27485 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/DependencyRule.java @@ -0,0 +1,12 @@ +package committee.nova.mods.avaritia_integration.api.load; + +public record DependencyRule(String modid, String minVersion, String maxVersion) { + + public String normalizedMinVersion() { + return this.minVersion == null ? "" : this.minVersion; + } + + public String normalizedMaxVersion() { + return this.maxVersion == null ? "" : this.maxVersion; + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationDataPackRegistrar.java b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationDataPackRegistrar.java new file mode 100644 index 00000000..5687dc39 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationDataPackRegistrar.java @@ -0,0 +1,34 @@ +package committee.nova.mods.avaritia_integration.api.load; + +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.repository.PackSource; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.event.AddPackFindersEvent; + +public final class IntegrationDataPackRegistrar { + + public static final String SERVER_DATA_PACK_PATH = "integration_packs/server_data"; + + private IntegrationDataPackRegistrar() {} + + public static void register(IEventBus modBus, String integrationModId, String displayName) { + modBus.addListener((AddPackFindersEvent event) -> { + if (event.getPackType() != PackType.SERVER_DATA) { + return; + } + if (!IntegrationLoadApi.shouldLoad(integrationModId)) { + return; + } + event.addPackFinders( + ResourceLocation.fromNamespaceAndPath(integrationModId, SERVER_DATA_PACK_PATH), + PackType.SERVER_DATA, + Component.literal(displayName), + PackSource.DEFAULT, + true, + Pack.Position.TOP); + }); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationLoadApi.java b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationLoadApi.java new file mode 100644 index 00000000..6c80fab5 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationLoadApi.java @@ -0,0 +1,175 @@ +package committee.nova.mods.avaritia_integration.api.load; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.ModList; +import net.neoforged.fml.loading.FMLPaths; +import net.neoforged.neoforgespi.language.IModInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.reflect.TypeToken; +import org.apache.maven.artifact.versioning.ArtifactVersion; +import org.apache.maven.artifact.versioning.DefaultArtifactVersion; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Optional; + +public final class IntegrationLoadApi { + + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + private static final Type RULES_TYPE = new TypeToken>() {}.getType(); + private static final Path CONFIG_PATH = FMLPaths.CONFIGDIR.get() + .resolve("avaritia") + .resolve("integration") + .resolve("load_rules.json"); + + private static final Map REGISTERED_DEFAULT_RULES = new LinkedHashMap<>(); + private static boolean generatedRulesMode; + private static Map rules; + private static String loadError; + + private IntegrationLoadApi() {} + + public static boolean isIntegrationLoaded(String integrationModId) { + return ModList.get().isLoaded(integrationModId); + } + + public static boolean shouldLoad(String integrationModId) { + return explain(integrationModId).shouldLoad(); + } + + public static LoadDecision explain(String integrationModId) { + if (!isIntegrationLoaded(integrationModId)) { + return decision(integrationModId, LoadState.INTEGRATION_MOD_MISSING, null, "", "", "???", + "Integration mod is not loaded: " + integrationModId); + } + Map loadedRules = getRules(); + if (loadError != null) { + return decision(integrationModId, LoadState.RULE_INVALID, null, "", "", "???", loadError); + } + IntegrationRule rule = loadedRules.get(integrationModId); + if (rule == null) { + return decision(integrationModId, LoadState.RULE_MISSING, null, "", "", "???", + "Missing integration load rule: " + integrationModId); + } + for (DependencyRule dependency : rule.normalizedDependencies()) { + LoadDecision invalidDecision = validateDependencyRule(integrationModId, dependency); + if (invalidDecision != null) return invalidDecision; + String dependencyModId = dependency.modid(); + Optional optionalVersion = getModVersion(dependencyModId); + if (optionalVersion.isEmpty()) { + return decision(integrationModId, LoadState.DEPENDENCY_MISSING, dependencyModId, + dependency.normalizedMinVersion(), dependency.normalizedMaxVersion(), "???", + "Missing dependency mod: " + dependencyModId); + } + ArtifactVersion actualVersion = optionalVersion.get(); + String minVersion = dependency.normalizedMinVersion(); + if (!minVersion.isEmpty() && actualVersion.compareTo(new DefaultArtifactVersion(minVersion)) < 0) { + return decision(integrationModId, LoadState.VERSION_TOO_LOW, dependencyModId, minVersion, + dependency.normalizedMaxVersion(), actualVersion.toString(), + "Dependency version is too low: " + dependencyModId); + } + String maxVersion = dependency.normalizedMaxVersion(); + if (!maxVersion.isEmpty() && actualVersion.compareTo(new DefaultArtifactVersion(maxVersion)) > 0) { + return decision(integrationModId, LoadState.VERSION_TOO_HIGH, dependencyModId, minVersion, + maxVersion, actualVersion.toString(), "Dependency version is too high: " + dependencyModId); + } + } + return decision(integrationModId, LoadState.LOADED, null, "", "", "???", + "Integration is allowed to load: " + integrationModId); + } + + public static Map explainAll() { + Map result = new LinkedHashMap<>(); + getRules().keySet().forEach(id -> result.put(id, explain(id))); + return Collections.unmodifiableMap(result); + } + + public static synchronized void reload() { + rules = loadRules(); + } + + public static synchronized void registerDefaultRule(String integrationModId, IntegrationRule rule) { + if (integrationModId == null || integrationModId.isBlank() || rule == null) { + return; + } + REGISTERED_DEFAULT_RULES.put(integrationModId, rule); + if (Files.notExists(CONFIG_PATH) || generatedRulesMode) { + generatedRulesMode = true; + rules = snapshotDefaultRules(); + try { + saveDefaultRules(rules); + } catch (IOException e) { + loadError = "Failed to save integration rules to " + CONFIG_PATH + ": " + e.getMessage(); + AvaritiaIntegration.LOGGER.error(loadError, e); + } + } + } + + private static synchronized Map getRules() { + if (rules == null) rules = loadRules(); + return rules; + } + + private static Map loadRules() { + loadError = null; + try { + if (Files.notExists(CONFIG_PATH)) { + generatedRulesMode = true; + return snapshotDefaultRules(); + } + generatedRulesMode = false; + try (Reader reader = Files.newBufferedReader(CONFIG_PATH, StandardCharsets.UTF_8)) { + Map loadedRules = GSON.fromJson(reader, RULES_TYPE); + if (loadedRules == null) return Map.of(); + return Collections.unmodifiableMap(new LinkedHashMap<>(loadedRules)); + } + } catch (IOException | JsonParseException e) { + loadError = "Failed to load integration rules from " + CONFIG_PATH + ": " + e.getMessage(); + AvaritiaIntegration.LOGGER.error(loadError, e); + return Map.of(); + } + } + + private static Map snapshotDefaultRules() { + return Collections.unmodifiableMap(new LinkedHashMap<>(REGISTERED_DEFAULT_RULES)); + } + + private static void saveDefaultRules(Map defaultRules) throws IOException { + Files.createDirectories(CONFIG_PATH.getParent()); + try (Writer writer = Files.newBufferedWriter(CONFIG_PATH, StandardCharsets.UTF_8)) { + GSON.toJson(defaultRules, RULES_TYPE, writer); + } + } + + private static LoadDecision validateDependencyRule(String integrationModId, DependencyRule dependency) { + if (dependency == null || dependency.modid() == null || dependency.modid().isBlank()) { + return decision(integrationModId, LoadState.RULE_INVALID, null, "", "", "???", + "Dependency rule must define a non-empty modid"); + } + return null; + } + + private static Optional getModVersion(String id) { + return ModList.get().getModContainerById(id).map(ModContainer::getModInfo).map(IModInfo::getVersion); + } + + private static LoadDecision decision(String integrationModId, LoadState state, String failedDependencyModId, + String requiredMinVersion, String requiredMaxVersion, String actualVersion, + String message) { + return new LoadDecision(integrationModId, state, failedDependencyModId, requiredMinVersion, + requiredMaxVersion, actualVersion, message); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationRule.java b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationRule.java new file mode 100644 index 00000000..72123288 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationRule.java @@ -0,0 +1,10 @@ +package committee.nova.mods.avaritia_integration.api.load; + +import java.util.List; + +public record IntegrationRule(List dependencies) { + + public List normalizedDependencies() { + return this.dependencies == null ? List.of() : this.dependencies; + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationRuntime.java b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationRuntime.java new file mode 100644 index 00000000..45708646 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/IntegrationRuntime.java @@ -0,0 +1,69 @@ +package committee.nova.mods.avaritia_integration.api.load; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.module.ModModule; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; +import net.neoforged.fml.loading.FMLEnvironment; +import net.neoforged.neoforge.common.NeoForge; + +import java.util.LinkedHashMap; +import java.util.Map; + +public final class IntegrationRuntime { + + private static final Map LOADED_MODULES = new LinkedHashMap<>(); + + private IntegrationRuntime() {} + + public static boolean shouldLoad(String integrationModId, ModModule modModule) { + IntegrationLoadApi.registerDefaultRule(integrationModId, modModule.defaultLoadRule()); + LoadDecision decision = IntegrationLoadApi.explain(integrationModId); + if (!decision.shouldLoad()) { + AvaritiaIntegration.LOGGER.info("Skip integration {}: {}", integrationModId, decision.message()); + return false; + } + return true; + } + + public static boolean load(String integrationModId, IEventBus modBus, Module module) { + try { + module.init(modBus); + module.registerEvent(modBus, NeoForge.EVENT_BUS); + if (FMLEnvironment.dist.isClient()) { + module.initClient(); + module.registerClientEvent(modBus, NeoForge.EVENT_BUS); + } + modBus.addListener((FMLCommonSetupEvent event) -> process(integrationModId, module)); + LOADED_MODULES.put(integrationModId, module); + AvaritiaIntegration.LOGGER.info("Loaded integration {}", integrationModId); + return true; + } catch (Exception e) { + AvaritiaIntegration.LOGGER.error("Failed to load integration {}.", integrationModId, e); + return false; + } + } + + public static void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + LOADED_MODULES.forEach((id, module) -> { + try { + module.collectCreativeTabItems(parameters, output); + } catch (Exception e) { + AvaritiaIntegration.LOGGER.error("Failed to append creative tab items for integration {}.", id, e); + } + }); + } + + private static void process(String integrationModId, Module module) { + try { + module.process(); + if (FMLEnvironment.dist.isClient()) module.processClient(); + } catch (Exception e) { + AvaritiaIntegration.LOGGER.error("Failed to process integration {}.", integrationModId, e); + } + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/LoadDecision.java b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/LoadDecision.java new file mode 100644 index 00000000..66483dc5 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/LoadDecision.java @@ -0,0 +1,10 @@ +package committee.nova.mods.avaritia_integration.api.load; + +public record LoadDecision(String integrationModId, LoadState state, String failedDependencyModId, + String requiredMinVersion, String requiredMaxVersion, String actualVersion, + String message) { + + public boolean shouldLoad() { + return this.state == LoadState.LOADED; + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/LoadState.java b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/LoadState.java new file mode 100644 index 00000000..c3656816 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/api/load/LoadState.java @@ -0,0 +1,11 @@ +package committee.nova.mods.avaritia_integration.api.load; + +public enum LoadState { + LOADED, + INTEGRATION_MOD_MISSING, + RULE_MISSING, + DEPENDENCY_MISSING, + VERSION_TOO_LOW, + VERSION_TOO_HIGH, + RULE_INVALID +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/client/AvaritiaIntegrationClient.java b/core/src/main/java/committee/nova/mods/avaritia_integration/client/AvaritiaIntegrationClient.java similarity index 82% rename from src/main/java/committee/nova/mods/avaritia_integration/client/AvaritiaIntegrationClient.java rename to core/src/main/java/committee/nova/mods/avaritia_integration/client/AvaritiaIntegrationClient.java index 8fffa46c..202598a9 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/client/AvaritiaIntegrationClient.java +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/client/AvaritiaIntegrationClient.java @@ -2,6 +2,7 @@ import committee.nova.mods.avaritia_integration.AvaritiaIntegration; import committee.nova.mods.avaritia_integration.client.screen.ModuleListScreen; + import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModList; @@ -9,11 +10,13 @@ import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; import net.neoforged.neoforge.client.gui.IConfigScreenFactory; -@EventBusSubscriber(modid = AvaritiaIntegration.MOD_ID,value = Dist.CLIENT) +@EventBusSubscriber(modid = AvaritiaIntegration.MOD_ID, value = Dist.CLIENT) public class AvaritiaIntegrationClient { + @SubscribeEvent public static void clientSetUp(FMLClientSetupEvent event) { - ModList.get().getModContainerById(AvaritiaIntegration.MOD_ID).orElseThrow().registerExtensionPoint(IConfigScreenFactory.class, + ModList.get().getModContainerById(AvaritiaIntegration.MOD_ID).orElseThrow().registerExtensionPoint( + IConfigScreenFactory.class, (container, last) -> new ModuleListScreen(last)); } } diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListScreen.java b/core/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListScreen.java new file mode 100644 index 00000000..4300bbf1 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListScreen.java @@ -0,0 +1,87 @@ +package committee.nova.mods.avaritia_integration.client.screen; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.api.load.IntegrationLoadApi; + +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; + +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +// TODO:未完成,显示有问题 +@ApiStatus.Internal +public class ModuleListScreen extends Screen { + + private final Screen parent; + private ModuleListWidget widget; + private Button enableButton; + private boolean initialized = false; + private List tooltips = List.of(); + + public ModuleListScreen(Screen parent) { + super(Component.translatable("screen.%s.module.title".formatted(AvaritiaIntegration.MOD_ID))); + this.parent = parent; + } + + @Override + public void init() { + super.init(); + if (this.initialized) this.widget.updateSize(40, this.width - 40, 64, this.height - 32); + else { + this.initialized = true; + this.widget = new ModuleListWidget(this, this.minecraft, 40, this.width - 40, 64, this.height - 32); + this.widget.update(); + } + this.addWidget(this.widget); + this.addRenderableWidget( + Button.builder(Component.translatable("screen.%s.module.back".formatted(AvaritiaIntegration.MOD_ID)), + button -> this.onClose()).bounds(40, 40, 100, 20).build()); + this.enableButton = this.addRenderableWidget( + Button.builder(Component.literal("Reload"), + button -> { + IntegrationLoadApi.reload(); + this.widget.update(); + this.updateEnableButton(); + }).bounds(150, 40, 100, 20).build()); + } + + public void updateEnableButton() { + this.enableButton.active = true; + this.enableButton.setMessage(Component.literal("Reload")); + } + + @Override + public void render(@NotNull GuiGraphics context, int mouseX, int mouseY, float delta) { + super.renderBackground(context, mouseX, mouseY, delta); + this.tooltips = List.of(); + this.widget.render(context, mouseX, mouseY, delta); + assert this.minecraft != null; + if (!this.tooltips.isEmpty()) + context.renderComponentTooltip(this.minecraft.font, this.tooltips, mouseX, mouseY); + context.drawCenteredString(this.font, this.title, this.width / 2, 20, 16777215); + context.drawCenteredString(this.font, Component.translatable("screen.avaritia_integration.module.warning"), + this.width / 2, 30, 16777215); + super.render(context, mouseX, mouseY, delta); + } + + public void select(ModuleListWidget.ModuleEntry entry) { + this.widget.setSelected(entry); + this.updateEnableButton(); + } + + @Override + public void onClose() { + super.onClose(); + assert this.minecraft != null; + this.minecraft.setScreen(this.parent); + } + + void setTooltips(List tooltips) { + this.tooltips = tooltips; + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListWidget.java b/core/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListWidget.java new file mode 100644 index 00000000..e6b4fe1d --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListWidget.java @@ -0,0 +1,86 @@ +package committee.nova.mods.avaritia_integration.client.screen; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationLoadApi; +import committee.nova.mods.avaritia_integration.api.load.LoadDecision; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.ObjectSelectionList; +import net.minecraft.network.chat.Component; + +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +@ApiStatus.Internal +public class ModuleListWidget extends ObjectSelectionList { + + private final ModuleListScreen screen; + + public ModuleListWidget(ModuleListScreen screen, Minecraft client, int left, int right, int top, int bottom) { + super(client, right - left, bottom - top, top, bottom); + this.screen = screen; + this.updateSize(left, right, top, bottom); + } + + void updateSize(int left, int right, int top, int bottom) {} + + public void update() { + this.clearEntries(); + IntegrationLoadApi.explainAll().values().forEach(x -> this.addEntry(new ModuleEntry(this.screen, x))); + } + + @Override + public int getRowWidth() { + return super.getRowWidth() + 30 * 2; + } + + @Override + protected int getScrollbarPosition() { + return super.getScrollbarPosition() + 30 + 30; + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + ModuleEntry entry = this.getSelected(); + return entry != null && entry.keyPressed(keyCode, scanCode, modifiers) || + super.keyPressed(keyCode, scanCode, modifiers); + } + + public static class ModuleEntry extends Entry { + + private final Minecraft client = Minecraft.getInstance(); + private final ModuleListScreen screen; + private final LoadDecision data; + + public ModuleEntry(ModuleListScreen screen, LoadDecision data) { + this.screen = screen; + this.data = data; + } + + @Override + public void render(GuiGraphics context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, + int mouseY, boolean hovered, float tickDelta) { + context.drawString(this.client.font, this.data.integrationModId(), x + 32 + 3, y + 1, 16777215, true); + context.drawString(this.client.font, this.data.state().name(), x + 32 + 3, y + 1 + 9, 16777215, true); + if (this.isMouseOver(mouseX, mouseY)) + this.screen.setTooltips(List.of(Component.literal(this.data.message()))); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + this.screen.select(this); + return false; + } + + public LoadDecision getData() { + return this.data; + } + + @Override + public @NotNull Component getNarration() { + return Component.literal(this.data.integrationModId()); + } + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/handler/EntityHandler.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/handler/EntityHandler.java similarity index 99% rename from src/main/java/committee/nova/mods/avaritia_integration/init/handler/EntityHandler.java rename to core/src/main/java/committee/nova/mods/avaritia_integration/init/handler/EntityHandler.java index 47581f4e..cb5b0680 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/handler/EntityHandler.java +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/handler/EntityHandler.java @@ -10,6 +10,7 @@ */ @EventBusSubscriber public class EntityHandler { + @SubscribeEvent public static void onLivingDrops(LivingDropsEvent event) { if (event.getEntity() instanceof Chicken) { diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIBlocks.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIBlocks.java new file mode 100644 index 00000000..699e6f67 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIBlocks.java @@ -0,0 +1,44 @@ +package committee.nova.mods.avaritia_integration.init.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.material.MapColor; +import net.minecraft.world.level.material.PushReaction; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredBlock; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class AIBlocks { + + public static final DeferredRegister.Blocks REGISTRY = DeferredRegister.createBlocks(AvaritiaIntegration.MOD_ID); + + public static final DeferredBlock molten_blaze_block = REGISTRY.register("molten_blaze_fluid", + () -> new BurningLiquidBlock(AIFluids.source_molten_blaze, createProperties(MapColor.COLOR_RED, 15), 10, + 15f)); + + public static final DeferredBlock molten_crystal_matrix_block = REGISTRY.register( + "molten_crystal_matrix_fluid", + () -> new BurningLiquidBlock(AIFluids.source_molten_crystal_matrix, + createProperties(MapColor.COLOR_LIGHT_BLUE, 15), 10, 10f)); + + public static final DeferredBlock molten_neutron_block = REGISTRY.register("molten_neutron_fluid", + () -> new BurningLiquidBlock(AIFluids.source_molten_neutron, createProperties(MapColor.COLOR_GRAY, 15), 10, + 27f)); + + public static final DeferredBlock molten_star_block = REGISTRY.register("molten_star_fluid", + () -> new BurningLiquidBlock(AIFluids.source_molten_star, createProperties(MapColor.COLOR_BLUE, 15), 10, + 45f)); + + public static BlockBehaviour.Properties createProperties(MapColor color, int lightLevel) { + return BlockBehaviour.Properties.of().mapColor(color).replaceable().noCollission().randomTicks() + .strength(100.0F).lightLevel(state -> lightLevel).pushReaction(PushReaction.DESTROY).noLootTable() + .liquid().sound(SoundType.EMPTY); + } + + public static void registers(IEventBus bus) { + REGISTRY.register(bus); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AICreativeTabs.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AICreativeTabs.java new file mode 100644 index 00000000..9752e599 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AICreativeTabs.java @@ -0,0 +1,32 @@ +package committee.nova.mods.avaritia_integration.init.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; + +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +@SuppressWarnings("unused") +public final class AICreativeTabs { + + public static final DeferredRegister REGISTRY = DeferredRegister + .create(Registries.CREATIVE_MODE_TAB, AvaritiaIntegration.MOD_ID); + + public static final DeferredHolder CREATIVE_TAB = REGISTRY + .register("avaritia_integration_group", () -> CreativeModeTab.builder() + .title(Component.translatable("itemGroup.tab.Integration")) + .icon(() -> AIItems.INFINITY_GEAR.get().getDefaultInstance()) + .displayItems((parameters, output) -> { + AIItems.ITEMS.forEach(r -> output.accept(r.get())); + IntegrationRuntime.collectCreativeTabItems(parameters, output); + }) + .build()); + + public static void register(IEventBus bus) { + REGISTRY.register(bus); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluidTypes.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluidTypes.java new file mode 100644 index 00000000..da29e3a4 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluidTypes.java @@ -0,0 +1,51 @@ +package committee.nova.mods.avaritia_integration.init.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.level.pathfinder.PathType; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.common.SoundActions; +import net.neoforged.neoforge.fluids.FluidType; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.NeoForgeRegistries; + +import org.joml.Vector3f; + +public class AIFluidTypes { + + public static final DeferredRegister REGISTRY = DeferredRegister.create(NeoForgeRegistries.FLUID_TYPES, + AvaritiaIntegration.MOD_ID); + + public static final DeferredHolder molten_blaze = REGISTRY.register("molten_blaze", + () -> new BaseFluidType("molten_blaze", new Vector3f(253f / 225f, 192f / 225f, 69f / 255f), + base("molten_blaze").temperature(3300).lightLevel(15))); + + public static final DeferredHolder molten_crystal_matrix = REGISTRY + .register("molten_crystal_matrix", + () -> new BaseFluidType("molten_crystal_matrix", + new Vector3f(103f / 225f, 187f / 225f, 182f / 255f), + base("molten_crystal_matrix").temperature(2800).lightLevel(15))); + + public static final DeferredHolder molten_neutron = REGISTRY.register("molten_neutron", + () -> new BaseFluidType("molten_neutron", new Vector3f(160f / 225f, 164f / 225f, 191f / 255f), + base("molten_neutron").temperature(8300).lightLevel(15))); + + public static final DeferredHolder molten_star = REGISTRY.register("molten_star", + () -> new BaseFluidType("molten_star", new Vector3f(94f / 225f, 157f / 225f, 221f / 255f), + base("molten_star").temperature(12300).lightLevel(15))); + + private static FluidType.Properties base(String name) { + return FluidType.Properties.create().viscosity(10000).density(2000) + .descriptionId("fluid.avaritia_integration." + name) + .sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL) + .sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY).canSwim(false).canDrown(false) + .pathType(PathType.LAVA).adjacentPathType(null) + .motionScale(0.0023333333333333335); + } + + public static void registers(IEventBus bus) { + REGISTRY.register(bus); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluids.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluids.java new file mode 100644 index 00000000..ff2d952f --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluids.java @@ -0,0 +1,64 @@ +package committee.nova.mods.avaritia_integration.init.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.level.material.FlowingFluid; +import net.minecraft.world.level.material.Fluid; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.fluids.BaseFlowingFluid; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class AIFluids { + + public static final DeferredRegister REGISTRY = DeferredRegister.create(BuiltInRegistries.FLUID, + AvaritiaIntegration.MOD_ID); + + public static final DeferredHolder source_molten_blaze = REGISTRY.register( + "molten_blaze", + () -> new BaseFlowingFluid.Source(AIFluids.molten_blaze)); + public static final DeferredHolder flowing_molten_blaze = REGISTRY.register( + "flowing_molten_blaze", + () -> new BaseFlowingFluid.Flowing(AIFluids.molten_blaze)); + public static final BaseFlowingFluid.Properties molten_blaze = new BaseFlowingFluid.Properties( + AIFluidTypes.molten_blaze, source_molten_blaze, flowing_molten_blaze).slopeFindDistance(3) + .levelDecreasePerBlock(3).tickRate(30) + .block(AIBlocks.molten_blaze_block).bucket(AIItems.MOLTEN_BLAZE_BUCKET); + + public static final DeferredHolder source_molten_crystal_matrix = REGISTRY.register( + "molten_crystal_matrix", + () -> new BaseFlowingFluid.Source(AIFluids.molten_crystal_matrix)); + public static final DeferredHolder flowing_molten_crystal_matrix = REGISTRY.register( + "flowing_molten_crystal_matrix", + () -> new BaseFlowingFluid.Flowing(AIFluids.molten_crystal_matrix)); + public static final BaseFlowingFluid.Properties molten_crystal_matrix = new BaseFlowingFluid.Properties( + AIFluidTypes.molten_crystal_matrix, source_molten_crystal_matrix, flowing_molten_crystal_matrix) + .slopeFindDistance(3).levelDecreasePerBlock(3).tickRate(30) + .block(AIBlocks.molten_crystal_matrix_block).bucket(AIItems.MOLTEN_CRYSTAL_MATRIX_BUCKET); + + public static final DeferredHolder source_molten_neutron = REGISTRY.register( + "molten_neutron", + () -> new BaseFlowingFluid.Source(AIFluids.molten_neutron)); + public static final DeferredHolder flowing_molten_neutron = REGISTRY.register( + "flowing_molten_neutron", + () -> new BaseFlowingFluid.Flowing(AIFluids.molten_neutron)); + public static final BaseFlowingFluid.Properties molten_neutron = new BaseFlowingFluid.Properties( + AIFluidTypes.molten_neutron, source_molten_neutron, flowing_molten_neutron).slopeFindDistance(3) + .levelDecreasePerBlock(3).tickRate(30) + .block(AIBlocks.molten_neutron_block).bucket(AIItems.MOLTEN_NEUTRON_BUCKET); + + public static final DeferredHolder source_molten_star = REGISTRY.register("molten_star", + () -> new BaseFlowingFluid.Source(AIFluids.molten_star)); + public static final DeferredHolder flowing_molten_star = REGISTRY.register( + "flowing_molten_star", + () -> new BaseFlowingFluid.Flowing(AIFluids.molten_star)); + public static final BaseFlowingFluid.Properties molten_star = new BaseFlowingFluid.Properties( + AIFluidTypes.molten_star, source_molten_star, flowing_molten_star).slopeFindDistance(8) + .levelDecreasePerBlock(8).tickRate(30) + .block(AIBlocks.molten_star_block).bucket(AIItems.MOLTEN_STAR_BUCKET); + + public static void registers(IEventBus bus) { + REGISTRY.register(bus); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIItems.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIItems.java new file mode 100644 index 00000000..eb15fa68 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIItems.java @@ -0,0 +1,143 @@ +package committee.nova.mods.avaritia_integration.init.registry; + +import committee.nova.mods.avaritia.api.common.item.BaseItem; +import committee.nova.mods.avaritia.init.registry.ModRarities; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.LinkedList; +import java.util.List; +import java.util.function.Supplier; + +@SuppressWarnings("unused") +public class AIItems { + + public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); + + public static final List> ITEMS = new LinkedList<>(); + // blaze_cube + public static final DeferredItem BLAZE_CUBE_BOLT = register("blaze_cube_bolt", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_DENSE_PLATE = register("blaze_cube_dense_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_DOUBLE_PLATE = register("blaze_cube_double_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_DUST = register("blaze_cube_dust", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_GEAR = register("blaze_cube_gear", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_LONG_ROD = register("blaze_cube_long_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_NUGGET = register("blaze_cube_nugget", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_PLATE = register("blaze_cube_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_RING = register("blaze_cube_ring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_ROD = register("blaze_cube_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_SCREW = register("blaze_cube_screw", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_SPRING = register("blaze_cube_spring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem BLAZE_CUBE_WIRE = register("blaze_cube_wire", + () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); + public static final DeferredItem MOLTEN_BLAZE_BUCKET = register("molten_blaze_bucket", + () -> new BucketItem(AIFluids.source_molten_blaze.get(), + new Item.Properties().stacksTo(1).rarity(ModRarities.UNCOMMON))); + // crystal_matrix + public static final DeferredItem CRYSTAL_MATRIX_BOLT = register("crystal_matrix_bolt", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_DENSE_PLATE = register("crystal_matrix_dense_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_DOUBLE_PLATE = register("crystal_matrix_double_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_DUST = register("crystal_matrix_dust", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_GEAR = register("crystal_matrix_gear", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_LONG_ROD = register("crystal_matrix_long_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_NUGGET = register("crystal_matrix_nugget", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_PLATE = register("crystal_matrix_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_RING = register("crystal_matrix_ring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_ROD = register("crystal_matrix_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_SCREW = register("crystal_matrix_screw", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_SPRING = register("crystal_matrix_spring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem CRYSTAL_MATRIX_WIRE = register("crystal_matrix_wire", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem MOLTEN_CRYSTAL_MATRIX_BUCKET = register("molten_crystal_matrix_bucket", + () -> new BucketItem(AIFluids.source_molten_crystal_matrix.get(), + new Item.Properties().stacksTo(1).rarity(ModRarities.RARE))); + // infinity + public static final DeferredItem INFINITY_BOLT = register("infinity_bolt", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_DENSE_PLATE = register("infinity_dense_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_DOUBLE_PLATE = register("infinity_double_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_DUST = register("infinity_dust", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_GEAR = register("infinity_gear", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_LONG_ROD = register("infinity_long_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_PLATE = register("infinity_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_RING = register("infinity_ring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_ROD = register("infinity_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_SCREW = register("infinity_screw", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_SPRING = register("infinity_spring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_WIRE = register("infinity_wire", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + // neutron + public static final DeferredItem NEUTRON_BOLT = register("neutron_bolt", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_DENSE_PLATE = register("neutron_dense_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_DOUBLE_PLATE = register("neutron_double_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_DUST = register("neutron_dust", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_LONG_ROD = register("neutron_long_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_PLATE = register("neutron_plate", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_RING = register("neutron_ring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_ROD = register("neutron_rod", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_SCREW = register("neutron_screw", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_SPRING = register("neutron_spring", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem NEUTRON_WIRE = register("neutron_wire", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + public static final DeferredItem MOLTEN_NEUTRON_BUCKET = register("molten_neutron_bucket", + () -> new BucketItem(AIFluids.source_molten_neutron.get(), + new Item.Properties().stacksTo(1).rarity(ModRarities.RARE))); + + public static final DeferredItem MOLTEN_STAR_BUCKET = register("molten_star_bucket", + () -> new BucketItem(AIFluids.source_molten_star.get(), + new Item.Properties().stacksTo(1).rarity(ModRarities.RARE))); + + public static DeferredItem register(String id, Supplier obj) { + DeferredItem r = REGISTRY.register(id, obj); + ITEMS.add(r); + return r; + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BaseFluidType.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BaseFluidType.java similarity index 85% rename from src/main/java/committee/nova/mods/avaritia_integration/init/registry/BaseFluidType.java rename to core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BaseFluidType.java index 7423ae41..40c26787 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BaseFluidType.java +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BaseFluidType.java @@ -1,20 +1,23 @@ package committee.nova.mods.avaritia_integration.init.registry; -import com.mojang.blaze3d.shaders.FogShape; -import com.mojang.blaze3d.systems.RenderSystem; import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.FogRenderer; import net.minecraft.resources.ResourceLocation; import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; import net.neoforged.neoforge.fluids.FluidType; + +import com.mojang.blaze3d.shaders.FogShape; +import com.mojang.blaze3d.systems.RenderSystem; import org.jetbrains.annotations.NotNull; import org.joml.Vector3f; import java.util.function.Consumer; public class BaseFluidType extends FluidType { + private final String texture; private final Vector3f fogColor; @@ -29,6 +32,7 @@ public BaseFluidType(final String texture, final Vector3f fogColor, final FluidT public void initializeClient(Consumer consumer) { super.initializeClient(consumer); consumer.accept(new IClientFluidTypeExtensions() { + @Override public int getTintColor() { return 0xFFFFFFFF; @@ -50,12 +54,15 @@ public ResourceLocation getOverlayTexture() { } @Override - public @NotNull Vector3f modifyFogColor(Camera camera, float partialTick, ClientLevel level, int renderDistance, float darkenWorldAmount, Vector3f fluidFogColor) { + public @NotNull Vector3f modifyFogColor(Camera camera, float partialTick, ClientLevel level, + int renderDistance, float darkenWorldAmount, + Vector3f fluidFogColor) { return fogColor; } @Override - public void modifyFogRender(Camera camera, FogRenderer.FogMode mode, float renderDistance, float partialTick, float nearDistance, float farDistance, FogShape shape) { + public void modifyFogRender(Camera camera, FogRenderer.FogMode mode, float renderDistance, + float partialTick, float nearDistance, float farDistance, FogShape shape) { RenderSystem.setShaderFogStart(1f); RenderSystem.setShaderFogEnd(6f); } diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BurningLiquidBlock.java b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BurningLiquidBlock.java similarity index 93% rename from src/main/java/committee/nova/mods/avaritia_integration/init/registry/BurningLiquidBlock.java rename to core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BurningLiquidBlock.java index 657ec40c..e34ac096 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BurningLiquidBlock.java +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/init/registry/BurningLiquidBlock.java @@ -11,11 +11,14 @@ import java.util.function.Supplier; public class BurningLiquidBlock extends LiquidBlock { + /** Burn time in seconds. Lava uses 15 */ private final int burnTime; /** Damage from being in the fluid, lava uses 4 */ private final float damage; - public BurningLiquidBlock(Supplier supplier, Properties properties, int burnTime, float damage) { + + public BurningLiquidBlock(Supplier supplier, Properties properties, int burnTime, + float damage) { super(supplier.get(), properties); this.burnTime = burnTime; this.damage = damage; @@ -32,4 +35,3 @@ public void entityInside(BlockState state, Level level, BlockPos pos, Entity ent } } } - diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/module/ModModule.java b/core/src/main/java/committee/nova/mods/avaritia_integration/module/ModModule.java new file mode 100644 index 00000000..aa1a9b0f --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/module/ModModule.java @@ -0,0 +1,21 @@ +package committee.nova.mods.avaritia_integration.module; + +import committee.nova.mods.avaritia_integration.api.load.DependencyRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; + +import java.util.List; + +public interface ModModule { + + default IntegrationRule defaultLoadRule() { + return new IntegrationRule(List.of()); + } + + static IntegrationRule rule(DependencyRule... dependencies) { + return new IntegrationRule(List.of(dependencies)); + } + + static DependencyRule dependency(String modid) { + return new DependencyRule(modid, "", ""); + } +} diff --git a/core/src/main/java/committee/nova/mods/avaritia_integration/module/Module.java b/core/src/main/java/committee/nova/mods/avaritia_integration/module/Module.java new file mode 100644 index 00000000..f9e341b4 --- /dev/null +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/module/Module.java @@ -0,0 +1,28 @@ +package committee.nova.mods.avaritia_integration.module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; + +/** + * Base module interface + * + * @author IAFEnvoy + */ +public interface Module { + + default void init(IEventBus registryBus) {} + + default void process() {} + + default void initClient() {} + + default void processClient() {} + + // TODO::Maybe auto bus? + default void registerEvent(IEventBus modBus, IEventBus gameBus) {} + + default void registerClientEvent(IEventBus modBus, IEventBus gameBus) {} + + default void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) {} +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/util/ConfigLoader.java b/core/src/main/java/committee/nova/mods/avaritia_integration/util/ConfigLoader.java similarity index 88% rename from src/main/java/committee/nova/mods/avaritia_integration/util/ConfigLoader.java rename to core/src/main/java/committee/nova/mods/avaritia_integration/util/ConfigLoader.java index 776e3124..485b41b0 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/util/ConfigLoader.java +++ b/core/src/main/java/committee/nova/mods/avaritia_integration/util/ConfigLoader.java @@ -1,14 +1,20 @@ package committee.nova.mods.avaritia_integration.util; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; import org.apache.commons.io.FileUtils; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; public class ConfigLoader { + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); public static T load(Class clazz, String path, T defaultValue) { diff --git a/src/main/resources/assets/avaritia_integration/Credits.txt b/core/src/main/resources/assets/avaritia_integration/Credits.txt similarity index 100% rename from src/main/resources/assets/avaritia_integration/Credits.txt rename to core/src/main/resources/assets/avaritia_integration/Credits.txt diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/fake_bedrock.json b/core/src/main/resources/assets/avaritia_integration/blockstates/fake_bedrock.json new file mode 100644 index 00000000..0cec9c23 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/fake_bedrock.json @@ -0,0 +1,20 @@ +{ + "variants": { + "": [ + { + "model": "block/bedrock" + }, + { + "model": "block/bedrock_mirrored" + }, + { + "model": "block/bedrock", + "y": 180 + }, + { + "model": "block/bedrock_mirrored", + "y": 180 + } + ] + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal.json b/core/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal.json new file mode 100644 index 00000000..702761f3 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "block/end_portal" + } + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal_frame.json b/core/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal_frame.json new file mode 100644 index 00000000..04a74ab5 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal_frame.json @@ -0,0 +1,34 @@ +{ + "variants": { + "eye=false,facing=east": { + "model": "block/end_portal_frame", + "y": 270 + }, + "eye=false,facing=north": { + "model": "block/end_portal_frame", + "y": 180 + }, + "eye=false,facing=south": { + "model": "block/end_portal_frame" + }, + "eye=false,facing=west": { + "model": "block/end_portal_frame", + "y": 90 + }, + "eye=true,facing=east": { + "model": "block/end_portal_frame_filled", + "y": 270 + }, + "eye=true,facing=north": { + "model": "block/end_portal_frame_filled", + "y": 180 + }, + "eye=true,facing=south": { + "model": "block/end_portal_frame_filled" + }, + "eye=true,facing=west": { + "model": "block/end_portal_frame_filled", + "y": 90 + } + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/molten_blaze_fluid.json b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_blaze_fluid.json new file mode 100644 index 00000000..177b2222 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_blaze_fluid.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "avaritia_integration:block/molten_blaze_fluid" } + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/molten_crystal_matrix_fluid.json b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_crystal_matrix_fluid.json new file mode 100644 index 00000000..90192cb6 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_crystal_matrix_fluid.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "avaritia_integration:block/molten_crystal_matrix_fluid" } + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/molten_infinity_fluid.json b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_infinity_fluid.json new file mode 100644 index 00000000..96066595 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_infinity_fluid.json @@ -0,0 +1,3 @@ +{ + "variants": { "": { "model": "tconstruct:block/fluid" } } +} diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/molten_neutron_fluid.json b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_neutron_fluid.json new file mode 100644 index 00000000..1507fcbe --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_neutron_fluid.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "avaritia_integration:block/molten_neutron_fluid" } + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/blockstates/molten_star_fluid.json b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_star_fluid.json new file mode 100644 index 00000000..78245def --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/blockstates/molten_star_fluid.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "avaritia_integration:block/molten_star_fluid" } + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/lang/en_us.json b/core/src/main/resources/assets/avaritia_integration/lang/en_us.json new file mode 100644 index 00000000..e9d4bf7f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/lang/en_us.json @@ -0,0 +1,291 @@ +{ + "itemGroup.tab.Integration": "Avaritia: Integration", + + "item.avaritia_integration.blaze_cube_bolt": "Blaze Cube Bolt", + "item.avaritia_integration.blaze_cube_dense_plate": "Blaze Cube Dense Plate", + "item.avaritia_integration.blaze_cube_double_plate": "Blaze Cube Double Plate", + "item.avaritia_integration.blaze_cube_dust": "Blaze Cube Dust", + "item.avaritia_integration.blaze_cube_gear": "Blaze Cube Gear", + "item.avaritia_integration.blaze_cube_long_rod": "Blaze Cube Long Rod", + "item.avaritia_integration.blaze_cube_nugget": "Blaze Cube Nugget", + "item.avaritia_integration.blaze_cube_plate": "Blaze Cube Plate", + "item.avaritia_integration.blaze_cube_ring": "Blaze Cube Ring", + "item.avaritia_integration.blaze_cube_rod": "Blaze Cube Rod", + "item.avaritia_integration.blaze_cube_screw": "Blaze Cube Screw", + "item.avaritia_integration.blaze_cube_spring": "Blaze Cube Spring", + "item.avaritia_integration.blaze_cube_wire": "Blaze Cube Wire", + + "item.avaritia_integration.crystal_matrix_bolt": "Crystal Matrix Bolt", + "item.avaritia_integration.crystal_matrix_dense_plate": "Crystal Matrix Dense Plate", + "item.avaritia_integration.crystal_matrix_double_plate": "Crystal Matrix Double Plate", + "item.avaritia_integration.crystal_matrix_dust": "Crystal Matrix Dust", + "item.avaritia_integration.crystal_matrix_gear": "Crystal Matrix Gear", + "item.avaritia_integration.crystal_matrix_long_rod": "Crystal Matrix Long Rod", + "item.avaritia_integration.crystal_matrix_nugget": "Crystal Matrix Nugget", + "item.avaritia_integration.crystal_matrix_plate": "Crystal Matrix Plate", + "item.avaritia_integration.crystal_matrix_ring": "Crystal Matrix Ring", + "item.avaritia_integration.crystal_matrix_rod": "Crystal Matrix Rod", + "item.avaritia_integration.crystal_matrix_screw": "Crystal Matrix Screw", + "item.avaritia_integration.crystal_matrix_spring": "Crystal Matrix Spring", + "item.avaritia_integration.crystal_matrix_wire": "Crystal Matrix Wire", + + "item.avaritia_integration.infinity_bolt": "Infinity Bolt", + "item.avaritia_integration.infinity_dense_plate": "Infinity Dense Plate", + "item.avaritia_integration.infinity_double_plate": "Infinity Double Plate", + "item.avaritia_integration.infinity_dust": "Infinity Dust", + "item.avaritia_integration.infinity_gear": "Infinity Gear", + "item.avaritia_integration.infinity_long_rod": "Infinity Long Rod", + "item.avaritia_integration.infinity_plate": "Infinity Plate", + "item.avaritia_integration.infinity_ring": "Infinity Ring", + "item.avaritia_integration.infinity_rod": "Infinity Rod", + "item.avaritia_integration.infinity_screw": "Infinity Screw", + "item.avaritia_integration.infinity_spring": "Infinity Spring", + "item.avaritia_integration.infinity_wire": "Infinity Wire", + + "item.avaritia_integration.neutron_bolt": "Neutron Bolt", + "item.avaritia_integration.neutron_dense_plate": "Neutron Dense Plate", + "item.avaritia_integration.neutron_double_plate": "Neutron Double Plate", + "item.avaritia_integration.neutron_dust": "Neutron Dust", + "item.avaritia_integration.neutron_long_rod": "Neutron Long Rod", + "item.avaritia_integration.neutron_plate": "Neutron Plate", + "item.avaritia_integration.neutron_ring": "Neutron Ring", + "item.avaritia_integration.neutron_rod": "Neutron Rod", + "item.avaritia_integration.neutron_screw": "Neutron Screw", + "item.avaritia_integration.neutron_spring": "Neutron Spring", + "item.avaritia_integration.neutron_wire": "Neutron Wire", + + "item.avaritia_integration.blood_orb_of_armok": "Blood Orb of Armok", + + "item.avaritia_integration.infinity_capacitor": "Infinity Capacitor", + "item.avaritia_integration.infinity_grinding_ball": "Infinity Grinding Ball", + "item.avaritia_integration.neutron_grinding_ball": "Neutron Grinding Ball", + + "item.avaritia_integration.infinity_energy_tablet": "Infinity Energy Tablet", + "item.avaritia_integration.neutron_energy_tablet": "Neutron Energy Tablet", + "item.avaritia_integration.infinity_control_circuit": "Infinity Control Circuit", + "item.avaritia_integration.neutron_control_circuit": "Neutron Control Circuit", + "item.avaritia_integration.alloy_infinity": "Infinity Alloy", + "item.avaritia_integration.alloy_neutron": "Neutron Alloy", + "item.avaritia_integration.enriched_infinity": "Enriched Infinity", + "item.avaritia_integration.enriched_neutron": "Enriched Neutron", + "item.avaritia_integration.infinity_solar_panel": "Infinity Solar Panel", + "item.avaritia_integration.neutron_solar_panel": "Neutron Solar Panel", + + "block.avaritia_integration.asgard_dandelion": "§cAsgard Dandelion", + "block.avaritia_integration.potted_asgard_dandelion": "§cPotted Asgard Dandelion", + "block.avaritia_integration.soarleander": "§cSoarleander", + "block.avaritia_integration.potted_soarleander": "§cPotted Soarleander", + "block.avaritia_integration.asgard_dandelion_floating": "§cFloating Asgard Dandelion", + "block.avaritia_integration.soarleander_floating": "§cFloating Soarleander", + "block.avaritia_integration.infinity_mana_pool": "Infinity Mana Pool", + "block.avaritia_integration.infinity_potato": "Infinity Tiny Potato", + "item.avaritia_integration.alpha_spark": "Alpha Spark", + "entity.avaritia_integration.alpha_spark": "Alpha Spark", + "tooltip.avaritia_integration.infinity_pool": "Infinity Mana Pool, has infinite capacity", + + "block.avaritia_integration.neutron_collector": "Neutron Collector", + "block.avaritia_integration.basic_neutron_collecting_factory": "Basic Neutron Collecting Factory", + "block.avaritia_integration.advanced_neutron_collecting_factory": "Advanced Neutron Collecting Factory", + "block.avaritia_integration.elite_neutron_collecting_factory": "Elite Neutron Collecting Factory", + "block.avaritia_integration.ultimate_neutron_collecting_factory": "Ultimate Neutron Collecting Factory", + "block.avaritia_integration.overclocked_neutron_collecting_factory": "Overclocked Neutron Collecting Factory", + "block.avaritia_integration.quantum_neutron_collecting_factory": "Quantum Neutron Collecting Factory", + "block.avaritia_integration.dense_neutron_collecting_factory": "Dense Neutron Collecting Factory", + "block.avaritia_integration.multiversal_neutron_collecting_factory": "Multiversal Neutron Collecting Factory", + "block.avaritia_integration.creative_neutron_collecting_factory": "Creative Neutron Collecting Factory", + "block.avaritia_integration.singularity_compressor": "Singularity Compressor", + "block.avaritia_integration.basic_singularity_compressing_factory": "Basic Singularity Compressing Factory", + "block.avaritia_integration.advanced_singularity_compressing_factory": "Advanced Singularity Compressing Factory", + "block.avaritia_integration.elite_singularity_compressing_factory": "Elite Singularity Compressing Factory", + "block.avaritia_integration.ultimate_singularity_compressing_factory": "Ultimate Singularity Compressing Factory", + "block.avaritia_integration.overclocked_singularity_compressing_factory": "Overclocked Singularity Compressing Factory", + "block.avaritia_integration.quantum_singularity_compressing_factory": "Quantum Singularity Compressing Factory", + "block.avaritia_integration.dense_singularity_compressing_factory": "Dense Singularity Compressing Factory", + "block.avaritia_integration.multiversal_singularity_compressing_factory": "Multiversal Singularity Compressing Factory", + "block.avaritia_integration.creative_singularity_compressing_factory": "Creative Singularity Compressing Factory", + "block.avaritia_integration.infinity_solar_generator": "Infinity Solar Generator", + "block.avaritia_integration.neutron_solar_generator": "Neutron SolarGenerator", + "block.avaritia_integration.infinity_advanced_solar_generator": "Infinity Advanced Solar Generator", + "block.avaritia_integration.neutron_advanced_solar_generator": "Neutron Advanced SolarGenerator", + + "item.avaritia_integration.stredgeuniverse": "§cThe §6Strongest §eBlade §2in §bthe §3Universe §1[End of All Things · Boundless Starry Sky]", + "item.avaritia_integration.stredgeuniverse.tooltip1": "§5§o“Liberated here, the mightiest power in the universe“", + "item.avaritia_integration.stredgeuniverse.tooltip2": "§5§o“This is the end for Blade Swords“", + "item.avaritia_integration.stredgeuniverse.tooltip3": "§5§o“Aaaaaah, at the sight of this blade, all I see is fear.“", + "item.avaritia_integration.stredgeuniverse.tooltip4": "§5§o“The boundless sea of stars has been split open! My god, what is this!“", + "item.avaritia_integration.stredgeuniverse.tooltip5": "§5§o“You will never imagine what you will become beneath this blade.“", + "slash_art.avaritia_integration.meteorite_sword": "§cExtreme · §6Meteorite Sword", + "enchantment.level.100": "§cMax", + + "item.avaritia_integration.creative_mechanism": "Creative Mechanism", + "item.avaritia_integration.creative_compound": "Creative Compound", + + "item.avaritia_integration.infinity_me_storage_component": "Infinity ME Storage Component", + "item.avaritia_integration.infinity_me_storage_cell": "Infinity ME Storage Cell", + "item.avaritia_integration.infinity_me_storage_cell_big": "Ultimate Infinity Storage Cell", + + "item.avaritia_integration.creative_augment_base": "Creative Augment Base", + "item.avaritia_integration.creative_integral_components": "Creative Integral Components", + + "item.avaritia_integration.creative_compressed_iron": "Creative Compressed Iron", + + "item.avaritia_integration.infinity_storage_part": "Infinity Storage Part", + + "item.avaritia_integration.heaven_arrow": "AoE Arrow", + "item.avaritia_integration.trace_arrow": "Trace Arrow", + + "tooltip.avaritia_integration.cooldown_amount": "Cooldown Amount", + "tooltip.avaritia_integration.cooldown_time": "Cooldown Time", + "addon.avaritia_integration.neutron": "§eNeutron", + "addon.avaritia_integration.blaze_cube": "§bBlaze Cube", + "addon.avaritia_integration.crystal_matrix": "§bCrystal Matrix", + "addon.avaritia_integration.infinity": "§dInfinity", + "fluid_type.avaritia_integration.void_matter": "Void Matter", + "fluid_type.avaritia_integration.elderly_medulla": "Elderly Medulla", + "block.avaritia_integration.void_matter": "Void Matter", + "block.avaritia_integration.elderly_medulla": "Elderly Medulla", + "item.avaritia_integration.void_matter_bucket": "Void Matter Bucket", + "item.avaritia_integration.elderly_medulla_bucket": "Elderly Medulla Bucket", + "item.avaritia_integration.energy_addon_blaze_cube": "Addon: Energy Tier §bBlaze Cube", + "item.avaritia_integration.energy_addon_crystal_matrix": "Addon: Energy Tier §bCrystal Matrix", + "item.avaritia_integration.energy_addon_neutron": "Addon: Energy Tier §eNeutron", + "item.avaritia_integration.energy_addon_infinity": "Addon: Energy Tier §dInfinity", + + "block.avaritia_integration.molten_blaze_fluid": "Molten Blaze", + "fluid.avaritia_integration.molten_blaze": "Molten Blaze", + "fluid.avaritia_integration.flowing_molten_blaze": "Flowing Molten Blaze", + "item.avaritia_integration.molten_blaze_bucket": "Molten Blaze Bucket", + "fluid.avaritia_integration.molten_blaze.fluid_effect": "The extreme heat of Molten Blaze melts not only blocks, but also enemies", + "block.avaritia_integration.molten_crystal_matrix_fluid": "Molten Crystal Matrix", + "fluid.avaritia_integration.molten_crystal_matrix": "Molten Crystal Matrix", + "fluid.avaritia_integration.flowing_molten_crystal_matrix": "Flowing Molten Crystal Matrix", + "item.avaritia_integration.molten_crystal_matrix_bucket": "Molten Crystal Matrix Bucket", + "fluid.avaritia_integration.molten_crystal_matrix.fluid_effect": "No block can stand in the way of Molten Crystal Matrix", + "block.avaritia_integration.molten_neutron_fluid": "Liquid Neutron", + "fluid.avaritia_integration.molten_neutron": "Liquid Neutron", + "fluid.avaritia_integration.flowing_molten_neutron": "Flowing Liquid Neutron", + "item.avaritia_integration.molten_neutron_bucket": "Liquid Neutron Bucket", + "fluid.avaritia_integration.molten_neutron.fluid_effect": "The immense density of Liquid Neutron brings enemies to a halt", + "block.avaritia_integration.molten_infinity_fluid": "Infinity Vapor", + "fluid.avaritia_integration.molten_infinity": "Infinity Vapor", + "fluid.avaritia_integration.flowing_molten_infinity": "Flowing Infinity Vapor", + "item.avaritia_integration.molten_infinity_bucket": "Infinity Vapor Bucket", + "fluid.avaritia_integration.molten_infinity.fluid_effect": "Infinity Vapor defies countless physical laws, and its damage is no different", + "block.avaritia_integration.molten_star_fluid": "Star Fuel", + "fluid.avaritia_integration.molten_star": "Star Fuel", + "fluid.avaritia_integration.flowing_molten_star": "Flowing Star Fuel", + "item.avaritia_integration.molten_star_bucket": "Star Fuel Bucket", + "fluid.avaritia_integration.molten_star.fluid_effect": "Unstable Star Fuel is prone to exploding and generating flames", + + "chemical.avaritia_integration.infinity": "Infinity", + "chemical.avaritia_integration.neutron": "Neutron", + + "material.avaritia_integration.infinity": "Infinity", + "material.avaritia_integration.infinity.flavor": "The fury of the universe in the palm of your hand", + "material.avaritia_integration.infinity.encyclopedia": "Melee weapons can one-hit kill targets; Mining tools can break Bedrock and End Portals; Grants Fortune X and Looting X", + "material.avaritia_integration.infinity.ranged": "+6.5 Projectile Power; Fires AoE arrow of Longbow of the Heavens when out of arrows (swaps to trace arrow while sneaking)", + "material.avaritia_integration.infinity.armor": "Gains the following effects based on the number of armor pieces with this trait equipped: 1—Immunity to negative effects; 2—Infinite Night Vision, Oxygen, and Hunger; 3—Flight; 4—Invincibility; 5—Speed Boost", + + "material.avaritia_integration.blaze_cube": "Blaze Cube", + "material.avaritia_integration.blaze_cube.flavor": "Blaze Storm", + "material.avaritia_integration.blaze_cube.encyclopedia": "Extends target's burning duration by 15 seconds per level; Automatically smelts dropped items; Drops Wither Skeleton Skulls when killing any Skeleton type", + + "material.avaritia_integration.crystal_matrix": "Crystal Matrix", + "material.avaritia_integration.crystal_matrix.flavor": "This isn't even its final form", + "material.avaritia_integration.crystal_matrix.encyclopedia": "At full durability: 18% chance to negate durability loss, +60% Mining Speed and Projectile Velocity per level; Mining tools can break Bedrock and End Portals", + + "material.avaritia_integration.neutronium": "Neutronium", + "material.avaritia_integration.neutronium.flavor": "The dense heart of a star in convenient ingot form", + "material.avaritia_integration.neutronium.encyclopedia": "+5% Gravity; Chance to generate Neutronium Dust on melee hits, block mining, or projectile impacts—probability equals the percentage of Gravity attribute increased", + + "modifier.avaritia_integration.infinitum": "Infinitum", + "modifier.avaritia_integration.infinitum.flavor": "Stars and tombstones—symbols of eternity", + "modifier.avaritia_integration.infinitum.description": "Ignores most durability loss and regenerates durability quickly; Immune to external damage such as fire; Gains an ability slot", + + "modifier.avaritia_integration.rule_over": "Rule Over", + "modifier.avaritia_integration.rule_over.flavor": "Dominate all creation!", + "modifier.avaritia_integration.rule_over.description": "Melee weapons can one-hit kill targets; Mining tools can break Bedrock and End Portals; Grants Fortune X and Looting X", + + "modifier.avaritia_integration.vault_split": "Vault Split", + "modifier.avaritia_integration.vault_split.flavor": "Rend the heavens!", + "modifier.avaritia_integration.vault_split.description": "Increases Projectile Power; Fires AoE arrow of Longbow of the Heavens when out of arrows (swaps to trace arrows while sneaking)", + + "modifier.avaritia_integration.eternity": "Eternity", + "modifier.avaritia_integration.eternity.flavor": "Immortal and unyielding!", + "modifier.avaritia_integration.eternity.description": "Gains partial effects of the Infinity Armor based on the number of armor pieces with this trait equipped; Unlocks Invincibility with 4 pieces", + + "modifier.avaritia_integration.blaze_crown": "Blaze Crown", + "modifier.avaritia_integration.blaze_crown.flavor": "Beheads skeletons and scorches them black", + "modifier.avaritia_integration.blaze_crown.description": "Greatly extends target's burning duration; Automatically smelts dropped items; Drops Wither Skeleton Skulls when killing any Skeleton type", + + "modifier.avaritia_integration.crystalshine": "Crystalshine", + "modifier.avaritia_integration.crystalshine.flavor": "The shine of crystal lies in its purity", + "modifier.avaritia_integration.crystalshine.description": "At full durability: Increases Mining Speed and Projectile Velocity; Reduces chance of durability loss; Mining tools can break Bedrock and End Portals", + + "modifier.avaritia_integration.condensing": "Condensing", + "modifier.avaritia_integration.condensing.flavor": "As dust settles", + "modifier.avaritia_integration.condensing.description": "Slightly increases gravity; Chance to generate Neutronium Dust on melee hits, block mining, or projectile impacts; Probability equals the percentage of gravity attribute increased", + + "modifier.avaritia_integration.crystaluix": "Crystaluix", + "modifier.avaritia_integration.crystaluix.flavor": "If it absorbs, so do I", + "modifier.avaritia_integration.crystaluix.description": "Absorbs energy from nearby End Crystals to restore health", + + "modifier.avaritia_integration.star_dash": "Star Dash", + "modifier.avaritia_integration.star_dash.flavor": "Shining Star!", + "modifier.avaritia_integration.star_dash.description": "Increases damage on attack and has a chance to explode or fire projectiles; the higher the temperature, the higher the damage and explosion chance, and the lower the chance to fire additional projectiles", + + "modifier.avaritia_integration.superheat": "Superheat", + "modifier.avaritia_integration.superheat.flavor": "Superheated Scorch", + "modifier.avaritia_integration.superheat.description": "Increases damage dealt to burning targets", + + "container.avaritia_integration.neutron_collector": "Neutron Collector", + "container.avaritia_integration.basic_neutron_collecting_factory": "Basic Neutron Collecting Factory", + "container.avaritia_integration.advanced_neutron_collecting_factory": "Advanced Neutron Collecting Factory", + "container.avaritia_integration.elite_neutron_collecting_factory": "Elite Neutron Collecting Factory", + "container.avaritia_integration.ultimate_neutron_collecting_factory": "Ultimate Neutron Collecting Factory", + "container.avaritia_integration.overclocked_neutron_collecting_factory": "Overclocked Neutron Collecting Factory", + "container.avaritia_integration.quantum_neutron_collecting_factory": "Quantum Neutron Collecting Factory", + "container.avaritia_integration.dense_neutron_collecting_factory": "Dense Neutron Collecting Factory", + "container.avaritia_integration.multiversal_neutron_collecting_factory": "Multiversal Neutron Collecting Factory", + "container.avaritia_integration.creative_neutron_collecting_factory": "Creative Neutron Collecting Factory", + "container.avaritia_integration.singularity_compressor": "Singularity Compressor", + "container.avaritia_integration.basic_singularity_compressing_factory": "Basic Singularity Compressing Factory", + "container.avaritia_integration.advanced_singularity_compressing_factory": "Advanced Singularity Compressing Factory", + "container.avaritia_integration.elite_singularity_compressing_factory": "Elite Singularity Compressing Factory", + "container.avaritia_integration.ultimate_singularity_compressing_factory": "Ultimate Singularity Compressing Factory", + "container.avaritia_integration.overclocked_singularity_compressing_factory": "Overclocked Singularity Compressing Factory", + "container.avaritia_integration.quantum_singularity_compressing_factory": "Quantum Singularity Compressing Factory", + "container.avaritia_integration.dense_singularity_compressing_factory": "Dense Singularity Compressing Factory", + "container.avaritia_integration.multiversal_singularity_compressing_factory": "Multiversal Singularity Compressing Factory", + "container.avaritia_integration.creative_singularity_compressing_factory": "Creative Singularity Compressing Factory", + "container.avaritia_integration.infinity_solar_generator": "Infinity Solar Generator", + "container.avaritia_integration.neutron_solar_generator": "Neutron SolarGenerator", + "container.avaritia_integration.infinity_advanced_solar_generator": "Infinity Advanced Solar Generator", + "container.avaritia_integration.neutron_advanced_solar_generator": "Neutron Advanced SolarGenerator", + + "screen.avaritia_integration.module.title": "Avaritia: Integration Modules", + "screen.avaritia_integration.module.warning": "All changes make here need to restart game to take effect", + "screen.avaritia_integration.module.back": "Back", + "screen.avaritia_integration.module.enable": "Enable", + "screen.avaritia_integration.module.disable": "Disable", + "screen.avaritia_integration.message.version_between": "version between %s and %s", + "screen.avaritia_integration.message.version_higher": "version higher than %s", + "screen.avaritia_integration.message.version_lower": "version lower that %s", + "screen.avaritia_integration.message.version_any": "any version", + "screen.avaritia_integration.message.missing_mod": "Require %s of %s, but now it's missing!", + "screen.avaritia_integration.message.version_too_high": "Require %s of %s, but current version %s is too high!", + "screen.avaritia_integration.message.version_too_low": "Require %s of %s, but current version %s is too low!", + "screen.avaritia_integration.state.enabled": "Enabled", + "screen.avaritia_integration.state.disabled": "Disabled Manually", + "screen.avaritia_integration.state.error": "Disabled Automatically (Hover to see errors)", + "module.avaritia_integration.name.ae2": "Applied Energistics 2", + "module.avaritia_integration.name.bloodmagic": "Blood Magic", + "module.avaritia_integration.name.botania": "Botania", + "module.avaritia_integration.name.create": "Create", + "module.avaritia_integration.name.enderio": "Ender IO", + "module.avaritia_integration.name.pneumaticcraft": "PneumaticCraft: Repressurized", + "module.avaritia_integration.name.refinedstorage": "Refined Storage", + "module.avaritia_integration.name.slashblade": "SlashBlade", + "module.avaritia_integration.name.thermal_expansion": "Thermal Expansion", + "module.avaritia_integration.name.tconstruct": "Tinkers' Construct" +} diff --git a/core/src/main/resources/assets/avaritia_integration/lang/zh_cn.json b/core/src/main/resources/assets/avaritia_integration/lang/zh_cn.json new file mode 100644 index 00000000..6cc8112a --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/lang/zh_cn.json @@ -0,0 +1,291 @@ +{ + "itemGroup.tab.Integration": "无尽:集成", + + "item.avaritia_integration.blaze_cube_bolt": "炽骨立方螺栓", + "item.avaritia_integration.blaze_cube_dense_plate": "炽骨立方致密板", + "item.avaritia_integration.blaze_cube_double_plate": "炽骨立方双层板", + "item.avaritia_integration.blaze_cube_dust": "炽骨立方粉尘", + "item.avaritia_integration.blaze_cube_gear": "炽骨立方齿轮", + "item.avaritia_integration.blaze_cube_long_rod": "炽骨立方长杆", + "item.avaritia_integration.blaze_cube_nugget": "炽骨立方粒", + "item.avaritia_integration.blaze_cube_plate": "炽骨立方板", + "item.avaritia_integration.blaze_cube_ring": "炽骨立方环", + "item.avaritia_integration.blaze_cube_rod": "炽骨立方杆", + "item.avaritia_integration.blaze_cube_screw": "炽骨立方螺丝", + "item.avaritia_integration.blaze_cube_spring": "炽骨立方弹簧", + "item.avaritia_integration.blaze_cube_wire": "炽骨立方线", + + "item.avaritia_integration.crystal_matrix_bolt": "水晶矩阵螺栓", + "item.avaritia_integration.crystal_matrix_dense_plate": "水晶矩阵致密板", + "item.avaritia_integration.crystal_matrix_double_plate": "水晶矩阵双层板", + "item.avaritia_integration.crystal_matrix_dust": "水晶矩阵粉尘", + "item.avaritia_integration.crystal_matrix_gear": "水晶矩阵齿轮", + "item.avaritia_integration.crystal_matrix_long_rod": "水晶矩阵长杆", + "item.avaritia_integration.crystal_matrix_nugget": "水晶矩阵粒", + "item.avaritia_integration.crystal_matrix_plate": "水晶矩阵板", + "item.avaritia_integration.crystal_matrix_ring": "水晶矩阵环", + "item.avaritia_integration.crystal_matrix_rod": "水晶矩阵杆", + "item.avaritia_integration.crystal_matrix_screw": "水晶矩阵螺丝", + "item.avaritia_integration.crystal_matrix_spring": "水晶矩阵弹簧", + "item.avaritia_integration.crystal_matrix_wire": "水晶矩阵线", + + "item.avaritia_integration.infinity_bolt": "无尽螺栓", + "item.avaritia_integration.infinity_dense_plate": "无尽致密板", + "item.avaritia_integration.infinity_double_plate": "无尽双层板", + "item.avaritia_integration.infinity_dust": "无尽粉尘", + "item.avaritia_integration.infinity_gear": "无尽齿轮", + "item.avaritia_integration.infinity_long_rod": "无尽长杆", + "item.avaritia_integration.infinity_plate": "无尽板", + "item.avaritia_integration.infinity_ring": "无尽环", + "item.avaritia_integration.infinity_rod": "无尽杆", + "item.avaritia_integration.infinity_screw": "无尽螺丝", + "item.avaritia_integration.infinity_spring": "无尽弹簧", + "item.avaritia_integration.infinity_wire": "无尽线", + + "item.avaritia_integration.neutron_bolt": "中子螺栓", + "item.avaritia_integration.neutron_dense_plate": "中子致密板", + "item.avaritia_integration.neutron_double_plate": "中子双层板", + "item.avaritia_integration.neutron_dust": "中子粉尘", + "item.avaritia_integration.neutron_long_rod": "中子长杆", + "item.avaritia_integration.neutron_plate": "中子板", + "item.avaritia_integration.neutron_ring": "中子环", + "item.avaritia_integration.neutron_rod": "中子杆", + "item.avaritia_integration.neutron_screw": "中子螺丝", + "item.avaritia_integration.neutron_spring": "中子弹簧", + "item.avaritia_integration.neutron_wire": "中子线", + + "item.avaritia_integration.blood_orb_of_armok": "阿尔莫克之血宝珠", + + "item.avaritia_integration.infinity_capacitor": "无尽电容", + "item.avaritia_integration.infinity_grinding_ball": "无尽磨珠", + "item.avaritia_integration.neutron_grinding_ball": "中子磨珠", + + "item.avaritia_integration.infinity_energy_tablet": "无尽能量版", + "item.avaritia_integration.neutron_energy_tablet": "中子能量版", + "item.avaritia_integration.infinity_control_circuit": "永恒无尽控制电路", + "item.avaritia_integration.neutron_control_circuit": "中子辐射控制电路", + "item.avaritia_integration.alloy_infinity": "无尽合金", + "item.avaritia_integration.alloy_neutron": "中子合金", + "item.avaritia_integration.enriched_infinity": "富集无尽", + "item.avaritia_integration.enriched_neutron": "富集中子", + "item.avaritia_integration.infinity_solar_panel": "无尽太阳能板", + "item.avaritia_integration.neutron_solar_panel": "中子太阳能板", + + "block.avaritia_integration.asgard_dandelion": "§c阿斯加德蒲公英", + "block.avaritia_integration.potted_asgard_dandelion": "§c盆栽阿斯加德蒲公英", + "block.avaritia_integration.soarleander": "§c索利安德之嗜", + "block.avaritia_integration.potted_soarleander": "§c盆栽索利安德之嗜", + "block.avaritia_integration.asgard_dandelion_floating": "§c浮空阿斯加德蒲公英", + "block.avaritia_integration.soarleander_floating": "§c浮空索利安德之嗜", + "block.avaritia_integration.infinity_mana_pool": "无尽魔力池", + "block.avaritia_integration.infinity_potato": "无尽小土豆", + "item.avaritia_integration.alpha_spark": "阿尔法火花", + "entity.avaritia_integration.alpha_spark": "阿尔法火花", + "tooltip.avaritia_integration.infinity_pool": "无尽模式魔力池,拥有无限魔力容量", + + "block.avaritia_integration.neutron_collector": "中子态素收集器", + "block.avaritia_integration.basic_neutron_collecting_factory": "基础中子态素收集工厂", + "block.avaritia_integration.advanced_neutron_collecting_factory": "高级中子态素收集工厂", + "block.avaritia_integration.elite_neutron_collecting_factory": "精英中子态素收集工厂", + "block.avaritia_integration.ultimate_neutron_collecting_factory": "终极中子态素收集工厂", + "block.avaritia_integration.overclocked_neutron_collecting_factory": "超频中子态素收集工厂", + "block.avaritia_integration.quantum_neutron_collecting_factory": "量子中子态素收集工厂", + "block.avaritia_integration.dense_neutron_collecting_factory": "量子凝态中子态素收集工厂", + "block.avaritia_integration.multiversal_neutron_collecting_factory": "超阈限中子态素收集工厂", + "block.avaritia_integration.creative_neutron_collecting_factory": "创造中子态素收集工厂", + "block.avaritia_integration.singularity_compressor": "奇点压缩机", + "block.avaritia_integration.basic_singularity_compressing_factory": "基础奇点压缩工厂", + "block.avaritia_integration.advanced_singularity_compressing_factory": "高级奇点压缩工厂", + "block.avaritia_integration.elite_singularity_compressing_factory": "精英奇点压缩工厂", + "block.avaritia_integration.ultimate_singularity_compressing_factory": "终极奇点压缩工厂", + "block.avaritia_integration.overclocked_singularity_compressing_factory": "超频奇点压缩工厂", + "block.avaritia_integration.quantum_singularity_compressing_factory": "量子奇点压缩工厂", + "block.avaritia_integration.dense_singularity_compressing_factory": "量子凝态奇点压缩工厂", + "block.avaritia_integration.multiversal_singularity_compressing_factory": "超阈限奇点压缩工厂", + "block.avaritia_integration.creative_singularity_compressing_factory": "创造奇点压缩工厂", + "block.avaritia_integration.infinity_solar_generator": "无尽太阳能发电机", + "block.avaritia_integration.neutron_solar_generator": "中子太阳能发电机", + "block.avaritia_integration.infinity_advanced_solar_generator": "无尽高级太阳能发电机", + "block.avaritia_integration.neutron_advanced_solar_generator": "中子高级太阳能发电机", + + "item.avaritia_integration.stredgeuniverse": "§c宇§6宙§e最§2强§b之§3刃§1「万物终结·无尽星空」", + "item.avaritia_integration.stredgeuniverse.tooltip1": "§5§o“在此解放,宇宙最强之力”", + "item.avaritia_integration.stredgeuniverse.tooltip2": "§5§o“拔刀剑的末日到了”", + "item.avaritia_integration.stredgeuniverse.tooltip3": "§5§o“啊啊啊啊啊,看见这把刀,我就看见了恐惧。”", + "item.avaritia_integration.stredgeuniverse.tooltip4": "§5§o“无尽的星海被划开了!我的天,这是什么!”", + "item.avaritia_integration.stredgeuniverse.tooltip5": "§5§o“你永远无法想象刀刃之下,你会成为什么。”", + "slash_art.avaritia_integration.meteorite_sword": "§c终焉 · §6陨星剑", + "enchantment.level.100": "§c极限", + + "item.avaritia_integration.creative_mechanism": "创世构件", + "item.avaritia_integration.creative_compound": "创世化合物", + + "item.avaritia_integration.infinity_me_storage_component": "无尽ME存储组件", + "item.avaritia_integration.infinity_me_storage_cell": "无尽ME存储元件", + "item.avaritia_integration.infinity_me_storage_cell_big": "极限无尽存储元件", + + "item.avaritia_integration.creative_augment_base": "创造升级模板", + "item.avaritia_integration.creative_integral_components": "创世整合组件", + + "item.avaritia_integration.creative_compressed_iron": "创造压缩铁锭", + + "item.avaritia_integration.infinity_storage_part": "无限存储元件", + + "item.avaritia_integration.heaven_arrow": "范围箭", + "item.avaritia_integration.trace_arrow": "追踪箭", + + "tooltip.avaritia_integration.cooldown_amount": "冷却数量", + "tooltip.avaritia_integration.cooldown_time": "冷却时间", + "addon.avaritia_integration.neutron": "§e中子", + "addon.avaritia_integration.blaze_cube": "§b炽骨立方", + "addon.avaritia_integration.crystal_matrix": "§b水晶矩阵", + "addon.avaritia_integration.infinity": "§d无尽", + "fluid_type.avaritia_integration.void_matter": "虚空物质", + "fluid_type.avaritia_integration.elderly_medulla": "远古髓质", + "block.avaritia_integration.void_matter": "虚空物质", + "block.avaritia_integration.elderly_medulla": "远古髓质", + "item.avaritia_integration.void_matter_bucket": "虚空物质桶", + "item.avaritia_integration.elderly_medulla_bucket": "远古髓质桶", + "item.avaritia_integration.energy_addon_blaze_cube": "插件: 能量 Tier §b炽骨立方", + "item.avaritia_integration.energy_addon_crystal_matrix": "插件: 能量 Tier §b水晶矩阵", + "item.avaritia_integration.energy_addon_neutron": "插件: 能量 Tier §e中子", + "item.avaritia_integration.energy_addon_infinity": "插件: 能量 Tier §d无尽", + + "block.avaritia_integration.molten_blaze_fluid": "熔火之焰", + "fluid.avaritia_integration.molten_blaze": "熔火之焰", + "fluid.avaritia_integration.flowing_molten_blaze": "流动的熔火之焰", + "item.avaritia_integration.molten_blaze_bucket": "熔火之焰桶", + "fluid.avaritia_integration.molten_blaze.fluid_effect": "熔火之焰的高温不仅能熔化方块,还能熔化敌人", + "block.avaritia_integration.molten_crystal_matrix_fluid": "熔融水晶矩阵", + "fluid.avaritia_integration.molten_crystal_matrix": "熔融水晶矩阵", + "fluid.avaritia_integration.flowing_molten_crystal_matrix": "流动的熔融水晶矩阵", + "item.avaritia_integration.molten_crystal_matrix_bucket": "熔融水晶矩阵桶", + "fluid.avaritia_integration.molten_crystal_matrix.fluid_effect": "没有什么方块能拦住熔融水晶矩阵", + "block.avaritia_integration.molten_neutron_fluid": "中子流质", + "fluid.avaritia_integration.molten_neutron": "中子流质", + "fluid.avaritia_integration.flowing_molten_neutron": "流动的中子流质", + "item.avaritia_integration.molten_neutron_bucket": "中子流质桶", + "fluid.avaritia_integration.molten_neutron.fluid_effect": "中子流质巨大的密度能让敌人停下来", + "block.avaritia_integration.molten_infinity_fluid": "升腾无尽", + "fluid.avaritia_integration.molten_infinity": "升腾无尽", + "fluid.avaritia_integration.flowing_molten_infinity": "流动的升腾无尽", + "item.avaritia_integration.molten_infinity_bucket": "升腾无尽桶", + "fluid.avaritia_integration.molten_infinity.fluid_effect": "升腾无尽不符合诸多常理,伤害也是如此", + "block.avaritia_integration.molten_star_fluid": "恒星燃料", + "fluid.avaritia_integration.molten_star": "恒星燃料", + "fluid.avaritia_integration.flowing_molten_star": "流动的恒星燃料", + "item.avaritia_integration.molten_star_bucket": "恒星燃料桶", + "fluid.avaritia_integration.molten_star.fluid_effect": "不稳定的恒星燃料,很容易爆炸并产生火焰", + + "chemical.avaritia_integration.infinity": "永恒无尽", + "chemical.avaritia_integration.neutron": "中子辐照", + + "material.avaritia_integration.infinity": "无尽", + "material.avaritia_integration.infinity.flavor": "汝掌心中者,寰宇之力也", + "material.avaritia_integration.infinity.encyclopedia": "近战武器可以秒杀目标;挖掘工具可以破坏基岩和末地传送门;获得时运X和抢夺X效果", + "material.avaritia_integration.infinity.ranged": "+6.5弹射物力量;没有箭矢时可以射出天堂陨落长弓的范围箭矢(潜行时改为追踪箭矢)", + "material.avaritia_integration.infinity.armor": "根据穿戴的带该特性的盔甲数量获得下列效果:1—免疫负面效果;2—无限夜视、氧气和饥饿值;3—飞行;4—无敌;5—加速", + + "material.avaritia_integration.blaze_cube": "炽骨立方", + "material.avaritia_integration.blaze_cube.flavor": "火焰风暴", + "material.avaritia_integration.blaze_cube.encyclopedia": "每级延长目标15秒着火时间;可自动冶炼掉落物;击杀任意骷髅时掉落凋灵骷髅头颅", + + "material.avaritia_integration.crystal_matrix": "水晶矩阵", + "material.avaritia_integration.crystal_matrix.flavor": "这甚至不是最终形态", + "material.avaritia_integration.crystal_matrix.encyclopedia": "满耐久度时,耐久消耗概率-60%,每级+60%挖掘速度和初速度,;挖掘工具可以破坏基岩和末地传送门", + + "material.avaritia_integration.neutronium": "中子", + "material.avaritia_integration.neutronium.flavor": "致密恒星之心,化为一锭", + "material.avaritia_integration.neutronium.encyclopedia": "+5%重力;攻击命中、挖掘方块或弹射物命中时有概率产生中子素尘埃,概率与自身重力属性提高的百分比相等", + + "modifier.avaritia_integration.infinitum": "永恒", + "modifier.avaritia_integration.infinitum.flavor": "星星和墓碑,是最能象征永恒的东西", + "modifier.avaritia_integration.infinitum.description": "无视大多数耐久消耗,并会快速恢复耐久;在掉落物状态下无敌;获得一个能力槽", + + "modifier.avaritia_integration.rule_over": "支配", + "modifier.avaritia_integration.rule_over.flavor": "支配万物!", + "modifier.avaritia_integration.rule_over.description": "近战武器可以秒杀目标,挖掘工具可以破坏基岩和末地传送门;获得时运X和抢夺X效果", + + "modifier.avaritia_integration.vault_split": "裂穹", + "modifier.avaritia_integration.vault_split.flavor": "撕裂天空!", + "modifier.avaritia_integration.vault_split.description": "增加弹射物力量,没有箭矢时可以射出天堂陨落长弓的范围箭(潜行时改为追踪箭)", + + "modifier.avaritia_integration.eternity": "不朽", + "modifier.avaritia_integration.eternity.flavor": "永垂不朽!", + "modifier.avaritia_integration.eternity.description": "根据穿戴的带该特性的盔甲数量获得无尽盔甲的部分效果,4件时可无敌", + + "modifier.avaritia_integration.blaze_crown": "灼首", + "modifier.avaritia_integration.blaze_crown.flavor": "斩骷髅首级,后烧至焦黑", + "modifier.avaritia_integration.blaze_crown.description": "大幅延长目标着火时间,可自动冶炼掉落物,击杀任意骷髅时掉落凋灵骷髅头颅", + + "modifier.avaritia_integration.crystalshine": "晶耀", + "modifier.avaritia_integration.crystalshine.flavor": "水晶之耀,在于无瑕", + "modifier.avaritia_integration.crystalshine.description": "满耐久度时,提高挖掘速度和初速度,耐久消耗概率降低;挖掘工具可以破坏基岩和末地传送门", + + "modifier.avaritia_integration.condensing": "凝聚", + "modifier.avaritia_integration.condensing.flavor": "尘埃落定", + "modifier.avaritia_integration.condensing.description": "略微升高重力,攻击命中、挖掘方块或弹射物命中时有概率产生中子素尘埃,概率与自身重力属性提高的百分比相等", + + "modifier.avaritia_integration.crystaluix": "晶能", + "modifier.avaritia_integration.crystaluix.flavor": "那好啊,它吸收我也吸收", + "modifier.avaritia_integration.crystaluix.description": "可以吸收附近末地水晶的能量恢复生命值", + + "modifier.avaritia_integration.star_dash": "星绽", + "modifier.avaritia_integration.star_dash.flavor": "闪耀之星!", + "modifier.avaritia_integration.star_dash.description": "攻击时提高伤害并有概率爆炸或发射弹射物;温度越高,伤害和触发爆炸的概率越高,额外发射弹射物的概率越低", + + "modifier.avaritia_integration.superheat": "过热", + "modifier.avaritia_integration.superheat.flavor": "高温灼烧", + "modifier.avaritia_integration.superheat.description": "增加对着火目标造成的伤害", + + "container.avaritia_integration.neutron_collector": "中子态素收集器", + "container.avaritia_integration.basic_neutron_collecting_factory": "基础中子态素收集工厂", + "container.avaritia_integration.advanced_neutron_collecting_factory": "高级中子态素收集工厂", + "container.avaritia_integration.elite_neutron_collecting_factory": "精英中子态素收集工厂", + "container.avaritia_integration.ultimate_neutron_collecting_factory": "终极中子态素收集工厂", + "container.avaritia_integration.overclocked_neutron_collecting_factory": "超频中子态素收集工厂", + "container.avaritia_integration.quantum_neutron_collecting_factory": "量子中子态素收集工厂", + "container.avaritia_integration.dense_neutron_collecting_factory": "量子凝态中子态素收集工厂", + "container.avaritia_integration.multiversal_neutron_collecting_factory": "超阈限中子态素收集工厂", + "container.avaritia_integration.creative_neutron_collecting_factory": "创造中子态素收集工厂", + "container.avaritia_integration.singularity_compressor": "奇点压缩机", + "container.avaritia_integration.basic_singularity_compressing_factory": "基础奇点压缩工厂", + "container.avaritia_integration.advanced_singularity_compressing_factory": "高级奇点压缩工厂", + "container.avaritia_integration.elite_singularity_compressing_factory": "精英奇点压缩工厂", + "container.avaritia_integration.ultimate_singularity_compressing_factory": "终极奇点压缩工厂", + "container.avaritia_integration.overclocked_singularity_compressing_factory": "超频奇点压缩工厂", + "container.avaritia_integration.quantum_singularity_compressing_factory": "量子奇点压缩工厂", + "container.avaritia_integration.dense_singularity_compressing_factory": "量子凝态奇点压缩工厂", + "container.avaritia_integration.multiversal_singularity_compressing_factory": "超阈限奇点压缩工厂", + "container.avaritia_integration.creative_singularity_compressing_factory": "创造奇点压缩工厂", + "container.avaritia_integration.infinity_solar_generator": "无尽太阳能发电机", + "container.avaritia_integration.neutron_solar_generator": "中子太阳能发电机", + "container.avaritia_integration.infinity_advanced_solar_generator": "无尽高级太阳能发电机", + "container.avaritia_integration.neutron_advanced_solar_generator": "中子高级太阳能发电机", + + "screen.avaritia_integration.module.title": "无尽:集成 模块管理", + "screen.avaritia_integration.module.warning": "在这里做出的任何更改均需要重启才能生效", + "screen.avaritia_integration.module.back": "返回", + "screen.avaritia_integration.module.enable": "启用", + "screen.avaritia_integration.module.disable": "禁用", + "screen.avaritia_integration.message.version_between": "在 %s 和 %s 之间版本", + "screen.avaritia_integration.message.version_higher": "高于 %s 版本", + "screen.avaritia_integration.message.version_lower": "低于 %s 版本", + "screen.avaritia_integration.message.version_any": "任意版本", + "screen.avaritia_integration.message.missing_mod": "需要%s的%s,但是目前没有安装!", + "screen.avaritia_integration.message.version_too_high": "需要%s的%s,但是当前版本%s过高!", + "screen.avaritia_integration.message.version_too_low": "需要%s的%s,但是当前版本%s过低!", + "screen.avaritia_integration.state.enabled": "已启用", + "screen.avaritia_integration.state.disabled": "已手动禁用", + "screen.avaritia_integration.state.error": "已自动禁用(鼠标放在此以显示错误)", + "module.avaritia_integration.name.ae2": "应用能源2", + "module.avaritia_integration.name.bloodmagic": "血魔法", + "module.avaritia_integration.name.botania": "植物魔法", + "module.avaritia_integration.name.create": "机械动力", + "module.avaritia_integration.name.enderio": "末影接口", + "module.avaritia_integration.name.pneumaticcraft": "气动工艺", + "module.avaritia_integration.name.refinedstorage": "精致存储", + "module.avaritia_integration.name.slashblade": "拔刀剑", + "module.avaritia_integration.name.thermal_expansion": "热力拓展(热力膨胀)", + "module.avaritia_integration.name.tconstruct": "匠魂" +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/block/molten_blaze_fluid.json b/core/src/main/resources/assets/avaritia_integration/models/block/molten_blaze_fluid.json new file mode 100644 index 00000000..81d3e172 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/block/molten_blaze_fluid.json @@ -0,0 +1,3 @@ +{ + "textures": { "particle": "avaritia_integration:block/molten_blaze_still" } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/block/molten_crystal_matrix_fluid.json b/core/src/main/resources/assets/avaritia_integration/models/block/molten_crystal_matrix_fluid.json new file mode 100644 index 00000000..e7548934 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/block/molten_crystal_matrix_fluid.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "avaritia_integration:block/molten_crystal_matrix_still" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/block/molten_neutron_fluid.json b/core/src/main/resources/assets/avaritia_integration/models/block/molten_neutron_fluid.json new file mode 100644 index 00000000..83b74594 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/block/molten_neutron_fluid.json @@ -0,0 +1,3 @@ +{ + "textures": { "particle": "avaritia_integration:block/molten_neutron_still" } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/block/molten_star_fluid.json b/core/src/main/resources/assets/avaritia_integration/models/block/molten_star_fluid.json new file mode 100644 index 00000000..288e3191 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/block/molten_star_fluid.json @@ -0,0 +1,3 @@ +{ + "textures": { "particle": "avaritia_integration:block/molten_star_still" } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_bolt.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_bolt.json new file mode 100644 index 00000000..f0978262 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_bolt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_bolt" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dense_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dense_plate.json new file mode 100644 index 00000000..68ac1566 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dense_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_dense_plate" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_double_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_double_plate.json new file mode 100644 index 00000000..f792f7fe --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_double_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_double_plate" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dust.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dust.json new file mode 100644 index 00000000..c745a3a1 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_dust" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_gear.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_gear.json new file mode 100644 index 00000000..b968dab2 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_gear.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_gear" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_long_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_long_rod.json new file mode 100644 index 00000000..8a51cff3 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_long_rod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_long_rod" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_nugget.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_nugget.json new file mode 100644 index 00000000..48a4badf --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_nugget.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_nugget" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_plate.json new file mode 100644 index 00000000..12d24bd7 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_plate" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_ring.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_ring.json new file mode 100644 index 00000000..6ca5a4de --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_ring.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_ring" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_rod.json new file mode 100644 index 00000000..02b1ed9f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_rod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_rod" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_screw.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_screw.json new file mode 100644 index 00000000..5871a4b3 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_screw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_screw" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_spring.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_spring.json new file mode 100644 index 00000000..b9ca5da3 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_spring.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_spring" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_wire.json b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_wire.json new file mode 100644 index 00000000..279722c6 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_wire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_wire" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/blood_orb_of_armok.json b/core/src/main/resources/assets/avaritia_integration/models/item/blood_orb_of_armok.json new file mode 100644 index 00000000..0adcc584 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/blood_orb_of_armok.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/blood_orb_of_armok" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_bolt.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_bolt.json new file mode 100644 index 00000000..aae7387f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_bolt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_bolt" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dense_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dense_plate.json new file mode 100644 index 00000000..9fafd8fa --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dense_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_dense_plate" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_double_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_double_plate.json new file mode 100644 index 00000000..16141a43 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_double_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_double_plate" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dust.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dust.json new file mode 100644 index 00000000..9f5ca812 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_dust" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_gear.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_gear.json new file mode 100644 index 00000000..0692c2ed --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_gear.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_gear" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_long_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_long_rod.json new file mode 100644 index 00000000..32074413 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_long_rod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_long_rod" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_nugget.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_nugget.json new file mode 100644 index 00000000..14baafe3 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_nugget.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_nugget" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_plate.json new file mode 100644 index 00000000..d9805aae --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_plate" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_ring.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_ring.json new file mode 100644 index 00000000..925a840c --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_ring.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_ring" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_rod.json new file mode 100644 index 00000000..6128b8b5 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_rod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_rod" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_screw.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_screw.json new file mode 100644 index 00000000..c89490a5 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_screw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_screw" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_spring.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_spring.json new file mode 100644 index 00000000..26d714e0 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_spring.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_spring" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_wire.json b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_wire.json new file mode 100644 index 00000000..035b9234 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_wire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_wire" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/heaven_arrow.json b/core/src/main/resources/assets/avaritia_integration/models/item/heaven_arrow.json new file mode 100644 index 00000000..eb766083 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/heaven_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "avaritia_integration:item/heaven_arrow" + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_bolt.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_bolt.json new file mode 100644 index 00000000..2c5d33c5 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_bolt.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_bolt", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_dense_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_dense_plate.json new file mode 100644 index 00000000..47a4b84e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_dense_plate.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_dense_plate", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_double_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_double_plate.json new file mode 100644 index 00000000..a14e08d1 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_double_plate.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_double_plate", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_dust.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_dust.json new file mode 100644 index 00000000..f5c8baea --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_dust.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_dust", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_gear.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_gear.json new file mode 100644 index 00000000..51b3468c --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_gear.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_gear", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_long_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_long_rod.json new file mode 100644 index 00000000..043b4cce --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_long_rod.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_long_rod", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_plate.json new file mode 100644 index 00000000..512d0444 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_plate.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_plate", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_ring.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_ring.json new file mode 100644 index 00000000..47ebfce0 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_ring.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_ring", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_rod.json new file mode 100644 index 00000000..2d11d323 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_rod.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_rod", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_screw.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_screw.json new file mode 100644 index 00000000..8c58537f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_screw.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_screw", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_spring.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_spring.json new file mode 100644 index 00000000..7f460357 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_spring.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_spring", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/infinity_wire.json b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_wire.json new file mode 100644 index 00000000..395f199e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/infinity_wire.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_wire", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/molten_blaze_bucket.json b/core/src/main/resources/assets/avaritia_integration/models/item/molten_blaze_bucket.json new file mode 100644 index 00000000..cc701ffc --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/molten_blaze_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "neoforge:item/bucket_drip", + "flip_gas": false, + "fluid": "avaritia_integration:molten_blaze", + "loader": "neoforge:fluid_container" +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/molten_crystal_matrix_bucket.json b/core/src/main/resources/assets/avaritia_integration/models/item/molten_crystal_matrix_bucket.json new file mode 100644 index 00000000..494279f6 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/molten_crystal_matrix_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "neoforge:item/bucket_drip", + "flip_gas": false, + "fluid": "avaritia_integration:molten_crystal_matrix", + "loader": "neoforge:fluid_container" +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket.json b/core/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket.json new file mode 100644 index 00000000..7bb39cbc --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket.json @@ -0,0 +1,13 @@ +{ + "parent": "avaritia_integration:item/molten_infinity_bucket_base", + "textures": { + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket_base.json b/core/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket_base.json new file mode 100644 index 00000000..f7c8ce7e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket_base.json @@ -0,0 +1,6 @@ +{ + "parent": "neoforge:item/bucket_drip", + "flip_gas": true, + "fluid": "avaritia_integration:molten_infinity", + "loader": "neoforge:fluid_container" +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/molten_neutron_bucket.json b/core/src/main/resources/assets/avaritia_integration/models/item/molten_neutron_bucket.json new file mode 100644 index 00000000..7ac69677 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/molten_neutron_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "neoforge:item/bucket_drip", + "flip_gas": false, + "fluid": "avaritia_integration:molten_neutron", + "loader": "neoforge:fluid_container" +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/molten_star_bucket.json b/core/src/main/resources/assets/avaritia_integration/models/item/molten_star_bucket.json new file mode 100644 index 00000000..46724e2f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/molten_star_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "neoforge:item/bucket_drip", + "flip_gas": false, + "fluid": "avaritia_integration:molten_star", + "loader": "neoforge:fluid_container" +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_bolt.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_bolt.json new file mode 100644 index 00000000..34d1026d --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_bolt.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_bolt", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_dense_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_dense_plate.json new file mode 100644 index 00000000..f6e88c04 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_dense_plate.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_dense_plate", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_double_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_double_plate.json new file mode 100644 index 00000000..032fe6a9 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_double_plate.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_double_plate", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_dust.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_dust.json new file mode 100644 index 00000000..ab74e02d --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_dust.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_dust", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_long_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_long_rod.json new file mode 100644 index 00000000..018b845d --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_long_rod.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_long_rod", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_plate.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_plate.json new file mode 100644 index 00000000..a1af65c7 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_plate.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_plate", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_ring.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_ring.json new file mode 100644 index 00000000..d2ce4f23 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_ring.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_ring", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_rod.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_rod.json new file mode 100644 index 00000000..fb9dc38c --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_rod.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_rod", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_screw.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_screw.json new file mode 100644 index 00000000..e255c4d2 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_screw.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_screw", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_spring.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_spring.json new file mode 100644 index 00000000..6dccc96c --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_spring.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_spring", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/neutron_wire.json b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_wire.json new file mode 100644 index 00000000..fd622590 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/neutron_wire.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_wire", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.obj b/core/src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.obj similarity index 100% rename from src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.obj rename to core/src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.obj diff --git a/src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.png b/core/src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.png rename to core/src/main/resources/assets/avaritia_integration/models/item/stredgeuniverse.png diff --git a/core/src/main/resources/assets/avaritia_integration/models/item/trace_arrow.json b/core/src/main/resources/assets/avaritia_integration/models/item/trace_arrow.json new file mode 100644 index 00000000..a957513a --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/models/item/trace_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "avaritia_integration:item/trace_arrow" + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png.mcmeta new file mode 100644 index 00000000..a100e550 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png.mcmeta new file mode 100644 index 00000000..a100e550 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png.mcmeta new file mode 100644 index 00000000..a100e550 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png rename to core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/gen/infinity_dark.png b/core/src/main/resources/assets/avaritia_integration/textures/gen/infinity_dark.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/gen/infinity_dark.png rename to core/src/main/resources/assets/avaritia_integration/textures/gen/infinity_dark.png diff --git a/src/main/resources/assets/avaritia_integration/textures/gen/infinity_light.png b/core/src/main/resources/assets/avaritia_integration/textures/gen/infinity_light.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/gen/infinity_light.png rename to core/src/main/resources/assets/avaritia_integration/textures/gen/infinity_light.png diff --git a/src/main/resources/assets/avaritia_integration/textures/gen/infinity_medium.png b/core/src/main/resources/assets/avaritia_integration/textures/gen/infinity_medium.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/gen/infinity_medium.png rename to core/src/main/resources/assets/avaritia_integration/textures/gen/infinity_medium.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png.mcmeta new file mode 100644 index 00000000..85072a3f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 32 }, { "index": 1, "time": 32 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_bolt.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_bolt.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_bolt.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_bolt.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dense_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dense_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dense_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dense_plate.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_double_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_double_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_double_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_double_plate.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dust.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dust.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dust.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_dust.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_gear.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_gear.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_gear.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_gear.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ingot.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ingot.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ingot.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ingot.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_long_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_long_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_long_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_long_rod.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_nugget.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_nugget.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_nugget.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_nugget.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_plate.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_ring.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_rod.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_screw.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_screw.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_screw.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_screw.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_spring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_spring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_spring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_spring.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_wire.png b/core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_wire.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_wire.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix_wire.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/heaven_arrow.png b/core/src/main/resources/assets/avaritia_integration/textures/item/heaven_arrow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/heaven_arrow.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/heaven_arrow.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png.mcmeta new file mode 100644 index 00000000..4670cc85 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png.mcmeta @@ -0,0 +1,24 @@ +{ + "animation": { + "interpolate": true, + "frametime": 30, + "frames": [ + { "index": 0, "time": 3 }, + { "index": 1, "time": 3 }, + { "index": 2, "time": 3 }, + { "index": 3, "time": 2 }, + { "index": 4, "time": 2 }, + 5, + 6, + 7, + 8, + 7, + 6, + 5, + { "index": 4, "time": 2 }, + { "index": 3, "time": 2 }, + { "index": 2, "time": 3 }, + { "index": 1, "time": 3 } + ] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_flowing.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_flowing.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_flowing.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_flowing.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_still.png b/core/src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_still.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/infinity/molten_infinity_still.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/blood_orb_of_armok.png b/core/src/main/resources/assets/avaritia_integration/textures/item/items/blood_orb_of_armok.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/blood_orb_of_armok.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/items/blood_orb_of_armok.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_disk.png b/core/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_disk.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_disk.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_disk.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/star_cake.png b/core/src/main/resources/assets/avaritia_integration/textures/item/items/star_cake.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/star_cake.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/items/star_cake.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/star_cake_base.png b/core/src/main/resources/assets/avaritia_integration/textures/item/items/star_cake_base.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/star_cake_base.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/items/star_cake_base.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/alloy_neutron.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/alloy_neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/alloy_neutron.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/alloy_neutron.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/enriched_neutron.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/enriched_neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/enriched_neutron.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/enriched_neutron.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_bolt.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_bolt.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_bolt.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_bolt.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_control_circuit.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_control_circuit.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_control_circuit.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_control_circuit.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dense_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dense_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dense_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dense_plate.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_double_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_double_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_double_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_double_plate.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dust.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dust.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dust.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_dust.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_energy_tablet.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_energy_tablet.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_energy_tablet.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_energy_tablet.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_gear.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_gear.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_gear.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_gear.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png diff --git a/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png.mcmeta b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png.mcmeta new file mode 100644 index 00000000..a100e550 --- /dev/null +++ b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_long_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_long_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_long_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_long_rod.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_nugget.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_nugget.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_nugget.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_nugget.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_plate.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_plate.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_plate.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_plate.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ring.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_rod.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_rod.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_rod.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_rod.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_screw.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_screw.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_screw.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_screw.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_spring.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_spring.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_spring.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_spring.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_wire.png b/core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_wire.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_wire.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_wire.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/trace_arrow.png b/core/src/main/resources/assets/avaritia_integration/textures/item/trace_arrow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/trace_arrow.png rename to core/src/main/resources/assets/avaritia_integration/textures/item/trace_arrow.png diff --git a/core/src/main/resources/assets/minecraft/atlases/blocks.json b/core/src/main/resources/assets/minecraft/atlases/blocks.json new file mode 100644 index 00000000..230b11c1 --- /dev/null +++ b/core/src/main/resources/assets/minecraft/atlases/blocks.json @@ -0,0 +1,12 @@ +{ + "sources": [ + { + "type": "minecraft:single", + "resource": "avaritia_integration:infuse_type/infinity" + }, + { + "type": "minecraft:single", + "resource": "avaritia_integration:infuse_type/neutron" + } + ] +} diff --git a/core/src/main/resources/data/avaritia/tags/items/endless.json b/core/src/main/resources/data/avaritia/tags/items/endless.json new file mode 100644 index 00000000..fa3dfcdc --- /dev/null +++ b/core/src/main/resources/data/avaritia/tags/items/endless.json @@ -0,0 +1,3 @@ +{ + "values": ["avaritia_integration:molten_infinity_bucket"] +} diff --git a/core/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_bedrock.json b/core/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_bedrock.json new file mode 100644 index 00000000..94ecfa91 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_bedrock.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [{ "type": "minecraft:item", "name": "minecraft:bedrock" }], + "conditions": [{ "condition": "minecraft:survives_explosion" }] + } + ] +} diff --git a/core/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_end_portal_frame.json b/core/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_end_portal_frame.json new file mode 100644 index 00000000..7ca4f13a --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_end_portal_frame.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { "type": "minecraft:item", "name": "minecraft:end_portal_frame" } + ], + "conditions": [{ "condition": "minecraft:survives_explosion" }] + } + ] +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_casting.json new file mode 100644 index 00000000..b9448ea1 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_basin", + "fluid": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 900 + }, + "result": "avaritia:blaze_cube_block", + "cooling_time": 241 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_melting.json new file mode 100644 index 00000000..a627a3a1 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:blaze_cube_block" }, + "result": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 900 + }, + "temperature": 1500, + "time": 241 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_gold.json b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_gold.json new file mode 100644 index 00000000..f2865422 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_gold.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/multi_use/gem" }, + "cast_consumed": false, + "fluid": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 100 + }, + "result": "avaritia:blaze_cube", + "cooling_time": 80 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_sand.json b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_sand.json new file mode 100644 index 00000000..bae9a4b9 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_sand.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/single_use/gem" }, + "cast_consumed": true, + "fluid": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 100 + }, + "result": "avaritia:blaze_cube", + "cooling_time": 80 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_melting.json new file mode 100644 index 00000000..b0476ecb --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:blaze_cube" }, + "result": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 100 + }, + "temperature": 1500, + "time": 80 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_casting.json new file mode 100644 index 00000000..5c154173 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_basin", + "fluid": { + "fluid": "avaritia_integration:molten_crystal_matrix", + "amount": 810 + }, + "result": "avaritia:crystal_matrix", + "cooling_time": 312 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_melting.json new file mode 100644 index 00000000..715fe49b --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:crystal_matrix" }, + "result": { + "fluid": "avaritia_integration:molten_crystal_matrix", + "amount": 810 + }, + "temperature": 2500, + "time": 312 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_gold.json b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_gold.json new file mode 100644 index 00000000..44a1eb52 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_gold.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/multi_use/ingot" }, + "cast_consumed": false, + "fluid": { + "fluid": "avaritia_integration:molten_crystal_matrix", + "amount": 90 + }, + "result": "avaritia:crystal_matrix_ingot", + "cooling_time": 104 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_sand.json b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_sand.json new file mode 100644 index 00000000..5f12778f --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_sand.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/single_use/ingot" }, + "cast_consumed": true, + "fluid": { + "fluid": "avaritia_integration:molten_crystal_matrix", + "amount": 90 + }, + "result": "avaritia:crystal_matrix_ingot", + "cooling_time": 104 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_melting.json new file mode 100644 index 00000000..23272212 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:crystal_matrix_ingot" }, + "result": { + "fluid": "avaritia_integration:molten_crystal_matrix", + "amount": 90 + }, + "temperature": 2500, + "time": 104 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_casting.json new file mode 100644 index 00000000..629c3a29 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_basin", + "fluid": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 810 + }, + "result": "avaritia:infinity", + "cooling_time": 741 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_melting.json new file mode 100644 index 00000000..5b2889e6 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:infinity" }, + "result": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 810 + }, + "temperature": 12000, + "time": 741 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_gold.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_gold.json new file mode 100644 index 00000000..c15f1054 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_gold.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/multi_use/ingot" }, + "cast_consumed": false, + "fluid": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 90 + }, + "result": "avaritia:infinity_ingot", + "cooling_time": 247 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_sand.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_sand.json new file mode 100644 index 00000000..c51e6b8f --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_sand.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/single_use/ingot" }, + "cast_consumed": true, + "fluid": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 90 + }, + "result": "avaritia:infinity_ingot", + "cooling_time": 247 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_melting.json new file mode 100644 index 00000000..2f505255 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:infinity_ingot" }, + "result": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 90 + }, + "temperature": 12000, + "time": 247 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_gold.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_gold.json new file mode 100644 index 00000000..0aa33971 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_gold.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/multi_use/nugget" }, + "cast_consumed": false, + "fluid": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 10 + }, + "result": "avaritia:infinity_nugget", + "cooling_time": 82 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_sand.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_sand.json new file mode 100644 index 00000000..92746d01 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_sand.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/single_use/nugget" }, + "cast_consumed": true, + "fluid": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 10 + }, + "result": "avaritia:infinity_nugget", + "cooling_time": 82 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_melting.json new file mode 100644 index 00000000..ce37fda3 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:infinity_nugget" }, + "result": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 10 + }, + "temperature": 12000, + "time": 82 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_casting.json new file mode 100644 index 00000000..ca869c94 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_basin", + "fluid": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 810 + }, + "result": "avaritia:neutron", + "cooling_time": 589 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_melting.json new file mode 100644 index 00000000..11c3aabe --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:neutron" }, + "result": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 810 + }, + "temperature": 8000, + "time": 589 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_gold.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_gold.json new file mode 100644 index 00000000..3a25f23a --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_gold.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/multi_use/ingot" }, + "cast_consumed": false, + "fluid": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 90 + }, + "result": "avaritia:neutron_ingot", + "cooling_time": 196 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_sand.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_sand.json new file mode 100644 index 00000000..6dd2631c --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_sand.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/single_use/ingot" }, + "cast_consumed": true, + "fluid": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 90 + }, + "result": "avaritia:neutron_ingot", + "cooling_time": 196 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_melting.json new file mode 100644 index 00000000..1fe3e965 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:neutron_ingot" }, + "result": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 90 + }, + "temperature": 8000, + "time": 196 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_gold.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_gold.json new file mode 100644 index 00000000..654f8915 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_gold.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/multi_use/nugget" }, + "cast_consumed": false, + "fluid": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 10 + }, + "result": "avaritia:neutron_nugget", + "cooling_time": 65 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_sand.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_sand.json new file mode 100644 index 00000000..258c34ce --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_sand.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/single_use/nugget" }, + "cast_consumed": true, + "fluid": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 10 + }, + "result": "avaritia:neutron_nugget", + "cooling_time": 65 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_melting.json new file mode 100644 index 00000000..595d7bcb --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:neutron_nugget" }, + "result": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 10 + }, + "temperature": 8000, + "time": 65 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_casting.json new file mode 100644 index 00000000..115bd924 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_basin", + "fluid": { + "fluid": "avaritia_integration:molten_star", + "amount": 900 + }, + "result": "avaritia:star_fuel_block", + "cooling_time": 325 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_melting.json new file mode 100644 index 00000000..5de92a37 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:star_fuel_block" }, + "result": { + "fluid": "avaritia_integration:molten_star", + "amount": 900 + }, + "temperature": 3000, + "time": 325 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_gold.json b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_gold.json new file mode 100644 index 00000000..aa1df640 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_gold.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/multi_use/gem" }, + "cast_consumed": false, + "fluid": { + "fluid": "avaritia_integration:molten_star", + "amount": 90 + }, + "result": "avaritia:star_fuel", + "cooling_time": 108 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_sand.json b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_sand.json new file mode 100644 index 00000000..1d34ba4b --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_sand.json @@ -0,0 +1,17 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:casting_table", + "cast": { "tag": "tconstruct:casts/single_use/gem" }, + "cast_consumed": true, + "fluid": { + "fluid": "avaritia_integration:molten_star", + "amount": 90 + }, + "result": "avaritia:star_fuel", + "cooling_time": 108 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/ingot_melting.json b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/ingot_melting.json new file mode 100644 index 00000000..fc14bbda --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/ingot_melting.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting", + "ingredient": { "item": "avaritia:star_fuel" }, + "result": { + "fluid": "avaritia_integration:molten_star", + "amount": 100 + }, + "temperature": 3000, + "time": 108 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/fuel/molten_blaze.json b/core/src/main/resources/data/avaritia_integration/recipe/fuel/molten_blaze.json new file mode 100644 index 00000000..b7bbf2c4 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/fuel/molten_blaze.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting_fuel", + "fluid": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 50 + }, + "duration": 300, + "rate": 30, + "temperature": 3000 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/fuel/molten_star.json b/core/src/main/resources/data/avaritia_integration/recipe/fuel/molten_star.json new file mode 100644 index 00000000..00fb6cbc --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/fuel/molten_star.json @@ -0,0 +1,16 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:melting_fuel", + "fluid": { + "fluid": "avaritia_integration:molten_star", + "amount": 50 + }, + "duration": 1500, + "rate": 150, + "temperature": 15000 +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/block.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/block.json new file mode 100644 index 00000000..4ecec56b --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/block.json @@ -0,0 +1,18 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:blaze_cube_block" + }, + "value": 9, + "needed": 1, + "material": "avaritia_integration:blaze_cube", + "leftover": { + "item": "avaritia:blaze_cube" + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/gem.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/gem.json new file mode 100644 index 00000000..171aed05 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/gem.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:blaze_cube" + }, + "value": 1, + "needed": 1, + "material": "avaritia_integration:blaze_cube" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/material_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/material_casting.json new file mode 100644 index 00000000..32f477a9 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/material_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_fluid", + "fluid": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 100 + }, + "temperature": 1500, + "output": "avaritia_integration:blaze_cube" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/melting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/melting.json new file mode 100644 index 00000000..7d003456 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/melting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_melting", + "input": "avaritia_integration:blaze_cube", + "temperature": 1500, + "result": { + "fluid": "avaritia_integration:molten_blaze", + "amount": 100 + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/block.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/block.json new file mode 100644 index 00000000..bb92bb9a --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/block.json @@ -0,0 +1,18 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:crystal_matrix" + }, + "value": 9, + "needed": 1, + "material": "avaritia_integration:crystal_matrix", + "leftover": { + "item": "avaritia:crystal_matrix_ingot" + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/ingot.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/ingot.json new file mode 100644 index 00000000..3a1d8a09 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/ingot.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:crystal_matrix_ingot" + }, + "value": 1, + "needed": 1, + "material": "avaritia_integration:crystal_matrix" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/material_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/material_casting.json new file mode 100644 index 00000000..b072b4aa --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/material_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_fluid", + "fluid": { + "fluid": "avaritia_integration:molten_crystal_matrix", + "amount": 90 + }, + "temperature": 2500, + "output": "avaritia_integration:crystal_matrix" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/melting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/melting.json new file mode 100644 index 00000000..946ef040 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/melting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_melting", + "input": "avaritia_integration:crystal_matrix", + "temperature": 2500, + "result": { + "fluid": "avaritia_integration:molten_crystal_matrix", + "amount": 90 + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/block.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/block.json new file mode 100644 index 00000000..9b4e9628 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/block.json @@ -0,0 +1,18 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:infinity" + }, + "value": 9, + "needed": 1, + "material": "avaritia_integration:infinity", + "leftover": { + "item": "avaritia:infinity_ingot" + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/ingot.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/ingot.json new file mode 100644 index 00000000..a8e3880f --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/ingot.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:infinity_ingot" + }, + "value": 1, + "needed": 1, + "material": "avaritia_integration:infinity" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/material_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/material_casting.json new file mode 100644 index 00000000..2b65acfb --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/material_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_fluid", + "fluid": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 90 + }, + "temperature": 12000, + "output": "avaritia_integration:infinity" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/melting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/melting.json new file mode 100644 index 00000000..bf327cdf --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/melting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_melting", + "input": "avaritia_integration:infinity", + "temperature": 12000, + "result": { + "fluid": "avaritia_integration:molten_infinity", + "amount": 90 + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/nugget.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/nugget.json new file mode 100644 index 00000000..a0cd1b73 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/infinity/nugget.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:infinity_nugget" + }, + "value": 1, + "needed": 9, + "material": "avaritia_integration:infinity" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/block.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/block.json new file mode 100644 index 00000000..9da253fa --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/block.json @@ -0,0 +1,18 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:neutron" + }, + "value": 9, + "needed": 1, + "material": "avaritia_integration:neutronium", + "leftover": { + "item": "avaritia:neutron_ingot" + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/ingot.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/ingot.json new file mode 100644 index 00000000..d292ad26 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/ingot.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:neutron_ingot" + }, + "value": 1, + "needed": 1, + "material": "avaritia_integration:neutronium" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/material_casting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/material_casting.json new file mode 100644 index 00000000..b49b9b15 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/material_casting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_fluid", + "fluid": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 90 + }, + "temperature": 8000, + "output": "avaritia_integration:neutronium" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/melting.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/melting.json new file mode 100644 index 00000000..c892b518 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/melting.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material_melting", + "input": "avaritia_integration:neutron", + "temperature": 8000, + "result": { + "fluid": "avaritia_integration:molten_neutron", + "amount": 90 + } +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/nugget.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/nugget.json new file mode 100644 index 00000000..bf82a853 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/nugget.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:neutron_nugget" + }, + "value": 1, + "needed": 9, + "material": "avaritia_integration:neutronium" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/pile.json b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/pile.json new file mode 100644 index 00000000..4e204761 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/pile.json @@ -0,0 +1,15 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:material", + "ingredient": { + "item": "avaritia:neutron_pile" + }, + "value": 1, + "needed": 81, + "material": "avaritia_integration:neutronium" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/modifiers/crystaluix.json b/core/src/main/resources/data/avaritia_integration/recipe/modifiers/crystaluix.json new file mode 100644 index 00000000..2cd5bd6a --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/modifiers/crystaluix.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:modifier", + "inputs": [ + { + "tag": "forge:gems/diamond" + }, + { + "item": "avaritia:crystal_matrix_ingot" + }, + { + "tag": "forge:gems/diamond" + }, + { + "item": "avaritia:diamond_lattice" + }, + { + "item": "avaritia:diamond_lattice" + } + ], + "tools": { + "tag": "tconstruct:modifiable/armor/worn" + }, + "slots": { + "defense": 1 + }, + "allow_crystal": true, + "result": "avaritia_integration:crystaluix" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/modifiers/star_dash.json b/core/src/main/resources/data/avaritia_integration/recipe/modifiers/star_dash.json new file mode 100644 index 00000000..982f7138 --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/modifiers/star_dash.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:modifier", + "inputs": [ + { + "item": "avaritia:star_fuel" + }, + { + "item": "avaritia:refined_coal" + }, + { + "item": "avaritia:star_fuel" + }, + { + "item": "avaritia:refined_coal" + }, + { + "item": "avaritia:refined_coal" + } + ], + "tools": { + "tag": "tconstruct:modifiable/melee" + }, + "slots": { + "abilities": 1 + }, + "allow_crystal": true, + "result": "avaritia_integration:star_dash" +} diff --git a/core/src/main/resources/data/avaritia_integration/recipe/modifiers/superheat.json b/core/src/main/resources/data/avaritia_integration/recipe/modifiers/superheat.json new file mode 100644 index 00000000..66db5e9d --- /dev/null +++ b/core/src/main/resources/data/avaritia_integration/recipe/modifiers/superheat.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + { + "modid": "tconstruct", + "type": "forge:mod_loaded" + } + ], + "type": "tconstruct:modifier", + "inputs": [ + { + "tag": "forge:bones" + }, + { + "item": "avaritia:blaze_cube" + }, + { + "tag": "forge:bones" + }, + { + "tag": "forge:rods/blaze" + }, + { + "tag": "forge:rods/blaze" + } + ], + "tools": { + "tag": "tconstruct:modifiable/ranged" + }, + "slots": { + "abilities": 1 + }, + "allow_crystal": true, + "result": "avaritia_integration:superheat" +} diff --git a/core/src/main/resources/data/c/tags/blocks/storage_blocks.json b/core/src/main/resources/data/c/tags/blocks/storage_blocks.json new file mode 100644 index 00000000..5066c655 --- /dev/null +++ b/core/src/main/resources/data/c/tags/blocks/storage_blocks.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "#c:storage_blocks/blaze_cube", + "#c:storage_blocks/crystal_matrix", + "#c:storage_blocks/infinity", + "#c:storage_blocks/neutron", + "#c:storage_blocks/star_fuel" + ] +} diff --git a/core/src/main/resources/data/c/tags/blocks/storage_blocks/blaze_cube.json b/core/src/main/resources/data/c/tags/blocks/storage_blocks/blaze_cube.json new file mode 100644 index 00000000..4013f0be --- /dev/null +++ b/core/src/main/resources/data/c/tags/blocks/storage_blocks/blaze_cube.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:blaze_cube_block"] +} diff --git a/core/src/main/resources/data/c/tags/blocks/storage_blocks/crystal_matrix.json b/core/src/main/resources/data/c/tags/blocks/storage_blocks/crystal_matrix.json new file mode 100644 index 00000000..4c1c3c43 --- /dev/null +++ b/core/src/main/resources/data/c/tags/blocks/storage_blocks/crystal_matrix.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:crystal_matrix"] +} diff --git a/core/src/main/resources/data/c/tags/blocks/storage_blocks/infinity.json b/core/src/main/resources/data/c/tags/blocks/storage_blocks/infinity.json new file mode 100644 index 00000000..b6caa473 --- /dev/null +++ b/core/src/main/resources/data/c/tags/blocks/storage_blocks/infinity.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:infinity"] +} diff --git a/core/src/main/resources/data/c/tags/blocks/storage_blocks/neutron.json b/core/src/main/resources/data/c/tags/blocks/storage_blocks/neutron.json new file mode 100644 index 00000000..f74aa053 --- /dev/null +++ b/core/src/main/resources/data/c/tags/blocks/storage_blocks/neutron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:neutron"] +} diff --git a/core/src/main/resources/data/c/tags/blocks/storage_blocks/star_fuel.json b/core/src/main/resources/data/c/tags/blocks/storage_blocks/star_fuel.json new file mode 100644 index 00000000..271c99d3 --- /dev/null +++ b/core/src/main/resources/data/c/tags/blocks/storage_blocks/star_fuel.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:star_fuel_block"] +} diff --git a/core/src/main/resources/data/c/tags/items/ingots.json b/core/src/main/resources/data/c/tags/items/ingots.json new file mode 100644 index 00000000..2cc6a9df --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/ingots.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "#c:ingots/crystal_matrix", + "#c:ingots/infinity", + "#c:ingots/neutron" + ] +} diff --git a/core/src/main/resources/data/c/tags/items/ingots/crystal_matrix.json b/core/src/main/resources/data/c/tags/items/ingots/crystal_matrix.json new file mode 100644 index 00000000..19988820 --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/ingots/crystal_matrix.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:crystal_matrix_ingot"] +} diff --git a/core/src/main/resources/data/c/tags/items/ingots/infinity.json b/core/src/main/resources/data/c/tags/items/ingots/infinity.json new file mode 100644 index 00000000..d259948f --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/ingots/infinity.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:infinity_ingot"] +} diff --git a/core/src/main/resources/data/c/tags/items/ingots/neutron.json b/core/src/main/resources/data/c/tags/items/ingots/neutron.json new file mode 100644 index 00000000..8145f57a --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/ingots/neutron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:neutron_ingot"] +} diff --git a/core/src/main/resources/data/c/tags/items/nuggets.json b/core/src/main/resources/data/c/tags/items/nuggets.json new file mode 100644 index 00000000..3016504a --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/nuggets.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["#c:nuggets/infinity", "#c:nuggets/neutron"] +} diff --git a/core/src/main/resources/data/c/tags/items/nuggets/infinity.json b/core/src/main/resources/data/c/tags/items/nuggets/infinity.json new file mode 100644 index 00000000..14cb057f --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/nuggets/infinity.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:infinity_nugget"] +} diff --git a/core/src/main/resources/data/c/tags/items/nuggets/neutron.json b/core/src/main/resources/data/c/tags/items/nuggets/neutron.json new file mode 100644 index 00000000..88afca5c --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/nuggets/neutron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:neutron_nugget"] +} diff --git a/core/src/main/resources/data/c/tags/items/storage_blocks.json b/core/src/main/resources/data/c/tags/items/storage_blocks.json new file mode 100644 index 00000000..5066c655 --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/storage_blocks.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "#c:storage_blocks/blaze_cube", + "#c:storage_blocks/crystal_matrix", + "#c:storage_blocks/infinity", + "#c:storage_blocks/neutron", + "#c:storage_blocks/star_fuel" + ] +} diff --git a/core/src/main/resources/data/c/tags/items/storage_blocks/blaze_cube.json b/core/src/main/resources/data/c/tags/items/storage_blocks/blaze_cube.json new file mode 100644 index 00000000..4013f0be --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/storage_blocks/blaze_cube.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:blaze_cube_block"] +} diff --git a/core/src/main/resources/data/c/tags/items/storage_blocks/crystal_matrix.json b/core/src/main/resources/data/c/tags/items/storage_blocks/crystal_matrix.json new file mode 100644 index 00000000..4c1c3c43 --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/storage_blocks/crystal_matrix.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:crystal_matrix"] +} diff --git a/core/src/main/resources/data/c/tags/items/storage_blocks/infinity.json b/core/src/main/resources/data/c/tags/items/storage_blocks/infinity.json new file mode 100644 index 00000000..b6caa473 --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/storage_blocks/infinity.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:infinity"] +} diff --git a/core/src/main/resources/data/c/tags/items/storage_blocks/neutron.json b/core/src/main/resources/data/c/tags/items/storage_blocks/neutron.json new file mode 100644 index 00000000..f74aa053 --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/storage_blocks/neutron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:neutron"] +} diff --git a/core/src/main/resources/data/c/tags/items/storage_blocks/star_fuel.json b/core/src/main/resources/data/c/tags/items/storage_blocks/star_fuel.json new file mode 100644 index 00000000..271c99d3 --- /dev/null +++ b/core/src/main/resources/data/c/tags/items/storage_blocks/star_fuel.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia:star_fuel_block"] +} diff --git a/core/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/core/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json new file mode 100644 index 00000000..4625ac36 --- /dev/null +++ b/core/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,97 @@ +{ + "replace": false, + "values": [ + { + "id": "avaritia_integration:fake_bedrock", + "required": false + }, + { + "id": "avaritia_integration:fake_end_portal", + "required": false + }, + { + "id": "avaritia_integration:fake_end_portal_frame", + "required": false + }, + { + "id": "avaritia_integration:neutron_collector", + "required": false + }, + { + "id": "avaritia_integration:basic_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:advanced_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:elite_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:ultimate_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:overclocked_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:quantum_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:dense_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:multiversal_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:creative_neutron_collecting_factory", + "required": false + }, + { + "id": "avaritia_integration:singularity_compressor", + "required": false + }, + { + "id": "avaritia_integration:basic_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:advanced_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:elite_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:ultimate_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:overclocked_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:quantum_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:dense_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:multiversal_singularity_compressing_factory", + "required": false + }, + { + "id": "avaritia_integration:creative_singularity_compressing_factory", + "required": false + } + ] +} diff --git a/core/src/main/templates/META-INF/neoforge.mods.toml b/core/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..473af2de --- /dev/null +++ b/core/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,30 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +#[[mixins]] +#config = "${mod_id}.mixins.json" + +#[[accessTransformers]] +#file="META-INF/accesstransformer.cfg" + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" diff --git a/gradle.properties b/gradle.properties index e051130c..3aba242a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,57 +1,13 @@ - org.gradle.jvmargs=-Xmx2G -org.gradle.daemon=true +org.gradle.java.installations.auto-download=false org.gradle.parallel=true org.gradle.caching=true -org.gradle.configuration-cache=true - -minecraft_version=1.21.1 - -minecraft_version_range=[1.21.1,1.22) - -neo_version=21.1.219 - -neo_version_range=[21,) - -# Integrations -avaritia_version=7695278 -jei_version=7420587 -refined_Storage_version=7610477 - -create_version=7408951 -pneumaticcraft_repressurized_version=7696994 - -ender_io_version=7700961 - -applied_energistics_version=19.2.17 -guideme_version=21.1.15 -patchouli_version=6842247 -curios_version=6529130 -jade_version=7545219 - -titanium_version=7662843 -industrial_foregoing_version=7600395 -industrial_foregoing_extra_upgrades_version=7738486 - -botania_version=452-SNAPSHOT -mekanism_version=1.21.1-10.7.19.85 - -loader_version_range=[4,) - -parchment_minecraft_version=1.21.1 - -parchment_mappings_version=2024.11.17 +#org.gradle.configuration-cache=true mod_id=avaritia_integration - mod_name=AvaritiaIntegration - mod_license=MIT - -mod_version=1.0 - +mod_version=1.0.0 mod_group_id=committee.nova.mods - -mod_authors=cnlimiter, IAFEnvoy, Frostbite-time, CreepingCreeper, Oganesson897, cu6, MHanHanBing, Neo-Tix - +mod_authors=cnlimiter, CreepingCreeper, cu6, Frostbite-time, IAFEnvoy, MHanHanBing, Oganesson897, QiuYe, TedXenon mod_description=NULL diff --git a/gradle/forge.versions.toml b/gradle/forge.versions.toml new file mode 100644 index 00000000..e9c5da44 --- /dev/null +++ b/gradle/forge.versions.toml @@ -0,0 +1,39 @@ +[versions] +reAvaritia = "7695278" +jei = "7420587" +refinedStorage = "7610477" +create = "7408951" +pneumaticcraftRepressurized = "7696994" +enderIo = "7700961" +appliedEnergistics = "19.2.17" +guideme = "21.1.15" +patchouli = "6842247" +curios = "6529130" +jade = "7545219" +titanium = "7662843" +industrialForegoing = "7600395" +industrialForegoingExtraUpgrades = "7738486" +botania = "452-SNAPSHOT" +mekanism = "1.21.1-10.7.19.85" +igleeLibrary = "7000755" +evolvedMekanism = "7599592" + +[libraries] +reAvaritia = { module = "curse.maven:re-avaritia-623969", version.ref = "reAvaritia" } +jei = { module = "curse.maven:jei-238222", version.ref = "jei" } +refinedStorage = { module = "curse.maven:refined-storage-243076", version.ref = "refinedStorage" } +create = { module = "curse.maven:create-328085", version.ref = "create" } +pneumaticcraftRepressurized = { module = "curse.maven:pneumaticcraft-repressurized-281849", version.ref = "pneumaticcraftRepressurized" } +enderIo = { module = "curse.maven:ender-io-64578", version.ref = "enderIo" } +appliedEnergistics = { module = "org.appliedenergistics:appliedenergistics2", version.ref = "appliedEnergistics" } +guideme = { module = "org.appliedenergistics:guideme", version.ref = "guideme" } +patchouli = { module = "curse.maven:patchouli-306770", version.ref = "patchouli" } +curios = { module = "curse.maven:curios-309927", version.ref = "curios" } +jade = { module = "curse.maven:jade-324717", version.ref = "jade" } +titanium = { module = "curse.maven:titanium-287342", version.ref = "titanium" } +industrialForegoing = { module = "curse.maven:industrial-foregoing-266515", version.ref = "industrialForegoing" } +industrialForegoingExtraUpgrades = { module = "curse.maven:industrial-foregoing-extra-upgrades-1161049", version.ref = "industrialForegoingExtraUpgrades" } +botania = { module = "vazkii.botania:botania-neoforge-1.21.1", version.ref = "botania" } +mekanism = { module = "mekanism:Mekanism", version.ref = "mekanism" } +igleeLibrary = { module = "curse.maven:iglee-library-541199", version.ref = "igleeLibrary" } +evolvedMekanism = { module = "curse.maven:evolved-mekanism-1230085", version.ref = "evolvedMekanism" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..22527662 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,21 @@ +[versions] +minecraft = "1.21.1" +minecraftRange = "[1.21.1,1.22)" +neoForge = "21.1.219" +neoForgeRange = "[21,)" +loader = "4" +loaderRange = "[4,)" +parchment = "2024.11.17" +modDevGradle = "2.0.140" +spotless = "8.1.0" +lombok = "8.14" +lombokCore = "1.18.38" + +[libraries] +minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } +neoForge = { module = "net.neoforged:neoforge", version.ref = "neoForge" } + +[plugins] +modDevGradle = { id = "net.neoforged.moddev", version.ref = "modDevGradle" } +spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } +lombok = { id = "io.freefair.lombok", version.ref = "lombok" } diff --git a/gradle/scripts/mod-project.gradle b/gradle/scripts/mod-project.gradle new file mode 100644 index 00000000..b814516a --- /dev/null +++ b/gradle/scripts/mod-project.gradle @@ -0,0 +1,172 @@ +apply plugin: 'java-library' +apply plugin: 'maven-publish' +apply plugin: 'idea' +apply plugin: 'eclipse' +apply plugin: 'jacoco' +apply plugin: 'net.neoforged.moddev' +apply plugin: 'com.diffplug.spotless' +apply plugin: 'io.freefair.lombok' + +apply from: rootProject.file('gradle/scripts/spotless.gradle') + +def moduleModId = providers.provider { project.ext.ai_mod_id as String } +def moduleName = providers.provider { project.ext.ai_mod_name as String } +def moduleDescription = providers.provider { project.ext.ai_mod_description as String } +def runDirectoryName = providers.provider { project.ext.ai_run_directory as String } +def archiveName = providers.provider { project.ext.has('ai_archive_name') ? project.ext.ai_archive_name as String : moduleModId.get() } +def dependencyBlocks = providers.provider { project.ext.has('ai_dependency_blocks') ? project.ext.ai_dependency_blocks as String : '' } +def isAggregate = providers.provider { project.ext.has('ai_aggregate') && project.ext.ai_aggregate as boolean } +def dataOutputRoot = providers.provider { project.ext.has('ai_data_output_root') ? project.ext.ai_data_output_root as String : 'src/generated/resources' } +def dataExistingRoot = providers.provider { project.ext.has('ai_data_existing_root') ? project.ext.ai_data_existing_root as String : 'src/main/resources' } + +base { + archivesName = archiveName.get() +} + +java { + toolchain.languageVersion = JavaLanguageVersion.of(21) + withSourcesJar() +} + +sourceSets.main.resources { + srcDir 'src/generated/resources' +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' +} + +lombok { + version = libs.versions.lombokCore.get() +} + +neoForge { + version = libs.versions.neoForge.get() + + parchment { + mappingsVersion = libs.versions.parchment.get() + minecraftVersion = libs.versions.minecraft.get() + } + + runs { + client { + client() + ideName = isAggregate.get() ? 'All Client' : "${moduleName.get()} Client" + gameDirectory.set(rootProject.file("run/${runDirectoryName.get()}/client")) + systemProperty 'neoforge.enabledGameTestNamespaces', moduleModId.get() + } + + server { + server() + ideName = isAggregate.get() ? 'All Server' : "${moduleName.get()} Server" + gameDirectory.set(rootProject.file("run/${runDirectoryName.get()}/server")) + programArgument '--nogui' + systemProperty 'neoforge.enabledGameTestNamespaces', moduleModId.get() + } + + data { + data() + ideName = "${moduleName.get()} Data" + gameDirectory.set(rootProject.file("run/${runDirectoryName.get()}/data")) + programArguments.addAll '--mod', moduleModId.get(), '--all', + '--output', file(dataOutputRoot.get()).getAbsolutePath(), + '--existing', file(dataExistingRoot.get()).getAbsolutePath() + } + + if (isAggregate.get()) { + gameTestServer { + type = 'gameTestServer' + ideName = 'Game Tests Server' + gameDirectory.set(rootProject.file('run/all/gametest/server')) + systemProperty 'neoforge.enabledGameTestNamespaces', moduleModId.get() + environment 'TEST', 'true' + } + + gameTestClient { + client() + ideName = 'Game Tests Client' + gameDirectory.set(rootProject.file('run/all/gametest/client')) + systemProperty 'neoforge.enabledGameTestNamespaces', moduleModId.get() + environment 'TEST', 'true' + } + } + + configureEach { + systemProperty 'forge.logging.markers', 'REGISTRIES' + logLevel = org.slf4j.event.Level.DEBUG + } + } + + mods { + "${moduleModId.get()}" { + sourceSet(sourceSets.main) + } + } +} + +tasks.matching { it.name.startsWith('prepare') }.configureEach { + doFirst { + mkdir rootProject.file("run/${runDirectoryName.get()}/client") + mkdir rootProject.file("run/${runDirectoryName.get()}/server") + mkdir rootProject.file("run/${runDirectoryName.get()}/data") + if (isAggregate.get()) { + mkdir rootProject.file('run/all/gametest/client') + mkdir rootProject.file('run/all/gametest/server') + } + } +} + +var generateModMetadata = tasks.register('generateModMetadata', ProcessResources) { + var replaceProperties = [ + minecraft_version : libs.versions.minecraft.get(), + minecraft_version_range: libs.versions.minecraftRange.get(), + neo_version : libs.versions.neoForge.get(), + neo_version_range : libs.versions.neoForgeRange.get(), + loader_version_range : libs.versions.loaderRange.get(), + mod_id : moduleModId.get(), + mod_name : moduleName.get(), + mod_license : mod_license, + mod_version : mod_version, + mod_authors : mod_authors, + mod_description : moduleDescription.get(), + dependency_blocks : dependencyBlocks.get() + ] + inputs.properties replaceProperties + expand replaceProperties + from 'src/main/templates' + into 'build/generated/sources/modMetadata' +} + +sourceSets.main.resources.srcDir generateModMetadata +neoForge.ideSyncTask generateModMetadata + +tasks.withType(Jar).configureEach { + manifest.attributes([ + 'Specification-Title' : moduleName.get(), + 'Specification-Version' : mod_version, + 'Specification-Vendor' : mod_authors, + 'Implementation-Title' : archiveName.get(), + 'Implementation-Version' : project.version, + 'Implementation-Vendor' : mod_authors + ]) +} + +publishing { + publications { + register('mavenJava', MavenPublication) { + from components.java + } + } + repositories { + maven { + url "file://${rootProject.projectDir}/repo" + } + } +} + +idea { + module { + downloadSources = true + downloadJavadoc = true + } +} diff --git a/gradle/scripts/spotless.gradle b/gradle/scripts/spotless.gradle new file mode 100644 index 00000000..e0ed4a37 --- /dev/null +++ b/gradle/scripts/spotless.gradle @@ -0,0 +1,47 @@ +// Spotless auto-formatter +// See https://github.com/diffplug/spotless/tree/main/plugin-gradle +// Can be locally toggled via spotless:off/spotless:on comments +spotless { + encoding 'UTF-8' + + format 'misc', { + target '.gitattributes', '.gitignore', '*.md' + + trimTrailingWhitespace() + leadingTabsToSpaces() + endWithNewline() + } + + groovyGradle { + target '*.gradle', 'gradle/**/*.gradle' + + trimTrailingWhitespace() + leadingTabsToSpaces() + endWithNewline() + } + + java { + target 'src/main/java/**/*.java', 'src/test/java/**/*.java' + + def orderFile = file("$rootDir/gradle/spotless/spotless.importorder") + def formatFile = file("$rootDir/gradle/spotless/spotless.eclipseformat.xml") + + toggleOffOn() + importOrderFile(orderFile) + removeUnusedImports('cleanthat-javaparser-unnecessaryimport') + trimTrailingWhitespace() + leadingSpacesToTabs() + endWithNewline() + eclipse('4.31').configFile(formatFile) + } + + json { + target 'src/*/resources/**/*.json', 'src/*/resources/**/*.mcmeta' + targetExclude 'src/generated/resources/**' + + biome() + trimTrailingWhitespace() + leadingSpacesToTabs() + endWithNewline() + } +} diff --git a/gradle/spotless/spotless.eclipseformat.xml b/gradle/spotless/spotless.eclipseformat.xml new file mode 100644 index 00000000..d57b9101 --- /dev/null +++ b/gradle/spotless/spotless.eclipseformat.xml @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gradle/spotless/spotless.importorder b/gradle/spotless/spotless.importorder new file mode 100644 index 00000000..06fa7845 --- /dev/null +++ b/gradle/spotless/spotless.importorder @@ -0,0 +1,8 @@ +#Organize Import Order +#Sat May 27 02:13:47 CDT 2023 +0=committee.nova +1=net +2= +3=java +4=javax +5=\# diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e6441136..f8e1ee31 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a4413138..1a704683 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index b740cf13..adff685a 100644 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -112,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -170,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -203,15 +203,14 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 25da30db..c4bdd3ab 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -68,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/integrations/ae2/build.gradle b/integrations/ae2/build.gradle new file mode 100644 index 00000000..54ce2b38 --- /dev/null +++ b/integrations/ae2/build.gradle @@ -0,0 +1,14 @@ +ext.ai_mod_id = 'avaritia_integration_ae2' +ext.ai_mod_name = 'Avaritia Integration AE2' +ext.ai_mod_description = 'Avaritia Integration module for Applied Energistics 2.' +ext.ai_run_directory = 'integrations/ae2' +ext.ai_data_output_root = 'src/generated/resources/integration_packs/server_data' +ext.ai_data_existing_root = 'src/main/resources/integration_packs/server_data' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.appliedEnergistics + implementation forge.guideme +} diff --git a/src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell.json b/integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell.json rename to integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell.json diff --git a/src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell_big.json b/integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell_big.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell_big.json rename to integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_cell_big.json diff --git a/src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_component.json b/integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_component.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_component.json rename to integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_me_storage_component.json diff --git a/src/generated/resources/data/avaritia_integration/recipe/infinity_me_storage_cell.json b/integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_me_storage_cell.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/recipe/infinity_me_storage_cell.json rename to integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_me_storage_cell.json diff --git a/src/generated/resources/data/avaritia_integration/recipe/infinity_me_storage_cell_big.json b/integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_me_storage_cell_big.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/recipe/infinity_me_storage_cell_big.json rename to integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_me_storage_cell_big.json diff --git a/src/generated/resources/data/avaritia_integration/recipe/infinity_me_storage_component.json b/integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_me_storage_component.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/recipe/infinity_me_storage_component.json rename to integrations/ae2/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_me_storage_component.json diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/AE2Module.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/AE2Module.java new file mode 100644 index 00000000..5e1edaa9 --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/AE2Module.java @@ -0,0 +1,58 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2; + +import committee.nova.mods.avaritia_integration.integrations.ae2.client.AE2ClientPlugin; +import committee.nova.mods.avaritia_integration.integrations.ae2.me.AEUniversalCellHandler; +import committee.nova.mods.avaritia_integration.integrations.ae2.me.biginteger.AEBigIntegerCellHandler; +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationDataComponents; +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; + +import appeng.api.storage.StorageCells; +import appeng.api.upgrades.Upgrades; +import appeng.core.definitions.AEItems; + +public final class AE2Module implements Module { + + @Override + public void init(IEventBus registryBus) { + AE2IntegrationItems.REGISTRY.register(registryBus); + AE2IntegrationDataComponents.register(registryBus); + } + + @Override + public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { + Module.super.registerClientEvent(modBus, gameBus); + AE2ClientPlugin.registerStorageLED(modBus); + } + + @Override + public void process() { + Module.super.process(); + StorageCells.addCellHandler(AEUniversalCellHandler.INSTANCE); + StorageCells.addCellHandler(AEBigIntegerCellHandler.INSTANCE); + + Upgrades.add(AEItems.FUZZY_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); + Upgrades.add(AEItems.VOID_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); + Upgrades.add(AEItems.INVERTER_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); + Upgrades.add(AEItems.EQUAL_DISTRIBUTION_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); + + Upgrades.add(AEItems.FUZZY_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG, 1); + Upgrades.add(AEItems.INVERTER_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG, 1); + } + + @Override + public void processClient() { + AE2ClientPlugin.register(); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + output.accept(AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT); + output.accept(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL); + output.accept(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG); + } +} diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/AIAE2IntegrationMod.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/AIAE2IntegrationMod.java new file mode 100644 index 00000000..7ec57f56 --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/AIAE2IntegrationMod.java @@ -0,0 +1,30 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIAE2IntegrationMod.MOD_ID) +public final class AIAE2IntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_ae2"; + + public static final String DEPENDENCY_MOD_ID = "ae2"; + + public AIAE2IntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration AE2 Data"); + if (IntegrationRuntime.shouldLoad(MOD_ID, this) && IntegrationRuntime.load(MOD_ID, bus, new AE2Module())) { + ModRun.init(bus); + } + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/ModRun.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/ModRun.java new file mode 100644 index 00000000..5133afb9 --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/ModRun.java @@ -0,0 +1,12 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2; + +import committee.nova.mods.avaritia_integration.integrations.ae2.datagen.AE2DataGen; + +import net.neoforged.bus.api.IEventBus; + +class ModRun { + + public static void init(IEventBus bus) { + bus.addListener(AE2DataGen::gatherData); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/client/AE2ClientPlugin.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/client/AE2ClientPlugin.java similarity index 80% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/client/AE2ClientPlugin.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/client/AE2ClientPlugin.java index 8a9de8cd..f7b64715 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/client/AE2ClientPlugin.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/client/AE2ClientPlugin.java @@ -1,9 +1,9 @@ -package committee.nova.mods.avaritia_integration.module.ae2.client; - +package committee.nova.mods.avaritia_integration.integrations.ae2.client; import net.neoforged.bus.api.IEventBus; public class AE2ClientPlugin { + public static void register() { AE2StorageModels.registerStorageModels(); } diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/client/AE2StorageModels.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/client/AE2StorageModels.java new file mode 100644 index 00000000..7711aa3a --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/client/AE2StorageModels.java @@ -0,0 +1,27 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2.client; + +import committee.nova.mods.avaritia_integration.integrations.ae2.item.AEUniversalCellItem; +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationItems; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.FastColor; +import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent; + +import appeng.api.client.StorageCellModels; + +public class AE2StorageModels { + + private static final ResourceLocation MODEL_CELL_CREATIVE = ResourceLocation + .parse("ae2:block/drive/cells/creative_cell"); + + public static void registerStorageModels() { + StorageCellModels.registerModel(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, MODEL_CELL_CREATIVE); + StorageCellModels.registerModel(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG, MODEL_CELL_CREATIVE); + } + + public static void registerItemColors(RegisterColorHandlersEvent.Item event) { + event.register((itemStack, idx) -> FastColor.ARGB32.opaque(AEUniversalCellItem.getColor(itemStack, idx)), + AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, + AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG); + } +} diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/datagen/AE2DataGen.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/datagen/AE2DataGen.java new file mode 100644 index 00000000..5a9cfe29 --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/datagen/AE2DataGen.java @@ -0,0 +1,23 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2.datagen; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.data.event.GatherDataEvent; + +import java.util.concurrent.CompletableFuture; + +public final class AE2DataGen { + + private AE2DataGen() {} + + public static void gatherData(GatherDataEvent event) { + if (!event.includeServer()) { + return; + } + DataGenerator generator = event.getGenerator(); + PackOutput output = generator.getPackOutput(); + CompletableFuture future = event.getLookupProvider(); + generator.addProvider(true, new AE2Recipes(output, future)); + } +} diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/datagen/AE2Recipes.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/datagen/AE2Recipes.java new file mode 100644 index 00000000..1b455fc7 --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/datagen/AE2Recipes.java @@ -0,0 +1,67 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2.datagen; + +import committee.nova.mods.avaritia.init.data.provider.recipe.ModShapedRecipeBuilder; +import committee.nova.mods.avaritia.init.registry.ModItems; +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationItems; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.neoforged.neoforge.common.conditions.IConditionBuilder; + +import appeng.core.definitions.AEBlocks; +import appeng.core.definitions.AEItems; + +import java.util.concurrent.CompletableFuture; + +public class AE2Recipes extends RecipeProvider implements IConditionBuilder { + + public AE2Recipes(PackOutput output, CompletableFuture registries) { + super(output, registries); + } + + @Override + protected void buildRecipes(RecipeOutput consumer) { + ModShapedRecipeBuilder.shaped(RecipeCategory.MISC, AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT.get()) + .pattern(" rrrrr ") + .pattern(" vesssev ") + .pattern("reafcfaer") + .pattern("rsfxzxfsr") + .pattern("rsczdzcsr") + .pattern("rsfxzxfsr") + .pattern("reafcfaer") + .pattern(" vesssev ") + .pattern(" rrrrr ") + .define('a', AEItems.ENDER_DUST) + .define('s', AEItems.SKY_DUST) + .define('d', AEBlocks.CONTROLLER) + .define('f', AEItems.CELL_COMPONENT_256K) + .define('z', AEItems.SPATIAL_128_CELL_COMPONENT) + .define('x', AEItems.MATTER_BALL) + .define('c', AEItems.SINGULARITY) + .define('e', ModItems.infinity_catalyst.get()) + .define('r', ModItems.infinity_ingot.get()) + .define('v', ModItems.neutron_gear.get()) + .unlockedBy("has_item", has(ModItems.infinity_ingot.get())) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL.get()) + .pattern("aq") + .pattern("s ") + .define('a', AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT.get()) + .define('q', AEItems.FLUID_CELL_HOUSING) + .define('s', AEItems.ITEM_CELL_HOUSING) + .unlockedBy("has_item", has(ModItems.neutron_ingot.get())) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG.get()) + .pattern("aq") + .define('a', AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT.get()) + .define('q', AE2IntegrationItems.INFINITY_ME_STORAGE_CELL.get()) + .unlockedBy("has_item", has(ModItems.neutron_ingot.get())) + .save(consumer); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/AEBigIntegerCellItem.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/AEBigIntegerCellItem.java similarity index 90% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/AEBigIntegerCellItem.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/AEBigIntegerCellItem.java index 91457b4f..794f5749 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/AEBigIntegerCellItem.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/AEBigIntegerCellItem.java @@ -1,4 +1,19 @@ -package committee.nova.mods.avaritia_integration.module.ae2.item; +package committee.nova.mods.avaritia_integration.integrations.ae2.item; + +import committee.nova.mods.avaritia_integration.integrations.ae2.localization.AEUniversalTooltips; +import committee.nova.mods.avaritia_integration.integrations.ae2.me.biginteger.IAEBigIntegerCell; + +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.tooltip.TooltipComponent; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; import appeng.api.config.FuzzyMode; import appeng.api.ids.AEComponents; @@ -15,19 +30,6 @@ import appeng.util.ConfigInventory; import appeng.util.InteractionUtil; import appeng.util.Platform; -import committee.nova.mods.avaritia_integration.module.ae2.localization.AEUniversalTooltips; -import committee.nova.mods.avaritia_integration.module.ae2.me.biginteger.IAEBigIntegerCell; -import net.minecraft.network.chat.Component; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.tooltip.TooltipComponent; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; import java.math.BigInteger; @@ -40,9 +42,10 @@ * BigInteger版元件物品的承载类,仅用于创造元件 */ public class AEBigIntegerCellItem extends Item implements IAEBigIntegerCell, ICellWorkbenchItem { + private final double idleDrain; - public AEBigIntegerCellItem(Item.Properties pProperties, double idleDrain) { + public AEBigIntegerCellItem(Properties pProperties, double idleDrain) { super(pProperties); this.idleDrain = idleDrain; } @@ -121,7 +124,8 @@ public void setFuzzyMode(ItemStack is, FuzzyMode fzMode) { } @Override - public @NotNull InteractionResultHolder use(@NotNull Level level, @NotNull Player player, @NotNull InteractionHand hand) { + public @NotNull InteractionResultHolder use(@NotNull Level level, @NotNull Player player, + @NotNull InteractionHand hand) { this.disassembleDrive(player.getItemInHand(hand), level, player); return new InteractionResultHolder<>(InteractionResult.sidedSuccess(level.isClientSide()), player.getItemInHand(hand)); @@ -161,8 +165,7 @@ private boolean disassembleDrive(ItemStack stack, Level level, Player player) { @Override public @NotNull InteractionResult onItemUseFirst(@NotNull ItemStack stack, UseOnContext context) { - return this.disassembleDrive(stack, context.getLevel(), context.getPlayer()) - ? InteractionResult.sidedSuccess(context.getLevel().isClientSide()) - : InteractionResult.PASS; + return this.disassembleDrive(stack, context.getLevel(), context.getPlayer()) ? + InteractionResult.sidedSuccess(context.getLevel().isClientSide()) : InteractionResult.PASS; } } diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/AEUniversalCellItem.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/AEUniversalCellItem.java similarity index 91% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/AEUniversalCellItem.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/AEUniversalCellItem.java index fec41af8..cddf0fb1 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/AEUniversalCellItem.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/AEUniversalCellItem.java @@ -1,4 +1,19 @@ -package committee.nova.mods.avaritia_integration.module.ae2.item; +package committee.nova.mods.avaritia_integration.integrations.ae2.item; + +import committee.nova.mods.avaritia_integration.integrations.ae2.localization.AEUniversalTooltips; +import committee.nova.mods.avaritia_integration.integrations.ae2.me.IAEUniversalCell; + +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.tooltip.TooltipComponent; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; import appeng.api.config.FuzzyMode; import appeng.api.ids.AEComponents; @@ -16,19 +31,6 @@ import appeng.util.ConfigInventory; import appeng.util.InteractionUtil; import appeng.util.Platform; -import committee.nova.mods.avaritia_integration.module.ae2.localization.AEUniversalTooltips; -import committee.nova.mods.avaritia_integration.module.ae2.me.IAEUniversalCell; -import net.minecraft.network.chat.Component; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.tooltip.TooltipComponent; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -42,6 +44,7 @@ * @author Frostbite */ public class AEUniversalCellItem extends Item implements IAEUniversalCell, ICellWorkbenchItem { + private final double idleDrain; private final int totalBytes; private final int totalTypes; @@ -53,7 +56,6 @@ public AEUniversalCellItem(Properties pProperties, double idleDrain, int totalTy this.totalTypes = totalTypes; } - public static int getColor(ItemStack stack, int tintIndex) { if (tintIndex != 1) return 0xFFFFFF; // 白 CellState state = IAEUniversalCell.getCellState(stack); @@ -61,7 +63,8 @@ public static int getColor(ItemStack stack, int tintIndex) { } @Override - public void appendHoverText(ItemStack stack, TooltipContext context, List lines, TooltipFlag tooltipFlag) { + public void appendHoverText(ItemStack stack, TooltipContext context, List lines, + TooltipFlag tooltipFlag) { if (Platform.isClient()) { long used = IAEUniversalCell.getUsedBytes(stack); lines.add(AEUniversalTooltips.bytesUsed(used, getTotalBytes())); @@ -141,7 +144,8 @@ public void setFuzzyMode(ItemStack is, FuzzyMode fzMode) { } @Override - public @NotNull InteractionResultHolder use(@NotNull Level level, @NotNull Player player, @NotNull InteractionHand hand) { + public @NotNull InteractionResultHolder use(@NotNull Level level, @NotNull Player player, + @NotNull InteractionHand hand) { this.disassembleDrive(player.getItemInHand(hand), level, player); return new InteractionResultHolder<>(InteractionResult.sidedSuccess(level.isClientSide()), player.getItemInHand(hand)); @@ -181,8 +185,7 @@ private boolean disassembleDrive(ItemStack stack, Level level, Player player) { @Override public @NotNull InteractionResult onItemUseFirst(@NotNull ItemStack stack, UseOnContext context) { - return this.disassembleDrive(stack, context.getLevel(), context.getPlayer()) - ? InteractionResult.sidedSuccess(context.getLevel().isClientSide()) - : InteractionResult.PASS; + return this.disassembleDrive(stack, context.getLevel(), context.getPlayer()) ? + InteractionResult.sidedSuccess(context.getLevel().isClientSide()) : InteractionResult.PASS; } } diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/InfiniteCellItem.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/InfiniteCellItem.java new file mode 100644 index 00000000..ee27ffc5 --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/item/InfiniteCellItem.java @@ -0,0 +1,8 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2.item; + +public class InfiniteCellItem extends AEUniversalCellItem { + + public InfiniteCellItem(Properties pProperties, double idleDrain) { + super(pProperties, idleDrain, -1, -1); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/localization/AEUniversalTooltips.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/localization/AEUniversalTooltips.java similarity index 77% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/localization/AEUniversalTooltips.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/localization/AEUniversalTooltips.java index da9800bf..151ffad1 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/localization/AEUniversalTooltips.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/localization/AEUniversalTooltips.java @@ -1,17 +1,23 @@ -package committee.nova.mods.avaritia_integration.module.ae2.localization; +package committee.nova.mods.avaritia_integration.integrations.ae2.localization; -import appeng.core.localization.GuiText; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; +import appeng.core.localization.GuiText; + import java.math.BigInteger; -import static appeng.core.localization.Tooltips.*; +import static appeng.core.localization.Tooltips.GREEN; +import static appeng.core.localization.Tooltips.colorFromRatio; +import static appeng.core.localization.Tooltips.of; +import static appeng.core.localization.Tooltips.ofUnformattedNumber; +import static appeng.core.localization.Tooltips.ofUnformattedNumberWithRatioColor; /** * 在原有的bytesUsed和typesUsed添加了无限字节的字符支持 */ public class AEUniversalTooltips { + public static Component bytesUsed(long bytes, long max) { if (max <= 0) { // 无限:当前用量按比例着色时取 0(更偏绿),上限显示为绿色“∞” @@ -22,9 +28,7 @@ public static Component bytesUsed(long bytes, long max) { of(" "), of(GuiText.Of), of(" "), - inf - ) - ); + inf)); } return of(GuiText.BytesUsed, @@ -33,13 +37,12 @@ public static Component bytesUsed(long bytes, long max) { of(" "), of(GuiText.Of), of(" "), - ofUnformattedNumber(max) - ) - ); + ofUnformattedNumber(max))); } public static Component bytesUsed(BigInteger bytes, long max) { - MutableComponent bytesString = Component.literal(bytes.toString()).withStyle(GREEN).withStyle(colorFromRatio(0.0, false)); + MutableComponent bytesString = Component.literal(bytes.toString()).withStyle(GREEN) + .withStyle(colorFromRatio(0.0, false)); if (max <= 0) { MutableComponent inf = Component.literal("∞").withStyle(GREEN); @@ -49,9 +52,7 @@ public static Component bytesUsed(BigInteger bytes, long max) { of(" "), of(GuiText.Of), of(" "), - inf - ) - ); + inf)); } return of(GuiText.BytesUsed, @@ -60,9 +61,7 @@ public static Component bytesUsed(BigInteger bytes, long max) { of(" "), of(GuiText.Of), of(" "), - ofUnformattedNumber(max) - ) - ); + ofUnformattedNumber(max))); } public static Component typesUsed(long types, long max) { @@ -76,8 +75,7 @@ public static Component typesUsed(long types, long max) { of(" "), inf, of(" "), - of(GuiText.Types) - ); + of(GuiText.Types)); } return of( @@ -87,7 +85,6 @@ public static Component typesUsed(long types, long max) { of(" "), ofUnformattedNumber(max), of(" "), - of(GuiText.Types) - ); + of(GuiText.Types)); } } diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellData.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellData.java similarity index 91% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellData.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellData.java index d722c6a2..3a503f74 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellData.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellData.java @@ -1,10 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me; +package committee.nova.mods.avaritia_integration.integrations.ae2.me; + +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationDataComponents; -import appeng.api.stacks.AEKey; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationDataComponents; -import it.unimi.dsi.fastutil.objects.Object2LongMap; -import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; @@ -14,6 +11,11 @@ import net.minecraft.world.level.saveddata.SavedData; import net.minecraft.world.level.storage.LevelResource; import net.neoforged.neoforge.server.ServerLifecycleHooks; + +import appeng.api.stacks.AEKey; +import it.unimi.dsi.fastutil.objects.Object2LongMap; +import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -23,9 +25,11 @@ import java.util.UUID; /** - * uuid -> {@link net.minecraft.world.level.saveddata.SavedData} 数据的管理类 - *

每个元件单独对应一个文件: data/ae_universal_cell_data/.dat - *

单文件损坏只影响单元件,降低风险。 + * uuid -> {@link SavedData} 数据的管理类 + *

+ * 每个元件单独对应一个文件: data/ae_universal_cell_data/.dat + *

+ * 单文件损坏只影响单元件,降低风险。 * * @author Frostbite */ @@ -84,15 +88,13 @@ private AEUniversalCellData(@NotNull Object2LongOpenHashMap storage, this.pendingReadErrors = pendingReadErrors; } - public static final SavedData.Factory FACTORY = - new SavedData.Factory<>( - () -> { - Object2LongOpenHashMap s = new Object2LongOpenHashMap<>(); - s.defaultReturnValue(0L); - return new AEUniversalCellData(s, new ObjectArrayList<>()); - }, - AEUniversalCellData::load - ); + public static final Factory FACTORY = new Factory<>( + () -> { + Object2LongOpenHashMap s = new Object2LongOpenHashMap<>(); + s.defaultReturnValue(0L); + return new AEUniversalCellData(s, new ObjectArrayList<>()); + }, + AEUniversalCellData::load); /** * 获取原始存储数据(fastutil 原生 Map,便于无装箱访问) @@ -182,8 +184,8 @@ private AEUniversalCellData(@NotNull Object2LongOpenHashMap storage, entriesList.add(entry); } catch (Throwable ex) { // 序列化失败:无法可靠得到要保存的信息 -> 打印并略过 - System.err.println("[AEUniversalCellData] Failed to serialize entry: key=" + key - + ", amount=" + amount + " ; cause=" + ex); + System.err.println("[AEUniversalCellData] Failed to serialize entry: key=" + key + ", amount=" + + amount + " ; cause=" + ex); } } invTag.put(ENTRIES_TAG, entriesList); @@ -282,4 +284,4 @@ private static void ensureSaveDirExists(@NotNull MinecraftServer server) { System.err.println("[AEUniversalCellData] Failed to create save directory: " + dir + " : " + e); } } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellHandler.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellHandler.java similarity index 92% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellHandler.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellHandler.java index 80943279..5935fa37 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellHandler.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellHandler.java @@ -1,10 +1,11 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me; +package committee.nova.mods.avaritia_integration.integrations.ae2.me; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.server.ServerLifecycleHooks; import appeng.api.storage.cells.ICellHandler; import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.cells.StorageCell; -import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.server.ServerLifecycleHooks; import org.jetbrains.annotations.Nullable; /** @@ -13,10 +14,10 @@ * @author Frostbite */ public class AEUniversalCellHandler implements ICellHandler { + public static final AEUniversalCellHandler INSTANCE = new AEUniversalCellHandler(); - private AEUniversalCellHandler() { - } + private AEUniversalCellHandler() {} @Override public boolean isCell(ItemStack itemStack) { diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellInventory.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellInventory.java similarity index 97% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellInventory.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellInventory.java index 0098406a..b6cd88e5 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/AEUniversalCellInventory.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/AEUniversalCellInventory.java @@ -1,10 +1,17 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me; +package committee.nova.mods.avaritia_integration.integrations.ae2.me; + +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; import appeng.api.config.IncludeExclude; import appeng.api.networking.security.IActionSource; -import appeng.api.stacks.*; +import appeng.api.stacks.AEItemKey; +import appeng.api.stacks.AEKey; +import appeng.api.stacks.AEKeyType; +import appeng.api.stacks.GenericStack; +import appeng.api.stacks.KeyCounter; import appeng.api.storage.StorageCells; import appeng.api.storage.cells.CellState; import appeng.api.storage.cells.ICellWorkbenchItem; @@ -18,8 +25,6 @@ import it.unimi.dsi.fastutil.longs.Long2LongOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2LongMap; import it.unimi.dsi.fastutil.objects.ReferenceArraySet; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -254,11 +259,11 @@ public long insert(AEKey what, long amount, Actionable mode, IActionSource sourc // 新开类型:需满足“有类型名额” if (openingNewType) { if (storage.size() >= totalTypesEff) { - return handleOverflowVoidOnInsert(what, amount, /*inserted*/ 0); + return handleOverflowVoidOnInsert(what, amount, /* inserted */ 0); } // 若 freeBytes==0 但 apb 桶存在碎片,allowedUnits 仍可能>0(允许借碎片完成首字节) if (allowedUnits <= 0) { - return handleOverflowVoidOnInsert(what, amount, /*inserted*/ 0); + return handleOverflowVoidOnInsert(what, amount, /* inserted */ 0); } } @@ -268,14 +273,14 @@ public long insert(AEKey what, long amount, Actionable mode, IActionSource sourc long canGrowBy = Math.max(0, maxPerTypeCap - current); allowedUnits = Math.min(allowedUnits, canGrowBy); if (allowedUnits <= 0) { - return handleOverflowVoidOnInsert(what, amount, /*inserted*/ 0); + return handleOverflowVoidOnInsert(what, amount, /* inserted */ 0); } } // 这次实际能塞多少 final long toInsert = Math.min(amount, allowedUnits); if (toInsert <= 0) { - return handleOverflowVoidOnInsert(what, amount, /*inserted*/ 0); + return handleOverflowVoidOnInsert(what, amount, /* inserted */ 0); } if (mode == Actionable.MODULATE) { @@ -299,7 +304,7 @@ public long insert(AEKey what, long amount, Actionable mode, IActionSource sourc // 客户端状态 + 标脏 markChanged(); } - return handleOverflowVoidOnInsert(what, amount, /*inserted*/ toInsert); + return handleOverflowVoidOnInsert(what, amount, /* inserted */ toInsert); } /** @@ -364,7 +369,6 @@ public void getAvailableStacks(KeyCounter out) { } } - @Override public Component getDescription() { return this.itemStack.getHoverName(); @@ -413,8 +417,7 @@ private long remainingUnitsIntoExistingFor(long amountPerByte, long freeBytes) { /** * 递归盘保护:若 what 是“另一个存储盘”且该盘声明不能嵌入,则拒收。 */ - private boolean canNestStorageCells(AEKey what - ) { + private boolean canNestStorageCells(AEKey what) { if (what instanceof AEItemKey itemKey) { ItemStack s = itemKey.toStack(); StorageCell nested = StorageCells.getCellInventory(s, null); @@ -627,4 +630,4 @@ private static long safeMul(long a, long b) { if (a > Long.MAX_VALUE / b) return Long.MAX_VALUE; return a * b; } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/IAEUniversalCell.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/IAEUniversalCell.java similarity index 95% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/IAEUniversalCell.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/IAEUniversalCell.java index 38bc2865..96081221 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/IAEUniversalCell.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/IAEUniversalCell.java @@ -1,10 +1,12 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me; +package committee.nova.mods.avaritia_integration.integrations.ae2.me; + +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationDataComponents; + +import net.minecraft.world.item.ItemStack; import appeng.api.stacks.GenericStack; import appeng.api.storage.cells.CellState; import appeng.api.upgrades.IUpgradeableItem; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationDataComponents; -import net.minecraft.world.item.ItemStack; import java.util.ArrayList; import java.util.Collections; @@ -100,4 +102,4 @@ static void setTooltipShowStacks(ItemStack stack, List showStacks) stack.set(AE2IntegrationDataComponents.CELL_SHOW_TOOLTIP_STACKS.get(), cleaned); } } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellData.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellData.java similarity index 93% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellData.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellData.java index f2244026..de80e457 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellData.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellData.java @@ -1,10 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me.biginteger; +package committee.nova.mods.avaritia_integration.integrations.ae2.me.biginteger; + +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationDataComponents; -import appeng.api.stacks.AEKey; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationDataComponents; -import it.unimi.dsi.fastutil.objects.Object2ObjectMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; @@ -14,6 +11,11 @@ import net.minecraft.world.level.saveddata.SavedData; import net.minecraft.world.level.storage.LevelResource; import net.neoforged.neoforge.server.ServerLifecycleHooks; + +import appeng.api.stacks.AEKey; +import it.unimi.dsi.fastutil.objects.Object2ObjectMap; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -30,6 +32,7 @@ * @author Frostbite */ public class AEBigIntegerCellData extends SavedData { + /** * 主容器子标签 */ @@ -83,15 +86,13 @@ private AEBigIntegerCellData(@NotNull Object2ObjectMap storag this.pendingReadErrors = pendingReadErrors; } - public static final SavedData.Factory FACTORY = - new SavedData.Factory<>( - () -> { - Object2ObjectOpenHashMap s = new Object2ObjectOpenHashMap<>(); - s.defaultReturnValue(BigInteger.ZERO); - return new AEBigIntegerCellData(s, new ObjectArrayList<>()); - }, - AEBigIntegerCellData::load - ); + public static final Factory FACTORY = new Factory<>( + () -> { + Object2ObjectOpenHashMap s = new Object2ObjectOpenHashMap<>(); + s.defaultReturnValue(BigInteger.ZERO); + return new AEBigIntegerCellData(s, new ObjectArrayList<>()); + }, + AEBigIntegerCellData::load); /** * 获取原始存储数据 @@ -181,8 +182,8 @@ private AEBigIntegerCellData(@NotNull Object2ObjectMap storag entriesList.add(entry); } catch (Throwable ex) { // 序列化失败:无法可靠得到要保存的信息 -> 打印并略过 - System.err.println("[AEUniversalCellData] Failed to serialize entry: key=" + key - + ", amount=" + amount + " ; cause=" + ex); + System.err.println("[AEUniversalCellData] Failed to serialize entry: key=" + key + ", amount=" + + amount + " ; cause=" + ex); } } invTag.put(ENTRIES_TAG, entriesList); @@ -296,5 +297,4 @@ private static void addTo(Object2ObjectMap map, AEKey key, Bi map.put(key, now); } } - } diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellHandler.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellHandler.java similarity index 91% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellHandler.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellHandler.java index 9842abca..06accb9f 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellHandler.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellHandler.java @@ -1,17 +1,18 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me.biginteger; +package committee.nova.mods.avaritia_integration.integrations.ae2.me.biginteger; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.server.ServerLifecycleHooks; import appeng.api.storage.cells.ICellHandler; import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.cells.StorageCell; -import net.minecraft.world.item.ItemStack; -import net.neoforged.neoforge.server.ServerLifecycleHooks; import org.jetbrains.annotations.Nullable; public class AEBigIntegerCellHandler implements ICellHandler { + public static final AEBigIntegerCellHandler INSTANCE = new AEBigIntegerCellHandler(); - private AEBigIntegerCellHandler() { - } + private AEBigIntegerCellHandler() {} @Override public boolean isCell(ItemStack itemStack) { diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellInventory.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellInventory.java similarity index 98% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellInventory.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellInventory.java index 235970be..5322153d 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/AEBigIntegerCellInventory.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/AEBigIntegerCellInventory.java @@ -1,10 +1,17 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me.biginteger; +package committee.nova.mods.avaritia_integration.integrations.ae2.me.biginteger; + +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; import appeng.api.config.IncludeExclude; import appeng.api.networking.security.IActionSource; -import appeng.api.stacks.*; +import appeng.api.stacks.AEItemKey; +import appeng.api.stacks.AEKey; +import appeng.api.stacks.AEKeyType; +import appeng.api.stacks.GenericStack; +import appeng.api.stacks.KeyCounter; import appeng.api.storage.StorageCells; import appeng.api.storage.cells.CellState; import appeng.api.storage.cells.ICellWorkbenchItem; @@ -18,8 +25,6 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ObjectMap; import it.unimi.dsi.fastutil.objects.ReferenceArraySet; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -453,4 +458,4 @@ private static BigInteger minBI(BigInteger a, BigInteger b) { private static BigInteger maxBI(BigInteger a, BigInteger b) { return a.compareTo(b) >= 0 ? a : b; } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/IAEBigIntegerCell.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/IAEBigIntegerCell.java similarity index 94% rename from src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/IAEBigIntegerCell.java rename to integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/IAEBigIntegerCell.java index 8ee08ae9..f5c6777d 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/me/biginteger/IAEBigIntegerCell.java +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/me/biginteger/IAEBigIntegerCell.java @@ -1,10 +1,12 @@ -package committee.nova.mods.avaritia_integration.module.ae2.me.biginteger; +package committee.nova.mods.avaritia_integration.integrations.ae2.me.biginteger; + +import committee.nova.mods.avaritia_integration.integrations.ae2.registry.AE2IntegrationDataComponents; + +import net.minecraft.world.item.ItemStack; import appeng.api.stacks.GenericStack; import appeng.api.storage.cells.CellState; import appeng.api.upgrades.IUpgradeableItem; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationDataComponents; -import net.minecraft.world.item.ItemStack; import java.math.BigInteger; import java.util.ArrayList; diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/registry/AE2IntegrationDataComponents.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/registry/AE2IntegrationDataComponents.java new file mode 100644 index 00000000..d7f38a6b --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/registry/AE2IntegrationDataComponents.java @@ -0,0 +1,99 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.core.UUIDUtil; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import appeng.api.stacks.GenericStack; +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.function.UnaryOperator; + +public class AE2IntegrationDataComponents { + + public static final DeferredRegister> DATA_COMPONENTS = DeferredRegister + .create(Registries.DATA_COMPONENT_TYPE, AvaritiaIntegration.MOD_ID); + + private static DeferredHolder, DataComponentType> register( + String name, + UnaryOperator> builder) { + return DATA_COMPONENTS.register(name, () -> builder.apply(DataComponentType.builder()).build()); + } + + // 已用字节 + public static final DeferredHolder, DataComponentType> CELL_BYTES_USAGE = register( + "cell_bytes_usage", b -> b + .persistent(Codec.LONG) + .networkSynchronized(ByteBufCodecs.VAR_LONG) + .cacheEncoding()); + + // 已用字节-BigInteger版 + public static final DeferredHolder, DataComponentType> CELL_BYTE_USAGE_BIG = register( + "cell_byte_usage_big", b -> b + .persistent(Codec.STRING.comapFlatMap( + s -> { + try { + return DataResult.success(new BigInteger(s)); + } catch (NumberFormatException e) { + return DataResult.error(() -> "Invalid BigInteger: " + s); + } + }, + BigInteger::toString)) + .networkSynchronized(StreamCodec.of( + (RegistryFriendlyByteBuf buf, BigInteger v) -> { + byte[] arr = v.toByteArray(); + buf.writeByteArray(arr); + }, + (RegistryFriendlyByteBuf buf) -> { + byte[] arr = buf.readByteArray(); + return new BigInteger(arr); + }))); + + // 已用类型 + public static final DeferredHolder, DataComponentType> CELL_TYPES_USAGE = register( + "cell_types_usage", b -> b + .persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.VAR_INT) // 亦可省略 + .cacheEncoding()); + + // 单元状态(字符串存枚举名) + public static final DeferredHolder, DataComponentType> CELL_STATE = register( + "cell_state", b -> b + .persistent(Codec.STRING) + .networkSynchronized(ByteBufCodecs.STRING_UTF8) + .cacheEncoding()); + + // Tooltip 展示栈:持久化用 AE 的容错 List,网络用内置 list 编解码 + AE 的 STREAM_CODEC + public static final DeferredHolder, DataComponentType>> CELL_SHOW_TOOLTIP_STACKS = register( + "cell_show_tooltip_stacks", b -> b + .persistent(GenericStack.FAULT_TOLERANT_LIST_CODEC) + .networkSynchronized( + ByteBufCodecs.collection( + ArrayList::new, + GenericStack.STREAM_CODEC)) + .cacheEncoding()); + + // 组件唯一仓库 UUID + public static final DeferredHolder, DataComponentType> CELL_UUID = register("cell_uuid", + b -> b + .persistent(UUIDUtil.CODEC) + .networkSynchronized(UUIDUtil.STREAM_CODEC) + .cacheEncoding()); + + public static void register(IEventBus eventBus) { + DATA_COMPONENTS.register(eventBus); + } +} diff --git a/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/registry/AE2IntegrationItems.java b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/registry/AE2IntegrationItems.java new file mode 100644 index 00000000..430decaf --- /dev/null +++ b/integrations/ae2/src/main/java/committee/nova/mods/avaritia_integration/integrations/ae2/registry/AE2IntegrationItems.java @@ -0,0 +1,43 @@ +package committee.nova.mods.avaritia_integration.integrations.ae2.registry; + +import committee.nova.mods.avaritia.api.common.item.BaseItem; +import committee.nova.mods.avaritia.init.registry.ModRarities; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.ae2.AIAE2IntegrationMod; +import committee.nova.mods.avaritia_integration.integrations.ae2.item.AEBigIntegerCellItem; +import committee.nova.mods.avaritia_integration.integrations.ae2.item.InfiniteCellItem; + +import net.minecraft.world.item.Item; +import net.neoforged.fml.ModList; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Supplier; + +public final class AE2IntegrationItems { + + public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); + + public static final DeferredItem INFINITY_ME_STORAGE_COMPONENT = register("infinity_me_storage_component", + () -> new BaseItem(p -> p.rarity(ModRarities.EPIC))); + + public static final DeferredItem INFINITY_ME_STORAGE_CELL = register("infinity_me_storage_cell", + () -> { + if (ModList.get().isLoaded(AIAE2IntegrationMod.DEPENDENCY_MOD_ID)) + return new InfiniteCellItem(new Item.Properties().stacksTo(1).rarity(ModRarities.EPIC), 8); + else + return new BaseItem(p -> p.rarity(ModRarities.EPIC)); + }); + + public static final DeferredItem INFINITY_ME_STORAGE_CELL_BIG = register("infinity_me_storage_cell_big", + () -> { + if (ModList.get().isLoaded(AIAE2IntegrationMod.DEPENDENCY_MOD_ID)) + return new AEBigIntegerCellItem(new Item.Properties().stacksTo(1).rarity(ModRarities.EPIC), 64); + else + return new BaseItem(p -> p.rarity(ModRarities.EPIC)); + }); + + public static DeferredItem register(String id, Supplier obj) { + return REGISTRY.register(id, obj); + } +} diff --git a/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell.json b/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell.json new file mode 100644 index 00000000..175a44a8 --- /dev/null +++ b/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/infinity_me_storage_cell", + "layer1": "avaritia_integration:item/items/storage_cell_led" + } +} diff --git a/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell_big.json b/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell_big.json new file mode 100644 index 00000000..a34b0552 --- /dev/null +++ b/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell_big.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/infinity_me_storage_cell_big", + "layer1": "ae2:item/storage_cell_led" + } +} diff --git a/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_component.json b/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_component.json new file mode 100644 index 00000000..5a1c0445 --- /dev/null +++ b/integrations/ae2/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_component.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/infinity_me_storage_component" + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell.png b/integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell.png rename to integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_1_21.png b/integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_1_21.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_1_21.png rename to integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_1_21.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_big.png b/integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_big.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_big.png rename to integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_cell_big.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component.png b/integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component.png rename to integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component_1_21.png b/integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component_1_21.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component_1_21.png rename to integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_me_storage_component_1_21.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/storage_cell_led.png b/integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/storage_cell_led.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/storage_cell_led.png rename to integrations/ae2/src/main/resources/assets/avaritia_integration/textures/item/items/storage_cell_led.png diff --git a/integrations/ae2/src/main/resources/integration_packs/server_data/data/avaritia_integration/recipe/ae/disassembly/infinity_me_storage_cell.json b/integrations/ae2/src/main/resources/integration_packs/server_data/data/avaritia_integration/recipe/ae/disassembly/infinity_me_storage_cell.json new file mode 100644 index 00000000..7dc1d21b --- /dev/null +++ b/integrations/ae2/src/main/resources/integration_packs/server_data/data/avaritia_integration/recipe/ae/disassembly/infinity_me_storage_cell.json @@ -0,0 +1,14 @@ +{ + "type": "ae2:storage_cell_disassembly", + "cell": "avaritia_integration:infinity_me_storage_cell", + "cell_disassembly_items": [ + { + "count": 1, + "id": "ae2:item_cell_housing" + }, + { + "count": 1, + "id": "avaritia_integration:infinity_me_storage_component" + } + ] +} diff --git a/integrations/ae2/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/ae2/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..290dbc46 --- /dev/null +++ b/integrations/ae2/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration AE2 Data" + } +} diff --git a/integrations/ae2/src/main/templates/META-INF/neoforge.mods.toml b/integrations/ae2/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/ae2/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/botania/build.gradle b/integrations/botania/build.gradle new file mode 100644 index 00000000..a8c5b39e --- /dev/null +++ b/integrations/botania/build.gradle @@ -0,0 +1,11 @@ +ext.ai_mod_id = 'avaritia_integration_botania' +ext.ai_mod_name = 'Avaritia Integration Botania' +ext.ai_mod_description = 'Avaritia Integration module for Botania.' +ext.ai_run_directory = 'integrations/botania' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.botania +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/AIBotaniaIntegrationMod.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/AIBotaniaIntegrationMod.java new file mode 100644 index 00000000..78b6a6a6 --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/AIBotaniaIntegrationMod.java @@ -0,0 +1,27 @@ +package committee.nova.mods.avaritia_integration.integrations.botania; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIBotaniaIntegrationMod.MOD_ID) +public final class AIBotaniaIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_botania"; + private static final String DEPENDENCY_MOD_ID = "botania"; + + public AIBotaniaIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration Botania Data"); + if (IntegrationRuntime.shouldLoad(MOD_ID, this)) IntegrationRuntime.load(MOD_ID, bus, new BotaniaModule()); + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/BotaniaModule.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/BotaniaModule.java new file mode 100644 index 00000000..972b0fc9 --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/BotaniaModule.java @@ -0,0 +1,138 @@ +package committee.nova.mods.avaritia_integration.integrations.botania; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.block.behavor.AlphaSparkBehavior; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.AlphaSparkEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.InfinityManaPoolBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationEntities; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationItems; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.render.AlphaSparkRender; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.render.InfinityManaPoolBlockEntityRender; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.render.InfinityTinyPotatoBlockEntityRender; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.client.renderer.ItemBlockRenderTypes; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; +import net.minecraft.client.renderer.entity.EntityRenderers; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.DispenserBlock; +import net.minecraft.world.level.block.FlowerPotBlock; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; +import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; + +import vazkii.botania.api.BotaniaForgeCapabilities; +import vazkii.botania.api.BotaniaForgeClientCapabilities; +import vazkii.botania.api.block_entity.BindableSpecialFlowerBlockEntity; +import vazkii.botania.client.render.block_entity.SpecialFlowerBlockEntityRenderer; + +public final class BotaniaModule implements Module { + + public static final String MOD_ID = "botania"; + + @Override + public void init(IEventBus registryBus) { + BotaniaIntegrationBlocks.REGISTRY.register(registryBus); + BotaniaIntegrationBlockEntities.REGISTRY.register(registryBus); + BotaniaIntegrationEntities.REGISTRY.register(registryBus); + BotaniaIntegrationItems.REGISTRY.register(registryBus); + } + + @Override + public void process() { + ((FlowerPotBlock) Blocks.FLOWER_POT).addPlant(BotaniaIntegrationBlocks.ASGARD_DANDELION.getId(), + BotaniaIntegrationBlocks.POTTED_ASGARD_DANDELION); + ((FlowerPotBlock) Blocks.FLOWER_POT).addPlant(BotaniaIntegrationBlocks.SOARLEANDER.getId(), + BotaniaIntegrationBlocks.POTTED_SOARLEANDER); + } + + @Override + public void registerEvent(IEventBus modBus, IEventBus gameBus) { + modBus.addListener(BotaniaModule::addDispenserBehaviours); + modBus.addListener(BotaniaModule::registerCapabilities); + } + + public static void addDispenserBehaviours(FMLCommonSetupEvent event) { + event.enqueueWork(() -> { + DispenserBlock.registerBehavior(BotaniaIntegrationItems.ALPHA_SPARK.get(), new AlphaSparkBehavior()); + }); + } + + public static void registerCapabilities(RegisterCapabilitiesEvent e) { + e.registerBlockEntity( + BotaniaForgeCapabilities.MANA_RECEIVER, + BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), + (be, direction) -> be); + e.registerBlockEntity( + BotaniaForgeCapabilities.WANDABLE, + BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), + (be, direction) -> be); + e.registerBlockEntity( + BotaniaForgeCapabilities.SPARK_ATTACHABLE, + BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), + (be, direction) -> be); + } + + @Override + public void processClient() { + EntityRenderers.register(BotaniaIntegrationEntities.ALPHA_SPARK_ENTITIES.get(), AlphaSparkRender::new); + BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.ASGARD_DANDELION.get(), + SpecialFlowerBlockEntityRenderer::new); + BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.SOARLEANDER.get(), + SpecialFlowerBlockEntityRenderer::new); + BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.INFINITY_TINY_POTATO.get(), + InfinityTinyPotatoBlockEntityRender::new); + BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), + InfinityManaPoolBlockEntityRender::new); + ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.ASGARD_DANDELION.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.ASGARD_DANDELION_FLOATING.get(), + RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.SOARLEANDER.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.SOARLEANDER_FLOATING.get(), RenderType.cutout()); + } + + @Override + public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { + modBus.addListener(BotaniaModule::registerBlockEntityClientCapability); + modBus.addListener(BotaniaModule::registerEntityClientCapabilities); + } + + public static void registerBlockEntityClientCapability(RegisterCapabilitiesEvent e) { + e.registerBlockEntity( + BotaniaForgeClientCapabilities.BLOCK_WAND_HUD, + BotaniaIntegrationBlockEntities.ASGARD_DANDELION.get(), + (be, unused) -> new BindableSpecialFlowerBlockEntity.BindableFlowerWandHud<>(be)); + e.registerBlockEntity( + BotaniaForgeClientCapabilities.BLOCK_WAND_HUD, + BotaniaIntegrationBlockEntities.SOARLEANDER.get(), + (be, unused) -> new BindableSpecialFlowerBlockEntity.BindableFlowerWandHud<>(be)); + e.registerBlockEntity( + BotaniaForgeClientCapabilities.BLOCK_WAND_HUD, + BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), + (be, unused) -> new InfinityManaPoolBlockEntity.WandHud(be)); + } + + private static void registerEntityClientCapabilities(RegisterCapabilitiesEvent e) { + e.registerEntity( + BotaniaForgeClientCapabilities.ENTITY_WAND_HUD, + BotaniaIntegrationEntities.ALPHA_SPARK_ENTITIES.get(), + (entity, unused) -> new AlphaSparkEntity.WandHud(entity)); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + output.accept(BotaniaIntegrationBlocks.ASGARD_DANDELION.get()); + output.accept(BotaniaIntegrationBlocks.ASGARD_DANDELION_FLOATING.get()); + + output.accept(BotaniaIntegrationBlocks.SOARLEANDER.get()); + output.accept(BotaniaIntegrationBlocks.SOARLEANDER_FLOATING.get()); + + output.accept(BotaniaIntegrationBlocks.INFINITY_MANA_POOL.get()); + output.accept(BotaniaIntegrationBlocks.INFINITY_POTATO.get()); + output.accept(BotaniaIntegrationItems.ALPHA_SPARK.get()); + } +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/AsgardDandelionBlock.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/AsgardDandelionBlock.java new file mode 100644 index 00000000..fc40be88 --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/AsgardDandelionBlock.java @@ -0,0 +1,41 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.block; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.AsgardDandelionBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import vazkii.botania.api.block_entity.SpecialFlowerBlockEntity; +import vazkii.botania.common.block.BotaniaBlock; +import vazkii.botania.common.block.flower.SpecialFlowerBlock; + +import java.util.function.Supplier; + +public class AsgardDandelionBlock extends SpecialFlowerBlock { + + public AsgardDandelionBlock(Holder stewEffect, int stewDuration, Properties props, + Supplier> blockEntityType) { + super(stewEffect, stewDuration, props, blockEntityType); + } + + @Override + public @Nullable BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return new AsgardDandelionBlockEntity(pos, state); + } + + @Override + public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, + BlockEntityType type) { + return BotaniaBlock.createTickerHelper(type, BotaniaIntegrationBlockEntities.ASGARD_DANDELION.get(), + AsgardDandelionBlockEntity::commonTick); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/InfinityManaPoolBlock.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/InfinityManaPoolBlock.java similarity index 81% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/InfinityManaPoolBlock.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/InfinityManaPoolBlock.java index 64daa8a8..8832cdac 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/InfinityManaPoolBlock.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/InfinityManaPoolBlock.java @@ -1,7 +1,8 @@ -package committee.nova.mods.avaritia_integration.module.botania.block; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.block; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.InfinityManaPoolBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; -import committee.nova.mods.avaritia_integration.module.botania.entity.InfinityManaPoolBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; import net.minecraft.ChatFormatting; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -28,7 +29,12 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.shapes.*; +import net.minecraft.world.phys.shapes.BooleanOp; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.EntityCollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + import org.jetbrains.annotations.Nullable; import vazkii.botania.api.internal.Colored; import vazkii.botania.api.internal.OptionallyColored; @@ -45,16 +51,18 @@ * 改自{@link vazkii.botania.common.block.mana.ManaPoolBlock} */ public class InfinityManaPoolBlock extends BotaniaWaterloggedBlock implements EntityBlock, OptionallyColored { + public static final int MAX_MANA = Integer.MAX_VALUE; private static final VoxelShape NORMAL_SHAPE_INTERACT = box(0, 0, 0, 16, 8, 16); private static final VoxelShape NORMAL_SHAPE_CUTOUT = box(2, 2, 2, 14, 16, 14); - private static final VoxelShape NORMAL_SHAPE = Shapes.join(NORMAL_SHAPE_INTERACT, NORMAL_SHAPE_CUTOUT, BooleanOp.ONLY_FIRST); + private static final VoxelShape NORMAL_SHAPE = Shapes.join(NORMAL_SHAPE_INTERACT, NORMAL_SHAPE_CUTOUT, + BooleanOp.ONLY_FIRST); - public record ShapeVariant(VoxelShape interactionShape, VoxelShape cutoutShape, VoxelShape collisionShape) { - } + public record ShapeVariant(VoxelShape interactionShape, VoxelShape cutoutShape, VoxelShape collisionShape) {} - public static final ShapeVariant NORMAL_SHAPE_VARIANT = new ShapeVariant(NORMAL_SHAPE_INTERACT, NORMAL_SHAPE_CUTOUT, NORMAL_SHAPE); + public static final ShapeVariant NORMAL_SHAPE_VARIANT = new ShapeVariant(NORMAL_SHAPE_INTERACT, NORMAL_SHAPE_CUTOUT, + NORMAL_SHAPE); public final boolean creative = false; public final boolean fabulous = false; @@ -109,7 +117,8 @@ public MutableComponent getName() { } @Override - public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipFlag flag) { + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltip, + TooltipFlag flag) { super.appendHoverText(stack, context, tooltip, flag); if (creative) { for (int i = 0; i < 2; i++) { @@ -130,9 +139,8 @@ public VoxelShape getInnerShape(BlockState state) { @Override public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { // Sometimes the pool's collision box is too thin for bursts shot straight up. - return context instanceof EntityCollisionContext ecc && ecc.getEntity() instanceof ManaBurstEntity - ? getInteractionShape(state, world, pos) - : super.getCollisionShape(state, world, pos, context); + return context instanceof EntityCollisionContext ecc && ecc.getEntity() instanceof ManaBurstEntity ? + getInteractionShape(state, world, pos) : super.getCollisionShape(state, world, pos, context); } @Override @@ -167,9 +175,9 @@ protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Lev @Override protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) { - if (state.getBlock() instanceof InfinityManaPoolBlock oldBlock - && newState.getBlock() instanceof InfinityManaPoolBlock newBlock - && InfinityManaPoolBlock.getUndyedBlock(oldBlock) == InfinityManaPoolBlock.getUndyedBlock(newBlock)) { + if (state.getBlock() instanceof InfinityManaPoolBlock oldBlock && + newState.getBlock() instanceof InfinityManaPoolBlock newBlock && + InfinityManaPoolBlock.getUndyedBlock(oldBlock) == InfinityManaPoolBlock.getUndyedBlock(newBlock)) { // don't delete block entity if it's the same pool type return; } @@ -183,13 +191,16 @@ public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @Nullable @Override - public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - return createTickerHelper(type, BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), level.isClientSide ? InfinityManaPoolBlockEntity::clientTick : InfinityManaPoolBlockEntity::serverTick); + public BlockEntityTicker getTicker(Level level, BlockState state, + BlockEntityType type) { + return createTickerHelper(type, BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), + level.isClientSide ? InfinityManaPoolBlockEntity::clientTick : InfinityManaPoolBlockEntity::serverTick); } @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { - if (entity instanceof ItemEntity item && world.getBlockEntity(pos) instanceof InfinityManaPoolBlockEntity pool) { + if (entity instanceof ItemEntity item && + world.getBlockEntity(pos) instanceof InfinityManaPoolBlockEntity pool) { pool.collideEntityItem(item); } } @@ -210,9 +221,8 @@ public boolean hasAnalogOutputSignal(BlockState state) { @Override public int getAnalogOutputSignal(BlockState state, Level world, BlockPos pos) { - return world.getBlockEntity(pos) instanceof InfinityManaPoolBlockEntity pool - ? InfinityManaPoolBlockEntity.calculateComparatorLevel(pool.getCurrentMana(), pool.getMaxMana()) - : 0; + return world.getBlockEntity(pos) instanceof InfinityManaPoolBlockEntity pool ? + InfinityManaPoolBlockEntity.calculateComparatorLevel(pool.getCurrentMana(), pool.getMaxMana()) : 0; } @Override diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/InfinityTinyPotatoBlock.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/InfinityTinyPotatoBlock.java new file mode 100644 index 00000000..43cbbcd8 --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/InfinityTinyPotatoBlock.java @@ -0,0 +1,163 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.block; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.InfinityTinyPotatoBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.util.RandomSource; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import vazkii.botania.common.block.BotaniaBlocks; +import vazkii.botania.common.block.BotaniaWaterloggedBlock; +import vazkii.botania.common.block.block_entity.SimpleInventoryBlockEntity; +import vazkii.botania.common.block.block_entity.TinyPotatoBlockEntity; + +public class InfinityTinyPotatoBlock extends BotaniaWaterloggedBlock implements EntityBlock { + + private static final VoxelShape SHAPE = box(4.0, 0.0, 4.0, 12.0, 12.0, 12.0); + + public InfinityTinyPotatoBlock() { + super(Properties.ofFullCopy(BotaniaBlocks.tinyPotato)); + this.registerDefaultState( + this.defaultBlockState().setValue(BlockStateProperties.HORIZONTAL_FACING, Direction.SOUTH)); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(BlockStateProperties.HORIZONTAL_FACING); + } + + @Override + public boolean hasAnalogOutputSignal(@NotNull BlockState state) { + return true; + } + + @Override + public int getAnalogOutputSignal(@NotNull BlockState state, Level level, @NotNull BlockPos pos) { + BlockEntity var5 = level.getBlockEntity(pos); + if (var5 instanceof TinyPotatoBlockEntity tater) { + return AbstractContainerMenu.getRedstoneSignalFromContainer(tater); + } else { + return 0; + } + } + + @Override + public void onRemove(@NotNull BlockState state, @NotNull Level world, @NotNull BlockPos pos, + @NotNull BlockState newState, boolean isMoving) { + if (!state.is(newState.getBlock())) { + BlockEntity be = world.getBlockEntity(pos); + if (be instanceof SimpleInventoryBlockEntity inventory) { + Containers.dropContents(world, pos, inventory.getItemHandler()); + world.updateNeighbourForOutputSignal(pos, this); + } + + super.onRemove(state, world, pos, newState, isMoving); + } + } + + @Override + public @NotNull VoxelShape getShape(@NotNull BlockState state, @NotNull BlockGetter world, @NotNull BlockPos pos, + @NotNull CollisionContext ctx) { + return SHAPE; + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, + BlockHitResult hit) { + if (world.getBlockEntity(pos) instanceof InfinityTinyPotatoBlockEntity potatoTile) { + InteractionHand hand = player.getUsedItemHand(); + ItemStack heldItem = player.getItemInHand(hand); + potatoTile.interact(player, hand, heldItem, hit.getDirection()); + + // 粒子和音效 + double x = pos.getX(); + double y = pos.getY(); + double z = pos.getZ(); + RandomSource rand = world.random; + for (int i = 0; i < 10; i++) + world.addParticle(ParticleTypes.HEART, x + rand.nextDouble(), y + rand.nextDouble(), + z + rand.nextDouble(), 0.0D, 0.1D + rand.nextDouble(), 0.0D); + // if (heldItem.isEmpty() && player.isCrouching()) { + // world.playSound(player, pos, SoundEvents.GENERIC_EXPLODE, SoundSource.BLOCKS, 1.0f, 1.0f); + // for (int i = 0; i < 5; i++) + // world.addParticle(ParticleTypes.EXPLOSION, x + rand.nextDouble(), y + rand.nextDouble(), z + + // rand.nextDouble(), 0.1D, 0.1D + rand.nextDouble(), 0.1D); + // } + } + return InteractionResult.sidedSuccess(world.isClientSide()); + } + + @Override + public @NotNull BlockState getStateForPlacement(BlockPlaceContext ctx) { + return super.getStateForPlacement(ctx).setValue(BlockStateProperties.HORIZONTAL_FACING, + ctx.getHorizontalDirection()); + } + + @Override + public @NotNull BlockState mirror(@NotNull BlockState state, Mirror mirror) { + return state.setValue(BlockStateProperties.HORIZONTAL_FACING, + mirror.mirror(state.getValue(BlockStateProperties.HORIZONTAL_FACING))); + } + + @Override + public @NotNull BlockState rotate(@NotNull BlockState state, Rotation rot) { + return state.setValue(BlockStateProperties.HORIZONTAL_FACING, + rot.rotate(state.getValue(BlockStateProperties.HORIZONTAL_FACING))); + } + + @Override + public void setPlacedBy(Level world, BlockPos pos, BlockState state, + @Nullable LivingEntity living, ItemStack stack) { + if (stack.has(DataComponents.CUSTOM_NAME) && world.getBlockEntity(pos) instanceof TinyPotatoBlockEntity tater) { + tater.name = stack.getHoverName(); + } + } + + @Override + public @NotNull RenderShape getRenderShape(BlockState state) { + return RenderShape.ENTITYBLOCK_ANIMATED; + } + + @Override + public @NotNull BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return new InfinityTinyPotatoBlockEntity(pos, state); + } + + @Override + public @Nullable BlockEntityTicker getTicker(@NotNull Level level, + @NotNull BlockState state, + @NotNull BlockEntityType type) { + return createTickerHelper(type, BotaniaIntegrationBlockEntities.INFINITY_TINY_POTATO.get(), + InfinityTinyPotatoBlockEntity::commonTick); + } +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/SoarleanderBlock.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/SoarleanderBlock.java new file mode 100644 index 00000000..b7975b88 --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/SoarleanderBlock.java @@ -0,0 +1,41 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.block; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.SoarleanderBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import vazkii.botania.api.block_entity.SpecialFlowerBlockEntity; +import vazkii.botania.common.block.BotaniaBlock; +import vazkii.botania.common.block.flower.SpecialFlowerBlock; + +import java.util.function.Supplier; + +public class SoarleanderBlock extends SpecialFlowerBlock { + + public SoarleanderBlock(Holder stewEffect, int stewDuration, Properties props, + Supplier> blockEntityType) { + super(stewEffect, stewDuration, props, blockEntityType); + } + + @Override + public @Nullable BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return new SoarleanderBlockEntity(pos, state); + } + + @Override + public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, + BlockEntityType type) { + return BotaniaBlock.createTickerHelper(type, BotaniaIntegrationBlockEntities.SOARLEANDER.get(), + SoarleanderBlockEntity::commonTick); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/behavor/AlphaSparkBehavior.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/behavor/AlphaSparkBehavior.java similarity index 81% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/behavor/AlphaSparkBehavior.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/behavor/AlphaSparkBehavior.java index b78cd5ae..192610b7 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/behavor/AlphaSparkBehavior.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/block/behavor/AlphaSparkBehavior.java @@ -1,6 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.botania.block.behavor; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.block.behavor; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.item.AlphaSparkItem; -import committee.nova.mods.avaritia_integration.module.botania.item.AlphaSparkItem; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.dispenser.BlockSource; @@ -8,6 +9,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.DispenserBlock; + import org.jetbrains.annotations.NotNull; /** @@ -26,4 +28,4 @@ protected ItemStack execute(BlockSource source, @NotNull ItemStack stack) { return stack; } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/AlphaSparkEntity.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/AlphaSparkEntity.java similarity index 87% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/AlphaSparkEntity.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/AlphaSparkEntity.java index 6c8e4132..690deb57 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/AlphaSparkEntity.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/AlphaSparkEntity.java @@ -1,7 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.botania.entity; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.entity; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationEntities; -import com.mojang.blaze3d.platform.Window; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationEntities; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; @@ -24,6 +24,8 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.phys.AABB; + +import com.mojang.blaze3d.platform.Window; import org.jetbrains.annotations.Nullable; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.block.WandHUD; @@ -46,15 +48,26 @@ import vazkii.botania.network.clientbound.BotaniaEffectPacket; import vazkii.botania.xplat.XplatAbstractions; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; /** * @author cnlimiter */ public class AlphaSparkEntity extends SparkBaseEntity implements ManaSpark { + private static final int TRANSFER_RATE = 100000; private static final String TAG_UPGRADE = "upgrade"; - private static final EntityDataAccessor UPGRADE = SynchedEntityData.defineId(AlphaSparkEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor UPGRADE = SynchedEntityData.defineId(AlphaSparkEntity.class, + EntityDataSerializers.INT); private final Set outgoingTransfers = Collections.newSetFromMap(new WeakHashMap<>()); @@ -109,7 +122,8 @@ public void tick() { AABB aabb = VecHelper.boxForRange( this.position().with(Direction.Axis.Y, getY() + (getBbHeight() / 2.0)), SparkHelper.SPARK_SCAN_RANGE); - List players = level().getEntitiesOfClass(Player.class, aabb, EntitySelector.ENTITY_STILL_ALIVE); + List players = level().getEntitiesOfClass(Player.class, aabb, + EntitySelector.ENTITY_STILL_ALIVE); Map> receivingPlayers = new HashMap<>(); @@ -140,7 +154,8 @@ public void tick() { receivingStacks = receivingPlayers.get(player); } - int recv = Math.min(receiver.getCurrentMana(), Math.min(TRANSFER_RATE, manaItem.getMaxMana() - manaItem.getMana())); + int recv = Math.min(receiver.getCurrentMana(), + Math.min(TRANSFER_RATE, manaItem.getMaxMana() - manaItem.getMana())); if (recv > 0) { receivingStacks.put(manaItem, recv); if (add) { @@ -172,7 +187,8 @@ public void tick() { updateTransfers(); } if (!transfersTowardsSelfToRegister.isEmpty()) { - transfersTowardsSelfToRegister.remove(transfersTowardsSelfToRegister.size() - 1).registerTransfer(this); + transfersTowardsSelfToRegister.remove(transfersTowardsSelfToRegister.size() - 1) + .registerTransfer(this); } } // Recessive does not need to be handled because recessive sparks get notified in all relevant cases @@ -200,7 +216,8 @@ public void tick() { count--; SparkAttachable attached = spark.getAttachedTile(); var attachedReceiver = spark.getAttachedManaReceiver(); - if (attached == null || attachedReceiver == null || attachedReceiver.isFull() || spark.areIncomingTransfersDone()) { + if (attached == null || attachedReceiver == null || attachedReceiver.isFull() || + spark.areIncomingTransfersDone()) { shouldFilterTransfers = true; continue; } @@ -234,23 +251,24 @@ public void updateTransfers() { transfersTowardsSelfToRegister.clear(); switch (getUpgrade()) { case RECESSIVE -> { - var otherSparks = SparkHelper.getSparksAround(level(), getX(), getY() + (getBbHeight() / 2), getZ(), getNetwork()); + var otherSparks = SparkHelper.getSparksAround(level(), getX(), getY() + (getBbHeight() / 2), getZ(), + getNetwork()); Collections.shuffle(otherSparks); for (var otherSpark : otherSparks) { SparkUpgradeType otherUpgrade = otherSpark.getUpgrade(); - if (otherSpark != this - && otherUpgrade != SparkUpgradeType.DOMINANT - && otherUpgrade != SparkUpgradeType.RECESSIVE - && otherUpgrade != SparkUpgradeType.ISOLATED) { + if (otherSpark != this && otherUpgrade != SparkUpgradeType.DOMINANT && + otherUpgrade != SparkUpgradeType.RECESSIVE && otherUpgrade != SparkUpgradeType.ISOLATED) { outgoingTransfers.add(otherSpark); } } } case DOMINANT -> { - List validSparks = SparkHelper.getSparksAround(level(), getX(), getY() + (getBbHeight() / 2), getZ(), getNetwork()); + List validSparks = SparkHelper.getSparksAround(level(), getX(), getY() + (getBbHeight() / 2), + getZ(), getNetwork()); for (var spark : validSparks) { SparkUpgradeType otherUpgrade = spark.getUpgrade(); - if (spark != this && otherUpgrade == SparkUpgradeType.NONE && spark.getAttachedManaReceiver() instanceof ManaPool) { + if (spark != this && otherUpgrade == SparkUpgradeType.NONE && + spark.getAttachedManaReceiver() instanceof ManaPool) { transfersTowardsSelfToRegister.add(spark); } } @@ -261,8 +279,9 @@ public void updateTransfers() { } private void particlesTowards(Entity e) { - XplatAbstractions.INSTANCE.sendToTracking(this, new BotaniaEffectPacket(EffectType.SPARK_MANA_FLOW, getX(), getY(), getZ(), - getId(), e.getId(), getNetwork().getTextureDiffuseColor())); + XplatAbstractions.INSTANCE.sendToTracking(this, + new BotaniaEffectPacket(EffectType.SPARK_MANA_FLOW, getX(), getY(), getZ(), + getId(), e.getId(), getNetwork().getTextureDiffuseColor())); } public static void particleBeam(Player player, Entity e1, Entity e2) { @@ -358,7 +377,8 @@ protected void addAdditionalSaveData(CompoundTag cmp) { @Nullable @Override public SparkAttachable getAttachedTile() { - return XplatAbstractions.INSTANCE.findSparkAttachable(level(), getAttachPos(), level().getBlockState(getAttachPos()), level().getBlockEntity(getAttachPos()), Direction.UP); + return XplatAbstractions.INSTANCE.findSparkAttachable(level(), getAttachPos(), + level().getBlockState(getAttachPos()), level().getBlockEntity(getAttachPos()), Direction.UP); } @Nullable @@ -375,15 +395,12 @@ private void filterTransfers() { SparkUpgradeType supgr = spark.getUpgrade(); ManaReceiver arecv = spark.getAttachedManaReceiver(); - if (spark == this - || !((Entity) spark).isAlive() - || spark.areIncomingTransfersDone() - || getNetwork() != spark.getNetwork() - || arecv == null - || arecv.isFull() - || !(upgr == SparkUpgradeType.NONE && supgr == SparkUpgradeType.DOMINANT - || upgr == SparkUpgradeType.RECESSIVE && (supgr == SparkUpgradeType.NONE || supgr == SparkUpgradeType.DISPERSIVE) - || !(arecv instanceof ManaPool))) { + if (spark == this || !((Entity) spark).isAlive() || spark.areIncomingTransfersDone() || + getNetwork() != spark.getNetwork() || arecv == null || arecv.isFull() || + !(upgr == SparkUpgradeType.NONE && supgr == SparkUpgradeType.DOMINANT || + upgr == SparkUpgradeType.RECESSIVE && + (supgr == SparkUpgradeType.NONE || supgr == SparkUpgradeType.DISPERSIVE) || + !(arecv instanceof ManaPool))) { iter.remove(); } } @@ -446,6 +463,7 @@ public boolean areIncomingTransfersDone() { } public record WandHud(AlphaSparkEntity entity) implements WandHUD { + @Override public void renderHUD(GuiGraphics gui, Window window, Font font, float partialTick) { ItemStack sparkStack = new ItemStack(entity.getSparkItem()); @@ -458,8 +476,7 @@ public void renderHUD(GuiGraphics gui, Window window, Font font, float partialTi int width = 4 + Collections.max(Arrays.asList( font.width(networkColorName), RenderHelper.itemWithNameWidth(sparkStack, font), - RenderHelper.itemWithNameWidth(augmentStack, font) - )); + RenderHelper.itemWithNameWidth(augmentStack, font))); int height = augmentStack.isEmpty() ? 30 : 50; int networkColorTextStart = font.width(networkColorName) / 2; @@ -470,7 +487,8 @@ public void renderHUD(GuiGraphics gui, Window window, Font font, float partialTi RenderHelper.renderItemWithNameCentered(gui, window, font, sparkStack, centerY + 10, textColor); RenderHelper.renderItemWithNameCentered(gui, window, font, augmentStack, centerY + 28, textColor); - gui.drawString(font, networkColorName, centerX - networkColorTextStart, centerY + (augmentStack.isEmpty() ? 28 : 46), textColor); + gui.drawString(font, networkColorName, centerX - networkColorTextStart, + centerY + (augmentStack.isEmpty() ? 28 : 46), textColor); } } } diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/AsgardDandelionBlockEntity.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/AsgardDandelionBlockEntity.java similarity index 90% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/AsgardDandelionBlockEntity.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/AsgardDandelionBlockEntity.java index 9b6ca3b1..3669061e 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/AsgardDandelionBlockEntity.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/AsgardDandelionBlockEntity.java @@ -1,10 +1,12 @@ -package committee.nova.mods.avaritia_integration.module.botania.entity; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.entity; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; + import org.jetbrains.annotations.Nullable; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.block_entity.GeneratingFlowerBlockEntity; @@ -16,6 +18,7 @@ import java.awt.*; public class AsgardDandelionBlockEntity extends GeneratingFlowerBlockEntity { + private static final int RANGE = 8; public AsgardDandelionBlockEntity(BlockPos pos, BlockState state) { @@ -78,7 +81,7 @@ public void tickFlower() { long gameTime = this.level.getGameTime(); float hue = (gameTime % 100) / 100.0f; - int color = java.awt.Color.HSBtoRGB(hue, 1.0f, 1.0f); + int color = Color.HSBtoRGB(hue, 1.0f, 1.0f); float red = (color >> 16 & 0xFF) / 255F; float green = (color >> 8 & 0xFF) / 255F; float blue = (color & 0xFF) / 255F; @@ -87,7 +90,8 @@ public void tickFlower() { double x = this.getBlockPos().getX() + offset.x; double y = this.getBlockPos().getY() + offset.y; double z = this.getBlockPos().getZ() + offset.z; - BotaniaAPI.instance().sparkleFX(this.level, x + 0.3 + Math.random() * 0.5, y + 0.5 + Math.random() * 0.5, z + 0.3 + Math.random() * 0.5, red, green, blue, (float) Math.random(), 5); + BotaniaAPI.instance().sparkleFX(this.level, x + 0.3 + Math.random() * 0.5, y + 0.5 + Math.random() * 0.5, + z + 0.3 + Math.random() * 0.5, red, green, blue, (float) Math.random(), 5); } } @@ -112,4 +116,4 @@ public int getColor() { public boolean isOvergrowthAffected() { return true; } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/InfinityManaPoolBlockEntity.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/InfinityManaPoolBlockEntity.java similarity index 91% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/InfinityManaPoolBlockEntity.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/InfinityManaPoolBlockEntity.java index fc9a0799..dcba0b41 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/InfinityManaPoolBlockEntity.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/InfinityManaPoolBlockEntity.java @@ -1,11 +1,8 @@ -package committee.nova.mods.avaritia_integration.module.botania.entity; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.entity; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.block.InfinityManaPoolBlock; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import committee.nova.mods.avaritia_integration.module.botania.block.InfinityManaPoolBlock; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; -import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.core.BlockPos; @@ -24,6 +21,11 @@ import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; + +import com.mojang.blaze3d.platform.Window; +import com.mojang.blaze3d.systems.RenderSystem; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import org.apache.commons.lang3.mutable.MutableInt; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.UnknownNullability; @@ -62,7 +64,8 @@ * 改自{@link vazkii.botania.common.block.block_entity.mana.ManaPoolBlockEntity} */ public class InfinityManaPoolBlockEntity extends BotaniaBlockEntity implements ManaPool, KeyLocked, SparkAttachable, - ThrottledPacket, Wandable { + ThrottledPacket, Wandable { + public static final int PARTICLE_COLOR = 0x00C6FF; public static final float PARTICLE_COLOR_BLUE = (PARTICLE_COLOR & 0xFF) / 255F; public static final float PARTICLE_COLOR_GREEN = (PARTICLE_COLOR >> 8 & 0xFF) / 255F; @@ -142,7 +145,8 @@ public RecipeHolder getMatchingRecipe(ItemStack stack, Block } // Recipes with matching catalyst take priority above recipes with no catalyst specified - return !matchingCatRecipes.isEmpty() ? matchingCatRecipes.getFirst() : !matchingNonCatRecipes.isEmpty() ? matchingNonCatRecipes.getFirst() : null; + return !matchingCatRecipes.isEmpty() ? matchingCatRecipes.getFirst() : + !matchingNonCatRecipes.isEmpty() ? matchingNonCatRecipes.getFirst() : null; } public boolean collideEntityItem(ItemEntity item) { @@ -169,9 +173,10 @@ public boolean collideEntityItem(ItemEntity item) { ItemStack output = recipe.value().getRecipeOutput(level.registryAccess(), stack); EntityHelper.shrinkItem(item); - item.setOnGround(false); //Force entity collision update to run every tick if crafting is in progress + item.setOnGround(false); // Force entity collision update to run every tick if crafting is in progress - ItemEntity outputItem = new ItemEntity(level, worldPosition.getX() + 0.5, worldPosition.getY() + 1.5, worldPosition.getZ() + 0.5, output); + ItemEntity outputItem = new ItemEntity(level, worldPosition.getX() + 0.5, worldPosition.getY() + 1.5, + worldPosition.getZ() + 0.5, output); XplatAbstractions.INSTANCE.itemFlagsComponent(outputItem).manaInfusionSpawned = true; if (item.getOwner() instanceof Player player) { player.triggerRecipeCrafted(recipe, List.of(output)); @@ -208,8 +213,11 @@ public boolean triggerEvent(int event, int param) { float red = (float) Math.random(); float green = (float) Math.random(); float blue = (float) Math.random(); - SparkleParticleData data = SparkleParticleData.sparkle((float) Math.random(), red, green, blue, 10); - level.addParticle(data, worldPosition.getX() + 0.5 + Math.random() * 0.4 - 0.2, worldPosition.getY() + 0.75, worldPosition.getZ() + 0.5 + Math.random() * 0.4 - 0.2, 0, 0, 0); + SparkleParticleData data = SparkleParticleData.sparkle((float) Math.random(), red, green, blue, + 10); + level.addParticle(data, worldPosition.getX() + 0.5 + Math.random() * 0.4 - 0.2, + worldPosition.getY() + 0.75, worldPosition.getZ() + 0.5 + Math.random() * 0.4 - 0.2, 0, + 0, 0); } } @@ -238,7 +246,8 @@ private void initManaCapAndNetwork() { } } - public static void clientTick(Level level, BlockPos worldPosition, BlockState state, InfinityManaPoolBlockEntity self) { + public static void clientTick(Level level, BlockPos worldPosition, BlockState state, + InfinityManaPoolBlockEntity self) { self.initManaCapAndNetwork(); double particleChance = 1F - (double) self.getCurrentMana() / (double) self.getMaxMana() * 0.1; if (Math.random() > particleChance) { @@ -277,8 +286,8 @@ private static void displayChargingParticles(Level level, BlockPos worldPosition } } else { Vec3 itemPosRel = randomizeItemPos(itemPosRelBase); - Vec3 poolPosRel = - new Vec3(0.05 + 0.9 * Math.random(), 0.35 * relativeMana, 0.05 + 0.9 * Math.random()); + Vec3 poolPosRel = new Vec3(0.05 + 0.9 * Math.random(), 0.35 * relativeMana, + 0.05 + 0.9 * Math.random()); addManaFlowParticle(level, worldPosition, itemPosRel, poolPosRel); } } @@ -321,8 +330,8 @@ private static void addManaFlowParticle(Level level, BlockPos worldPosition, Vec worldPosition.getZ() + startPos.z, v0.x, v0.y, v0.z); } - public static void serverTick(Level level, BlockPos worldPosition, BlockState state, InfinityManaPoolBlockEntity self) { - + public static void serverTick(Level level, BlockPos worldPosition, BlockState state, + InfinityManaPoolBlockEntity self) { self.initManaCapAndNetwork(); boolean wasDoingTransfer = self.isDoingTransfer; self.isDoingTransfer = false; @@ -346,7 +355,8 @@ public static void serverTick(Level level, BlockPos worldPosition, BlockState st var mana = XplatAbstractions.INSTANCE.findManaItem(stack); if (!stack.isEmpty() && mana != null) { boolean isOutputting = self.isOutputtingPower(); - if (isOutputting && mana.canReceiveManaFromPool(self) || !isOutputting && mana.canDrainManaToPool(self)) { + if (isOutputting && mana.canReceiveManaFromPool(self) || + !isOutputting && mana.canDrainManaToPool(self)) { boolean didSomething = false; int bellowCount = isOutputting ? getBellowCount(level, worldPosition, self) : 0; @@ -358,7 +368,8 @@ public static void serverTick(Level level, BlockPos worldPosition, BlockState st didSomething = true; } - int manaVal = Math.min(transfRate, Math.min(self.getCurrentMana(), mana.getMaxMana() - mana.getMana())); + int manaVal = Math.min(transfRate, + Math.min(self.getCurrentMana(), mana.getMaxMana() - mana.getMana())); mana.addMana(manaVal); self.receiveMana(-manaVal); } @@ -368,8 +379,10 @@ public static void serverTick(Level level, BlockPos worldPosition, BlockState st didSomething = true; } - int manaVal = Math.min(transfRate, Math.min(self.getMaxMana() - self.getCurrentMana(), mana.getMana())); - if (manaVal == 0 && self.level.getBlockState(worldPosition.below()).is(BotaniaBlocks.manaVoid)) { + int manaVal = Math.min(transfRate, + Math.min(self.getMaxMana() - self.getCurrentMana(), mana.getMana())); + if (manaVal == 0 && + self.level.getBlockState(worldPosition.below()).is(BotaniaBlocks.manaVoid)) { manaVal = Math.min(transfRate, mana.getMana()); } mana.addMana(-manaVal); @@ -478,6 +491,7 @@ public boolean onUsedByWand(@Nullable Player player, ItemStack stack, Direction } public static class WandHud implements WandHUD { + private final InfinityManaPoolBlockEntity pool; public WandHud(InfinityManaPoolBlockEntity pool) { @@ -496,14 +510,16 @@ public void renderHUD(GuiGraphics gui, Window window, Font font, float partialTi RenderHelper.renderHUDBox(gui, centerX - width / 2, centerY + 8, centerX + width / 2, centerY + 48); - BotaniaAPIClient.instance().drawSimpleManaHUD(gui, window, font, 0x0095FF, pool.getCurrentMana(), pool.getMaxMana(), name); + BotaniaAPIClient.instance().drawSimpleManaHUD(gui, window, font, 0x0095FF, pool.getCurrentMana(), + pool.getMaxMana(), name); RenderSystem.enableBlend(); RenderSystem.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); int arrowU = pool.isOutputtingPower() ? 22 : 0; int arrowV = 38; - RenderHelper.drawTexturedModalRect(gui, HUDHandler.manaBar, centerX - 11, centerY + 30, arrowU, arrowV, 22, 15); + RenderHelper.drawTexturedModalRect(gui, HUDHandler.manaBar, centerX - 11, centerY + 30, arrowU, arrowV, 22, + 15); RenderSystem.setShaderColor(1F, 1F, 1F, 1F); ItemStack tablet = new ItemStack(BotaniaItems.manaTablet); diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/InfinityTinyPotatoBlockEntity.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/InfinityTinyPotatoBlockEntity.java similarity index 76% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/InfinityTinyPotatoBlockEntity.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/InfinityTinyPotatoBlockEntity.java index b1fb5cb4..36ed9a8e 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/InfinityTinyPotatoBlockEntity.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/InfinityTinyPotatoBlockEntity.java @@ -1,7 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.botania.entity; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.entity; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; -import it.unimi.dsi.fastutil.ints.IntArrayList; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; @@ -36,6 +36,8 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; + +import it.unimi.dsi.fastutil.ints.IntArrayList; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import vazkii.botania.api.internal.VanillaPacketDispatcher; @@ -48,21 +50,38 @@ import java.time.LocalDateTime; import java.time.Month; -import java.util.*; - +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; public class InfinityTinyPotatoBlockEntity extends BlockEntity implements Nameable { - private static final ResourceLocation BIRTHDAY_ADVANCEMENT = ResourceLocation.fromNamespaceAndPath("botania", "challenge/tiny_potato_birthday"); + + private static final ResourceLocation BIRTHDAY_ADVANCEMENT = ResourceLocation.fromNamespaceAndPath("botania", + "challenge/tiny_potato_birthday"); private static final boolean IS_BIRTHDAY = isTinyPotatoBirthday(); private static final String TAG_NAME = "name"; private static final int JUMP_EVENT = 0; - private static final Map GENDER = new HashMap(Map.ofEntries(Map.entry("girlstater", "daughter"), Map.entry("lesbiabtater", "daughter"), Map.entry("lesbiamtater", "daughter"), Map.entry("lesbiantater", "daughter"), Map.entry("lesbitater", "daughter"), Map.entry("lessbientater", "daughter"), Map.entry("agendertater", "child"), Map.entry("enbytater", "child"), Map.entry("nbtater", "child"), Map.entry("nonbinarytater", "child"), Map.entry("robotater", "child"), Map.entry("wiretater", "child"), Map.entry("eutrotater", "child"), Map.entry("bob", "child"), Map.entry("snences", "child"), Map.entry("genderfluidtater", "child"), Map.entry("taterfluid", "child"), Map.entry("eggtater", "child"), Map.entry("tategg", "child"), Map.entry("transtater", "child"), Map.entry("manytater", "children"), Map.entry("pluraltater", "children"), Map.entry("snorps", "children"), Map.entry("systater", "children"), Map.entry("systemtater", "children"), Map.entry("tomater", "tomato"))); + private static final Map GENDER = new HashMap(Map.ofEntries(Map.entry("girlstater", "daughter"), + Map.entry("lesbiabtater", "daughter"), Map.entry("lesbiamtater", "daughter"), + Map.entry("lesbiantater", "daughter"), Map.entry("lesbitater", "daughter"), + Map.entry("lessbientater", "daughter"), Map.entry("agendertater", "child"), Map.entry("enbytater", "child"), + Map.entry("nbtater", "child"), Map.entry("nonbinarytater", "child"), Map.entry("robotater", "child"), + Map.entry("wiretater", "child"), Map.entry("eutrotater", "child"), Map.entry("bob", "child"), + Map.entry("snences", "child"), Map.entry("genderfluidtater", "child"), Map.entry("taterfluid", "child"), + Map.entry("eggtater", "child"), Map.entry("tategg", "child"), Map.entry("transtater", "child"), + Map.entry("manytater", "children"), Map.entry("pluraltater", "children"), Map.entry("snorps", "children"), + Map.entry("systater", "children"), Map.entry("systemtater", "children"), Map.entry("tomater", "tomato"))); public int jumpTicks = 0; public Component name = Component.literal(""); private int nextDoIt = 0; private int birthdayTick = 0; - private static final List ALL_CANDLE_CAKES = List.of(Blocks.WHITE_CANDLE_CAKE, Blocks.ORANGE_CANDLE_CAKE, Blocks.MAGENTA_CANDLE_CAKE, Blocks.LIGHT_BLUE_CANDLE_CAKE, Blocks.YELLOW_CANDLE_CAKE, Blocks.LIME_CANDLE_CAKE, Blocks.PINK_CANDLE_CAKE, Blocks.GRAY_CANDLE_CAKE, Blocks.LIGHT_GRAY_CANDLE_CAKE, Blocks.CYAN_CANDLE_CAKE, Blocks.PURPLE_CANDLE_CAKE, Blocks.BLUE_CANDLE_CAKE, Blocks.BROWN_CANDLE_CAKE, Blocks.GREEN_CANDLE_CAKE, Blocks.RED_CANDLE_CAKE, Blocks.BLACK_CANDLE_CAKE, Blocks.CANDLE_CAKE); - + private static final List ALL_CANDLE_CAKES = List.of(Blocks.WHITE_CANDLE_CAKE, Blocks.ORANGE_CANDLE_CAKE, + Blocks.MAGENTA_CANDLE_CAKE, Blocks.LIGHT_BLUE_CANDLE_CAKE, Blocks.YELLOW_CANDLE_CAKE, + Blocks.LIME_CANDLE_CAKE, Blocks.PINK_CANDLE_CAKE, Blocks.GRAY_CANDLE_CAKE, Blocks.LIGHT_GRAY_CANDLE_CAKE, + Blocks.CYAN_CANDLE_CAKE, Blocks.PURPLE_CANDLE_CAKE, Blocks.BLUE_CANDLE_CAKE, Blocks.BROWN_CANDLE_CAKE, + Blocks.GREEN_CANDLE_CAKE, Blocks.RED_CANDLE_CAKE, Blocks.BLACK_CANDLE_CAKE, Blocks.CANDLE_CAKE); public InfinityTinyPotatoBlockEntity(BlockPos pos, BlockState state) { super(BotaniaIntegrationBlockEntities.INFINITY_TINY_POTATO.get(), pos, state); @@ -80,7 +99,8 @@ public void interact(Player player, InteractionHand hand, ItemStack stack, Direc this.level.playSound(null, this.worldPosition, BotaniaSounds.doit, SoundSource.BLOCKS, 1.0F, 1.0F); } player.awardStat(BotaniaStats.TINY_POTATOES_PETTED); - PlayerHelper.grantCriterion((ServerPlayer) player, ResourceLocation.fromNamespaceAndPath("botania", "main/tiny_potato_pet"), "code_triggered"); + PlayerHelper.grantCriterion((ServerPlayer) player, + ResourceLocation.fromNamespaceAndPath("botania", "main/tiny_potato_pet"), "code_triggered"); } } @@ -98,8 +118,7 @@ private void addEffects(Level world, BlockPos pos, Player player) { int lv = 1; AABB bb = new AABB( Vec3.atLowerCornerOf(pos.offset(-radius, -2, -radius)), - Vec3.atLowerCornerOf(pos.offset(radius, 2, radius)) - ); + Vec3.atLowerCornerOf(pos.offset(radius, 2, radius))); List entityList = world.getEntitiesOfClass(LivingEntity.class, bb); for (LivingEntity living : entityList) { double sq = living.distanceToSqr(pos.getX(), pos.getY(), pos.getZ()); @@ -118,7 +137,6 @@ private void jump() { if (this.jumpTicks == 0) { this.level.blockEvent(this.getBlockPos(), this.getBlockState().getBlock(), 0, 20); } - } @Override @@ -146,7 +164,6 @@ public static void commonTick(Level level, BlockPos pos, BlockState state, Infin self.tickBirthday(); } } - } private void tickBirthday() { @@ -155,14 +172,17 @@ private void tickBirthday() { if (this.level.hasChunkAt(facingPos)) { BlockState facingState = this.level.getBlockState(facingPos); DyeColor cakeColor = getLitCakeColor(facingState, this.level.getRandom()); - List players = PlayerHelper.getRealPlayersIn(this.level, VecHelper.boxForRange(Vec3.atCenterOf(this.getBlockPos()), 8.0)); + List players = PlayerHelper.getRealPlayersIn(this.level, + VecHelper.boxForRange(Vec3.atCenterOf(this.getBlockPos()), 8.0)); if (cakeColor != null && !players.isEmpty()) { ++this.birthdayTick; List messageTimes = List.of(100, 170, 240, 310, 380); int messageIndex = messageTimes.indexOf(this.birthdayTick); if (messageIndex != -1) { - Object[] args = messageIndex == 1 ? new Object[]{getTinyPotatoAge()} : new int[][]{new int[]{0}}; - MutableComponent message = Component.literal("<").append(this.getDisplayName()).append("> ").append(Component.translatable("botania.tater_birthday." + messageIndex, args)); + Object[] args = messageIndex == 1 ? new Object[] { getTinyPotatoAge() } : + new int[][] { new int[] { 0 } }; + MutableComponent message = Component.literal("<").append(this.getDisplayName()).append("> ") + .append(Component.translatable("botania.tater_birthday." + messageIndex, args)); Iterator var10 = players.iterator(); while (var10.hasNext()) { @@ -177,7 +197,7 @@ private void tickBirthday() { if (messageIndex == messageTimes.size() - 1) { FireworkExplosion explosion = new FireworkExplosion( FireworkExplosion.Shape.LARGE_BALL, - new IntArrayList(new int[]{ + new IntArrayList(new int[] { cakeColor.getFireworkColor(), 13787301, 14987213, @@ -186,17 +206,17 @@ private void tickBirthday() { }), new IntArrayList(), true, - true - ); + true); ItemStack rocket = new ItemStack(Items.FIREWORK_ROCKET); rocket.set(DataComponents.FIREWORKS, new Fireworks( 0, - List.of(explosion) - )); - this.level.addFreshEntity(new FireworkRocketEntity(this.level, (double) facingPos.getX() + 0.5, (double) facingPos.getY() + 0.5, (double) facingPos.getZ() + 0.5, rocket)); + List.of(explosion))); + this.level.addFreshEntity(new FireworkRocketEntity(this.level, (double) facingPos.getX() + 0.5, + (double) facingPos.getY() + 0.5, (double) facingPos.getZ() + 0.5, rocket)); this.level.removeBlock(facingPos, false); this.level.levelEvent(2001, facingPos, Block.getId(facingState)); - this.level.playSound(null, this.getBlockPos(), SoundEvents.GENERIC_EAT, SoundSource.BLOCKS, 1.0F, 0.5F + (float) Math.random() * 0.5F); + this.level.playSound(null, this.getBlockPos(), SoundEvents.GENERIC_EAT, SoundSource.BLOCKS, 1.0F, + 0.5F + (float) Math.random() * 0.5F); Iterator var12 = players.iterator(); while (var12.hasNext()) { @@ -206,7 +226,6 @@ private void tickBirthday() { } } } - } @Override @@ -215,17 +234,15 @@ public void setChanged() { if (this.level != null && !this.level.isClientSide) { VanillaPacketDispatcher.dispatchTEToNearbyPlayers(this); } - } - @Override public @NotNull Component getName() { return BotaniaBlocks.tinyPotato.getName(); } @Override - public @org.jetbrains.annotations.Nullable Component getCustomName() { + public @Nullable Component getCustomName() { return this.name.getString().isEmpty() ? null : this.name; } @@ -254,4 +271,4 @@ private static int getTinyPotatoAge() { LocalDateTime now = LocalDateTime.now(); return now.getYear() - 2014; } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/SoarleanderBlockEntity.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/SoarleanderBlockEntity.java similarity index 82% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/SoarleanderBlockEntity.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/SoarleanderBlockEntity.java index bbf07d8e..54e5ac09 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/entity/SoarleanderBlockEntity.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/entity/SoarleanderBlockEntity.java @@ -1,6 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.botania.entity; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.entity; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.registry.BotaniaIntegrationBlockEntities; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; import net.minecraft.core.BlockPos; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.LivingEntity; @@ -10,12 +11,14 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; + import org.jetbrains.annotations.Nullable; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.block_entity.GeneratingFlowerBlockEntity; import vazkii.botania.api.block_entity.RadiusDescriptor; public class SoarleanderBlockEntity extends GeneratingFlowerBlockEntity { + private static final int MANA_PER_DAMAGE = 32; private static final int MANA_PER_KILL = 1500; private static final int MANA_PER_CHICKEN_KILL = 5000; @@ -45,13 +48,13 @@ public void tickFlower() { super.tickFlower(); if (this.level == null || this.level.isClientSide) return; - if (this.level.getGameTime() % 5 == 0) { Vec3 offset = this.level.getBlockState(this.getBlockPos()).getOffset(this.level, this.getBlockPos()); double x = this.getBlockPos().getX() + offset.x; double y = this.getBlockPos().getY() + offset.y; double z = this.getBlockPos().getZ() + offset.z; - BotaniaAPI.instance().sparkleFX(this.level, x + 0.3 + Math.random() * 0.5, y + 0.5 + Math.random() * 0.5, z + 0.3 + Math.random() * 0.5, 1.0f, 0.0f, 0.0f, 1.0f, 5); + BotaniaAPI.instance().sparkleFX(this.level, x + 0.3 + Math.random() * 0.5, y + 0.5 + Math.random() * 0.5, + z + 0.3 + Math.random() * 0.5, 1.0f, 0.0f, 0.0f, 1.0f, 5); } if (this.level.getGameTime() % 20 != 0) return; @@ -59,8 +62,9 @@ public void tickFlower() { BlockPos pos = this.getBlockPos(); AABB area = new AABB(pos).inflate(15.0); - this.level.getEntitiesOfClass(LivingEntity.class, area, entity -> - !(entity instanceof Player) && !(entity instanceof ArmorStand) && entity.isAlive()) + this.level + .getEntitiesOfClass(LivingEntity.class, area, + entity -> !(entity instanceof Player) && !(entity instanceof ArmorStand) && entity.isAlive()) .forEach(this::attackEntity); double particleChance = 1F - (double) this.getMana() / (double) this.getMaxMana() / 3.5F; int color = this.getColor(); @@ -72,7 +76,9 @@ public void tickFlower() { double x = this.getBlockPos().getX() + offset.x; double y = this.getBlockPos().getY() + offset.y; double z = this.getBlockPos().getZ() + offset.z; - BotaniaAPI.instance().sparkleFX(this.getLevel(), x + 0.3 + Math.random() * 0.5, y + 0.5 + Math.random() * 0.5, z + 0.3 + Math.random() * 0.5, red, green, blue, (float) Math.random(), 5); + BotaniaAPI.instance().sparkleFX(this.getLevel(), x + 0.3 + Math.random() * 0.5, + y + 0.5 + Math.random() * 0.5, z + 0.3 + Math.random() * 0.5, red, green, blue, + (float) Math.random(), 5); } } @@ -94,4 +100,4 @@ private void attackEntity(LivingEntity entity) { this.sync(); } } -} \ No newline at end of file +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/item/AlphaSparkItem.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/item/AlphaSparkItem.java similarity index 75% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/item/AlphaSparkItem.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/item/AlphaSparkItem.java index 7cecedd3..43641b54 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/item/AlphaSparkItem.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/item/AlphaSparkItem.java @@ -1,6 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.botania.item; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.item; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.AlphaSparkEntity; -import committee.nova.mods.avaritia_integration.module.botania.entity.AlphaSparkEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.InteractionResult; @@ -8,6 +9,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; + import org.jetbrains.annotations.NotNull; import vazkii.botania.api.mana.spark.SparkAttachable; import vazkii.botania.xplat.XplatAbstractions; @@ -16,20 +18,21 @@ * @author cnlimiter */ public class AlphaSparkItem extends Item { - public AlphaSparkItem(Item.Properties builder) { + + public AlphaSparkItem(Properties builder) { super(builder); } @NotNull @Override public InteractionResult useOn(UseOnContext ctx) { - return attachSpark(ctx.getLevel(), ctx.getClickedPos(), ctx.getItemInHand()) - ? InteractionResult.sidedSuccess(ctx.getLevel().isClientSide) - : InteractionResult.PASS; + return attachSpark(ctx.getLevel(), ctx.getClickedPos(), ctx.getItemInHand()) ? + InteractionResult.sidedSuccess(ctx.getLevel().isClientSide) : InteractionResult.PASS; } public static boolean attachSpark(Level world, BlockPos pos, ItemStack stack) { - var attach = XplatAbstractions.INSTANCE.findSparkAttachable(world, pos, world.getBlockState(pos), world.getBlockEntity(pos), Direction.UP); + var attach = XplatAbstractions.INSTANCE.findSparkAttachable(world, pos, world.getBlockState(pos), + world.getBlockEntity(pos), Direction.UP); if (attach != null) { if (attach.canAttachSpark(stack) && SparkAttachable.getAttachedSpark(world, pos) == null) { if (!world.isClientSide) { @@ -44,4 +47,4 @@ public static boolean attachSpark(Level world, BlockPos pos, ItemStack stack) { } return false; } -} \ No newline at end of file +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationBlockEntities.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationBlockEntities.java new file mode 100644 index 00000000..a198052b --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationBlockEntities.java @@ -0,0 +1,50 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.AsgardDandelionBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.InfinityManaPoolBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.InfinityTinyPotatoBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.SoarleanderBlockEntity; + +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Supplier; + +public final class BotaniaIntegrationBlockEntities { + + public static final DeferredRegister> REGISTRY = DeferredRegister + .create(Registries.BLOCK_ENTITY_TYPE, AvaritiaIntegration.MOD_ID); + + public static final DeferredHolder, BlockEntityType> ASGARD_DANDELION = register( + "asgard_dandelion", + () -> BlockEntityType.Builder.of( + AsgardDandelionBlockEntity::new, + BotaniaIntegrationBlocks.ASGARD_DANDELION.get(), + BotaniaIntegrationBlocks.ASGARD_DANDELION_FLOATING.get()).build(null)); + public static final DeferredHolder, BlockEntityType> SOARLEANDER = register( + "soarleander", + () -> BlockEntityType.Builder.of( + SoarleanderBlockEntity::new, + BotaniaIntegrationBlocks.SOARLEANDER.get(), BotaniaIntegrationBlocks.SOARLEANDER_FLOATING.get()) + .build(null)); + public static final DeferredHolder, BlockEntityType> INFINITY_MANA_POOL = register( + "infinity_mana_pool", + () -> BlockEntityType.Builder.of( + InfinityManaPoolBlockEntity::new, + BotaniaIntegrationBlocks.INFINITY_MANA_POOL.get()).build(null)); + public static final DeferredHolder, BlockEntityType> INFINITY_TINY_POTATO = register( + "infinity_tiny_potato", + () -> BlockEntityType.Builder.of( + InfinityTinyPotatoBlockEntity::new, + BotaniaIntegrationBlocks.INFINITY_POTATO.get()).build(null)); + + private static < + T extends BlockEntity> DeferredHolder, BlockEntityType> register(String id, + Supplier> obj) { + return REGISTRY.register(id, obj); + } +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationBlocks.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationBlocks.java new file mode 100644 index 00000000..109b68da --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationBlocks.java @@ -0,0 +1,85 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.registry; + +import committee.nova.mods.avaritia.init.registry.ModRarities; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.block.AsgardDandelionBlock; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.block.InfinityManaPoolBlock; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.block.InfinityTinyPotatoBlock; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.block.SoarleanderBlock; + +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.FlowerPotBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.material.PushReaction; +import net.neoforged.neoforge.registries.DeferredBlock; +import net.neoforged.neoforge.registries.DeferredRegister; + +import vazkii.botania.common.block.BotaniaBlocks; +import vazkii.botania.common.block.flower.FloatingSpecialFlowerBlock; + +import java.util.function.Function; +import java.util.function.Supplier; + +public final class BotaniaIntegrationBlocks { + + public static final DeferredRegister.Blocks REGISTRY = DeferredRegister.createBlocks(AvaritiaIntegration.MOD_ID); + + public static final DeferredBlock ASGARD_DANDELION = register("asgard_dandelion", + () -> new AsgardDandelionBlock(MobEffects.HUNGER, 0, BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY), + BotaniaIntegrationBlockEntities.ASGARD_DANDELION::get)); + public static final DeferredBlock ASGARD_DANDELION_FLOATING = register("asgard_dandelion_floating", + () -> new FloatingSpecialFlowerBlock(BotaniaBlocks.FLOATING_PROPS, + BotaniaIntegrationBlockEntities.ASGARD_DANDELION::get)); + public static final DeferredBlock POTTED_ASGARD_DANDELION = register("potted_asgard_dandelion", false, + () -> flowerPot(ASGARD_DANDELION.get(), 15)); + public static final DeferredBlock SOARLEANDER = register("soarleander", + () -> new SoarleanderBlock(MobEffects.WITHER, 1, + BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY).lightLevel(level -> 5), + BotaniaIntegrationBlockEntities.SOARLEANDER::get)); + public static final DeferredBlock SOARLEANDER_FLOATING = register("soarleander_floating", + () -> new FloatingSpecialFlowerBlock(BotaniaBlocks.FLOATING_PROPS.lightLevel(level -> 5), + BotaniaIntegrationBlockEntities.SOARLEANDER::get)); + public static final DeferredBlock POTTED_SOARLEANDER = register("potted_soarleander", false, + () -> flowerPot(SOARLEANDER.get(), 5)); + public static final DeferredBlock INFINITY_MANA_POOL = register("infinity_mana_pool", + () -> new InfinityManaPoolBlock( + BlockBehaviour.Properties.ofFullCopy(BotaniaBlocks.livingrock).lightLevel(level -> 15)), + new Item.Properties().rarity(ModRarities.COSMIC.getValue())); + public static final DeferredBlock INFINITY_POTATO = register("infinity_potato", + InfinityTinyPotatoBlock::new); + + private static DeferredBlock register(String id, Supplier obj) { + return register(id, obj, true, b -> new BlockItem(b, new Item.Properties())); + } + + private static DeferredBlock register(String id, boolean hasItem, Supplier obj) { + return register(id, obj, hasItem, b -> new BlockItem(b, new Item.Properties())); + } + + private static DeferredBlock register(String id, Supplier obj, Item.Properties properties) { + return register(id, obj, true, b -> new BlockItem(b, properties)); + } + + private static DeferredBlock register(String id, Supplier obj, boolean hasItem, + Item.Properties properties) { + return register(id, obj, hasItem, b -> new BlockItem(b, properties)); + } + + private static DeferredBlock register(String id, Supplier obj, boolean hasItem, + Function itemBuilder) { + DeferredBlock r = REGISTRY.register(id, obj); + if (hasItem) BotaniaIntegrationItems.register(id, () -> itemBuilder.apply(r.get())); + return r; + } + + static FlowerPotBlock flowerPot(Block block, int lightLevel) { + BlockBehaviour.Properties properties = BlockBehaviour.Properties.of().instabreak().noOcclusion() + .pushReaction(PushReaction.DESTROY); + return new FlowerPotBlock(block, + lightLevel > 0 ? properties.lightLevel((blockState) -> lightLevel) : properties); + } +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationEntities.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationEntities.java new file mode 100644 index 00000000..f5d99ddf --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationEntities.java @@ -0,0 +1,35 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.AlphaSparkEntity; + +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.MobCategory; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Supplier; + +public final class BotaniaIntegrationEntities { + + public static final DeferredRegister> REGISTRY = DeferredRegister.create(Registries.ENTITY_TYPE, + AvaritiaIntegration.MOD_ID); + + public static final DeferredHolder, EntityType> ALPHA_SPARK_ENTITIES = register( + "alpha_spark", + () -> EntityType.Builder.of(AlphaSparkEntity::new, MobCategory.MISC) + .sized(0.2F, 0.5F) + .fireImmune() + .clientTrackingRange(4) + .updateInterval(10) + .build(ResourceLocation.tryBuild(AvaritiaIntegration.MOD_ID, "alpha_spark").toString())); + + private static < + T extends Entity> DeferredHolder, EntityType> register(String id, + Supplier> obj) { + return REGISTRY.register(id, obj); + } +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationItems.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationItems.java new file mode 100644 index 00000000..7a2bfcaf --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/registry/BotaniaIntegrationItems.java @@ -0,0 +1,23 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.item.AlphaSparkItem; + +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Supplier; + +public final class BotaniaIntegrationItems { + + public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); + + public static final DeferredItem ALPHA_SPARK = register( + "alpha_spark", + () -> new AlphaSparkItem(new Item.Properties())); + + public static DeferredItem register(String id, Supplier obj) { + return REGISTRY.register(id, obj); + } +} diff --git a/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/AlphaSparkRender.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/AlphaSparkRender.java new file mode 100644 index 00000000..49b96c5f --- /dev/null +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/AlphaSparkRender.java @@ -0,0 +1,48 @@ +package committee.nova.mods.avaritia_integration.integrations.botania.botania.render; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.AlphaSparkEntity; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.InventoryMenu; + +import vazkii.botania.client.render.entity.BaseSparkRenderer; + +import java.util.Objects; + +/** + * @author cnlimiter + */ +public class AlphaSparkRender extends BaseSparkRenderer { + + private final TextureAtlasSprite dispersiveIcon; + private final TextureAtlasSprite dominantIcon; + private final TextureAtlasSprite recessiveIcon; + private final TextureAtlasSprite isolatedIcon; + + public AlphaSparkRender(EntityRendererProvider.Context ctx) { + super(ctx); + var atlas = Minecraft.getInstance().getTextureAtlas(InventoryMenu.BLOCK_ATLAS); + this.dispersiveIcon = Objects.requireNonNull( + atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_dispersive"))); + this.dominantIcon = Objects.requireNonNull( + atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_dominant"))); + this.recessiveIcon = Objects.requireNonNull( + atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_recessive"))); + this.isolatedIcon = Objects.requireNonNull( + atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_isolated"))); + } + + @Override + public TextureAtlasSprite getSpinningIcon(AlphaSparkEntity entity) { + return switch (entity.getUpgrade()) { + case NONE -> null; + case DISPERSIVE -> this.dispersiveIcon; + case DOMINANT -> this.dominantIcon; + case RECESSIVE -> this.recessiveIcon; + case ISOLATED -> this.isolatedIcon; + }; + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/InfinityManaPoolBlockEntityRender.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/InfinityManaPoolBlockEntityRender.java similarity index 90% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/InfinityManaPoolBlockEntityRender.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/InfinityManaPoolBlockEntityRender.java index 7e1b7fa7..cd655353 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/InfinityManaPoolBlockEntityRender.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/InfinityManaPoolBlockEntityRender.java @@ -1,9 +1,8 @@ -package committee.nova.mods.avaritia_integration.module.botania.render; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.render; + +import committee.nova.mods.avaritia_integration.integrations.botania.botania.block.InfinityManaPoolBlock; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.InfinityManaPoolBlockEntity; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import committee.nova.mods.avaritia_integration.module.botania.block.InfinityManaPoolBlock; -import committee.nova.mods.avaritia_integration.module.botania.entity.InfinityManaPoolBlockEntity; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.MultiBufferSource; @@ -20,6 +19,9 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.VoxelShape; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.UnknownNullability; import vazkii.botania.api.mana.PoolOverlayProvider; @@ -46,12 +48,12 @@ public InfinityManaPoolBlockEntityRender(BlockEntityRendererProvider.Context ctx this.blockRenderDispatcher = ctx.getBlockRenderDispatcher(); this.waterSprite = Objects.requireNonNull( Minecraft.getInstance().getTextureAtlas(InventoryMenu.BLOCK_ATLAS) - .apply(botaniaRL("block/mana_water")) - ); + .apply(botaniaRL("block/mana_water"))); } @Override - public void render(@Nullable InfinityManaPoolBlockEntity pool, float partialTick, PoseStack ms, MultiBufferSource buffers, int light, int overlay) { + public void render(@Nullable InfinityManaPoolBlockEntity pool, float partialTick, PoseStack ms, + MultiBufferSource buffers, int light, int overlay) { ms.pushPose(); Minecraft minecraft = Minecraft.getInstance(); @@ -109,7 +111,8 @@ public void render(@Nullable InfinityManaPoolBlockEntity pool, float partialTick var overlayIcon = minecraft.getTextureAtlas(InventoryMenu.BLOCK_ATLAS).apply(overlaySpriteId); ms.pushPose(); - float alpha = (float) ((Mth.sin((ClientTickHandler.getEntityTicksInGame() + partialTick) / 20.0f) + 1) * 0.3 + 0.2); + float alpha = (float) ((Mth.sin((ClientTickHandler.getEntityTicksInGame() + partialTick) / 20.0f) + 1) * + 0.3 + 0.2); ms.translate(0, poolBottom, 0); ms.mulPose(VecHelper.rotateX(90F)); @@ -118,8 +121,7 @@ public void render(@Nullable InfinityManaPoolBlockEntity pool, float partialTick RenderHelper.renderIconCropped( ms, buffer, uvStartX, uvStartY, uvEndX, uvEndY, - overlayIcon, 0xFFFFFF, alpha, light - ); + overlayIcon, 0xFFFFFF, alpha, light); ms.popPose(); } @@ -145,5 +147,4 @@ public void render(@Nullable InfinityManaPoolBlockEntity pool, float partialTick cartMaxMana = -1; cartBlock = null; } - } diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/InfinityTinyPotatoBlockEntityRender.java b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/InfinityTinyPotatoBlockEntityRender.java similarity index 90% rename from src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/InfinityTinyPotatoBlockEntityRender.java rename to integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/InfinityTinyPotatoBlockEntityRender.java index f93e9fbb..77e39238 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/InfinityTinyPotatoBlockEntityRender.java +++ b/integrations/botania/src/main/java/committee/nova/mods/avaritia_integration/integrations/botania/render/InfinityTinyPotatoBlockEntityRender.java @@ -1,9 +1,8 @@ -package committee.nova.mods.avaritia_integration.module.botania.render; +package committee.nova.mods.avaritia_integration.integrations.botania.botania.render; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.botania.entity.InfinityTinyPotatoBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.botania.botania.entity.InfinityTinyPotatoBlockEntity; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font.DisplayMode; import net.minecraft.client.renderer.MultiBufferSource; @@ -19,12 +18,17 @@ import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.HitResult.Type; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import vazkii.botania.common.helper.VecHelper; -import javax.annotation.Nonnull; import java.util.regex.Pattern; +import javax.annotation.Nonnull; + public class InfinityTinyPotatoBlockEntityRender implements BlockEntityRenderer { + public static final String DEFAULT = "default"; private static final Pattern ESCAPED = Pattern.compile("[^a-z0-9/._-]"); private final BlockRenderDispatcher blockRenderDispatcher; @@ -38,7 +42,8 @@ private static ResourceLocation taterLocation(String name) { } @Override - public void render(@Nonnull InfinityTinyPotatoBlockEntity potato, float partialTicks, PoseStack ms, @Nonnull MultiBufferSource buffers, int light, int overlay) { + public void render(@Nonnull InfinityTinyPotatoBlockEntity potato, float partialTicks, PoseStack ms, + @Nonnull MultiBufferSource buffers, int light, int overlay) { ms.pushPose(); // 基础数据 @@ -86,8 +91,8 @@ private void renderName(InfinityTinyPotatoBlockEntity potato, PoseStack ms, Mult HitResult pos = mc.hitResult; String name = potato.name.getString(); - if (Minecraft.renderNames() && !name.isEmpty() && pos != null && pos.getType() == Type.BLOCK - && potato.getBlockPos().equals(((BlockHitResult) pos).getBlockPos())) { + if (Minecraft.renderNames() && !name.isEmpty() && pos != null && pos.getType() == Type.BLOCK && + potato.getBlockPos().equals(((BlockHitResult) pos).getBlockPos())) { ms.pushPose(); ms.translate(0.0F, -0.6F, 0.0F); @@ -112,4 +117,4 @@ private void renderModel(PoseStack ms, VertexConsumer buffer, int light, int ove this.blockRenderDispatcher.getModelRenderer().renderModel(ms.last(), buffer, null, model, 1.0F, 1.0F, 1.0F, light, overlay); } -} \ No newline at end of file +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion.json new file mode 100644 index 00000000..81b4ba5a --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/asgard_dandelion" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion_floating.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion_floating.json new file mode 100644 index 00000000..d68909b5 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion_floating.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/asgard_dandelion_floating" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/infinity_mana_pool.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/infinity_mana_pool.json new file mode 100644 index 00000000..b27ce017 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/infinity_mana_pool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/infinity_mana_pool" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/infinity_potato.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/infinity_potato.json new file mode 100644 index 00000000..4c16d545 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/infinity_potato.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/infinity_potato" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/potted_asgard_dandelion.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/potted_asgard_dandelion.json new file mode 100644 index 00000000..bca0ab5e --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/potted_asgard_dandelion.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/potted_asgard_dandelion" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/potted_soarleander.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/potted_soarleander.json new file mode 100644 index 00000000..30abbaab --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/potted_soarleander.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/potted_soarleander" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/soarleander.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/soarleander.json new file mode 100644 index 00000000..bc177922 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/soarleander.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/soarleander" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/soarleander_floating.json b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/soarleander_floating.json new file mode 100644 index 00000000..ad633020 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/blockstates/soarleander_floating.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/botania/soarleander_floating" + } + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion.json new file mode 100644 index 00000000..f3fd08e5 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion.json @@ -0,0 +1,6 @@ +{ + "parent": "botania:block/shapes/cross", + "textures": { + "cross": "avaritia_integration:item/botania/asgard_dandelion" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion_floating.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion_floating.json new file mode 100644 index 00000000..6b5fcab8 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion_floating.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/block", + "loader": "botania:floating_flower", + "flower": { + "parent": "avaritia_integration:block/botania/asgard_dandelion" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool.json new file mode 100644 index 00000000..937244b1 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool.json @@ -0,0 +1,502 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench, made by TedXenon", + "parent": "block/block", + "texture_size": [64, 64], + "textures": { + "0": "avaritia_integration:block/botania/infinity_mana_pool", + "particle": "avaritia_integration:block/botania/infinity_mana_pool" + }, + "elements": [ + { + "name": "east", + "from": [14, 2, 2], + "to": [16, 8, 14], + "faces": { + "east": { + "uv": [8.5, 0, 11.5, 1.5], + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "west": { "uv": [11.5, 1.5, 8.5, 3], "texture": "#0", "tintindex": 0 }, + "up": { "uv": [3.5, 3.5, 4, 6.5], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "west", + "from": [0, 2, 2], + "to": [2, 8, 14], + "faces": { + "east": { "uv": [3.5, 1.5, 0.5, 3], "texture": "#0", "tintindex": 0 }, + "west": { + "uv": [0.5, 0, 3.5, 1.5], + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 3.5, 0.5, 6.5], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "north", + "from": [0, 2, 0], + "to": [16, 8, 2], + "faces": { + "north": { + "uv": [12, 0, 16, 1.5], + "texture": "#0", + "cullface": "north", + "tintindex": 0 + }, + "east": { + "uv": [11.5, 0, 12, 1.5], + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "south": { "uv": [16, 1.5, 12, 3], "texture": "#0", "tintindex": 0 }, + "west": { + "uv": [0, 0, 0.5, 1.5], + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 3, 4, 3.5], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "south", + "from": [0, 2, 14], + "to": [16, 8, 16], + "faces": { + "north": { "uv": [8, 1.5, 4, 3], "texture": "#0", "tintindex": 0 }, + "east": { + "uv": [8, 0, 8.5, 1.5], + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "south": { + "uv": [4, 0, 8, 1.5], + "texture": "#0", + "cullface": "south", + "tintindex": 0 + }, + "west": { + "uv": [3.5, 0, 4, 1.5], + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 6.5, 4, 7], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "base", + "from": [0, 0, 0], + "to": [16, 2, 16], + "faces": { + "north": { + "uv": [8, 3.5, 4, 3], + "texture": "#0", + "cullface": "north", + "tintindex": 0 + }, + "east": { + "uv": [7.5, 3, 8, 7], + "rotation": 90, + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "south": { + "uv": [4, 6.5, 8, 7], + "texture": "#0", + "cullface": "south", + "tintindex": 0 + }, + "west": { + "uv": [4.5, 7, 4, 3], + "rotation": 90, + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 3, 4, 7], "texture": "#0", "tintindex": 0 }, + "down": { + "uv": [4, 7, 8, 3], + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_b", + "from": [6, 2.99, -1], + "to": [10, 8.99, 1], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "east": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "south": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "west": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "texture": "#0" } + } + }, + { + "name": "side_b", + "from": [-1, 2.99, 6], + "to": [1, 8.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "east": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "south": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "west": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "rotation": 270, "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "rotation": 90, "texture": "#0" } + } + }, + { + "name": "side_b", + "from": [6, 2.99, 15], + "to": [10, 8.99, 17], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "east": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "south": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "west": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "rotation": 180, "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "rotation": 180, "texture": "#0" } + } + }, + { + "name": "side_b", + "from": [15, 2.99, 6], + "to": [17, 8.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "east": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "south": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "west": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "rotation": 90, "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "rotation": 270, "texture": "#0" } + } + }, + { + "name": "corner", + "from": [7, 2.99, -3.5], + "to": [9, 10.99, -1.5], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "east": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "south": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "west": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "texture": "#0" } + } + }, + { + "name": "corner", + "from": [-3.5, 2.99, 7], + "to": [-1.5, 10.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "east": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "south": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "west": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "rotation": 270, "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "rotation": 90, "texture": "#0" } + } + }, + { + "name": "corner", + "from": [7, 2.99, 17.5], + "to": [9, 10.99, 19.5], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "east": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "south": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "west": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "rotation": 180, "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "rotation": 180, "texture": "#0" } + } + }, + { + "name": "corner", + "from": [17.5, 2.99, 7], + "to": [19.5, 10.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "east": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "south": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "west": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "rotation": 90, "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "rotation": 270, "texture": "#0" } + } + }, + { + "name": "base", + "from": [-4, -0.01, 7], + "to": [-2, 1.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [13, 3, 13.5, 3.5], + "rotation": 270, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "rotation": 90, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [6, -0.01, 15], + "to": [10, 1.99, 17], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "east": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "west": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [12.5, 3.5, 13.5, 4], + "rotation": 180, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "rotation": 180, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "base", + "from": [7, -0.01, 18], + "to": [9, 1.99, 20], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [13, 3, 13.5, 3.5], + "rotation": 180, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "rotation": 180, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [15, -0.01, 6], + "to": [17, 1.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [12.5, 3.5, 13.5, 4], + "rotation": 90, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "rotation": 270, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "base", + "from": [18, -0.01, 7], + "to": [20, 1.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [13, 3, 13.5, 3.5], + "rotation": 90, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "rotation": 270, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [6, -0.01, -1], + "to": [10, 1.99, 1], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "east": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "west": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "base", + "from": [7, -0.01, -4], + "to": [9, 1.99, -2], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [-1, -0.01, 6], + "to": [1, 1.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [12.5, 3.5, 13.5, 4], + "rotation": 270, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "rotation": 90, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + } + ], + "groups": [ + 0, + 1, + 2, + 3, + 4, + { + "name": "side", + "origin": [8, 8, 8], + "color": 0, + "children": [5, 6, 7, 8] + }, + { + "name": "corners", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [9] + }, + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [10] + }, + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [11] + }, + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [12] + } + ] + }, + { + "name": "tint", + "origin": [8, 0, 8], + "color": 0, + "children": [13, 14, 15, 16, 17, 18, 19, 20] + } + ] +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool_full.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool_full.json new file mode 100644 index 00000000..a312cc53 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool_full.json @@ -0,0 +1,513 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench, made by TedXenon", + "parent": "block/block", + "render_type": "translucent", + "texture_size": [64, 64], + "textures": { + "0": "avaritia_integration:block/botania/infinity_mana_pool", + "particle": "avaritia_integration:block/botania/infinity_mana_pool", + "1": "botania:block/mana_water" + }, + "elements": [ + { + "name": "east", + "from": [14, 2, 2], + "to": [16, 8, 14], + "faces": { + "east": { + "uv": [8.5, 0, 11.5, 1.5], + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "west": { "uv": [11.5, 1.5, 8.5, 3], "texture": "#0", "tintindex": 0 }, + "up": { "uv": [3.5, 3.5, 4, 6.5], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "west", + "from": [0, 2, 2], + "to": [2, 8, 14], + "faces": { + "east": { "uv": [3.5, 1.5, 0.5, 3], "texture": "#0", "tintindex": 0 }, + "west": { + "uv": [0.5, 0, 3.5, 1.5], + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 3.5, 0.5, 6.5], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "north", + "from": [0, 2, 0], + "to": [16, 8, 2], + "faces": { + "north": { + "uv": [12, 0, 16, 1.5], + "texture": "#0", + "cullface": "north", + "tintindex": 0 + }, + "east": { + "uv": [11.5, 0, 12, 1.5], + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "south": { "uv": [16, 1.5, 12, 3], "texture": "#0", "tintindex": 0 }, + "west": { + "uv": [0, 0, 0.5, 1.5], + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 3, 4, 3.5], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "south", + "from": [0, 2, 14], + "to": [16, 8, 16], + "faces": { + "north": { "uv": [8, 1.5, 4, 3], "texture": "#0", "tintindex": 0 }, + "east": { + "uv": [8, 0, 8.5, 1.5], + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "south": { + "uv": [4, 0, 8, 1.5], + "texture": "#0", + "cullface": "south", + "tintindex": 0 + }, + "west": { + "uv": [3.5, 0, 4, 1.5], + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 6.5, 4, 7], "texture": "#0", "tintindex": 0 } + } + }, + { + "name": "base", + "from": [0, 0, 0], + "to": [16, 2, 16], + "faces": { + "north": { + "uv": [8, 3.5, 4, 3], + "texture": "#0", + "cullface": "north", + "tintindex": 0 + }, + "east": { + "uv": [7.5, 3, 8, 7], + "rotation": 90, + "texture": "#0", + "cullface": "east", + "tintindex": 0 + }, + "south": { + "uv": [4, 6.5, 8, 7], + "texture": "#0", + "cullface": "south", + "tintindex": 0 + }, + "west": { + "uv": [4.5, 7, 4, 3], + "rotation": 90, + "texture": "#0", + "cullface": "west", + "tintindex": 0 + }, + "up": { "uv": [0, 3, 4, 7], "texture": "#0", "tintindex": 0 }, + "down": { + "uv": [4, 7, 8, 3], + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "mana", + "from": [2, 7, 2], + "to": [14, 7, 14], + "faces": { + "up": { "uv": [2, 2, 14, 14], "texture": "#1" } + } + }, + { + "name": "side_b", + "from": [6, 2.99, -1], + "to": [10, 8.99, 1], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "east": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "south": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "west": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "texture": "#0" } + } + }, + { + "name": "side_b", + "from": [-1, 2.99, 6], + "to": [1, 8.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "east": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "south": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "west": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "rotation": 270, "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "rotation": 90, "texture": "#0" } + } + }, + { + "name": "side_b", + "from": [6, 2.99, 15], + "to": [10, 8.99, 17], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "east": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "south": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "west": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "rotation": 180, "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "rotation": 180, "texture": "#0" } + } + }, + { + "name": "side_b", + "from": [15, 2.99, 6], + "to": [17, 8.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [11, 3, 11.5, 4.5], "texture": "#0" }, + "east": { "uv": [10, 3, 11, 4.5], "texture": "#0" }, + "south": { "uv": [11.5, 3, 11, 4.5], "texture": "#0" }, + "west": { "uv": [11.5, 3, 12.5, 4.5], "texture": "#0" }, + "up": { "uv": [10, 4.5, 11, 5], "rotation": 90, "texture": "#0" }, + "down": { "uv": [11, 4.5, 12, 5], "rotation": 270, "texture": "#0" } + } + }, + { + "name": "corner", + "from": [7, 2.99, -3.5], + "to": [9, 10.99, -1.5], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "east": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "south": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "west": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "texture": "#0" } + } + }, + { + "name": "corner", + "from": [-3.5, 2.99, 7], + "to": [-1.5, 10.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "east": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "south": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "west": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "rotation": 270, "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "rotation": 90, "texture": "#0" } + } + }, + { + "name": "corner", + "from": [7, 2.99, 17.5], + "to": [9, 10.99, 19.5], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "east": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "south": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "west": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "rotation": 180, "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "rotation": 180, "texture": "#0" } + } + }, + { + "name": "corner", + "from": [17.5, 2.99, 7], + "to": [19.5, 10.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [8.5, 3, 9, 5], "texture": "#0" }, + "east": { "uv": [8, 3, 8.5, 5], "texture": "#0" }, + "south": { "uv": [9.5, 3, 10, 5], "texture": "#0" }, + "west": { "uv": [9, 3, 9.5, 5], "texture": "#0" }, + "up": { "uv": [8.5, 5, 8, 5.5], "rotation": 90, "texture": "#0" }, + "down": { "uv": [8.5, 5, 9, 5.5], "rotation": 270, "texture": "#0" } + } + }, + { + "name": "base", + "from": [-4, -0.01, 7], + "to": [-2, 1.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [13, 3, 13.5, 3.5], + "rotation": 270, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "rotation": 90, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [6, -0.01, 15], + "to": [10, 1.99, 17], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "east": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "west": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [12.5, 3.5, 13.5, 4], + "rotation": 180, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "rotation": 180, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "base", + "from": [7, -0.01, 18], + "to": [9, 1.99, 20], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [13, 3, 13.5, 3.5], + "rotation": 180, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "rotation": 180, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [15, -0.01, 6], + "to": [17, 1.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [12.5, 3.5, 13.5, 4], + "rotation": 90, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "rotation": 270, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "base", + "from": [18, -0.01, 7], + "to": [20, 1.99, 9], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [13, 3, 13.5, 3.5], + "rotation": 90, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "rotation": 270, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [6, -0.01, -1], + "to": [10, 1.99, 1], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "east": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { + "uv": [12.5, 3.5, 13.5, 4], + "texture": "#0", + "tintindex": 0 + }, + "west": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "base", + "from": [7, -0.01, -4], + "to": [9, 1.99, -2], + "rotation": { "angle": 45, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0 }, + "up": { "uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0 }, + "down": { + "uv": [13.5, 3.5, 14, 3], + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + }, + { + "name": "side_a", + "from": [-1, -0.01, 6], + "to": [1, 1.99, 10], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 0, 8] }, + "faces": { + "north": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "east": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "south": { "uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0 }, + "west": { "uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0 }, + "up": { + "uv": [12.5, 3.5, 13.5, 4], + "rotation": 270, + "texture": "#0", + "tintindex": 0 + }, + "down": { + "uv": [13.5, 4, 14.5, 3.5], + "rotation": 90, + "texture": "#0", + "cullface": "down", + "tintindex": 0 + } + } + } + ], + "groups": [ + 0, + 1, + 2, + 3, + 4, + 5, + { + "name": "side", + "origin": [8, 8, 8], + "color": 0, + "children": [6, 7, 8, 9] + }, + { + "name": "corners", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [10] + }, + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [11] + }, + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [12] + }, + { + "name": "corner", + "origin": [8, 8, 8], + "color": 0, + "children": [13] + } + ] + }, + { + "name": "tint", + "origin": [8, 0, 8], + "color": 0, + "children": [14, 15, 16, 17, 18, 19, 20, 21] + } + ] +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_potato.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_potato.json new file mode 100644 index 00000000..8d750270 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_potato.json @@ -0,0 +1,25 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "parent": "block/block", + "texture_size": [32, 32], + "textures": { + "0": "avaritia_integration:block/botania/infinity_potato", + "particle": "avaritia_integration:block/botania/infinity_potato" + }, + "elements": [ + { + "name": "main", + "from": [4, 0, 4], + "to": [12, 12, 12], + "faces": { + "north": { "uv": [4, 4, 8, 10], "texture": "#0" }, + "east": { "uv": [0, 4, 4, 10], "texture": "#0" }, + "south": { "uv": [12, 4, 16, 10], "texture": "#0" }, + "west": { "uv": [8, 4, 12, 10], "texture": "#0" }, + "up": { "uv": [4, 0, 8, 4], "texture": "#0" }, + "down": { "uv": [8, 0, 12, 4], "texture": "#0" } + } + } + ] +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/potted_asgard_dandelion.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/potted_asgard_dandelion.json new file mode 100644 index 00000000..efee781b --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/potted_asgard_dandelion.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "render_type": "minecraft:cutout", + "textures": { + "plant": "avaritia_integration:item/botania/asgard_dandelion" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/potted_soarleander.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/potted_soarleander.json new file mode 100644 index 00000000..7046cdbb --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/potted_soarleander.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "render_type": "minecraft:cutout", + "textures": { + "plant": "avaritia_integration:item/botania/soarleander" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander.json new file mode 100644 index 00000000..c9bd4956 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander.json @@ -0,0 +1,6 @@ +{ + "parent": "botania:block/shapes/cross", + "textures": { + "cross": "avaritia_integration:item/botania/soarleander" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander_floating.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander_floating.json new file mode 100644 index 00000000..fbc29b0e --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander_floating.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/block", + "loader": "botania:floating_flower", + "flower": { + "parent": "avaritia_integration:block/botania/soarleander" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/alpha_spark.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/alpha_spark.json new file mode 100644 index 00000000..b9a48ecf --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/alpha_spark.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/botania/alpha_spark" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion.json new file mode 100644 index 00000000..7367d83d --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/botania/asgard_dandelion" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion_floating.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion_floating.json new file mode 100644 index 00000000..b74b647e --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion_floating.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/botania/asgard_dandelion_floating" +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/infinity_mana_pool.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/infinity_mana_pool.json new file mode 100644 index 00000000..96b43a9a --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/infinity_mana_pool.json @@ -0,0 +1,11 @@ +{ + "parent": "avaritia_integration:block/botania/infinity_mana_pool", + "overrides": [ + { + "model": "avaritia_integration:block/botania/infinity_mana_pool_full", + "predicate": { + "botania:full": 1.0 + } + } + ] +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/infinity_potato.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/infinity_potato.json new file mode 100644 index 00000000..76c933f8 --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/infinity_potato.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/botania/infinity_potato" +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/soarleander.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/soarleander.json new file mode 100644 index 00000000..f63fe79d --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/soarleander.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/botania/soarleander" + } +} diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/soarleander_floating.json b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/soarleander_floating.json new file mode 100644 index 00000000..710a2bee --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/models/item/soarleander_floating.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/botania/soarleander_floating" +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png rename to integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png.mcmeta b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png.mcmeta similarity index 97% rename from src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png.mcmeta rename to integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png.mcmeta index 711b8b73..8188be08 100644 --- a/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png.mcmeta +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_mana_pool.png.mcmeta @@ -4,4 +4,4 @@ "interpolate": true, "frames": [0, 1] } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png rename to integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png.mcmeta b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png.mcmeta similarity index 97% rename from src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png.mcmeta rename to integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png.mcmeta index 711b8b73..8188be08 100644 --- a/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png.mcmeta +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/block/botania/infinity_potato.png.mcmeta @@ -4,4 +4,4 @@ "interpolate": true, "frames": [0, 1] } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png rename to integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png.mcmeta b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png.mcmeta new file mode 100644 index 00000000..059759dc --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frames": [0, 1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 0] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png rename to integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png diff --git a/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png.mcmeta b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/botania/soarleander.png b/integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/soarleander.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/botania/soarleander.png rename to integrations/botania/src/main/resources/assets/avaritia_integration/textures/item/botania/soarleander.png diff --git a/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/block/generating_special_flowers.json b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/block/generating_special_flowers.json new file mode 100644 index 00000000..c130fefd --- /dev/null +++ b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/block/generating_special_flowers.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "avaritia_integration:asgard_dandelion", + "avaritia_integration:soarleander" + ] +} diff --git a/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/block/special_floating_flowers.json b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/block/special_floating_flowers.json new file mode 100644 index 00000000..86000737 --- /dev/null +++ b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/block/special_floating_flowers.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "avaritia_integration:asgard_dandelion_floating", + "avaritia_integration:soarleander_floating" + ] +} diff --git a/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/item/generating_special_flowers.json b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/item/generating_special_flowers.json new file mode 100644 index 00000000..c130fefd --- /dev/null +++ b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/item/generating_special_flowers.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "avaritia_integration:asgard_dandelion", + "avaritia_integration:soarleander" + ] +} diff --git a/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/item/special_floating_flowers.json b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/item/special_floating_flowers.json new file mode 100644 index 00000000..86000737 --- /dev/null +++ b/integrations/botania/src/main/resources/integration_packs/server_data/data/botania/tags/item/special_floating_flowers.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "avaritia_integration:asgard_dandelion_floating", + "avaritia_integration:soarleander_floating" + ] +} diff --git a/integrations/botania/src/main/resources/integration_packs/server_data/data/minecraft/tags/blocks/flower_pots.json b/integrations/botania/src/main/resources/integration_packs/server_data/data/minecraft/tags/blocks/flower_pots.json new file mode 100644 index 00000000..605413cc --- /dev/null +++ b/integrations/botania/src/main/resources/integration_packs/server_data/data/minecraft/tags/blocks/flower_pots.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "avaritia_integration:potted_asgard_dandelion", + "avaritia_integration:potted_soarleander" + ] +} diff --git a/integrations/botania/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/botania/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..7a8991d7 --- /dev/null +++ b/integrations/botania/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration Botania Data" + } +} diff --git a/integrations/botania/src/main/templates/META-INF/neoforge.mods.toml b/integrations/botania/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/botania/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/create/build.gradle b/integrations/create/build.gradle new file mode 100644 index 00000000..5c5f96bb --- /dev/null +++ b/integrations/create/build.gradle @@ -0,0 +1,11 @@ +ext.ai_mod_id = 'avaritia_integration_create' +ext.ai_mod_name = 'Avaritia Integration Create' +ext.ai_mod_description = 'Avaritia Integration module for Create.' +ext.ai_run_directory = 'integrations/create' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.create +} diff --git a/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/AICreateIntegrationMod.java b/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/AICreateIntegrationMod.java new file mode 100644 index 00000000..0f9224fe --- /dev/null +++ b/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/AICreateIntegrationMod.java @@ -0,0 +1,25 @@ +package committee.nova.mods.avaritia_integration.integrations.create; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AICreateIntegrationMod.MOD_ID) +public final class AICreateIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_create"; + private static final String DEPENDENCY_MOD_ID = "create"; + + public AICreateIntegrationMod(IEventBus bus, ModContainer modContainer) { + if (IntegrationRuntime.shouldLoad(MOD_ID, this)) IntegrationRuntime.load(MOD_ID, bus, new CreateModule()); + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/CreateModule.java b/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/CreateModule.java new file mode 100644 index 00000000..3ecb1bb4 --- /dev/null +++ b/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/CreateModule.java @@ -0,0 +1,24 @@ +package committee.nova.mods.avaritia_integration.integrations.create; + +import committee.nova.mods.avaritia_integration.integrations.create.registry.CreateIntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; + +public final class CreateModule implements Module { + + public static final String MOD_ID = "create"; + + @Override + public void init(IEventBus registryBus) { + CreateIntegrationItems.REGISTRY.register(registryBus); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + output.accept(CreateIntegrationItems.CREATIVE_MECHANISM.get()); + output.accept(CreateIntegrationItems.CREATIVE_COMPOUND.get()); + } +} diff --git a/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/registry/CreateIntegrationItems.java b/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/registry/CreateIntegrationItems.java new file mode 100644 index 00000000..63af32b9 --- /dev/null +++ b/integrations/create/src/main/java/committee/nova/mods/avaritia_integration/integrations/create/registry/CreateIntegrationItems.java @@ -0,0 +1,25 @@ +package committee.nova.mods.avaritia_integration.integrations.create.registry; + +import committee.nova.mods.avaritia.api.common.item.BaseItem; +import committee.nova.mods.avaritia.init.registry.ModRarities; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Supplier; + +public final class CreateIntegrationItems { + + public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); + + public static final DeferredItem CREATIVE_MECHANISM = register("creative_mechanism", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem CREATIVE_COMPOUND = register("creative_compound", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + + public static DeferredItem register(String id, Supplier obj) { + return REGISTRY.register(id, obj); + } +} diff --git a/integrations/create/src/main/resources/assets/avaritia_integration/models/item/creative_compound.json b/integrations/create/src/main/resources/assets/avaritia_integration/models/item/creative_compound.json new file mode 100644 index 00000000..3bb89b77 --- /dev/null +++ b/integrations/create/src/main/resources/assets/avaritia_integration/models/item/creative_compound.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/creative_compound" + } +} diff --git a/integrations/create/src/main/resources/assets/avaritia_integration/models/item/creative_mechanism.json b/integrations/create/src/main/resources/assets/avaritia_integration/models/item/creative_mechanism.json new file mode 100644 index 00000000..d725dc97 --- /dev/null +++ b/integrations/create/src/main/resources/assets/avaritia_integration/models/item/creative_mechanism.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/creative_mechanism" + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/creative_compound.png b/integrations/create/src/main/resources/assets/avaritia_integration/textures/item/items/creative_compound.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/creative_compound.png rename to integrations/create/src/main/resources/assets/avaritia_integration/textures/item/items/creative_compound.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/creative_mechanism.png b/integrations/create/src/main/resources/assets/avaritia_integration/textures/item/items/creative_mechanism.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/creative_mechanism.png rename to integrations/create/src/main/resources/assets/avaritia_integration/textures/item/items/creative_mechanism.png diff --git a/integrations/create/src/main/templates/META-INF/neoforge.mods.toml b/integrations/create/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/create/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/enderio/build.gradle b/integrations/enderio/build.gradle new file mode 100644 index 00000000..239b0d8b --- /dev/null +++ b/integrations/enderio/build.gradle @@ -0,0 +1,13 @@ +ext.ai_mod_id = 'avaritia_integration_enderio' +ext.ai_mod_name = 'Avaritia Integration Ender IO' +ext.ai_mod_description = 'Avaritia Integration module for Ender IO.' +ext.ai_run_directory = 'integrations/enderio' +ext.ai_data_output_root = 'src/generated/resources/integration_packs/server_data' +ext.ai_data_existing_root = 'src/main/resources/integration_packs/server_data' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.enderIo +} diff --git a/src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_grinding_ball.json b/integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_grinding_ball.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/advancement/recipes/misc/infinity_grinding_ball.json rename to integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/infinity_grinding_ball.json diff --git a/src/generated/resources/data/avaritia_integration/advancement/recipes/misc/neutron_grinding_ball.json b/integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/neutron_grinding_ball.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/advancement/recipes/misc/neutron_grinding_ball.json rename to integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/advancement/recipes/misc/neutron_grinding_ball.json diff --git a/src/generated/resources/data/avaritia_integration/recipe/infinity_grinding_ball.json b/integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_grinding_ball.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/recipe/infinity_grinding_ball.json rename to integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/infinity_grinding_ball.json diff --git a/src/generated/resources/data/avaritia_integration/recipe/neutron_grinding_ball.json b/integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/neutron_grinding_ball.json similarity index 100% rename from src/generated/resources/data/avaritia_integration/recipe/neutron_grinding_ball.json rename to integrations/enderio/src/generated/resources/integration_packs/server_data/data/avaritia_integration/recipe/neutron_grinding_ball.json diff --git a/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/AIEnderIOIntegrationMod.java b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/AIEnderIOIntegrationMod.java new file mode 100644 index 00000000..b85ff190 --- /dev/null +++ b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/AIEnderIOIntegrationMod.java @@ -0,0 +1,30 @@ +package committee.nova.mods.avaritia_integration.integrations.enderio; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.integrations.enderio.datagen.EnderIODataGen; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIEnderIOIntegrationMod.MOD_ID) +public final class AIEnderIOIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_enderio"; + private static final String DEPENDENCY_MOD_ID = "enderio"; + + public AIEnderIOIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration Ender IO Data"); + if (IntegrationRuntime.shouldLoad(MOD_ID, this) && IntegrationRuntime.load(MOD_ID, bus, new EnderIOModule())) { + bus.addListener(EnderIODataGen::gatherData); + } + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/EnderIOModule.java b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/EnderIOModule.java new file mode 100644 index 00000000..3dc33659 --- /dev/null +++ b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/EnderIOModule.java @@ -0,0 +1,25 @@ +package committee.nova.mods.avaritia_integration.integrations.enderio; + +import committee.nova.mods.avaritia_integration.integrations.enderio.registry.EnderIOIntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; + +public final class EnderIOModule implements Module { + + public static final String MOD_ID = "enderio"; + + @Override + public void init(IEventBus registryBus) { + EnderIOIntegrationItems.REGISTRY.register(registryBus); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + output.accept(EnderIOIntegrationItems.INFINITY_CAPACITOR.get()); + output.accept(EnderIOIntegrationItems.INFINITY_GRINDING_BALL.get()); + output.accept(EnderIOIntegrationItems.NEUTRON_GRINDING_BALL.get()); + } +} diff --git a/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/datagen/EnderIODataGen.java b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/datagen/EnderIODataGen.java new file mode 100644 index 00000000..1cb36f3d --- /dev/null +++ b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/datagen/EnderIODataGen.java @@ -0,0 +1,23 @@ +package committee.nova.mods.avaritia_integration.integrations.enderio.datagen; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.data.event.GatherDataEvent; + +import java.util.concurrent.CompletableFuture; + +public final class EnderIODataGen { + + private EnderIODataGen() {} + + public static void gatherData(GatherDataEvent event) { + if (!event.includeServer()) { + return; + } + DataGenerator generator = event.getGenerator(); + PackOutput output = generator.getPackOutput(); + CompletableFuture future = event.getLookupProvider(); + generator.addProvider(true, new EnderIORecipes(output, future)); + } +} diff --git a/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/datagen/EnderIORecipes.java b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/datagen/EnderIORecipes.java new file mode 100644 index 00000000..e70cc143 --- /dev/null +++ b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/datagen/EnderIORecipes.java @@ -0,0 +1,40 @@ +package committee.nova.mods.avaritia_integration.integrations.enderio.datagen; + +import committee.nova.mods.avaritia.init.registry.ModItems; +import committee.nova.mods.avaritia_integration.integrations.enderio.registry.EnderIOIntegrationItems; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.neoforged.neoforge.common.conditions.IConditionBuilder; + +import java.util.concurrent.CompletableFuture; + +public class EnderIORecipes extends RecipeProvider implements IConditionBuilder { + + public EnderIORecipes(PackOutput output, CompletableFuture registries) { + super(output, registries); + } + + @Override + protected void buildRecipes(RecipeOutput consumer) { + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, EnderIOIntegrationItems.INFINITY_GRINDING_BALL.get()) + .pattern(" a ") + .pattern("aaa") + .pattern(" a ") + .define('a', ModItems.infinity_ingot.get()) + .unlockedBy("has_item", has(ModItems.infinity_ingot.get())) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, EnderIOIntegrationItems.NEUTRON_GRINDING_BALL.get()) + .pattern(" a ") + .pattern("aaa") + .pattern(" a ") + .define('a', ModItems.neutron_ingot.get()) + .unlockedBy("has_item", has(ModItems.neutron_ingot.get())) + .save(consumer); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/item/InfinityCapacitorItem.java b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/item/InfinityCapacitorItem.java similarity index 92% rename from src/main/java/committee/nova/mods/avaritia_integration/module/enderio/item/InfinityCapacitorItem.java rename to integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/item/InfinityCapacitorItem.java index a06f0548..feb8058e 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/item/InfinityCapacitorItem.java +++ b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/item/InfinityCapacitorItem.java @@ -1,6 +1,5 @@ -package committee.nova.mods.avaritia_integration.module.enderio.item; +package committee.nova.mods.avaritia_integration.integrations.enderio.item; -import com.enderio.enderio.foundation.block.entity.MachineInstallable; import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.Item; @@ -9,6 +8,8 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import com.enderio.enderio.foundation.block.entity.MachineInstallable; + public class InfinityCapacitorItem extends Item { public InfinityCapacitorItem(Properties properties) { @@ -25,5 +26,4 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { return super.onItemUseFirst(stack, context); } } - } diff --git a/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/registry/EnderIOIntegrationItems.java b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/registry/EnderIOIntegrationItems.java new file mode 100644 index 00000000..51127662 --- /dev/null +++ b/integrations/enderio/src/main/java/committee/nova/mods/avaritia_integration/integrations/enderio/registry/EnderIOIntegrationItems.java @@ -0,0 +1,32 @@ +package committee.nova.mods.avaritia_integration.integrations.enderio.registry; + +import committee.nova.mods.avaritia.api.common.item.BaseItem; +import committee.nova.mods.avaritia.init.registry.ModRarities; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.enderio.item.InfinityCapacitorItem; + +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +import com.enderio.enderio.api.capacitor.CapacitorData; +import com.enderio.enderio.init.EIODataComponents; + +import java.util.function.Supplier; + +public final class EnderIOIntegrationItems { + + public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); + + public static final DeferredItem INFINITY_CAPACITOR = register("infinity_capacitor", + () -> new InfinityCapacitorItem(new Item.Properties().rarity(ModRarities.EPIC) + .component(EIODataComponents.CAPACITOR_DATA, CapacitorData.simple(9.999999046325684F)))); + public static final DeferredItem INFINITY_GRINDING_BALL = register("infinity_grinding_ball", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem NEUTRON_GRINDING_BALL = register("neutron_grinding_ball", + () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); + + public static DeferredItem register(String id, Supplier obj) { + return REGISTRY.register(id, obj); + } +} diff --git a/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/infinity_capacitor.json b/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/infinity_capacitor.json new file mode 100644 index 00000000..b4283a71 --- /dev/null +++ b/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/infinity_capacitor.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/infinity_capacitor", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/infinity_grinding_ball.json b/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/infinity_grinding_ball.json new file mode 100644 index 00000000..40773d25 --- /dev/null +++ b/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/infinity_grinding_ball.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/infinity_grinding_ball", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/neutron_grinding_ball.json b/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/neutron_grinding_ball.json new file mode 100644 index 00000000..d35e934c --- /dev/null +++ b/integrations/enderio/src/main/resources/assets/avaritia_integration/models/item/neutron_grinding_ball.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/neutron_grinding_ball", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_capacitor.png b/integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_capacitor.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_capacitor.png rename to integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_capacitor.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png b/integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png rename to integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png diff --git a/integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png.mcmeta b/integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png.mcmeta new file mode 100644 index 00000000..2291883f --- /dev/null +++ b/integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frames": [{ "index": 0, "time": 16 }, { "index": 1, "time": 16 }] + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/neutron_grinding_ball.png b/integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/neutron_grinding_ball.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/neutron_grinding_ball.png rename to integrations/enderio/src/main/resources/assets/avaritia_integration/textures/item/items/neutron_grinding_ball.png diff --git a/integrations/enderio/src/main/resources/integration_packs/server_data/data/enderio/data_maps/item/grinding_ball.json b/integrations/enderio/src/main/resources/integration_packs/server_data/data/enderio/data_maps/item/grinding_ball.json new file mode 100644 index 00000000..4f476823 --- /dev/null +++ b/integrations/enderio/src/main/resources/integration_packs/server_data/data/enderio/data_maps/item/grinding_ball.json @@ -0,0 +1,17 @@ +{ + "values": { + "avaritia_integration:neutron_grinding_ball": { + "BonusMultiplier": 1.0, + "Durability": 40000, + "OutputMultiplier": 5.0, + "PowerUse": 0.1 + }, + + "avaritia_integration:infinity_grinding_ball": { + "BonusMultiplier": 5.0, + "Durability": 2147483647, + "OutputMultiplier": 5.0, + "PowerUse": 0.01 + } + } +} diff --git a/integrations/enderio/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/enderio/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..43da8d41 --- /dev/null +++ b/integrations/enderio/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration Ender IO Data" + } +} diff --git a/integrations/enderio/src/main/templates/META-INF/neoforge.mods.toml b/integrations/enderio/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/enderio/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/ifeu/build.gradle b/integrations/ifeu/build.gradle new file mode 100644 index 00000000..ab769acb --- /dev/null +++ b/integrations/ifeu/build.gradle @@ -0,0 +1,16 @@ +ext.ai_mod_id = 'avaritia_integration_ifeu' +ext.ai_mod_name = 'Avaritia Integration IFEU' +ext.ai_mod_description = 'Avaritia Integration module for Industrial Foregoing Extra Upgrades.' +ext.ai_run_directory = 'integrations/ifeu' +ext.ai_data_output_root = 'src/generated/resources/integration_packs/server_data' +ext.ai_data_existing_root = 'src/main/resources/integration_packs/server_data' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.titanium + implementation forge.industrialForegoing + implementation forge.industrialForegoingExtraUpgrades + implementation project(':integrations:industrialforegoing') +} diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_blaze_cube.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_blaze_cube.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_crystal_matrix.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_crystal_matrix.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_infinity.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_infinity.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_neutron.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_neutron.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/energy_addon_neutron.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_blaze_cube.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_blaze_cube.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_crystal_matrix.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_crystal_matrix.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_infinity.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_infinity.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_neutron.json b/integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_neutron.json rename to integrations/ifeu/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/energy_addon_neutron.json diff --git a/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/AIIFEUIntegrationMod.java b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/AIIFEUIntegrationMod.java new file mode 100644 index 00000000..6111f2cd --- /dev/null +++ b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/AIIFEUIntegrationMod.java @@ -0,0 +1,30 @@ +package committee.nova.mods.avaritia_integration.integrations.ifeu; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.integrations.ifeu.datagen.IFEUDataGen; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIIFEUIntegrationMod.MOD_ID) +public final class AIIFEUIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_ifeu"; + private static final String DEPENDENCY_MOD_ID = "ifeu"; + + public AIIFEUIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration IFEU Data"); + if (IntegrationRuntime.shouldLoad(MOD_ID, this) && IntegrationRuntime.load(MOD_ID, bus, new IFEUModule())) { + bus.addListener(IFEUDataGen::gatherData); + } + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/IFEUModule.java b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/IFEUModule.java new file mode 100644 index 00000000..dde73f02 --- /dev/null +++ b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/IFEUModule.java @@ -0,0 +1,25 @@ +package committee.nova.mods.avaritia_integration.integrations.ifeu; + +import committee.nova.mods.avaritia_integration.integrations.ifeu.registry.IFEUIntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; + +public class IFEUModule implements Module { + + public static final String MOD_ID = "ifeu"; + + @Override + public void init(IEventBus registryBus) { + IFEUIntegrationItems.ITEMS.register(registryBus); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + IFEUIntegrationItems.ITEMS.getEntries().forEach(itemDeferredHolder -> { + output.accept(itemDeferredHolder.get()); + }); + } +} diff --git a/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/datagen/IFEUDataGen.java b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/datagen/IFEUDataGen.java new file mode 100644 index 00000000..1bfa98c2 --- /dev/null +++ b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/datagen/IFEUDataGen.java @@ -0,0 +1,23 @@ +package committee.nova.mods.avaritia_integration.integrations.ifeu.datagen; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.data.event.GatherDataEvent; + +import java.util.concurrent.CompletableFuture; + +public final class IFEUDataGen { + + private IFEUDataGen() {} + + public static void gatherData(GatherDataEvent event) { + if (!event.includeServer()) { + return; + } + DataGenerator generator = event.getGenerator(); + PackOutput output = generator.getPackOutput(); + CompletableFuture future = event.getLookupProvider(); + generator.addProvider(true, new IFEURecipes(output, future)); + } +} diff --git a/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/datagen/IFEURecipes.java b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/datagen/IFEURecipes.java new file mode 100644 index 00000000..eea94008 --- /dev/null +++ b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/datagen/IFEURecipes.java @@ -0,0 +1,27 @@ +package committee.nova.mods.avaritia_integration.integrations.ifeu.datagen; + +import committee.nova.mods.avaritia_integration.integrations.ifeu.registry.IFEUIntegrationItems; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.RecipeProvider; + +import com.hrznstudio.titanium.api.IRecipeProvider; + +import java.util.concurrent.CompletableFuture; + +public class IFEURecipes extends RecipeProvider { + + public IFEURecipes(PackOutput output, CompletableFuture registries) { + super(output, registries); + } + + @Override + protected void buildRecipes(RecipeOutput consumer) { + ((IRecipeProvider) IFEUIntegrationItems.ENERGY_ADDON_BLAZE_CUBE.get()).registerRecipe(consumer); + ((IRecipeProvider) IFEUIntegrationItems.ENERGY_ADDON_CRYSTAL_MATRIX.get()).registerRecipe(consumer); + ((IRecipeProvider) IFEUIntegrationItems.ENERGY_ADDON_NEUTRON.get()).registerRecipe(consumer); + ((IRecipeProvider) IFEUIntegrationItems.ENERGY_ADDON_INFINITY.get()).registerRecipe(consumer); + } +} diff --git a/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/registry/IFEUIntegrationItems.java b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/registry/IFEUIntegrationItems.java new file mode 100644 index 00000000..9dfb9c89 --- /dev/null +++ b/integrations/ifeu/src/main/java/committee/nova/mods/avaritia_integration/integrations/ifeu/registry/IFEUIntegrationItems.java @@ -0,0 +1,142 @@ +package committee.nova.mods.avaritia_integration.integrations.ifeu.registry; + +import committee.nova.mods.avaritia.init.registry.ModItems; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.init.registry.AIItems; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry.IndustrialForegoingIntegrationFluids; + +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.material.Fluid; +import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.fluids.FluidStack; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.yxiao233.ifeu.api.item.EnergyAddonItem; +import net.yxiao233.ifeu.common.registry.IFEUItems; + +import com.buuz135.industrial.module.ModuleCore; +import com.buuz135.industrial.recipe.DissolutionChamberRecipe; +import com.buuz135.industrial.utils.IndustrialTags; +import com.google.common.base.Supplier; + +import java.util.List; +import java.util.Optional; + +public class IFEUIntegrationItems { + + public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); + public static DeferredHolder ENERGY_ADDON_BLAZE_CUBE = ITEMS + .register("energy_addon_blaze_cube", () -> new EnergyAddonItem(7, IFEUItems.TAB_ADDONS) { + + @Override + public void registerRecipe(RecipeOutput recipeOutput) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(IndustrialTags.Items.PLASTIC), + tagValue(IndustrialTags.Items.PLASTIC), + itemValue(AIItems.BLAZE_CUBE_GEAR.get().getDefaultInstance()), + itemValue(AIItems.BLAZE_CUBE_GEAR.get().getDefaultInstance())), + new FluidStack(ModuleCore.ETHER.getSourceFluid(), 1000), 100, recipeOutput); + } + }); + public static DeferredHolder ENERGY_ADDON_CRYSTAL_MATRIX = ITEMS + .register("energy_addon_crystal_matrix", () -> new EnergyAddonItem(8, IFEUItems.TAB_ADDONS) { + + @Override + public void registerRecipe(RecipeOutput recipeOutput) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(IndustrialTags.Items.PLASTIC), + tagValue(IndustrialTags.Items.PLASTIC), + itemValue(AIItems.CRYSTAL_MATRIX_GEAR.get().getDefaultInstance()), + itemValue(AIItems.CRYSTAL_MATRIX_GEAR.get().getDefaultInstance())), + new FluidStack(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid(), 1000), + 200, recipeOutput); + } + }); + public static DeferredHolder ENERGY_ADDON_NEUTRON = ITEMS.register("energy_addon_neutron", + () -> new EnergyAddonItem(9, IFEUItems.TAB_ADDONS) { + + @Override + public void registerRecipe(RecipeOutput recipeOutput) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(IndustrialTags.Items.PLASTIC), + tagValue(IndustrialTags.Items.PLASTIC), + itemValue(ModItems.neutron_gear.get().getDefaultInstance()), + itemValue(ModItems.neutron_gear.get().getDefaultInstance())), + new FluidStack(IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid(), 1000), + 300, recipeOutput); + } + }); + public static DeferredHolder ENERGY_ADDON_INFINITY = ITEMS.register("energy_addon_infinity", + () -> new EnergyAddonItem(10, IFEUItems.TAB_ADDONS) { + + @Override + public void registerRecipe(RecipeOutput recipeOutput) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(IndustrialTags.Items.PLASTIC), + tagValue(IndustrialTags.Items.PLASTIC), + itemValue(AIItems.INFINITY_GEAR.get().getDefaultInstance()), + itemValue(AIItems.INFINITY_GEAR.get().getDefaultInstance())), + new FluidStack(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid(), 2000), + 400, recipeOutput); + } + }); + + public static DeferredHolder registerEnergyAddon(String prefix, + DeferredHolder input, + Supplier> fluid, + int amount, int processingTime) { + return ITEMS.register("energy_addon_" + prefix, () -> new EnergyAddonItem(7, ModuleCore.TAB_CORE) { + + @Override + public void registerRecipe(RecipeOutput recipeOutput) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(Tags.Items.GLASS_PANES_COLORLESS), + tagValue(IndustrialTags.Items.PLASTIC), + tagValue(IndustrialTags.Items.PLASTIC), + itemValue(input.get().getDefaultInstance()), + itemValue(input.get().getDefaultInstance())), new FluidStack(fluid.get(), amount), + processingTime, recipeOutput); + } + }); + } + + private static void dissolutionChamberRecipe(ItemStack result, List inputs, FluidStack inputFluid, + int processingTime, RecipeOutput output) { + var recipe = new DissolutionChamberRecipe(inputs, inputFluid, processingTime, Optional.of(result), + Optional.empty()); + DissolutionChamberRecipe.createRecipe(output, BuiltInRegistries.ITEM.getKey(result.getItem()).getPath(), + recipe); + } + + private static Ingredient tagValue(TagKey tagKey) { + return Ingredient.of(tagKey); + } + + private static Ingredient itemValue(ItemStack stack) { + return Ingredient.of(stack); + } +} diff --git a/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_blaze_cube.json b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_blaze_cube.json new file mode 100644 index 00000000..9c8986f2 --- /dev/null +++ b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_blaze_cube.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/ifeu/energy_addon_blaze_cube" + } +} diff --git a/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_crystal_matrix.json b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_crystal_matrix.json new file mode 100644 index 00000000..c0550493 --- /dev/null +++ b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_crystal_matrix.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/ifeu/energy_addon_crystal_matrix" + } +} diff --git a/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_infinity.json b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_infinity.json new file mode 100644 index 00000000..424b7ec0 --- /dev/null +++ b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_infinity.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/ifeu/energy_addon_infinity" + } +} diff --git a/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_neutron.json b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_neutron.json new file mode 100644 index 00000000..666cff38 --- /dev/null +++ b/integrations/ifeu/src/main/resources/assets/avaritia_integration/models/item/energy_addon_neutron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/ifeu/energy_addon_neutron" + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_blaze_cube.png b/integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_blaze_cube.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_blaze_cube.png rename to integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_blaze_cube.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_crystal_matrix.png b/integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_crystal_matrix.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_crystal_matrix.png rename to integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_crystal_matrix.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_infinity.png b/integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_infinity.png rename to integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_infinity.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_neutron.png b/integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_neutron.png rename to integrations/ifeu/src/main/resources/assets/avaritia_integration/textures/item/ifeu/energy_addon_neutron.png diff --git a/integrations/ifeu/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/ifeu/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..4666099f --- /dev/null +++ b/integrations/ifeu/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration IFEU Data" + } +} diff --git a/integrations/ifeu/src/main/templates/META-INF/neoforge.mods.toml b/integrations/ifeu/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/ifeu/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/industrialforegoing/build.gradle b/integrations/industrialforegoing/build.gradle new file mode 100644 index 00000000..a53dcd6a --- /dev/null +++ b/integrations/industrialforegoing/build.gradle @@ -0,0 +1,14 @@ +ext.ai_mod_id = 'avaritia_integration_industrialforegoing' +ext.ai_mod_name = 'Avaritia Integration Industrial Foregoing' +ext.ai_mod_description = 'Avaritia Integration module for Industrial Foregoing.' +ext.ai_run_directory = 'integrations/industrialforegoing' +ext.ai_data_output_root = 'src/generated/resources/integration_packs/server_data' +ext.ai_data_existing_root = 'src/main/resources/integration_packs/server_data' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.titanium + implementation forge.industrialForegoing +} diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_blaze_cube.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_blaze_cube.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_crystal_matrix.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_crystal_matrix.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_infinity.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_infinity.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_neutron.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_neutron.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/efficiency_addon_neutron.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_blaze_cube.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_blaze_cube.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_crystal_matrix.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_crystal_matrix.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_infinity.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_infinity.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_neutron.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_neutron.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/processing_addon_neutron.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_blaze_cube.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_blaze_cube.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_crystal_matrix.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_crystal_matrix.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_infinity.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_infinity.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_neutron.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_neutron.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/dissolution_chamber/speed_addon_neutron.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/laser_drill_fluid/elderly_medulla.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/laser_drill_fluid/elderly_medulla.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/laser_drill_fluid/elderly_medulla.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/laser_drill_fluid/elderly_medulla.json diff --git a/src/generated/resources/data/industrialforegoing/advancement/laser_drill_fluid/void_matter.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/laser_drill_fluid/void_matter.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/advancement/laser_drill_fluid/void_matter.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/advancement/laser_drill_fluid/void_matter.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_blaze_cube.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_blaze_cube.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_crystal_matrix.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_crystal_matrix.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_infinity.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_infinity.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_neutron.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_neutron.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/efficiency_addon_neutron.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_blaze_cube.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_blaze_cube.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_crystal_matrix.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_crystal_matrix.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_infinity.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_infinity.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_neutron.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_neutron.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/processing_addon_neutron.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_blaze_cube.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_blaze_cube.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_blaze_cube.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_blaze_cube.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_crystal_matrix.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_crystal_matrix.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_crystal_matrix.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_crystal_matrix.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_infinity.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_infinity.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_infinity.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_infinity.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_neutron.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_neutron.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_neutron.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/dissolution_chamber/speed_addon_neutron.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/laser_drill_fluid/elderly_medulla.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/laser_drill_fluid/elderly_medulla.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/laser_drill_fluid/elderly_medulla.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/laser_drill_fluid/elderly_medulla.json diff --git a/src/generated/resources/data/industrialforegoing/recipe/laser_drill_fluid/void_matter.json b/integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/laser_drill_fluid/void_matter.json similarity index 100% rename from src/generated/resources/data/industrialforegoing/recipe/laser_drill_fluid/void_matter.json rename to integrations/industrialforegoing/src/generated/resources/integration_packs/server_data/data/industrialforegoing/recipe/laser_drill_fluid/void_matter.json diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/AIIndustrialForegoingIntegrationMod.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/AIIndustrialForegoingIntegrationMod.java new file mode 100644 index 00000000..bcd41589 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/AIIndustrialForegoingIntegrationMod.java @@ -0,0 +1,31 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.datagen.IndustrialForegoingDataGen; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIIndustrialForegoingIntegrationMod.MOD_ID) +public final class AIIndustrialForegoingIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_industrialforegoing"; + private static final String DEPENDENCY_MOD_ID = "industrialforegoing"; + + public AIIndustrialForegoingIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration Industrial Foregoing Data"); + if (IntegrationRuntime.shouldLoad(MOD_ID, this) && + IntegrationRuntime.load(MOD_ID, bus, new IndustrialForegoingModule())) { + bus.addListener(IndustrialForegoingDataGen::gatherData); + } + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/IndustrialForegoingModule.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/IndustrialForegoingModule.java new file mode 100644 index 00000000..6daef0a8 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/IndustrialForegoingModule.java @@ -0,0 +1,54 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing; + +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item.ModEfficiencyAddonItem; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item.ModProcessingAddonItem; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item.ModSpeedAddonItem; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry.IndustrialForegoingIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry.IndustrialForegoingIntegrationFluids; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry.IndustrialForegoingIntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.neoforged.bus.api.IEventBus; + +import com.buuz135.industrial.item.addon.ProcessingAddonItem; +import com.hrznstudio.titanium.api.augment.AugmentTypes; +import com.hrznstudio.titanium.item.AugmentWrapper; + +public final class IndustrialForegoingModule implements Module { + + public static final String MOD_ID = "industrialforegoing"; + + @Override + public void init(IEventBus registryBus) { + IndustrialForegoingIntegrationItems.ITEMS.register(registryBus); + IndustrialForegoingIntegrationBlocks.BLOCKS.register(registryBus); + IndustrialForegoingIntegrationFluids.FLUIDS.register(registryBus); + IndustrialForegoingIntegrationFluids.FLUID_TYPES.register(registryBus); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + IndustrialForegoingIntegrationItems.ADDONS.forEach((materialName, obj) -> { + if (obj.get() instanceof ModSpeedAddonItem speedAddonItem) { + ItemStack stack = new ItemStack(speedAddonItem); + AugmentWrapper.setType(stack, AugmentTypes.SPEED, (float) (1 + speedAddonItem.getTier())); + output.accept(stack); + } else if (obj.get() instanceof ModProcessingAddonItem processingAddonItem) { + ItemStack stack = new ItemStack(processingAddonItem); + AugmentWrapper.setType(stack, ProcessingAddonItem.PROCESSING, + (float) (1 + processingAddonItem.getTier())); + output.accept(stack); + } else if (obj.get() instanceof ModEfficiencyAddonItem efficiencyAddonItem) { + ItemStack stack = new ItemStack(efficiencyAddonItem); + AugmentWrapper.setType(stack, AugmentTypes.EFFICIENCY, + 1.0F - (float) efficiencyAddonItem.getTier() * 0.1F); + output.accept(stack); + } + }); + output.accept(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getBucketFluid()); + output.accept(IndustrialForegoingIntegrationFluids.VOID_MATTER.getBucketFluid()); + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/datagen/IndustrialForegoingDataGen.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/datagen/IndustrialForegoingDataGen.java new file mode 100644 index 00000000..a0bdcdd7 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/datagen/IndustrialForegoingDataGen.java @@ -0,0 +1,23 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.datagen; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.data.event.GatherDataEvent; + +import java.util.concurrent.CompletableFuture; + +public final class IndustrialForegoingDataGen { + + private IndustrialForegoingDataGen() {} + + public static void gatherData(GatherDataEvent event) { + if (!event.includeServer()) { + return; + } + DataGenerator generator = event.getGenerator(); + PackOutput output = generator.getPackOutput(); + CompletableFuture future = event.getLookupProvider(); + generator.addProvider(true, new IndustrialForegoingRecipes(output, future)); + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/datagen/IndustrialForegoingRecipes.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/datagen/IndustrialForegoingRecipes.java new file mode 100644 index 00000000..b87bc5d9 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/datagen/IndustrialForegoingRecipes.java @@ -0,0 +1,51 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.datagen; + +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item.AddonItem; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry.IndustrialForegoingIntegrationFluids; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry.IndustrialForegoingIntegrationItems; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.world.entity.EntityType; +import net.neoforged.neoforge.fluids.crafting.SizedFluidIngredient; + +import com.buuz135.industrial.recipe.LaserDrillFluidRecipe; +import com.buuz135.industrial.recipe.LaserDrillRarity; +import com.buuz135.industrial.recipe.data.EntityData; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.function.Supplier; + +public class IndustrialForegoingRecipes extends RecipeProvider { + + public IndustrialForegoingRecipes(PackOutput output, CompletableFuture registries) { + super(output, registries); + } + + @Override + protected void buildRecipes(@NotNull RecipeOutput consumer) { + for (Supplier supplier : IndustrialForegoingIntegrationItems.ADDONS.values()) { + supplier.get().registerRecipe(consumer); + } + + var elderlyMedullaRecipe = new LaserDrillFluidRecipe( + SizedFluidIngredient.of(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid().get(), + 50), + 7, Optional.of(EntityData.of(EntityType.ELDER_GUARDIAN)), + new LaserDrillRarity(new LaserDrillRarity.BiomeRarity(new ArrayList<>(), new ArrayList<>()), + new LaserDrillRarity.DimensionRarity(new ArrayList<>(), new ArrayList<>()), -64, 256, 8)); + var voidMatterRecipe = new LaserDrillFluidRecipe( + SizedFluidIngredient.of(IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid().get(), 20), + 15, Optional.empty(), + new LaserDrillRarity( + new LaserDrillRarity.BiomeRarity(LaserDrillRarity.BiomeRarity.END, new ArrayList<>()), + new LaserDrillRarity.DimensionRarity(new ArrayList<>(), new ArrayList<>()), -32, 64, 8)); + LaserDrillFluidRecipe.createRecipe(consumer, "elderly_medulla", "industrialforegoing", elderlyMedullaRecipe); + LaserDrillFluidRecipe.createRecipe(consumer, "void_matter", "industrialforegoing", voidMatterRecipe); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/fluid/IFBaseFluid.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/fluid/IFBaseFluid.java similarity index 89% rename from src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/fluid/IFBaseFluid.java rename to integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/fluid/IFBaseFluid.java index 773c4ad1..810dea42 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/fluid/IFBaseFluid.java +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/fluid/IFBaseFluid.java @@ -1,4 +1,4 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.fluid; +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.fluid; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -16,12 +16,14 @@ import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; import net.neoforged.neoforge.fluids.FluidType; + import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; public class IFBaseFluid extends FlowingFluid { + private final IFBaseFluidInstance baseFluidInstance; public IFBaseFluid(IFBaseFluidInstance baseFluidInstance) { @@ -68,7 +70,8 @@ public Item getBucket() { } @ParametersAreNonnullByDefault - protected boolean canBeReplacedWith(FluidState fluidState, BlockGetter level, BlockPos blockPos, Fluid fluid, Direction direction) { + protected boolean canBeReplacedWith(FluidState fluidState, BlockGetter level, BlockPos blockPos, Fluid fluid, + Direction direction) { return direction == Direction.DOWN && !fluidState.is(FluidTags.WATER); } @@ -82,7 +85,8 @@ protected float getExplosionResistance() { @Nonnull protected BlockState createLegacyBlock(@Nonnull FluidState state) { - return this.baseFluidInstance.getBlockFluid().defaultBlockState().setValue(LiquidBlock.LEVEL, getLegacyLevel(state)); + return this.baseFluidInstance.getBlockFluid().defaultBlockState().setValue(LiquidBlock.LEVEL, + getLegacyLevel(state)); } public boolean isSource(@Nonnull FluidState state) { @@ -94,10 +98,11 @@ public int getAmount(@Nonnull FluidState state) { } public boolean isSame(@NotNull Fluid fluidIn) { - return fluidIn == this.baseFluidInstance.getFlowingFluid().get() || fluidIn == this.baseFluidInstance.getSourceFluid().get(); + return fluidIn == this.baseFluidInstance.getFlowingFluid().get() || + fluidIn == this.baseFluidInstance.getSourceFluid().get(); } public @NotNull FluidType getFluidType() { return this.baseFluidInstance.getFluidType().get(); } -} \ No newline at end of file +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/fluid/IFBaseFluidInstance.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/fluid/IFBaseFluidInstance.java new file mode 100644 index 00000000..5eda1f24 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/fluid/IFBaseFluidInstance.java @@ -0,0 +1,142 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.fluid; + +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.material.FlowingFluid; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.PushReaction; +import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; +import net.neoforged.neoforge.fluids.FluidType; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import org.jetbrains.annotations.NotNull; + +import java.util.function.Consumer; + +public class IFBaseFluidInstance { + + private final DeferredHolder fluidType; + private final DeferredHolder flowingFluid; + private final DeferredHolder sourceFluid; + private final DeferredHolder bucketFluid; + private final DeferredHolder blockFluid; + + private final String fluidName; + + public IFBaseFluidInstance( + DeferredRegister itemRegister, + DeferredRegister blockRegister, + DeferredRegister fluidRegister, + DeferredRegister fluidTypeRegister, + String name, + FluidType.Properties fluidTypeProperties, + IClientFluidTypeExtensions renderProperties) { + this.fluidName = name; + + this.fluidType = fluidTypeRegister.register(name, () -> new FluidType(fluidTypeProperties) { + + @Override + @SuppressWarnings("removal") + public void initializeClient(@NotNull Consumer consumer) { + consumer.accept(renderProperties); + } + }); + + this.sourceFluid = fluidRegister.register(name + "_source", + () -> new Source(this)); + + this.flowingFluid = fluidRegister.register(name + "_flowing", + () -> new Flowing(this)); + + this.blockFluid = blockRegister.register(name, + () -> new LiquidBlock( + (FlowingFluid) sourceFluid.get(), + BlockBehaviour.Properties.of() + .replaceable() + .noCollission() + .strength(100f) + .pushReaction(PushReaction.DESTROY) + .liquid().sound(SoundType.EMPTY) + .noLootTable())); + + this.bucketFluid = itemRegister.register(name + "_bucket", + () -> new BucketItem( + sourceFluid.get(), + new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); + } + + public DeferredHolder getFluidType() { + return fluidType; + } + + public DeferredHolder getFlowingFluid() { + return flowingFluid; + } + + public DeferredHolder getSourceFluid() { + return sourceFluid; + } + + public Item getBucketFluid() { + return bucketFluid.get(); + } + + public Block getBlockFluid() { + return blockFluid.get(); + } + + public String getFluidName() { + return fluidName; + } + + public static class Source extends IFBaseFluid { + + public Source(IFBaseFluidInstance instance) { + super(instance); + } + + @Override + public int getAmount(@NotNull FluidState state) { + return 8; + } + + @Override + public boolean isSource(@NotNull FluidState state) { + return true; + } + } + + public static class Flowing extends IFBaseFluid { + + public Flowing(IFBaseFluidInstance instance) { + super(instance); + this.registerDefaultState( + this.getStateDefinition().any().setValue(LEVEL, 7)); + } + + @Override + protected void createFluidStateDefinition( + StateDefinition.Builder builder) { + super.createFluidStateDefinition(builder); + builder.add(LEVEL); + } + + @Override + public int getAmount(@NotNull FluidState state) { + return state.getValue(LEVEL); + } + + @Override + public boolean isSource(@NotNull FluidState state) { + return false; + } + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/AddonInfo.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/AddonInfo.java new file mode 100644 index 00000000..91973a93 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/AddonInfo.java @@ -0,0 +1,132 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.network.chat.Component; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.material.Fluid; +import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.fluids.FluidStack; +import net.neoforged.neoforge.registries.DeferredRegister; + +import com.buuz135.industrial.item.addon.ProcessingAddonItem; +import com.buuz135.industrial.recipe.DissolutionChamberRecipe; +import com.hrznstudio.titanium.api.augment.AugmentTypes; +import com.hrznstudio.titanium.api.augment.IAugmentType; + +import java.util.HashMap; +import java.util.List; +import java.util.Optional; +import java.util.function.Supplier; + +public class AddonInfo { + + private final int tier; + private final String materialName; + private final Supplier gear; + private final Supplier fluid; + private final int amount; + private final int processingTime; + + private AddonInfo(int tier, Supplier gear, Supplier fluid, int amount, int processingTime, + String materialName) { + this.tier = tier; + this.materialName = materialName; + this.gear = gear; + this.fluid = fluid; + this.amount = amount; + this.processingTime = processingTime; + } + + public static AddonInfo create(int tier, Supplier gear, Supplier fluid, int amount, int processingTime, + String materialName) { + return new AddonInfo(tier, gear, fluid, amount, processingTime, materialName); + } + + public void registry(HashMap> map, DeferredRegister register) { + String speed = getId(AugmentTypes.SPEED); + String efficiency = getId(AugmentTypes.EFFICIENCY); + String processing = getId(ProcessingAddonItem.PROCESSING); + map.put(speed, + register.register(speed, () -> new ModSpeedAddonItem(tier, Component.translatable(getDescription())) { + + @Override + public void registerRecipe(RecipeOutput consumer) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.DUSTS_REDSTONE), + tagValue(Tags.Items.DUSTS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES), + tagValue(Tags.Items.GLASS_PANES), + itemValue(gear.get().getDefaultInstance()), + itemValue(gear.get().getDefaultInstance()), + itemValue(Items.SUGAR.getDefaultInstance()), + itemValue(Items.SUGAR.getDefaultInstance())), new FluidStack(fluid.get(), amount), + processingTime, consumer); + } + })); + map.put(efficiency, register.register(efficiency, + () -> new ModEfficiencyAddonItem(tier, Component.translatable(getDescription())) { + + @Override + public void registerRecipe(RecipeOutput consumer) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.DUSTS_REDSTONE), + tagValue(Tags.Items.DUSTS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES), + tagValue(Tags.Items.GLASS_PANES), + itemValue(gear.get().getDefaultInstance()), + itemValue(gear.get().getDefaultInstance()), + tagValue(Tags.Items.RODS_BLAZE), + tagValue(Tags.Items.RODS_BLAZE)), new FluidStack(fluid.get(), amount), processingTime, + consumer); + } + })); + map.put(processing, register.register(processing, + () -> new ModProcessingAddonItem(tier, Component.translatable(getDescription())) { + + @Override + public void registerRecipe(RecipeOutput consumer) { + dissolutionChamberRecipe(this.getDefaultInstance(), List.of( + tagValue(Tags.Items.DUSTS_REDSTONE), + tagValue(Tags.Items.DUSTS_REDSTONE), + tagValue(Tags.Items.GLASS_PANES), + tagValue(Tags.Items.GLASS_PANES), + itemValue(gear.get().getDefaultInstance()), + itemValue(gear.get().getDefaultInstance()), + itemValue(Items.CRAFTING_TABLE.getDefaultInstance()), + itemValue(Items.FURNACE.getDefaultInstance())), new FluidStack(fluid.get(), amount), + processingTime, consumer); + } + })); + } + + public String getId(IAugmentType type) { + return type.getType().toLowerCase() + "_addon_" + materialName.toLowerCase(); + } + + public String getDescription() { + return "addon." + AvaritiaIntegration.MOD_ID + "." + materialName.toLowerCase(); + } + + private static void dissolutionChamberRecipe(ItemStack result, List inputs, FluidStack inputFluid, + int processingTime, RecipeOutput output) { + var recipe = new DissolutionChamberRecipe(inputs, inputFluid, processingTime, Optional.of(result), + Optional.empty()); + DissolutionChamberRecipe.createRecipe(output, BuiltInRegistries.ITEM.getKey(result.getItem()).getPath(), + recipe); + } + + private static Ingredient tagValue(TagKey tagKey) { + return Ingredient.of(tagKey); + } + + private static Ingredient itemValue(ItemStack stack) { + return Ingredient.of(stack); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/AddonItem.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/AddonItem.java similarity index 85% rename from src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/AddonItem.java rename to integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/AddonItem.java index 953e44d0..06b5dbd0 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/AddonItem.java +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/AddonItem.java @@ -1,9 +1,5 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.item; +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item; -import com.hrznstudio.titanium.api.IRecipeProvider; -import com.hrznstudio.titanium.block.tile.MachineTile; -import com.hrznstudio.titanium.component.inventory.SidedInventoryComponent; -import com.hrznstudio.titanium.item.BasicItem; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.data.recipes.RecipeOutput; @@ -13,18 +9,24 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; + +import com.hrznstudio.titanium.api.IRecipeProvider; +import com.hrznstudio.titanium.block.tile.MachineTile; +import com.hrznstudio.titanium.component.inventory.SidedInventoryComponent; +import com.hrznstudio.titanium.item.BasicItem; import org.jetbrains.annotations.NotNull; -import javax.annotation.Nullable; import java.util.List; -import java.util.function.Consumer; + +import javax.annotation.Nullable; public abstract class AddonItem extends Item implements IRecipeProvider { + protected final int tier; protected final Component materialName; - public AddonItem(int tier, Component materialName){ + + public AddonItem(int tier, Component materialName) { super(new Properties().stacksTo(16)); this.tier = tier; this.materialName = materialName; @@ -35,10 +37,7 @@ public int getTier() { } @Override - public void registerRecipe(RecipeOutput recipeOutput) { - - } - + public void registerRecipe(RecipeOutput recipeOutput) {} public @NotNull InteractionResult useOn(UseOnContext context) { if (!context.getLevel().isClientSide) { @@ -49,7 +48,7 @@ public void registerRecipe(RecipeOutput recipeOutput) { if (machineTile.canAcceptAugment(stack)) { SidedInventoryComponent> augmentInv = machineTile.getAugmentInventory(); - for(int i = 0; i < augmentInv.getSlots(); ++i) { + for (int i = 0; i < augmentInv.getSlots(); ++i) { if (augmentInv.getStackInSlot(i).isEmpty()) { augmentInv.setStackInSlot(i, stack); context.getItemInHand().shrink(1); @@ -77,16 +76,15 @@ public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, boolean advanced) { - } + public void addTooltipDetails(@Nullable BasicItem.Key key, ItemStack stack, List tooltip, + boolean advanced) {} public boolean hasTooltipDetails(@Nullable BasicItem.Key key) { return false; diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModEfficiencyAddonItem.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModEfficiencyAddonItem.java new file mode 100644 index 00000000..de1d3e8c --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModEfficiencyAddonItem.java @@ -0,0 +1,52 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; + +import com.hrznstudio.titanium.api.augment.AugmentTypes; +import com.hrznstudio.titanium.item.AugmentWrapper; +import com.hrznstudio.titanium.item.BasicItem; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ModEfficiencyAddonItem extends AddonItem { + + public ModEfficiencyAddonItem(int tier, Component materialName) { + super(tier, materialName); + } + + @Override + public void onCraftedBy(@NotNull ItemStack stack, @NotNull Level worldIn, @NotNull Player playerIn) { + super.onCraftedBy(stack, worldIn, playerIn); + AugmentWrapper.setType(stack, AugmentTypes.EFFICIENCY, 1.0F - (float) this.tier * 0.1F); + } + + @Override + public @NotNull String getDescriptionId() { + String addon = Component.translatable("item.industrialforegoing.addon").getString(); + return addon + Component.translatable("item.industrialforegoing.efficiency").getString() + "Tier " + + materialName.getString() + " "; + } + + @Override + public boolean hasTooltipDetails(@Nullable BasicItem.Key key) { + if (key == null) { + return true; + } + return super.hasTooltipDetails(key); + } + + @Override + public void addTooltipDetails(@Nullable BasicItem.Key key, ItemStack stack, List tooltip, + boolean advanced) { + super.addTooltipDetails(key, stack, tooltip, advanced); + float reduction = tier * -10; + tooltip.add(Component.translatable("tooltip.avaritia_integration.cooldown_amount") + .append(": " + reduction + "%").withStyle(ChatFormatting.GRAY)); + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModProcessingAddonItem.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModProcessingAddonItem.java new file mode 100644 index 00000000..f34606bc --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModProcessingAddonItem.java @@ -0,0 +1,52 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; + +import com.buuz135.industrial.item.addon.ProcessingAddonItem; +import com.hrznstudio.titanium.item.AugmentWrapper; +import com.hrznstudio.titanium.item.BasicItem; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ModProcessingAddonItem extends AddonItem { + + public ModProcessingAddonItem(int tier, Component materialName) { + super(tier, materialName); + } + + @Override + public void onCraftedBy(@NotNull ItemStack stack, @NotNull Level worldIn, @NotNull Player playerIn) { + super.onCraftedBy(stack, worldIn, playerIn); + AugmentWrapper.setType(stack, ProcessingAddonItem.PROCESSING, (float) (1 + this.tier)); + } + + @Override + public @NotNull String getDescriptionId() { + String addon = Component.translatable("item.industrialforegoing.addon").getString(); + return addon + Component.translatable("item.industrialforegoing.processing").getString() + "Tier " + + materialName.getString() + " "; + } + + @Override + public boolean hasTooltipDetails(@Nullable BasicItem.Key key) { + if (key == null) { + return true; + } + return super.hasTooltipDetails(key); + } + + @Override + public void addTooltipDetails(@Nullable BasicItem.Key key, ItemStack stack, List tooltip, + boolean advanced) { + super.addTooltipDetails(key, stack, tooltip, advanced); + float upgrade = 1 + tier; + tooltip.add(Component.translatable("item.industrialforegoing.processing").append("x" + upgrade) + .withStyle(ChatFormatting.GRAY)); + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModSpeedAddonItem.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModSpeedAddonItem.java new file mode 100644 index 00000000..29d3db78 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/item/ModSpeedAddonItem.java @@ -0,0 +1,52 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; + +import com.hrznstudio.titanium.api.augment.AugmentTypes; +import com.hrznstudio.titanium.item.AugmentWrapper; +import com.hrznstudio.titanium.item.BasicItem; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ModSpeedAddonItem extends AddonItem { + + public ModSpeedAddonItem(int tier, Component materialName) { + super(tier, materialName); + } + + @Override + public void onCraftedBy(@NotNull ItemStack stack, @NotNull Level worldIn, @NotNull Player playerIn) { + super.onCraftedBy(stack, worldIn, playerIn); + AugmentWrapper.setType(stack, AugmentTypes.SPEED, (float) (1 + this.tier)); + } + + @Override + public @NotNull String getDescriptionId() { + String addon = Component.translatable("item.industrialforegoing.addon").getString(); + return addon + Component.translatable("item.industrialforegoing.speed").getString() + "Tier " + + materialName.getString() + " "; + } + + @Override + public boolean hasTooltipDetails(@Nullable BasicItem.Key key) { + if (key == null) { + return true; + } + return super.hasTooltipDetails(key); + } + + @Override + public void addTooltipDetails(@Nullable BasicItem.Key key, ItemStack stack, List tooltip, + boolean advanced) { + super.addTooltipDetails(key, stack, tooltip, advanced); + float reduction = (1.0F - 1.0F / (1.0F + tier)) * -100.0F; + tooltip.add(Component.translatable("tooltip.avaritia_integration.cooldown_time") + .append(": " + Math.ceil(reduction) + "%").withStyle(ChatFormatting.GRAY)); + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationBlocks.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationBlocks.java new file mode 100644 index 00000000..1dc3f4f6 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationBlocks.java @@ -0,0 +1,13 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.block.Block; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class IndustrialForegoingIntegrationBlocks { + + public static final DeferredRegister BLOCKS = DeferredRegister.create(Registries.BLOCK, + AvaritiaIntegration.MOD_ID); +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationFluids.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationFluids.java new file mode 100644 index 00000000..7aaf7bd5 --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationFluids.java @@ -0,0 +1,36 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.fluid.IFBaseFluidInstance; + +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.material.Fluid; +import net.neoforged.neoforge.fluids.FluidType; +import net.neoforged.neoforge.registries.DeferredRegister; +import net.neoforged.neoforge.registries.NeoForgeRegistries; + +import com.hrznstudio.titanium.fluid.ClientFluidTypeExtensions; + +public class IndustrialForegoingIntegrationFluids { + + public static final DeferredRegister FLUIDS = DeferredRegister.create(Registries.FLUID, + AvaritiaIntegration.MOD_ID); + + public static final DeferredRegister FLUID_TYPES = DeferredRegister + .create(NeoForgeRegistries.FLUID_TYPES, AvaritiaIntegration.MOD_ID); + + public static final IFBaseFluidInstance ELDERLY_MEDULLA = register("elderly_medulla"); + public static final IFBaseFluidInstance VOID_MATTER = register("void_matter"); + + private static IFBaseFluidInstance register(String name) { + return new IFBaseFluidInstance( + IndustrialForegoingIntegrationItems.ITEMS, + IndustrialForegoingIntegrationBlocks.BLOCKS, + FLUIDS, FLUID_TYPES, + name, + FluidType.Properties.create().density(1000), + new ClientFluidTypeExtensions( + AvaritiaIntegration.rl("block/fluids/" + name + "_still"), + AvaritiaIntegration.rl("block/fluids/" + name + "_flow"))); + } +} diff --git a/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationItems.java b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationItems.java new file mode 100644 index 00000000..a3d2933c --- /dev/null +++ b/integrations/industrialforegoing/src/main/java/committee/nova/mods/avaritia_integration/integrations/industrialforegoing/registry/IndustrialForegoingIntegrationItems.java @@ -0,0 +1,41 @@ +package committee.nova.mods.avaritia_integration.integrations.industrialforegoing.registry; + +import committee.nova.mods.avaritia.init.registry.ModItems; +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.init.registry.AIItems; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item.AddonInfo; +import committee.nova.mods.avaritia_integration.integrations.industrialforegoing.item.AddonItem; + +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +import com.buuz135.industrial.module.ModuleCore; + +import java.util.HashMap; +import java.util.function.Supplier; + +public class IndustrialForegoingIntegrationItems { + + public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); + + public static final HashMap> ADDONS = registryAddons(); + + private static HashMap> registryAddons() { + HashMap> map = new HashMap<>(); + AddonInfo.create(3, AIItems.BLAZE_CUBE_GEAR, () -> ModuleCore.ETHER.getSourceFluid().get(), 1000, 100, + "blaze_cube").registry(map, ITEMS); + AddonInfo.create(5, AIItems.CRYSTAL_MATRIX_GEAR, + IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid(), 1000, 200, "crystal_matrix") + .registry(map, ITEMS); + AddonInfo.create(8, ModItems.neutron_gear, IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid(), + 1000, 300, "neutron").registry(map, ITEMS); + AddonInfo.create(12, AIItems.INFINITY_GEAR, IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid(), + 2000, 400, "infinity").registry(map, ITEMS); + return map; + } + + public static DeferredItem register(String id, Supplier obj) { + return ITEMS.register(id, obj); + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_blaze_cube.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_blaze_cube.json new file mode 100644 index 00000000..70e1de05 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_blaze_cube.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_blaze_cube" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_crystal_matrix.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_crystal_matrix.json new file mode 100644 index 00000000..e7fa033d --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_crystal_matrix.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_crystal_matrix" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_infinity.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_infinity.json new file mode 100644 index 00000000..6843fb82 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_infinity.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_infinity" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_neutron.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_neutron.json new file mode 100644 index 00000000..645872ae --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_neutron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_neutron" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/elderly_medulla_bucket.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/elderly_medulla_bucket.json new file mode 100644 index 00000000..b90eea4e --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/elderly_medulla_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "neoforge:item/bucket_drip", + "flip_gas": false, + "fluid": "avaritia_integration:elderly_medulla", + "loader": "neoforge:fluid_container" +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_blaze_cube.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_blaze_cube.json new file mode 100644 index 00000000..f9d88b82 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_blaze_cube.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_blaze_cube" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_crystal_matrix.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_crystal_matrix.json new file mode 100644 index 00000000..ee344cd4 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_crystal_matrix.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_crystal_matrix" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_infinity.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_infinity.json new file mode 100644 index 00000000..5c5b2030 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_infinity.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_infinity" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_neutron.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_neutron.json new file mode 100644 index 00000000..ef7d54d5 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/processing_addon_neutron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_neutron" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_blaze_cube.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_blaze_cube.json new file mode 100644 index 00000000..68d4fc8f --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_blaze_cube.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_blaze_cube" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_crystal_matrix.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_crystal_matrix.json new file mode 100644 index 00000000..a76913bc --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_crystal_matrix.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_crystal_matrix" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_infinity.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_infinity.json new file mode 100644 index 00000000..6d2fa6d7 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_infinity.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_infinity" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_neutron.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_neutron.json new file mode 100644 index 00000000..cdda57a2 --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/speed_addon_neutron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_neutron" + } +} diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/void_matter_bucket.json b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/void_matter_bucket.json new file mode 100644 index 00000000..bdab62db --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/models/item/void_matter_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "neoforge:item/bucket_drip", + "flip_gas": false, + "fluid": "avaritia_integration:void_matter", + "loader": "neoforge:fluid_container" +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png.mcmeta b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_still.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_still.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_still.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png diff --git a/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png.mcmeta b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png.mcmeta new file mode 100644 index 00000000..6637c41e --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_still.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_still.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_still.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_still.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_blaze_cube.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_blaze_cube.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_blaze_cube.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_blaze_cube.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_crystal_matrix.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_crystal_matrix.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_crystal_matrix.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_crystal_matrix.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_infinity.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_infinity.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_infinity.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_neutron.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_neutron.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/efficiency_addon_neutron.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_blaze_cube.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_blaze_cube.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_blaze_cube.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_blaze_cube.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_crystal_matrix.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_crystal_matrix.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_crystal_matrix.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_crystal_matrix.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_infinity.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_infinity.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_infinity.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_neutron.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_neutron.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/processing_addon_neutron.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_blaze_cube.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_blaze_cube.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_blaze_cube.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_blaze_cube.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_crystal_matrix.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_crystal_matrix.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_crystal_matrix.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_crystal_matrix.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_infinity.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_infinity.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_infinity.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_neutron.png b/integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_neutron.png rename to integrations/industrialforegoing/src/main/resources/assets/avaritia_integration/textures/item/industrialforegoing/speed_addon_neutron.png diff --git a/integrations/industrialforegoing/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/industrialforegoing/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..deaead2d --- /dev/null +++ b/integrations/industrialforegoing/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration Industrial Foregoing Data" + } +} diff --git a/integrations/industrialforegoing/src/main/templates/META-INF/neoforge.mods.toml b/integrations/industrialforegoing/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/industrialforegoing/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/mekanism-generators/build.gradle b/integrations/mekanism-generators/build.gradle new file mode 100644 index 00000000..f569ac45 --- /dev/null +++ b/integrations/mekanism-generators/build.gradle @@ -0,0 +1,13 @@ +ext.ai_mod_id = 'avaritia_integration_mekanism_generators' +ext.ai_mod_name = 'Avaritia Integration Mekanism Generators' +ext.ai_mod_description = 'Avaritia Integration module for Mekanism Generators.' +ext.ai_run_directory = 'integrations/mekanism-generators' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation project(':integrations:mekanism') + implementation forge.mekanism + implementation variantOf(forge.mekanism) { classifier('generators') } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/AIMekanismGeneratorsIntegrationMod.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/AIMekanismGeneratorsIntegrationMod.java new file mode 100644 index 00000000..e7341386 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/AIMekanismGeneratorsIntegrationMod.java @@ -0,0 +1,29 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIMekanismGeneratorsIntegrationMod.MOD_ID) +public final class AIMekanismGeneratorsIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_mekanism_generators"; + private static final String MEKANISM_MOD_ID = "mekanism"; + private static final String DEPENDENCY_MOD_ID = "mekanismgenerators"; + + public AIMekanismGeneratorsIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration Mekanism Generators Data"); + if (IntegrationRuntime.shouldLoad(MOD_ID, this)) + IntegrationRuntime.load(MOD_ID, bus, new MekanismGeneratorModule()); + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(MEKANISM_MOD_ID), ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/MekanismGeneratorModule.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/MekanismGeneratorModule.java new file mode 100644 index 00000000..8a9a5bbd --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/MekanismGeneratorModule.java @@ -0,0 +1,42 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator; + +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.client.MekanismGeneratorClient; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationBlockEntityTypes; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationContainerTypes; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.core.Holder; +import net.minecraft.world.item.CreativeModeTab.ItemDisplayParameters; +import net.minecraft.world.item.CreativeModeTab.Output; +import net.minecraft.world.item.Item; +import net.neoforged.bus.api.IEventBus; + +public class MekanismGeneratorModule implements Module { + + public static final String MOD_ID = "mekanismgenerators"; + + @Override + public void init(IEventBus registryBus) { + GenIntegrationItems.ITEMS.register(registryBus); + GenIntegrationBlocks.BLOCKS.register(registryBus); + GenIntegrationContainerTypes.CONTAINER_TYPES.register(registryBus); + GenIntegrationBlockEntityTypes.TILE_ENTITY_TYPES.register(registryBus); + } + + @Override + public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { + MekanismGeneratorClient.register(modBus); + } + + @Override + public void collectCreativeTabItems(ItemDisplayParameters parameters, Output output) { + for (Holder itemHolder : GenIntegrationItems.ITEMS.getEntries()) { + output.accept(itemHolder.value()); + } + for (Holder blockHolder : GenIntegrationBlocks.BLOCKS.getSecondaryEntries()) { + output.accept(blockHolder.value()); + } + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/client/MekanismGeneratorClient.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/client/MekanismGeneratorClient.java new file mode 100644 index 00000000..46259a70 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/client/MekanismGeneratorClient.java @@ -0,0 +1,56 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.client; + +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationContainerTypes; + +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; +import net.neoforged.bus.api.EventPriority; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent; + +import mekanism.client.ClientRegistration; +import mekanism.client.ClientRegistrationUtil; +import mekanism.client.model.baked.ExtensionBakedModel.TransformedBakedModel; +import mekanism.client.render.lib.QuadTransformation; +import mekanism.common.inventory.container.tile.MekanismTileContainer; +import mekanism.generators.client.gui.GuiSolarGenerator; + +public final class MekanismGeneratorClient { + + private MekanismGeneratorClient() {} + + public static void register(IEventBus modBus) { + modBus.addListener(EventPriority.NORMAL, MekanismGeneratorClient::clientSetupEvent); + modBus.addListener(EventPriority.NORMAL, MekanismGeneratorClient::registerScreen); + } + + private static void clientSetupEvent(FMLClientSetupEvent event) { + ClientRegistration.addCustomModel(GenIntegrationBlocks.NEUTRON_ADVANCED_SOLAR_GENERATOR, + (orig, evt) -> new TransformedBakedModel(orig, + QuadTransformation.translate(0, 1, 0))); + ClientRegistration.addCustomModel(GenIntegrationBlocks.INFINITY_ADVANCED_SOLAR_GENERATOR, + (orig, evt) -> new TransformedBakedModel(orig, + QuadTransformation.translate(0, 1, 0))); + } + + private static void registerScreen(RegisterMenuScreensEvent event) { + ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.INFINITY_SOLAR_GENERATOR, + (MekanismTileContainer container, Inventory inv, + Component title) -> new GuiSolarGenerator<>(container, inv, title)); + ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.NEUTRON_SOLAR_GENERATOR, + (MekanismTileContainer container, Inventory inv, + Component title) -> new GuiSolarGenerator<>(container, inv, title)); + ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.INFINITY_ADVANCED_SOLAR_GENERATOR, + (MekanismTileContainer container, Inventory inv, + Component title) -> new GuiSolarGenerator<>(container, inv, title)); + ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.NEUTRON_ADVANCED_SOLAR_GENERATOR, + (MekanismTileContainer container, Inventory inv, + Component title) -> new GuiSolarGenerator<>(container, inv, title)); + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/AdvancedSolarGeneratorBlockEntity.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/AdvancedSolarGeneratorBlockEntity.java new file mode 100644 index 00000000..c621a938 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/AdvancedSolarGeneratorBlockEntity.java @@ -0,0 +1,153 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity; + +import net.minecraft.SharedConstants; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.util.Mth; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import mekanism.api.IEvaporationSolar; +import mekanism.api.RelativeSide; +import mekanism.api.math.MathUtils; +import mekanism.common.tile.interfaces.IBoundingBlock; +import mekanism.common.util.MekanismUtils; +import mekanism.generators.common.config.MekanismGeneratorsConfig; +import mekanism.generators.common.tile.TileEntitySolarGenerator; +import org.jetbrains.annotations.NotNull; + +import java.util.function.LongSupplier; + +public class AdvancedSolarGeneratorBlockEntity extends TileEntitySolarGenerator + implements IBoundingBlock, IEvaporationSolar { + + private static final RelativeSide[] ENERGY_SIDES = { RelativeSide.FRONT, RelativeSide.BOTTOM }; + private final SolarCheck[] solarChecks = new SolarCheck[8]; + + protected AdvancedSolarGeneratorBlockEntity(Holder blockProvider, BlockPos pos, BlockState state, + @NotNull LongSupplier maxOutput) { + super(blockProvider, pos, state, maxOutput); + } + + @Override + protected RelativeSide[] getEnergySides() { + return ENERGY_SIDES; + } + + @Override + protected long getConfiguredMax() { + return MekanismGeneratorsConfig.generators.advancedSolarGeneration.get(); + } + + @Override + protected void recheckSettings() { + if (level == null) { + return; + } + BlockPos topPos = worldPosition.above(2); + solarCheck = new AdvancedSolarCheck(level, topPos); + float totalPeak = solarCheck.getPeakMultiplier(); + for (int i = 0; i < solarChecks.length; i++) { + if (i < 3) { + solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(-1, 0, i - 1)); + } else if (i == 3) { + solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(0, 0, -1)); + } else if (i == 4) { + solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(0, 0, 1)); + } else { + solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(1, 0, i - 6)); + } + totalPeak += solarChecks[i].getPeakMultiplier(); + } + updateMaxOutputRaw(MathUtils.clampToLong(getConfiguredMax() * (totalPeak / 9))); + } + + @Override + protected boolean checkCanSeeSun() { + if (solarCheck == null) { + // Note: We assume if solarCheck is null then solarChecks will be filled with null, and if it isn't + // then it won't be as they get initialized at the same time + return false; + } + // Allow attempting to recheck each position, and mark that we can see the sun if at least one position can + solarCheck.recheckCanSeeSun(); + byte count = solarCheck.canSeeSun() ? (byte) 1 : 0; + for (SolarCheck check : solarChecks) { + check.recheckCanSeeSun(); + if (check.canSeeSun()) { + count++; + } + } + // Mark that our solar generator can "see" the sun if at least five of the nine positions + // are able to see the sun + return count > 4; + } + + @Override + public long getProduction() { + if (level == null || solarCheck == null) { + // Note: We assume if solarCheck is null then solarChecks will be filled with null, and if it isn't + // then it won't be as they get initialized at the same time + return 0; + } + float brightness = getBrightnessMultiplier(level); + // Calculate the generation multiplier of all the solar panels together + // any part that can't see the sun will contribute zero to the multiplier, + // and then we take the average across all to see how much to multiply by + float generationMultiplier = solarCheck.getGenerationMultiplier(); + for (SolarCheck check : solarChecks) { + generationMultiplier += check.getGenerationMultiplier(); + } + generationMultiplier /= solarChecks.length + 1; + // Production is a function of the peak possible output in this biome and sun's current brightness + return MathUtils.clampToLong(getConfiguredMax() * (brightness * generationMultiplier)); + } + + private static class AdvancedSolarCheck extends SolarCheck { + + private final int recheckFrequency; + private long lastCheckedSun; + + public AdvancedSolarCheck(Level world, BlockPos pos) { + super(world, pos); + // Recheck between every 10-30 ticks, to not end up checking each position each tick + recheckFrequency = Mth.nextInt(world.random, MekanismUtils.TICKS_PER_HALF_SECOND, + MekanismUtils.TICKS_PER_HALF_SECOND + SharedConstants.TICKS_PER_SECOND); + } + + @Override + public void recheckCanSeeSun() { + if (!world.dimensionType().hasSkyLight() || world.getSkyDarken() >= 4) { + // Inline of most of WorldUtils#canSeeSun so that we can exit early if it is not day or there is no + // skylight + // We start with the basic dimension checks and always run those, as they are simple and quick checks, + // and + // we want to be able to stop quickly when it gets too dark + canSeeSun = false; + return; + } + long time = world.getGameTime(); + if (time < lastCheckedSun + recheckFrequency) { + // If we have checked for blocks above the solar panel in the past recheckFrequency + // number of ticks, skip checking for now for performance reasons + return; + } + // otherwise, mark that we checked and actually check + lastCheckedSun = time; + if (world.getFluidState(pos).isEmpty()) { + // If the top isn't fluid logged we can just quickly check if the top can see the sun + canSeeSun = world.canSeeSky(pos); + } else { + BlockPos above = pos.above(); + if (world.canSeeSky(above)) { + // If the spot above can see the sun, check to make sure we can see through the block there + BlockState state = world.getBlockState(above); + canSeeSun = !state.liquid() && state.getLightBlock(world, above) <= 0; + } else { + canSeeSun = false; + } + } + } + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/InfinityAdvancedSolarGeneratorBlockEntity.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/InfinityAdvancedSolarGeneratorBlockEntity.java new file mode 100644 index 00000000..f6394724 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/InfinityAdvancedSolarGeneratorBlockEntity.java @@ -0,0 +1,18 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity; + +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationBlocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; + +public class InfinityAdvancedSolarGeneratorBlockEntity extends AdvancedSolarGeneratorBlockEntity { + + public InfinityAdvancedSolarGeneratorBlockEntity(BlockPos pos, BlockState state) { + super(GenIntegrationBlocks.INFINITY_ADVANCED_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); + } + + @Override + protected long getConfiguredMax() { + return Long.MAX_VALUE; + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/InfinitySolarGeneratorBlockEntity.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/InfinitySolarGeneratorBlockEntity.java new file mode 100644 index 00000000..e768fd26 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/InfinitySolarGeneratorBlockEntity.java @@ -0,0 +1,20 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity; + +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationBlocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; + +import mekanism.generators.common.tile.TileEntitySolarGenerator; + +public class InfinitySolarGeneratorBlockEntity extends TileEntitySolarGenerator { + + public InfinitySolarGeneratorBlockEntity(BlockPos pos, BlockState state) { + super(GenIntegrationBlocks.INFINITY_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); + } + + @Override + protected long getConfiguredMax() { + return Long.MAX_VALUE; + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/NeutronAdvancedSolarGeneratorBlockEntity.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/NeutronAdvancedSolarGeneratorBlockEntity.java new file mode 100644 index 00000000..cee1671e --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/NeutronAdvancedSolarGeneratorBlockEntity.java @@ -0,0 +1,18 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity; + +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationBlocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; + +public class NeutronAdvancedSolarGeneratorBlockEntity extends AdvancedSolarGeneratorBlockEntity { + + public NeutronAdvancedSolarGeneratorBlockEntity(BlockPos pos, BlockState state) { + super(GenIntegrationBlocks.NEUTRON_ADVANCED_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); + } + + @Override + protected long getConfiguredMax() { + return Long.MAX_VALUE; + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/NeutronSolarGeneratorBlockEntity.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/NeutronSolarGeneratorBlockEntity.java new file mode 100644 index 00000000..febac980 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/blockentity/NeutronSolarGeneratorBlockEntity.java @@ -0,0 +1,20 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity; + +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries.GenIntegrationBlocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; + +import mekanism.generators.common.tile.TileEntitySolarGenerator; + +public class NeutronSolarGeneratorBlockEntity extends TileEntitySolarGenerator { + + public NeutronSolarGeneratorBlockEntity(BlockPos pos, BlockState state) { + super(GenIntegrationBlocks.NEUTRON_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); + } + + @Override + protected long getConfiguredMax() { + return Long.MAX_VALUE; + } +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlockEntityTypes.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlockEntityTypes.java new file mode 100644 index 00000000..15183c29 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlockEntityTypes.java @@ -0,0 +1,49 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; + +import mekanism.common.capabilities.Capabilities; +import mekanism.common.registration.impl.TileEntityTypeDeferredRegister; +import mekanism.common.registration.impl.TileEntityTypeRegistryObject; +import mekanism.common.tile.base.TileEntityMekanism; + +public class GenIntegrationBlockEntityTypes { + + private GenIntegrationBlockEntityTypes() {} + + public static final TileEntityTypeDeferredRegister TILE_ENTITY_TYPES = new TileEntityTypeDeferredRegister( + AvaritiaIntegration.MOD_ID); + + public static final TileEntityTypeRegistryObject INFINITY_SOLAR_GENERATOR = TILE_ENTITY_TYPES + .mekBuilder(GenIntegrationBlocks.INFINITY_SOLAR_GENERATOR, InfinitySolarGeneratorBlockEntity::new) + .clientTicker(TileEntityMekanism::tickClient) + .serverTicker(TileEntityMekanism::tickServer) + .withSimple(Capabilities.CONFIG_CARD) + .build(); + public static final TileEntityTypeRegistryObject NEUTRON_SOLAR_GENERATOR = TILE_ENTITY_TYPES + .mekBuilder(GenIntegrationBlocks.NEUTRON_SOLAR_GENERATOR, NeutronSolarGeneratorBlockEntity::new) + .clientTicker(TileEntityMekanism::tickClient) + .serverTicker(TileEntityMekanism::tickServer) + .withSimple(Capabilities.CONFIG_CARD) + .build(); + public static final TileEntityTypeRegistryObject INFINITY_ADVANCED_SOLAR_GENERATOR = TILE_ENTITY_TYPES + .mekBuilder(GenIntegrationBlocks.INFINITY_ADVANCED_SOLAR_GENERATOR, + InfinityAdvancedSolarGeneratorBlockEntity::new) + .clientTicker(TileEntityMekanism::tickClient) + .serverTicker(TileEntityMekanism::tickServer) + .withSimple(Capabilities.CONFIG_CARD) + .withSimple(Capabilities.EVAPORATION_SOLAR) + .build(); + public static final TileEntityTypeRegistryObject NEUTRON_ADVANCED_SOLAR_GENERATOR = TILE_ENTITY_TYPES + .mekBuilder(GenIntegrationBlocks.NEUTRON_ADVANCED_SOLAR_GENERATOR, + NeutronAdvancedSolarGeneratorBlockEntity::new) + .clientTicker(TileEntityMekanism::tickClient) + .serverTicker(TileEntityMekanism::tickServer) + .withSimple(Capabilities.CONFIG_CARD) + .withSimple(Capabilities.EVAPORATION_SOLAR) + .build(); +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlockTypes.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlockTypes.java similarity index 79% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlockTypes.java rename to integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlockTypes.java index de48f699..eb98b98d 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlockTypes.java +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlockTypes.java @@ -1,9 +1,15 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries; +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries; + +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.BlockPos.MutableBlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; import mekanism.common.block.attribute.AttributeHasBounding.HandleBoundingBlock; import mekanism.common.block.attribute.AttributeHasBounding.TriBooleanFunction; import mekanism.common.block.attribute.AttributeUpgradeSupport; @@ -14,19 +20,15 @@ import mekanism.generators.common.content.blocktype.Generator; import mekanism.generators.common.content.blocktype.Generator.GeneratorBuilder; import mekanism.generators.common.registries.GeneratorsSounds; -import net.minecraft.core.BlockPos; -import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.state.BlockState; public class GenIntegrationBlockTypes { - private GenIntegrationBlockTypes() { - } + private GenIntegrationBlockTypes() {} // Infinity Solar Generator public static final Generator INFINITY_SOLAR_GENERATOR = GeneratorBuilder - .createGenerator(() -> GenIntegrationBlockEntityTypes.INFINITY_SOLAR_GENERATOR, GeneratorsLang.DESCRIPTION_SOLAR_GENERATOR) + .createGenerator(() -> GenIntegrationBlockEntityTypes.INFINITY_SOLAR_GENERATOR, + GeneratorsLang.DESCRIPTION_SOLAR_GENERATOR) .withGui(() -> GenIntegrationContainerTypes.INFINITY_SOLAR_GENERATOR) .withEnergyConfig(MekanismGeneratorsConfig.storageConfig.solarGenerator) .withCustomShape(BlockShapes.SOLAR_GENERATOR) @@ -38,7 +40,8 @@ private GenIntegrationBlockTypes() { // Neutron Solar Generator public static final Generator NEUTRON_SOLAR_GENERATOR = GeneratorBuilder - .createGenerator(() -> GenIntegrationBlockEntityTypes.NEUTRON_SOLAR_GENERATOR, GeneratorsLang.DESCRIPTION_SOLAR_GENERATOR) + .createGenerator(() -> GenIntegrationBlockEntityTypes.NEUTRON_SOLAR_GENERATOR, + GeneratorsLang.DESCRIPTION_SOLAR_GENERATOR) .withGui(() -> GenIntegrationContainerTypes.NEUTRON_SOLAR_GENERATOR) .withEnergyConfig(MekanismGeneratorsConfig.storageConfig.solarGenerator) .withCustomShape(BlockShapes.SOLAR_GENERATOR) @@ -50,15 +53,18 @@ private GenIntegrationBlockTypes() { // Infinity Advanced Solar Generator public static final Generator INFINITY_ADVANCED_SOLAR_GENERATOR = GeneratorBuilder - .createGenerator(() -> GenIntegrationBlockEntityTypes.INFINITY_ADVANCED_SOLAR_GENERATOR, GeneratorsLang.DESCRIPTION_ADVANCED_SOLAR_GENERATOR) + .createGenerator(() -> GenIntegrationBlockEntityTypes.INFINITY_ADVANCED_SOLAR_GENERATOR, + GeneratorsLang.DESCRIPTION_ADVANCED_SOLAR_GENERATOR) .withGui(() -> GenIntegrationContainerTypes.INFINITY_ADVANCED_SOLAR_GENERATOR) .withEnergyConfig(MekanismGeneratorsConfig.storageConfig.advancedSolarGenerator) .withCustomShape(BlockShapes.ADVANCED_SOLAR_GENERATOR) .withSound(GeneratorsSounds.SOLAR_GENERATOR) .with(AttributeUpgradeSupport.MUFFLING_ONLY) .withBounding(new HandleBoundingBlock() { + @Override - public boolean handle(Level level, BlockPos pos, BlockState state, DATA data, TriBooleanFunction consumer) { + public boolean handle(Level level, BlockPos pos, BlockState state, DATA data, + TriBooleanFunction consumer) { MutableBlockPos mutable = new MutableBlockPos(pos.getX(), pos.getY() + 1, pos.getZ()); if (!consumer.accept(level, mutable, data)) { return false; @@ -80,15 +86,18 @@ public boolean handle(Level level, BlockPos pos, BlockState state, DATA d // Neutron Advanced Solar Generator public static final Generator NEUTRON_ADVANCED_SOLAR_GENERATOR = GeneratorBuilder - .createGenerator(() -> GenIntegrationBlockEntityTypes.NEUTRON_ADVANCED_SOLAR_GENERATOR, GeneratorsLang.DESCRIPTION_ADVANCED_SOLAR_GENERATOR) + .createGenerator(() -> GenIntegrationBlockEntityTypes.NEUTRON_ADVANCED_SOLAR_GENERATOR, + GeneratorsLang.DESCRIPTION_ADVANCED_SOLAR_GENERATOR) .withGui(() -> GenIntegrationContainerTypes.NEUTRON_ADVANCED_SOLAR_GENERATOR) .withEnergyConfig(MekanismGeneratorsConfig.storageConfig.advancedSolarGenerator) .withCustomShape(BlockShapes.ADVANCED_SOLAR_GENERATOR) .withSound(GeneratorsSounds.SOLAR_GENERATOR) .with(AttributeUpgradeSupport.MUFFLING_ONLY) .withBounding(new HandleBoundingBlock() { + @Override - public boolean handle(Level level, BlockPos pos, BlockState state, DATA data, TriBooleanFunction consumer) { + public boolean handle(Level level, BlockPos pos, BlockState state, DATA data, + TriBooleanFunction consumer) { MutableBlockPos mutable = new MutableBlockPos(pos.getX(), pos.getY() + 1, pos.getZ()); if (!consumer.accept(level, mutable, data)) { return false; diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlocks.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlocks.java new file mode 100644 index 00000000..5860c745 --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationBlocks.java @@ -0,0 +1,52 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; + +import net.minecraft.world.level.material.MapColor; + +import mekanism.common.attachments.containers.ContainerType; +import mekanism.common.attachments.containers.item.ItemSlotsBuilder; +import mekanism.common.block.prefab.BlockTile.BlockTileModel; +import mekanism.common.item.block.ItemBlockTooltip; +import mekanism.common.registration.impl.BlockDeferredRegister; +import mekanism.common.registration.impl.BlockRegistryObject; +import mekanism.generators.common.content.blocktype.Generator; + +public class GenIntegrationBlocks { + + private GenIntegrationBlocks() {} + + public static final BlockDeferredRegister BLOCKS = new BlockDeferredRegister(AvaritiaIntegration.MOD_ID); + + public static final BlockRegistryObject>, ItemBlockTooltip>>> INFINITY_SOLAR_GENERATOR = BLOCKS + .registerDetails("infinity_solar_generator", + () -> new BlockTileModel<>(GenIntegrationBlockTypes.INFINITY_SOLAR_GENERATOR, + properties -> properties.mapColor(MapColor.COLOR_BLUE))) + .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, + () -> ItemSlotsBuilder.builder().addEnergy().build())); + + public static final BlockRegistryObject>, ItemBlockTooltip>>> NEUTRON_SOLAR_GENERATOR = BLOCKS + .registerDetails("neutron_solar_generator", + () -> new BlockTileModel<>(GenIntegrationBlockTypes.NEUTRON_SOLAR_GENERATOR, + properties -> properties.mapColor(MapColor.COLOR_BLUE))) + .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, + () -> ItemSlotsBuilder.builder().addEnergy().build())); + + public static final BlockRegistryObject>, ItemBlockTooltip>>> INFINITY_ADVANCED_SOLAR_GENERATOR = BLOCKS + .registerDetails("infinity_advanced_solar_generator", + () -> new BlockTileModel<>(GenIntegrationBlockTypes.INFINITY_ADVANCED_SOLAR_GENERATOR, + properties -> properties.mapColor(MapColor.COLOR_BLUE))) + .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, + () -> ItemSlotsBuilder.builder().addEnergy().build())); + + public static final BlockRegistryObject>, ItemBlockTooltip>>> NEUTRON_ADVANCED_SOLAR_GENERATOR = BLOCKS + .registerDetails("neutron_advanced_solar_generator", + () -> new BlockTileModel<>(GenIntegrationBlockTypes.NEUTRON_ADVANCED_SOLAR_GENERATOR, + properties -> properties.mapColor(MapColor.COLOR_BLUE))) + .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, + () -> ItemSlotsBuilder.builder().addEnergy().build())); +} diff --git a/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationContainerTypes.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationContainerTypes.java new file mode 100644 index 00000000..b4104bdf --- /dev/null +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationContainerTypes.java @@ -0,0 +1,31 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; +import committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; + +import mekanism.common.inventory.container.tile.MekanismTileContainer; +import mekanism.common.registration.impl.ContainerTypeDeferredRegister; +import mekanism.common.registration.impl.ContainerTypeRegistryObject; + +public class GenIntegrationContainerTypes { + + private GenIntegrationContainerTypes() {} + + public static final ContainerTypeDeferredRegister CONTAINER_TYPES = new ContainerTypeDeferredRegister( + AvaritiaIntegration.MOD_ID); + + public static final ContainerTypeRegistryObject> INFINITY_SOLAR_GENERATOR = CONTAINER_TYPES + .custom("infinity_solar_generator", InfinitySolarGeneratorBlockEntity.class).armorSideBar(-20, 11, 0) + .build(); + public static final ContainerTypeRegistryObject> NEUTRON_SOLAR_GENERATOR = CONTAINER_TYPES + .custom("neutron_solar_generator", NeutronSolarGeneratorBlockEntity.class).armorSideBar(-20, 11, 0).build(); + public static final ContainerTypeRegistryObject> INFINITY_ADVANCED_SOLAR_GENERATOR = CONTAINER_TYPES + .custom("infinity_advanced_solar_generator", InfinityAdvancedSolarGeneratorBlockEntity.class) + .armorSideBar(-20, 11, 0).build(); + public static final ContainerTypeRegistryObject> NEUTRON_ADVANCED_SOLAR_GENERATOR = CONTAINER_TYPES + .custom("neutron_advanced_solar_generator", NeutronAdvancedSolarGeneratorBlockEntity.class) + .armorSideBar(-20, 11, 0).build(); +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationItems.java b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationItems.java similarity index 81% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationItems.java rename to integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationItems.java index 323a4691..53c31685 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationItems.java +++ b/integrations/mekanism-generators/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanismgenerator/common/registries/GenIntegrationItems.java @@ -1,15 +1,15 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries; +package committee.nova.mods.avaritia_integration.integrations.mekanismgenerator.common.registries; import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.world.item.Item; + import mekanism.common.registration.impl.ItemDeferredRegister; import mekanism.common.registration.impl.ItemRegistryObject; -import net.minecraft.world.item.Item; public class GenIntegrationItems { - private GenIntegrationItems() { - - } + private GenIntegrationItems() {} public static final ItemDeferredRegister ITEMS = new ItemDeferredRegister(AvaritiaIntegration.MOD_ID); diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/infinity_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/infinity_advanced_solar_generator.json new file mode 100644 index 00000000..2a7b5c76 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/infinity_advanced_solar_generator.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "avaritia_integration:block/infinity_advanced_solar_generator" + }, + "facing=south": { + "model": "avaritia_integration:block/infinity_advanced_solar_generator", + "y": 180 + }, + "facing=west": { + "model": "avaritia_integration:block/infinity_advanced_solar_generator", + "y": -90 + }, + "facing=east": { + "model": "avaritia_integration:block/infinity_advanced_solar_generator", + "y": 90 + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/infinity_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/infinity_solar_generator.json new file mode 100644 index 00000000..441a7ebf --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/infinity_solar_generator.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/infinity_solar_generator" + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/neutron_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/neutron_advanced_solar_generator.json new file mode 100644 index 00000000..23fe1b50 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/neutron_advanced_solar_generator.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "avaritia_integration:block/neutron_advanced_solar_generator" + }, + "facing=south": { + "model": "avaritia_integration:block/neutron_advanced_solar_generator", + "y": 180 + }, + "facing=west": { + "model": "avaritia_integration:block/neutron_advanced_solar_generator", + "y": -90 + }, + "facing=east": { + "model": "avaritia_integration:block/neutron_advanced_solar_generator", + "y": 90 + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/neutron_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/neutron_solar_generator.json new file mode 100644 index 00000000..62af973e --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/blockstates/neutron_solar_generator.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "avaritia_integration:block/neutron_solar_generator" + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/botania/advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/botania/advanced_solar_generator.json new file mode 100644 index 00000000..8e6bde9a --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/botania/advanced_solar_generator.json @@ -0,0 +1,690 @@ +{ + "credit": "Model by CyanideX", + "textures": { + "0": "mekanismgenerators:block/model/advanced_solar_generator", + "1": "mekanism:block/models/ports", + "2": "mekanism:block/models/ports_led", + "particle": "mekanismgenerators:block/model/advanced_solar_generator" + }, + "render_type": "minecraft:cutout", + "elements": [ + { + "name": "pole", + "from": [6, -4, 6], + "to": [10, 25, 10], + "faces": { + "north": { + "uv": [11, 0, 10, 7.25], + "texture": "#0" + }, + "east": { + "uv": [10, 0, 9, 7.25], + "texture": "#0" + }, + "south": { + "uv": [12, 0, 11, 7.25], + "texture": "#0" + }, + "west": { + "uv": [10, 0, 9, 7.25], + "texture": "#0" + } + } + }, + { + "name": "tube1", + "from": [4, 22, 2], + "to": [6, 24, 14], + "faces": { + "north": { + "uv": [12, 5.25, 12.5, 5.75], + "texture": "#0" + }, + "east": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "south": { + "uv": [15, 5.25, 15.5, 5.75], + "texture": "#0" + }, + "west": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "up": { + "uv": [12.5, 5, 15, 5.5], + "texture": "#0" + }, + "down": { + "uv": [12.5, 5.5, 15, 6], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "tube2", + "from": [10, 22, 2], + "to": [12, 24, 14], + "faces": { + "north": { + "uv": [12, 5.25, 12.5, 5.75], + "texture": "#0" + }, + "east": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "south": { + "uv": [15, 5.25, 15.5, 5.75], + "texture": "#0" + }, + "west": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "up": { + "uv": [12.5, 5, 15, 5.5], + "texture": "#0" + }, + "down": { + "uv": [12.5, 5.5, 15, 6], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "barrel", + "from": [4, 25, 5], + "to": [12, 31, 11], + "faces": { + "north": { + "uv": [13.5, 0, 15.5, 1.5], + "texture": "#0" + }, + "east": { + "uv": [12, 0, 13.5, 1.5], + "texture": "#0" + }, + "south": { + "uv": [13.5, 1.5, 15.5, 3], + "texture": "#0" + }, + "west": { + "uv": [12, 1.5, 13.5, 3], + "texture": "#0" + }, + "up": { + "uv": [13.5, 0, 15.5, 1.5], + "texture": "#0" + }, + "down": { + "uv": [13.5, 1.5, 15.5, 3], + "rotation": 180, + "texture": "#0" + } + } + }, + { + "name": "ring1", + "from": [5, 24, 4], + "to": [6, 32, 12], + "faces": { + "north": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "east": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "south": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "west": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "up": { + "uv": [14.25, 6, 14.5, 8], + "texture": "#0" + } + } + }, + { + "name": "ring2", + "from": [10, 24, 4], + "to": [11, 32, 12], + "faces": { + "north": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "east": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "south": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "west": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "up": { + "uv": [14.25, 6, 14.5, 8], + "texture": "#0" + } + } + }, + { + "name": "connector", + "from": [5, -11, 1], + "to": [11, -5, 4], + "faces": { + "east": { + "uv": [12.75, 10.5, 13.5, 12], + "texture": "#0" + }, + "west": { + "uv": [12, 10.5, 12.75, 12], + "texture": "#0" + }, + "up": { + "uv": [12, 8.25, 13.5, 9], + "texture": "#0" + }, + "down": { + "uv": [13.5, 9.75, 15, 10.5], + "texture": "#0" + } + } + }, + { + "name": "base_north", + "from": [0, -16, 0], + "to": [16, -14, 4], + "faces": { + "north": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "north" + }, + "east": { + "uv": [4, 12, 4.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "west": { + "uv": [4, 15, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [0, 12, 1, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [7.5, 12, 8.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_south", + "from": [0, -16, 12], + "to": [16, -14, 16], + "faces": { + "east": { + "uv": [4, 15, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "south": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "south" + }, + "west": { + "uv": [4, 12, 4.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [3, 12, 4, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.5, 12, 5.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_east", + "from": [12, -16, 4], + "to": [16, -14, 12], + "faces": { + "east": { + "uv": [4, 13, 4.5, 15], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "up": { + "uv": [1, 12, 3, 13], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [5.5, 12, 7.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_west", + "from": [0, -16, 4], + "to": [4, -14, 12], + "faces": { + "east": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "west": { + "uv": [4, 13, 4.5, 15], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [1, 15, 3, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [5.5, 15, 7.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base2", + "from": [3, -14, 3], + "to": [13, -12, 13], + "faces": { + "north": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "east": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "south": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "west": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "up": { + "uv": [9, 9, 11.5, 11.5], + "texture": "#0" + } + } + }, + { + "name": "base3", + "from": [4, -12, 4], + "to": [12, -4, 12], + "faces": { + "north": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "east": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "south": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "west": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "up": { + "uv": [14, 3, 16, 5], + "texture": "#0" + } + } + }, + { + "name": "port", + "from": [4, -12, 0], + "to": [12, -4, 1], + "faces": { + "north": { + "uv": [0, 0, 8, 8], + "texture": "#1", + "cullface": "north" + }, + "east": { + "uv": [7, 0, 8, 8], + "texture": "#1" + }, + "south": { + "uv": [0, 8, 8, 16], + "texture": "#1" + }, + "west": { + "uv": [0, 0, 1, 8], + "texture": "#1" + }, + "up": { + "uv": [0, 0, 8, 1], + "texture": "#1" + }, + "down": { + "uv": [0, 7, 8, 8], + "texture": "#1" + } + } + }, + { + "name": "port_led", + "from": [4, -12, 0], + "to": [12, -4, 0], + "faces": { + "north": { + "uv": [8, 8, 16, 16], + "texture": "#2", + "cullface": "north" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "port_down", + "from": [4, -16, 4], + "to": [12, -16, 12], + "faces": { + "down": { + "uv": [0, 0, 8, 8], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "name": "port_down_led", + "from": [4, -16, 4], + "to": [12, -16, 12], + "faces": { + "down": { + "uv": [8, 8, 16, 16], + "texture": "#2", + "cullface": "down" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "solar_panel_east", + "from": [14, 30, -16], + "to": [32, 31, 32], + "faces": { + "north": { + "uv": [0, 11.75, 4.5, 12], + "texture": "#0" + }, + "east": { + "uv": [0, 0, 0.25, 12], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [0, 0, 4.5, 0.25], + "texture": "#0" + }, + "west": { + "uv": [4.25, 0, 4.5, 12], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [0, 0, 4.5, 12], + "rotation": 180, + "texture": "#0" + }, + "down": { + "uv": [4.5, 0, 9, 12], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_east_base", + "from": [15, 29, -15], + "to": [31, 30, 31], + "faces": { + "north": { + "uv": [4.75, 0.25, 8.75, 0.5], + "texture": "#0" + }, + "east": { + "uv": [4.75, 0.25, 5, 11.75], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [4.75, 11.5, 8.75, 11.75], + "texture": "#0" + }, + "west": { + "uv": [8.5, 0.25, 8.75, 11.75], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.75, 0.25, 8.75, 11.75], + "rotation": 180, + "texture": "#0" + } + } + }, + { + "name": "solar_panel_east_arm", + "from": [12, 27, 7], + "to": [28, 29, 9], + "faces": { + "north": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "east": { + "uv": [15.5, 6, 16, 6.5], + "rotation": 270, + "texture": "#0" + }, + "south": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west", + "from": [-16, 30, -16], + "to": [2, 31, 32], + "faces": { + "north": { + "uv": [0, 11.75, 4.5, 12], + "texture": "#0" + }, + "east": { + "uv": [0, 0, 0.25, 12], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [0, 0, 4.5, 0.25], + "texture": "#0" + }, + "west": { + "uv": [4.25, 0, 4.5, 12], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [0, 0, 4.5, 12], + "texture": "#0" + }, + "down": { + "uv": [4.5, 0, 9, 12], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west_base", + "from": [-15, 29, -15], + "to": [1, 30, 31], + "faces": { + "north": { + "uv": [4.75, 11.5, 8.75, 11.75], + "texture": "#0" + }, + "east": { + "uv": [4.75, 0.25, 5, 11.75], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [4.75, 0.25, 8.75, 0.5], + "texture": "#0" + }, + "west": { + "uv": [8.5, 0.25, 8.75, 11.75], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.75, 0.25, 8.75, 11.75], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west_arm", + "from": [-12, 27, 7], + "to": [4, 29, 9], + "faces": { + "north": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "west": { + "uv": [15.5, 6, 16, 6.5], + "rotation": 270, + "texture": "#0" + }, + "up": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "down": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [35, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [35, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -4.75, 0], + "scale": [0.24, 0.25, 0.22] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "translation": [0, -4.75, -0.5], + "scale": [0.3, 0.3, 0.3] + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/infinity_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/infinity_advanced_solar_generator.json new file mode 100644 index 00000000..825f8594 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/infinity_advanced_solar_generator.json @@ -0,0 +1,690 @@ +{ + "credit": "Model by CyanideX", + "textures": { + "0": "avaritia_integration:block/model/infinity_advanced_solar_generator", + "1": "mekanism:block/models/ports", + "2": "mekanism:block/models/ports_led", + "particle": "avaritia_integration:block/model/infinity_advanced_solar_generator" + }, + "render_type": "minecraft:cutout", + "elements": [ + { + "name": "pole", + "from": [6, -4, 6], + "to": [10, 25, 10], + "faces": { + "north": { + "uv": [11, 0, 10, 7.25], + "texture": "#0" + }, + "east": { + "uv": [10, 0, 9, 7.25], + "texture": "#0" + }, + "south": { + "uv": [12, 0, 11, 7.25], + "texture": "#0" + }, + "west": { + "uv": [10, 0, 9, 7.25], + "texture": "#0" + } + } + }, + { + "name": "tube1", + "from": [4, 22, 2], + "to": [6, 24, 14], + "faces": { + "north": { + "uv": [12, 5.25, 12.5, 5.75], + "texture": "#0" + }, + "east": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "south": { + "uv": [15, 5.25, 15.5, 5.75], + "texture": "#0" + }, + "west": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "up": { + "uv": [12.5, 5, 15, 5.5], + "texture": "#0" + }, + "down": { + "uv": [12.5, 5.5, 15, 6], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "tube2", + "from": [10, 22, 2], + "to": [12, 24, 14], + "faces": { + "north": { + "uv": [12, 5.25, 12.5, 5.75], + "texture": "#0" + }, + "east": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "south": { + "uv": [15, 5.25, 15.5, 5.75], + "texture": "#0" + }, + "west": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "up": { + "uv": [12.5, 5, 15, 5.5], + "texture": "#0" + }, + "down": { + "uv": [12.5, 5.5, 15, 6], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "barrel", + "from": [4, 25, 5], + "to": [12, 31, 11], + "faces": { + "north": { + "uv": [13.5, 0, 15.5, 1.5], + "texture": "#0" + }, + "east": { + "uv": [12, 0, 13.5, 1.5], + "texture": "#0" + }, + "south": { + "uv": [13.5, 1.5, 15.5, 3], + "texture": "#0" + }, + "west": { + "uv": [12, 1.5, 13.5, 3], + "texture": "#0" + }, + "up": { + "uv": [13.5, 0, 15.5, 1.5], + "texture": "#0" + }, + "down": { + "uv": [13.5, 1.5, 15.5, 3], + "rotation": 180, + "texture": "#0" + } + } + }, + { + "name": "ring1", + "from": [5, 24, 4], + "to": [6, 32, 12], + "faces": { + "north": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "east": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "south": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "west": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "up": { + "uv": [14.25, 6, 14.5, 8], + "texture": "#0" + } + } + }, + { + "name": "ring2", + "from": [10, 24, 4], + "to": [11, 32, 12], + "faces": { + "north": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "east": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "south": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "west": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "up": { + "uv": [14.25, 6, 14.5, 8], + "texture": "#0" + } + } + }, + { + "name": "connector", + "from": [5, -11, 1], + "to": [11, -5, 4], + "faces": { + "east": { + "uv": [12.75, 10.5, 13.5, 12], + "texture": "#0" + }, + "west": { + "uv": [12, 10.5, 12.75, 12], + "texture": "#0" + }, + "up": { + "uv": [12, 8.25, 13.5, 9], + "texture": "#0" + }, + "down": { + "uv": [13.5, 9.75, 15, 10.5], + "texture": "#0" + } + } + }, + { + "name": "base_north", + "from": [0, -16, 0], + "to": [16, -14, 4], + "faces": { + "north": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "north" + }, + "east": { + "uv": [4, 12, 4.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "west": { + "uv": [4, 15, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [0, 12, 1, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [7.5, 12, 8.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_south", + "from": [0, -16, 12], + "to": [16, -14, 16], + "faces": { + "east": { + "uv": [4, 15, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "south": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "south" + }, + "west": { + "uv": [4, 12, 4.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [3, 12, 4, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.5, 12, 5.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_east", + "from": [12, -16, 4], + "to": [16, -14, 12], + "faces": { + "east": { + "uv": [4, 13, 4.5, 15], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "up": { + "uv": [1, 12, 3, 13], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [5.5, 12, 7.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_west", + "from": [0, -16, 4], + "to": [4, -14, 12], + "faces": { + "east": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "west": { + "uv": [4, 13, 4.5, 15], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [1, 15, 3, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [5.5, 15, 7.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base2", + "from": [3, -14, 3], + "to": [13, -12, 13], + "faces": { + "north": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "east": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "south": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "west": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "up": { + "uv": [9, 9, 11.5, 11.5], + "texture": "#0" + } + } + }, + { + "name": "base3", + "from": [4, -12, 4], + "to": [12, -4, 12], + "faces": { + "north": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "east": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "south": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "west": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "up": { + "uv": [14, 3, 16, 5], + "texture": "#0" + } + } + }, + { + "name": "port", + "from": [4, -12, 0], + "to": [12, -4, 1], + "faces": { + "north": { + "uv": [0, 0, 8, 8], + "texture": "#1", + "cullface": "north" + }, + "east": { + "uv": [7, 0, 8, 8], + "texture": "#1" + }, + "south": { + "uv": [0, 8, 8, 16], + "texture": "#1" + }, + "west": { + "uv": [0, 0, 1, 8], + "texture": "#1" + }, + "up": { + "uv": [0, 0, 8, 1], + "texture": "#1" + }, + "down": { + "uv": [0, 7, 8, 8], + "texture": "#1" + } + } + }, + { + "name": "port_led", + "from": [4, -12, 0], + "to": [12, -4, 0], + "faces": { + "north": { + "uv": [8, 8, 16, 16], + "texture": "#2", + "cullface": "north" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "port_down", + "from": [4, -16, 4], + "to": [12, -16, 12], + "faces": { + "down": { + "uv": [0, 0, 8, 8], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "name": "port_down_led", + "from": [4, -16, 4], + "to": [12, -16, 12], + "faces": { + "down": { + "uv": [8, 8, 16, 16], + "texture": "#2", + "cullface": "down" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "solar_panel_east", + "from": [14, 30, -16], + "to": [32, 31, 32], + "faces": { + "north": { + "uv": [0, 11.75, 4.5, 12], + "texture": "#0" + }, + "east": { + "uv": [0, 0, 0.25, 12], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [0, 0, 4.5, 0.25], + "texture": "#0" + }, + "west": { + "uv": [4.25, 0, 4.5, 12], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [0, 0, 4.5, 12], + "rotation": 180, + "texture": "#0" + }, + "down": { + "uv": [4.5, 0, 9, 12], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_east_base", + "from": [15, 29, -15], + "to": [31, 30, 31], + "faces": { + "north": { + "uv": [4.75, 0.25, 8.75, 0.5], + "texture": "#0" + }, + "east": { + "uv": [4.75, 0.25, 5, 11.75], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [4.75, 11.5, 8.75, 11.75], + "texture": "#0" + }, + "west": { + "uv": [8.5, 0.25, 8.75, 11.75], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.75, 0.25, 8.75, 11.75], + "rotation": 180, + "texture": "#0" + } + } + }, + { + "name": "solar_panel_east_arm", + "from": [12, 27, 7], + "to": [28, 29, 9], + "faces": { + "north": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "east": { + "uv": [15.5, 6, 16, 6.5], + "rotation": 270, + "texture": "#0" + }, + "south": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west", + "from": [-16, 30, -16], + "to": [2, 31, 32], + "faces": { + "north": { + "uv": [0, 11.75, 4.5, 12], + "texture": "#0" + }, + "east": { + "uv": [0, 0, 0.25, 12], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [0, 0, 4.5, 0.25], + "texture": "#0" + }, + "west": { + "uv": [4.25, 0, 4.5, 12], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [0, 0, 4.5, 12], + "texture": "#0" + }, + "down": { + "uv": [4.5, 0, 9, 12], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west_base", + "from": [-15, 29, -15], + "to": [1, 30, 31], + "faces": { + "north": { + "uv": [4.75, 11.5, 8.75, 11.75], + "texture": "#0" + }, + "east": { + "uv": [4.75, 0.25, 5, 11.75], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [4.75, 0.25, 8.75, 0.5], + "texture": "#0" + }, + "west": { + "uv": [8.5, 0.25, 8.75, 11.75], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.75, 0.25, 8.75, 11.75], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west_arm", + "from": [-12, 27, 7], + "to": [4, 29, 9], + "faces": { + "north": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "west": { + "uv": [15.5, 6, 16, 6.5], + "rotation": 270, + "texture": "#0" + }, + "up": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "down": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [35, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [35, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -4.75, 0], + "scale": [0.24, 0.25, 0.22] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "translation": [0, -4.75, -0.5], + "scale": [0.3, 0.3, 0.3] + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/infinity_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/infinity_solar_generator.json new file mode 100644 index 00000000..2e4ccdba --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/infinity_solar_generator.json @@ -0,0 +1,427 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "1": "avaritia_integration:block/model/infinity_solar_generator", + "particle": "avaritia_integration:block/model/infinity_solar_generator" + }, + "elements": [ + { + "name": "solarPanel", + "from": [0.5, 8.5, 0.5], + "to": [15.5, 9.5, 15.5], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 7, 8] }, + "faces": { + "north": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "north" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "east" }, + "south": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "south" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0.25, 0.25, 3.75, 3.75], "texture": "#1" }, + "down": { "uv": [4, 0, 8, 4], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [3, 2, 3], + "to": [13, 3, 13], + "rotation": { "angle": 0, "axis": "y", "origin": [0, 1, 0] }, + "faces": { + "north": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "east": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "south": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "west": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "up": { "uv": [12.75, 0.75, 15.25, 3.25], "texture": "#1" }, + "down": { + "uv": [8.75, 0.75, 11.25, 3.25], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "name": "solarPanelPort", + "from": [1.9, 0.05, 1.9], + "to": [14.1, 2.25, 14.1], + "faces": { + "north": { "uv": [15.5, 7.25, 12.5, 7.5], "texture": "#1" }, + "east": { "uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1" }, + "south": { "uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1" }, + "west": { "uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1" }, + "up": { "uv": [12.5, 4.5, 15.5, 7.5], "texture": "#1" }, + "down": { + "uv": [8.5, 0.5, 11.5, 3.5], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "name": "SolarFrame", + "from": [1, 8, 0], + "to": [15, 10, 1], + "faces": { + "north": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 0.5, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 3.5, 0.25], "texture": "#1" }, + "down": { "uv": [0.25, 0, 3.75, 0.25], "texture": "#1" } + } + }, + { + "name": "SolarFrame", + "from": [15, 8, 0], + "to": [16, 10, 16], + "faces": { + "north": { "uv": [0, 0, 0.25, 0.5], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 0.5, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 0.25, 4], "texture": "#1" }, + "down": { "uv": [0, 0, 0.25, 4], "texture": "#1" } + } + }, + { + "name": "SolarFrame", + "from": [0, 8, 0], + "to": [1, 10, 16], + "faces": { + "north": { "uv": [0, 0, 0.25, 0.5], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 0.5, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 0.25, 4], "texture": "#1" }, + "down": { "uv": [0, 0, 0.25, 4], "texture": "#1" } + } + }, + { + "name": "SolarFrame", + "from": [1, 8, 15], + "to": [15, 10, 16], + "faces": { + "north": { "uv": [0, 0, 3.5, 0.25], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 3.75, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 3.5, 0.25], "texture": "#1" }, + "down": { "uv": [0.25, 0, 3.75, 0.25], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [1, 0, 10], + "to": [6, 2, 15], + "rotation": { "angle": 0, "axis": "y", "origin": [5, 1.5, 8] }, + "faces": { + "north": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [1.5, 8.5, 0.25, 9.75], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [0.25, 8.5, 1.5, 9.75], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 10], + "to": [15, 2, 15], + "rotation": { "angle": 0, "axis": "y", "origin": [11, 1.5, 8] }, + "faces": { + "north": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [1.5, 9.75, 0.25, 8.5], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [0.25, 9.75, 1.5, 8.5], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 1], + "to": [15, 2, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [11, 1.5, 8] }, + "faces": { + "north": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [0.25, 9.75, 1.5, 8.5], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [1.5, 9.75, 0.25, 8.5], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 0], + "to": [16, 1, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [11.5, 0.5, 2.5] }, + "faces": { + "north": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "east": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "south": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "west": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "up": { "uv": [1.75, 12, 0.25, 10.5], "texture": "#1" }, + "down": { "uv": [1.75, 10.5, 0.25, 12], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [0, 0, 0], + "to": [6, 1, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [4.5, 0.5, 2.5] }, + "faces": { + "north": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "east": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "south": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "west": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "up": { "uv": [0.25, 12, 1.75, 10.5], "texture": "#1" }, + "down": { "uv": [0.25, 10.5, 1.75, 12], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [0, 0, 10], + "to": [6, 1, 16], + "rotation": { "angle": 0, "axis": "y", "origin": [4.5, 0.5, 13.5] }, + "faces": { + "north": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "east": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "south": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "west": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "up": { "uv": [0.25, 10.5, 1.75, 12], "texture": "#1" }, + "down": { "uv": [0.25, 12, 1.75, 10.5], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 10], + "to": [16, 1, 16], + "rotation": { "angle": 0, "axis": "y", "origin": [11.5, 0.5, 13.5] }, + "faces": { + "north": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "east": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "south": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "west": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "up": { "uv": [1.75, 10.5, 0.25, 12], "texture": "#1" }, + "down": { "uv": [1.75, 12, 0.25, 10.5], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [1, 0, 1], + "to": [6, 2, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [5, 1.5, 8] }, + "faces": { + "north": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [0.25, 8.5, 1.5, 9.75], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [1.5, 8.5, 0.25, 9.75], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelRod5", + "from": [2, 2, 2], + "to": [4, 7, 4], + "rotation": { "angle": -45, "axis": "y", "origin": [3, 4, 3] }, + "faces": { + "north": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "east": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "south": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "west": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod6", + "from": [12, 2, 2], + "to": [14, 7, 4], + "rotation": { "angle": 45, "axis": "y", "origin": [13, 4, 3] }, + "faces": { + "north": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "east": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "south": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "west": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod7", + "from": [12, 2, 12], + "to": [14, 7, 14], + "rotation": { "angle": -45, "axis": "y", "origin": [13, 4, 13] }, + "faces": { + "north": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "east": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "south": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "west": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod6", + "from": [2, 2, 12], + "to": [4, 7, 14], + "rotation": { "angle": 45, "axis": "y", "origin": [3, 4, 13] }, + "faces": { + "north": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "east": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "south": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "west": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod5", + "from": [4, 3, 4], + "to": [12, 7, 12], + "rotation": { "angle": 0, "axis": "y", "origin": [4, 7, 11] }, + "faces": { + "north": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" }, + "east": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" }, + "south": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" }, + "west": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" } + } + }, + { + "name": "solarPanelPipeBase", + "from": [5, 3, 5], + "to": [11, 7, 11], + "rotation": { "angle": 0, "axis": "y", "origin": [0, 2, 0] }, + "faces": { + "north": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "east": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "south": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "west": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "up": { "uv": [5.5, 6, 7, 7.5], "texture": "#1" } + } + }, + { + "name": "solarPanelBottom", + "from": [1, 7, 1], + "to": [15, 8, 15], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 7, 8] }, + "faces": { + "north": { "uv": [0, 4.5, 3.5, 4.75], "texture": "#1" }, + "east": { "uv": [0, 7.75, 3.5, 8], "texture": "#1" }, + "south": { "uv": [0, 4.5, 3.5, 4.75], "texture": "#1" }, + "west": { "uv": [0, 7.75, 3.5, 8], "texture": "#1" }, + "down": { "uv": [0, 4.5, 3.5, 8], "texture": "#1" } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "translation": [0, 2.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "translation": [0, 2.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "head": { + "translation": [0, 9.5, 0] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -1], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/neutron_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/neutron_advanced_solar_generator.json new file mode 100644 index 00000000..2d34f4da --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/neutron_advanced_solar_generator.json @@ -0,0 +1,690 @@ +{ + "credit": "Model by CyanideX", + "textures": { + "0": "avaritia_integration:block/model/neutron_advanced_solar_generator", + "1": "mekanism:block/models/ports", + "2": "mekanism:block/models/ports_led", + "particle": "avaritia_integration:block/model/neutron_advanced_solar_generator" + }, + "render_type": "minecraft:cutout", + "elements": [ + { + "name": "pole", + "from": [6, -4, 6], + "to": [10, 25, 10], + "faces": { + "north": { + "uv": [11, 0, 10, 7.25], + "texture": "#0" + }, + "east": { + "uv": [10, 0, 9, 7.25], + "texture": "#0" + }, + "south": { + "uv": [12, 0, 11, 7.25], + "texture": "#0" + }, + "west": { + "uv": [10, 0, 9, 7.25], + "texture": "#0" + } + } + }, + { + "name": "tube1", + "from": [4, 22, 2], + "to": [6, 24, 14], + "faces": { + "north": { + "uv": [12, 5.25, 12.5, 5.75], + "texture": "#0" + }, + "east": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "south": { + "uv": [15, 5.25, 15.5, 5.75], + "texture": "#0" + }, + "west": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "up": { + "uv": [12.5, 5, 15, 5.5], + "texture": "#0" + }, + "down": { + "uv": [12.5, 5.5, 15, 6], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "tube2", + "from": [10, 22, 2], + "to": [12, 24, 14], + "faces": { + "north": { + "uv": [12, 5.25, 12.5, 5.75], + "texture": "#0" + }, + "east": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "south": { + "uv": [15, 5.25, 15.5, 5.75], + "texture": "#0" + }, + "west": { + "uv": [12.5, 5.25, 15, 5.75], + "texture": "#0" + }, + "up": { + "uv": [12.5, 5, 15, 5.5], + "texture": "#0" + }, + "down": { + "uv": [12.5, 5.5, 15, 6], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "barrel", + "from": [4, 25, 5], + "to": [12, 31, 11], + "faces": { + "north": { + "uv": [13.5, 0, 15.5, 1.5], + "texture": "#0" + }, + "east": { + "uv": [12, 0, 13.5, 1.5], + "texture": "#0" + }, + "south": { + "uv": [13.5, 1.5, 15.5, 3], + "texture": "#0" + }, + "west": { + "uv": [12, 1.5, 13.5, 3], + "texture": "#0" + }, + "up": { + "uv": [13.5, 0, 15.5, 1.5], + "texture": "#0" + }, + "down": { + "uv": [13.5, 1.5, 15.5, 3], + "rotation": 180, + "texture": "#0" + } + } + }, + { + "name": "ring1", + "from": [5, 24, 4], + "to": [6, 32, 12], + "faces": { + "north": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "east": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "south": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "west": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "up": { + "uv": [14.25, 6, 14.5, 8], + "texture": "#0" + } + } + }, + { + "name": "ring2", + "from": [10, 24, 4], + "to": [11, 32, 12], + "faces": { + "north": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "east": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "south": { + "uv": [14, 6, 14.25, 8], + "texture": "#0" + }, + "west": { + "uv": [12, 6, 14, 8], + "texture": "#0" + }, + "up": { + "uv": [14.25, 6, 14.5, 8], + "texture": "#0" + } + } + }, + { + "name": "connector", + "from": [5, -11, 1], + "to": [11, -5, 4], + "faces": { + "east": { + "uv": [12.75, 10.5, 13.5, 12], + "texture": "#0" + }, + "west": { + "uv": [12, 10.5, 12.75, 12], + "texture": "#0" + }, + "up": { + "uv": [12, 8.25, 13.5, 9], + "texture": "#0" + }, + "down": { + "uv": [13.5, 9.75, 15, 10.5], + "texture": "#0" + } + } + }, + { + "name": "base_north", + "from": [0, -16, 0], + "to": [16, -14, 4], + "faces": { + "north": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "north" + }, + "east": { + "uv": [4, 12, 4.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "west": { + "uv": [4, 15, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [0, 12, 1, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [7.5, 12, 8.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_south", + "from": [0, -16, 12], + "to": [16, -14, 16], + "faces": { + "east": { + "uv": [4, 15, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "south": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "south" + }, + "west": { + "uv": [4, 12, 4.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [3, 12, 4, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.5, 12, 5.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_east", + "from": [12, -16, 4], + "to": [16, -14, 12], + "faces": { + "east": { + "uv": [4, 13, 4.5, 15], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "up": { + "uv": [1, 12, 3, 13], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [5.5, 12, 7.5, 13], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base_west", + "from": [0, -16, 4], + "to": [4, -14, 12], + "faces": { + "east": { + "uv": [4, 12, 4.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "east" + }, + "west": { + "uv": [4, 13, 4.5, 15], + "rotation": 90, + "texture": "#0", + "cullface": "west" + }, + "up": { + "uv": [1, 15, 3, 16], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [5.5, 15, 7.5, 16], + "rotation": 90, + "texture": "#0", + "cullface": "down" + } + } + }, + { + "name": "base2", + "from": [3, -14, 3], + "to": [13, -12, 13], + "faces": { + "north": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "east": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "south": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "west": { + "uv": [9, 11.5, 11.5, 12], + "texture": "#0" + }, + "up": { + "uv": [9, 9, 11.5, 11.5], + "texture": "#0" + } + } + }, + { + "name": "base3", + "from": [4, -12, 4], + "to": [12, -4, 12], + "faces": { + "north": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "east": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "south": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "west": { + "uv": [12, 3, 14, 5], + "texture": "#0" + }, + "up": { + "uv": [14, 3, 16, 5], + "texture": "#0" + } + } + }, + { + "name": "port", + "from": [4, -12, 0], + "to": [12, -4, 1], + "faces": { + "north": { + "uv": [0, 0, 8, 8], + "texture": "#1", + "cullface": "north" + }, + "east": { + "uv": [7, 0, 8, 8], + "texture": "#1" + }, + "south": { + "uv": [0, 8, 8, 16], + "texture": "#1" + }, + "west": { + "uv": [0, 0, 1, 8], + "texture": "#1" + }, + "up": { + "uv": [0, 0, 8, 1], + "texture": "#1" + }, + "down": { + "uv": [0, 7, 8, 8], + "texture": "#1" + } + } + }, + { + "name": "port_led", + "from": [4, -12, 0], + "to": [12, -4, 0], + "faces": { + "north": { + "uv": [8, 8, 16, 16], + "texture": "#2", + "cullface": "north" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "port_down", + "from": [4, -16, 4], + "to": [12, -16, 12], + "faces": { + "down": { + "uv": [0, 0, 8, 8], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "name": "port_down_led", + "from": [4, -16, 4], + "to": [12, -16, 12], + "faces": { + "down": { + "uv": [8, 8, 16, 16], + "texture": "#2", + "cullface": "down" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "solar_panel_east", + "from": [14, 30, -16], + "to": [32, 31, 32], + "faces": { + "north": { + "uv": [0, 11.75, 4.5, 12], + "texture": "#0" + }, + "east": { + "uv": [0, 0, 0.25, 12], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [0, 0, 4.5, 0.25], + "texture": "#0" + }, + "west": { + "uv": [4.25, 0, 4.5, 12], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [0, 0, 4.5, 12], + "rotation": 180, + "texture": "#0" + }, + "down": { + "uv": [4.5, 0, 9, 12], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_east_base", + "from": [15, 29, -15], + "to": [31, 30, 31], + "faces": { + "north": { + "uv": [4.75, 0.25, 8.75, 0.5], + "texture": "#0" + }, + "east": { + "uv": [4.75, 0.25, 5, 11.75], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [4.75, 11.5, 8.75, 11.75], + "texture": "#0" + }, + "west": { + "uv": [8.5, 0.25, 8.75, 11.75], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.75, 0.25, 8.75, 11.75], + "rotation": 180, + "texture": "#0" + } + } + }, + { + "name": "solar_panel_east_arm", + "from": [12, 27, 7], + "to": [28, 29, 9], + "faces": { + "north": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "east": { + "uv": [15.5, 6, 16, 6.5], + "rotation": 270, + "texture": "#0" + }, + "south": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west", + "from": [-16, 30, -16], + "to": [2, 31, 32], + "faces": { + "north": { + "uv": [0, 11.75, 4.5, 12], + "texture": "#0" + }, + "east": { + "uv": [0, 0, 0.25, 12], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [0, 0, 4.5, 0.25], + "texture": "#0" + }, + "west": { + "uv": [4.25, 0, 4.5, 12], + "rotation": 90, + "texture": "#0" + }, + "up": { + "uv": [0, 0, 4.5, 12], + "texture": "#0" + }, + "down": { + "uv": [4.5, 0, 9, 12], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west_base", + "from": [-15, 29, -15], + "to": [1, 30, 31], + "faces": { + "north": { + "uv": [4.75, 11.5, 8.75, 11.75], + "texture": "#0" + }, + "east": { + "uv": [4.75, 0.25, 5, 11.75], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [4.75, 0.25, 8.75, 0.5], + "texture": "#0" + }, + "west": { + "uv": [8.5, 0.25, 8.75, 11.75], + "rotation": 90, + "texture": "#0" + }, + "down": { + "uv": [4.75, 0.25, 8.75, 11.75], + "texture": "#0" + } + } + }, + { + "name": "solar_panel_west_arm", + "from": [-12, 27, 7], + "to": [4, 29, 9], + "faces": { + "north": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 90, + "texture": "#0" + }, + "south": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "west": { + "uv": [15.5, 6, 16, 6.5], + "rotation": 270, + "texture": "#0" + }, + "up": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + }, + "down": { + "uv": [15.5, 6.5, 16, 10.5], + "rotation": 270, + "texture": "#0" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [35, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [35, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -4.75, 0], + "scale": [0.24, 0.25, 0.22] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "translation": [0, -4.75, -0.5], + "scale": [0.3, 0.3, 0.3] + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/neutron_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/neutron_solar_generator.json new file mode 100644 index 00000000..93e8fe3e --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/block/neutron_solar_generator.json @@ -0,0 +1,427 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "1": "avaritia_integration:block/model/neutron_solar_generator", + "particle": "avaritia_integration:block/model/neutron_solar_generator" + }, + "elements": [ + { + "name": "solarPanel", + "from": [0.5, 8.5, 0.5], + "to": [15.5, 9.5, 15.5], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 7, 8] }, + "faces": { + "north": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "north" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "east" }, + "south": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "south" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0.25, 0.25, 3.75, 3.75], "texture": "#1" }, + "down": { "uv": [4, 0, 8, 4], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [3, 2, 3], + "to": [13, 3, 13], + "rotation": { "angle": 0, "axis": "y", "origin": [0, 1, 0] }, + "faces": { + "north": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "east": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "south": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "west": { "uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1" }, + "up": { "uv": [12.75, 0.75, 15.25, 3.25], "texture": "#1" }, + "down": { + "uv": [8.75, 0.75, 11.25, 3.25], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "name": "solarPanelPort", + "from": [1.9, 0.05, 1.9], + "to": [14.1, 2.25, 14.1], + "faces": { + "north": { "uv": [15.5, 7.25, 12.5, 7.5], "texture": "#1" }, + "east": { "uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1" }, + "south": { "uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1" }, + "west": { "uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1" }, + "up": { "uv": [12.5, 4.5, 15.5, 7.5], "texture": "#1" }, + "down": { + "uv": [8.5, 0.5, 11.5, 3.5], + "texture": "#1", + "cullface": "down" + } + } + }, + { + "name": "SolarFrame", + "from": [1, 8, 0], + "to": [15, 10, 1], + "faces": { + "north": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 0.5, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 3.5, 0.25], "texture": "#1" }, + "down": { "uv": [0.25, 0, 3.75, 0.25], "texture": "#1" } + } + }, + { + "name": "SolarFrame", + "from": [15, 8, 0], + "to": [16, 10, 16], + "faces": { + "north": { "uv": [0, 0, 0.25, 0.5], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 0.5, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 0.25, 4], "texture": "#1" }, + "down": { "uv": [0, 0, 0.25, 4], "texture": "#1" } + } + }, + { + "name": "SolarFrame", + "from": [0, 8, 0], + "to": [1, 10, 16], + "faces": { + "north": { "uv": [0, 0, 0.25, 0.5], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 0.5, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 0.25, 4], "texture": "#1" }, + "down": { "uv": [0, 0, 0.25, 4], "texture": "#1" } + } + }, + { + "name": "SolarFrame", + "from": [1, 8, 15], + "to": [15, 10, 16], + "faces": { + "north": { "uv": [0, 0, 3.5, 0.25], "texture": "#1" }, + "east": { "uv": [0, 4, 4, 4.5], "texture": "#1" }, + "south": { "uv": [0.25, 4, 3.75, 4.5], "texture": "#1" }, + "west": { "uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west" }, + "up": { "uv": [0, 0, 3.5, 0.25], "texture": "#1" }, + "down": { "uv": [0.25, 0, 3.75, 0.25], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [1, 0, 10], + "to": [6, 2, 15], + "rotation": { "angle": 0, "axis": "y", "origin": [5, 1.5, 8] }, + "faces": { + "north": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [1.5, 8.5, 0.25, 9.75], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [0.25, 8.5, 1.5, 9.75], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 10], + "to": [15, 2, 15], + "rotation": { "angle": 0, "axis": "y", "origin": [11, 1.5, 8] }, + "faces": { + "north": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [1.5, 9.75, 0.25, 8.5], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [0.25, 9.75, 1.5, 8.5], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 1], + "to": [15, 2, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [11, 1.5, 8] }, + "faces": { + "north": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [0.25, 9.75, 0.5, 8.5], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [0.25, 9.75, 1.5, 8.5], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [1.5, 9.75, 0.25, 8.5], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 0], + "to": [16, 1, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [11.5, 0.5, 2.5] }, + "faces": { + "north": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "east": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "south": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "west": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "up": { "uv": [1.75, 12, 0.25, 10.5], "texture": "#1" }, + "down": { "uv": [1.75, 10.5, 0.25, 12], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [0, 0, 0], + "to": [6, 1, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [4.5, 0.5, 2.5] }, + "faces": { + "north": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "east": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "south": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "west": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "up": { "uv": [0.25, 12, 1.75, 10.5], "texture": "#1" }, + "down": { "uv": [0.25, 10.5, 1.75, 12], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [0, 0, 10], + "to": [6, 1, 16], + "rotation": { "angle": 0, "axis": "y", "origin": [4.5, 0.5, 13.5] }, + "faces": { + "north": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "east": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "south": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "west": { "uv": [0.25, 12, 1.75, 11.75], "texture": "#1" }, + "up": { "uv": [0.25, 10.5, 1.75, 12], "texture": "#1" }, + "down": { "uv": [0.25, 12, 1.75, 10.5], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [10, 0, 10], + "to": [16, 1, 16], + "rotation": { "angle": 0, "axis": "y", "origin": [11.5, 0.5, 13.5] }, + "faces": { + "north": { "uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1" }, + "east": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "south": { "uv": [1.75, 12, 0.25, 11.75], "texture": "#1" }, + "west": { "uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1" }, + "up": { "uv": [1.75, 10.5, 0.25, 12], "texture": "#1" }, + "down": { "uv": [1.75, 12, 0.25, 10.5], "texture": "#1" } + } + }, + { + "name": "solarPanelPort", + "from": [1, 0, 1], + "to": [6, 2, 6], + "rotation": { "angle": 0, "axis": "y", "origin": [5, 1.5, 8] }, + "faces": { + "north": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "east": { + "uv": [1.5, 9.75, 1.75, 8.5], + "rotation": 90, + "texture": "#1" + }, + "south": { + "uv": [1.5, 8.5, 1.75, 9.75], + "rotation": 90, + "texture": "#1" + }, + "west": { + "uv": [0.25, 8.5, 0.5, 9.75], + "rotation": 90, + "texture": "#1" + }, + "up": { "uv": [0.25, 8.5, 1.5, 9.75], "rotation": 90, "texture": "#1" }, + "down": { + "uv": [1.5, 8.5, 0.25, 9.75], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "solarPanelRod5", + "from": [2, 2, 2], + "to": [4, 7, 4], + "rotation": { "angle": -45, "axis": "y", "origin": [3, 4, 3] }, + "faces": { + "north": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "east": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "south": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "west": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod6", + "from": [12, 2, 2], + "to": [14, 7, 4], + "rotation": { "angle": 45, "axis": "y", "origin": [13, 4, 3] }, + "faces": { + "north": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "east": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "south": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "west": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod7", + "from": [12, 2, 12], + "to": [14, 7, 14], + "rotation": { "angle": -45, "axis": "y", "origin": [13, 4, 13] }, + "faces": { + "north": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "east": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "south": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" }, + "west": { "uv": [3.5, 4.5, 4, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod6", + "from": [2, 2, 12], + "to": [4, 7, 14], + "rotation": { "angle": 45, "axis": "y", "origin": [3, 4, 13] }, + "faces": { + "north": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "east": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "south": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" }, + "west": { "uv": [4, 4.5, 3.5, 5.75], "texture": "#1" } + } + }, + { + "name": "solarPanelRod5", + "from": [4, 3, 4], + "to": [12, 7, 12], + "rotation": { "angle": 0, "axis": "y", "origin": [4, 7, 11] }, + "faces": { + "north": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" }, + "east": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" }, + "south": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" }, + "west": { "uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1" } + } + }, + { + "name": "solarPanelPipeBase", + "from": [5, 3, 5], + "to": [11, 7, 11], + "rotation": { "angle": 0, "axis": "y", "origin": [0, 2, 0] }, + "faces": { + "north": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "east": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "south": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "west": { "uv": [5.5, 6.5, 7, 7.5], "texture": "#1" }, + "up": { "uv": [5.5, 6, 7, 7.5], "texture": "#1" } + } + }, + { + "name": "solarPanelBottom", + "from": [1, 7, 1], + "to": [15, 8, 15], + "rotation": { "angle": 0, "axis": "y", "origin": [8, 7, 8] }, + "faces": { + "north": { "uv": [0, 4.5, 3.5, 4.75], "texture": "#1" }, + "east": { "uv": [0, 7.75, 3.5, 8], "texture": "#1" }, + "south": { "uv": [0, 4.5, 3.5, 4.75], "texture": "#1" }, + "west": { "uv": [0, 7.75, 3.5, 8], "texture": "#1" }, + "down": { "uv": [0, 4.5, 3.5, 8], "texture": "#1" } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "translation": [0, 2.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "translation": [0, 2.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "head": { + "translation": [0, 9.5, 0] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -1], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_advanced_solar_generator.json new file mode 100644 index 00000000..6392259f --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_advanced_solar_generator.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/infinity_advanced_solar_generator" +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_generator.json new file mode 100644 index 00000000..305f300e --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_generator.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/infinity_solar_generator" +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_panel.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_panel.json new file mode 100644 index 00000000..c11c5601 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_panel.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_solar_panel", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_advanced_solar_generator.json new file mode 100644 index 00000000..015fd29f --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_advanced_solar_generator.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/neutron_advanced_solar_generator" +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_generator.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_generator.json new file mode 100644 index 00000000..6d9a3b0a --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_generator.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/neutron_solar_generator" +} diff --git a/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_panel.json b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_panel.json new file mode 100644 index 00000000..f5edd6b5 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_panel.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_solar_panel", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/model/infinity_advanced_solar_generator.png b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/infinity_advanced_solar_generator.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/model/infinity_advanced_solar_generator.png rename to integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/infinity_advanced_solar_generator.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/model/infinity_solar_generator.png b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/infinity_solar_generator.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/model/infinity_solar_generator.png rename to integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/infinity_solar_generator.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/model/neutron_advanced_solar_generator.png b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/neutron_advanced_solar_generator.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/model/neutron_advanced_solar_generator.png rename to integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/neutron_advanced_solar_generator.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/model/neutron_solar_generator.png b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/neutron_solar_generator.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/model/neutron_solar_generator.png rename to integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/block/model/neutron_solar_generator.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_solar_panel.png b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_solar_panel.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_solar_panel.png rename to integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_solar_panel.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_solar_panel.png b/integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_solar_panel.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_solar_panel.png rename to integrations/mekanism-generators/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_solar_panel.png diff --git a/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_advanced_solar_generator.json new file mode 100644 index 00000000..6c0b7399 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_advanced_solar_generator.json @@ -0,0 +1,29 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia:extreme_smithing", + "addition": [ + { + "item": "avaritia_integration:infinity_solar_generator" + }, + { + "item": "avaritia:enhancement_core" + }, + { + "item": "avaritia:infinity_catalyst" + } + ], + "base": { + "item": "avaritia_integration:neutron_advanced_solar_generator" + }, + "result": { + "id": "avaritia_integration:infinity_advanced_solar_generator" + }, + "template": { + "item": "avaritia:upgrade_smithing_template" + } +} diff --git a/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_solar_generator.json b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_solar_generator.json new file mode 100644 index 00000000..e1fdcad9 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_solar_generator.json @@ -0,0 +1,43 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia:shaped_table", + "category": "misc", + "key": { + "P": { + "item": "avaritia_integration:infinity_solar_panel" + }, + "A": { + "tag": "mekanism:alloys/infinity" + }, + "D": { + "item": "avaritia:diamond_lattice" + }, + "O": { + "tag": "c:ingots/osmium" + }, + "T": { + "item": "avaritia_integration:infinity_energy_tablet" + } + }, + "pattern": [ + " ", + " ", + " ", + "PPPPPPPPP", + "AAADDDAAA", + "OOOTTTOOO", + " ", + " ", + " " + ], + "result": { + "id": "avaritia_integration:infinity_solar_generator" + }, + "show_notification": true, + "tier": 4 +} diff --git a/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_solar_panel.json b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_solar_panel.json new file mode 100644 index 00000000..cf678fe7 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/infinity_solar_panel.json @@ -0,0 +1,40 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia:shaped_table", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "P": { + "item": "avaritia_integration:neutron_solar_panel" + }, + "I": { + "tag": "mekanism:alloys/infinity" + }, + "O": { + "tag": "c:ingots/osmium" + } + }, + "pattern": [ + " ", + " ", + " ", + "GGGGGGGGG", + "IIIPPPIII", + "OOOOOOOOO", + " ", + " ", + " " + ], + "result": { + "id": "avaritia_integration:infinity_solar_panel" + }, + "show_notification": true, + "tier": 4 +} diff --git a/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_advanced_solar_generator.json b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_advanced_solar_generator.json new file mode 100644 index 00000000..f56e6c63 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_advanced_solar_generator.json @@ -0,0 +1,37 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia:shaped_table", + "category": "misc", + "key": { + "G": { + "item": "avaritia_integration:neutron_solar_generator" + }, + "A": { + "tag": "mekanism:alloys/neutron" + }, + "D": { + "item": "avaritia:diamond_lattice" + } + }, + "pattern": [ + " ", + " ", + " GGAGG ", + " G A G ", + " A ", + " A ", + " DDDDD ", + " ", + " " + ], + "result": { + "id": "avaritia_integration:neutron_advanced_solar_generator" + }, + "show_notification": true, + "tier": 4 +} diff --git a/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_solar_generator.json b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_solar_generator.json new file mode 100644 index 00000000..aaaa3f22 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_solar_generator.json @@ -0,0 +1,43 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia:shaped_table", + "category": "misc", + "key": { + "P": { + "item": "avaritia_integration:neutron_solar_panel" + }, + "A": { + "tag": "mekanism:alloys/neutron" + }, + "D": { + "item": "avaritia:diamond_lattice" + }, + "O": { + "tag": "c:ingots/osmium" + }, + "T": { + "item": "avaritia_integration:neutron_energy_tablet" + } + }, + "pattern": [ + " ", + " ", + " ", + "PPPPPPPPP", + "AAADDDAAA", + "OOOTTTOOO", + " ", + " ", + " " + ], + "result": { + "id": "avaritia_integration:neutron_solar_generator" + }, + "show_notification": true, + "tier": 4 +} diff --git a/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_solar_panel.json b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_solar_panel.json new file mode 100644 index 00000000..8ed5d272 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/data/mekanismgenerators/recipe/neutron_solar_panel.json @@ -0,0 +1,40 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia:shaped_table", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "P": { + "item": "mekanismgenerators:solar_panel" + }, + "N": { + "tag": "mekanism:alloys/neutron" + }, + "O": { + "tag": "c:ingots/osmium" + } + }, + "pattern": [ + " ", + " ", + " ", + "GGGGGGGGG", + "NNNPPPNNN", + "OOOOOOOOO", + " ", + " ", + " " + ], + "result": { + "id": "avaritia_integration:neutron_solar_panel" + }, + "show_notification": true, + "tier": 4 +} diff --git a/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..9bd97af2 --- /dev/null +++ b/integrations/mekanism-generators/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration Mekanism Generators Data" + } +} diff --git a/integrations/mekanism-generators/src/main/templates/META-INF/neoforge.mods.toml b/integrations/mekanism-generators/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/mekanism-generators/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/mekanism/build.gradle b/integrations/mekanism/build.gradle new file mode 100644 index 00000000..f55fc1dc --- /dev/null +++ b/integrations/mekanism/build.gradle @@ -0,0 +1,15 @@ +ext.ai_mod_id = 'avaritia_integration_mekanism' +ext.ai_mod_name = 'Avaritia Integration Mekanism' +ext.ai_mod_description = 'Avaritia Integration module for Mekanism.' +ext.ai_run_directory = 'integrations/mekanism' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.mekanism + runtimeOnly variantOf(forge.mekanism) { classifier('additions') } + runtimeOnly variantOf(forge.mekanism) { classifier('tools') } + runtimeOnly forge.igleeLibrary + implementation forge.evolvedMekanism +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/AIMekanismIntegrationMod.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/AIMekanismIntegrationMod.java new file mode 100644 index 00000000..87d8f45a --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/AIMekanismIntegrationMod.java @@ -0,0 +1,27 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIMekanismIntegrationMod.MOD_ID) +public final class AIMekanismIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_mekanism"; + private static final String DEPENDENCY_MOD_ID = "mekanism"; + + public AIMekanismIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration Mekanism Data"); + if (IntegrationRuntime.shouldLoad(MOD_ID, this)) IntegrationRuntime.load(MOD_ID, bus, new MekanismModule()); + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/MekanismModule.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/MekanismModule.java new file mode 100644 index 00000000..e59db5d7 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/MekanismModule.java @@ -0,0 +1,61 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanism.client.MekanismClient; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.network.to_server.MekIntegrationPacketGuiInteract; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationChemicals; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationContainerTypes; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationItems; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationRecipeSerializers; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationTileEntityTypes; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.core.Holder; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.CreativeModeTab.ItemDisplayParameters; +import net.minecraft.world.item.CreativeModeTab.Output; +import net.minecraft.world.item.Item; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; + +public final class MekanismModule implements Module { + + public static final String MOD_ID = "mekanism"; + + public static ResourceLocation rl(String path) { + return ResourceLocation.fromNamespaceAndPath(AvaritiaIntegration.MOD_ID, path); + } + + @Override + public void init(IEventBus registryBus) { + MekIntegrationItems.ITEMS.register(registryBus); + MekIntegrationBlocks.BLOCKS.register(registryBus); + MekIntegrationContainerTypes.CONTAINER_TYPES.register(registryBus); + MekIntegrationTileEntityTypes.TILE_ENTITY_TYPES.register(registryBus); + MekIntegrationChemicals.CHEMICALS.register(registryBus); + MekIntegrationRecipeSerializers.RECIPE_SERIALIZERS.register(registryBus); + registryBus.addListener(this::registerPayloads); + } + + private void registerPayloads(RegisterPayloadHandlersEvent event) { + event.registrar(AvaritiaIntegration.MOD_ID) + .playToServer(MekIntegrationPacketGuiInteract.TYPE, MekIntegrationPacketGuiInteract.STREAM_CODEC, + MekIntegrationPacketGuiInteract::handle); + } + + @Override + public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { + MekanismClient.register(modBus); + } + + @Override + public void collectCreativeTabItems(ItemDisplayParameters parameters, Output output) { + for (Holder itemHolder : MekIntegrationItems.ITEMS.getEntries()) { + output.accept(itemHolder.value()); + } + for (Holder blockHolder : MekIntegrationBlocks.BLOCKS.getSecondaryEntries()) { + output.accept(blockHolder.value()); + } + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/basic/BasicMekCompressorRecipe.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/basic/BasicMekCompressorRecipe.java new file mode 100644 index 00000000..5619a9a6 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/basic/BasicMekCompressorRecipe.java @@ -0,0 +1,35 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.basic; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.MekIntegrationRecipeType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationRecipeSerializers; + +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeSerializer; + +import mekanism.api.annotations.NothingNullByDefault; +import mekanism.api.recipes.basic.BasicItemStackToItemStackRecipe; +import mekanism.api.recipes.ingredients.ItemStackIngredient; + +@NothingNullByDefault +public class BasicMekCompressorRecipe extends BasicItemStackToItemStackRecipe { + + public BasicMekCompressorRecipe(ItemStackIngredient input, ItemStack output) { + super(input, output, MekIntegrationRecipeType.MEK_COMPRESSING.getRecipeType()); + } + + @Override + public RecipeSerializer getSerializer() { + return MekIntegrationRecipeSerializers.MEK_COMPRESSOR.get(); + } + + @Override + public String getGroup() { + return MekIntegrationBlocks.SINGULARITY_COMPRESSOR.getName(); + } + + @Override + public ItemStack getToastSymbol() { + return new ItemStack(MekIntegrationBlocks.SINGULARITY_COMPRESSOR.asItem()); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/basic/BasicNeutronCollectorRecipe.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/basic/BasicNeutronCollectorRecipe.java new file mode 100644 index 00000000..19265095 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/basic/BasicNeutronCollectorRecipe.java @@ -0,0 +1,41 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.basic; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.MekIntegrationRecipeType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationRecipeSerializers; + +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.crafting.RecipeType; + +import mekanism.api.annotations.NothingNullByDefault; +import mekanism.api.recipes.ingredients.ChemicalStackIngredient; + +@NothingNullByDefault +public class BasicNeutronCollectorRecipe extends ChemicalStackToItemStackRecipe { + + public BasicNeutronCollectorRecipe(ChemicalStackIngredient input, ItemStack output) { + super(input, output); + } + + @Override + public RecipeSerializer getSerializer() { + return MekIntegrationRecipeSerializers.COLLECTOR.get(); + } + + @Override + public RecipeType getType() { + return MekIntegrationRecipeType.COLLECTING.getRecipeType(); + } + + @Override + public String getGroup() { + return MekIntegrationBlocks.NEUTRON_COLLECTOR.getName(); + } + + @Override + public ItemStack getToastSymbol() { + return new ItemStack(MekIntegrationBlocks.NEUTRON_COLLECTOR.asItem()); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/cache/ChemicalToItemCachedRecipe.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/cache/ChemicalToItemCachedRecipe.java new file mode 100644 index 00000000..998f7d5f --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/cache/ChemicalToItemCachedRecipe.java @@ -0,0 +1,52 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.cache; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; + +import net.minecraft.world.item.ItemStack; + +import mekanism.api.chemical.ChemicalStack; +import mekanism.api.recipes.MekanismRecipe; +import mekanism.api.recipes.cache.OneInputCachedRecipe; +import mekanism.api.recipes.ingredients.InputIngredient; +import mekanism.api.recipes.inputs.IInputHandler; +import mekanism.api.recipes.outputs.IOutputHandler; +import org.jetbrains.annotations.NotNull; + +import java.util.function.BooleanSupplier; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.Supplier; + +public class ChemicalToItemCachedRecipe & Predicate> + extends OneInputCachedRecipe { + + /** + * @param recipe Recipe. + * @param recheckAllErrors Returns {@code true} if processing should be continued even if an error is hit in order + * to gather all the errors. It is recommended to not + * do this every tick or if there is no one viewing recipes. + * @param inputHandler Input handler. + * @param outputHandler Output handler. + * @param inputSupplier Supplier of the recipe's input ingredient. + * @param outputGetter Gets the recipe's output when given the corresponding input. + * @param inputEmptyCheck Checks if the input is empty. + * @param outputEmptyCheck Checks if the output is empty (indicating something went horribly wrong). + */ + protected ChemicalToItemCachedRecipe(RECIPE recipe, BooleanSupplier recheckAllErrors, + IInputHandler inputHandler, IOutputHandler outputHandler, + Supplier> inputSupplier, + Function outputGetter, Predicate inputEmptyCheck, + Predicate outputEmptyCheck) { + super(recipe, recheckAllErrors, inputHandler, outputHandler, inputSupplier, outputGetter, inputEmptyCheck, + outputEmptyCheck); + } + + public static ChemicalToItemCachedRecipe<@NotNull ChemicalStack, @NotNull ItemStack, ChemicalStackToItemStackRecipe> chemicalToItem(ChemicalStackToItemStackRecipe recipe, + BooleanSupplier recheckAllErrors, + IInputHandler<@NotNull ChemicalStack> inputHandler, + IOutputHandler<@NotNull ItemStack> outputHandler) { + return new ChemicalToItemCachedRecipe<>(recipe, recheckAllErrors, inputHandler, outputHandler, recipe::getInput, + recipe::getOutput, ChemicalStack::isEmpty, + ItemStack::isEmpty); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/chemicals/ChemicalStackToItemStackRecipe.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/chemicals/ChemicalStackToItemStackRecipe.java similarity index 92% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/chemicals/ChemicalStackToItemStackRecipe.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/chemicals/ChemicalStackToItemStackRecipe.java index 5c87d9f8..b324df36 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/chemicals/ChemicalStackToItemStackRecipe.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/api/recipes/chemicals/ChemicalStackToItemStackRecipe.java @@ -1,13 +1,14 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals; +package committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals; + +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import mekanism.api.annotations.NothingNullByDefault; import mekanism.api.chemical.ChemicalStack; import mekanism.api.recipes.MekanismRecipe; import mekanism.api.recipes.ingredients.ChemicalStackIngredient; import mekanism.api.recipes.vanilla_input.SingleChemicalRecipeInput; -import net.minecraft.core.HolderLookup; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import org.jetbrains.annotations.Contract; import java.util.Collections; @@ -16,7 +17,8 @@ import java.util.function.Predicate; @NothingNullByDefault -public abstract class ChemicalStackToItemStackRecipe extends MekanismRecipe implements Predicate { +public abstract class ChemicalStackToItemStackRecipe extends MekanismRecipe + implements Predicate { private final ChemicalStackIngredient input; private final ItemStack output; diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/MekanismClient.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/MekanismClient.java new file mode 100644 index 00000000..0d72f660 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/MekanismClient.java @@ -0,0 +1,29 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.client; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.machine.GuiMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.machine.GuiNeutronCollector; +import committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.machine.GuiSingularityCompressor; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationContainerTypes; + +import net.neoforged.bus.api.EventPriority; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent; + +import mekanism.client.ClientRegistrationUtil; + +public final class MekanismClient { + + private MekanismClient() {} + + public static void register(IEventBus modBus) { + modBus.addListener(EventPriority.LOW, MekanismClient::registerScreen); + } + + private static void registerScreen(RegisterMenuScreensEvent event) { + ClientRegistrationUtil.registerScreen(event, MekIntegrationContainerTypes.NEUTRON_COLLECTOR, + GuiNeutronCollector::new); + ClientRegistrationUtil.registerScreen(event, MekIntegrationContainerTypes.SINGULARITY_COMPRESSOR, + GuiSingularityCompressor::new); + ClientRegistrationUtil.registerScreen(event, MekIntegrationContainerTypes.FACTORY, GuiMIFactory::new); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/element/tab/GuiMISortingTab.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/element/tab/GuiMISortingTab.java new file mode 100644 index 00000000..7c012b52 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/element/tab/GuiMISortingTab.java @@ -0,0 +1,44 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.element.tab; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.network.to_server.MekIntegrationPacketGuiInteract; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.network.to_server.MekIntegrationPacketGuiInteract.MekIntegrationGuiInteraction; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; + +import net.minecraft.client.gui.GuiGraphics; + +import mekanism.client.SpecialColors; +import mekanism.client.gui.IGuiWrapper; +import mekanism.client.gui.element.GuiInsetElement; +import mekanism.client.render.MekanismRenderer; +import mekanism.common.MekanismLang; +import mekanism.common.network.PacketUtils; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import mekanism.common.util.text.BooleanStateDisplay.OnOff; +import org.jetbrains.annotations.NotNull; + +public class GuiMISortingTab extends GuiInsetElement> { + + public GuiMISortingTab(IGuiWrapper gui, TileEntityMIFactory tile) { + super(MekanismUtils.getResource(ResourceType.GUI, "sorting.png"), gui, tile, -26, 62, 35, 18, true); + setTooltip(MekanismLang.AUTO_SORT); + } + + @Override + public void drawBackground(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { + super.drawBackground(guiGraphics, mouseX, mouseY, partialTicks); + drawScrollingString(guiGraphics, OnOff.of(dataSource.isSorting()).getTextComponent(), 0, 24, + TextAlignment.CENTER, titleTextColor(), 3, false); + } + + @Override + protected void colorTab(GuiGraphics guiGraphics) { + MekanismRenderer.color(guiGraphics, SpecialColors.TAB_FACTORY_SORT); + } + + @Override + public void onClick(double mouseX, double mouseY, int button) { + PacketUtils.sendToServer( + new MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction.AUTO_SORT_BUTTON, dataSource)); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiMIFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiMIFactory.java new file mode 100644 index 00000000..018e8de3 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiMIFactory.java @@ -0,0 +1,97 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.machine; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.element.tab.GuiMISortingTab; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityChemicalToItemMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityItemToItemMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; + +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; +import net.neoforged.fml.ModList; + +import fr.iglee42.evolvedmekanism.tiers.EMFactoryTier; +import mekanism.api.recipes.cache.CachedRecipe; +import mekanism.client.gui.GuiConfigurableTile; +import mekanism.client.gui.element.bar.GuiVerticalPowerBar; +import mekanism.client.gui.element.gauge.GaugeType; +import mekanism.client.gui.element.gauge.GuiChemicalGauge; +import mekanism.client.gui.element.progress.GuiProgress; +import mekanism.client.gui.element.progress.ProgressType; +import mekanism.client.gui.element.tab.GuiEnergyTab; +import mekanism.common.inventory.container.tile.MekanismTileContainer; +import mekanism.common.inventory.warning.WarningTracker.WarningType; +import mekanism.common.tier.FactoryTier; +import org.jetbrains.annotations.NotNull; + +import java.util.function.LongSupplier; + +public class GuiMIFactory extends + GuiConfigurableTile, MekanismTileContainer>> { + + public GuiMIFactory(MekanismTileContainer> container, Inventory inv, Component title) { + super(container, inv, title); + if (tile instanceof TileEntityChemicalToItemMIFactory) imageHeight += 13; + inventoryLabelY = tile instanceof TileEntityChemicalToItemMIFactory ? 88 : 75; + if (tile.tier == FactoryTier.ULTIMATE) { + imageWidth += 34; + inventoryLabelX = 26; + } + if (isEMLoadAndTierOrdinalAboveOverLocked()) { + int index = tile.tier.ordinal() - 4; + imageWidth += (36 * (index + 2)) + (2 * index); + inventoryLabelX = (22 * (index + 2)) - (3 * index); + } + titleLabelY = 4; + dynamicSlots = true; + } + + private boolean isEMLoadAndTierOrdinalAboveOverLocked() { + if (ModList.get().isLoaded("evolvedmekanism")) { + return tile.tier.ordinal() >= EMFactoryTier.OVERCLOCKED.ordinal(); + } + return false; + } + + @Override + protected void addGuiElements() { + super.addGuiElements(); + if (tile instanceof TileEntityItemToItemMIFactory) { + addRenderableWidget(new GuiMISortingTab(this, tile)); + } + addRenderableWidget(new GuiVerticalPowerBar(this, tile.getEnergyContainer(), imageWidth - 12, 16, + tile instanceof TileEntityChemicalToItemMIFactory ? 65 : 52)) + .warning(WarningType.NOT_ENOUGH_ENERGY, + tile.getWarningCheck(CachedRecipe.OperationTracker.RecipeError.NOT_ENOUGH_ENERGY, 0)); + addRenderableWidget(new GuiEnergyTab(this, tile.getEnergyContainer(), (LongSupplier) tile::getLastUsage)); + + if (tile instanceof TileEntityChemicalToItemMIFactory factory) { + for (int i = 0; i < tile.tier.processes; i++) { + int index = i; + addRenderableWidget(new GuiChemicalGauge(() -> factory.inputGasTanks.get(index), + () -> factory.getChemicalTanks(null), GaugeType.SMALL, this, factory.getXPos(index) - 1, 13)) + .warning(WarningType.NO_MATCHING_RECIPE, factory + .getWarningCheck(CachedRecipe.OperationTracker.RecipeError.NOT_ENOUGH_INPUT, index)); + } + } + + for (int i = 0; i < tile.tier.processes; i++) { + int cacheIndex = i; + addRenderableWidget(new GuiProgress(() -> tile.getScaledProgress(1, cacheIndex), ProgressType.DOWN, this, + 4 + tile.getXPos(i), getProgressYPos())) + .warning(WarningType.INPUT_DOESNT_PRODUCE_OUTPUT, tile.getWarningCheck( + CachedRecipe.OperationTracker.RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT, cacheIndex)); + } + } + + private int getProgressYPos() { + return tile instanceof TileEntityChemicalToItemMIFactory ? 46 : 33; + } + + @Override + protected void drawForegroundText(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY) { + renderTitleText(guiGraphics); + renderInventoryText(guiGraphics); + super.drawForegroundText(guiGraphics, mouseX, mouseY); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiNeutronCollector.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiNeutronCollector.java new file mode 100644 index 00000000..5d775a3c --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiNeutronCollector.java @@ -0,0 +1,51 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.machine; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntityNeutronCollector; + +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; + +import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; +import mekanism.client.gui.GuiConfigurableTile; +import mekanism.client.gui.element.bar.GuiVerticalPowerBar; +import mekanism.client.gui.element.gauge.GaugeType; +import mekanism.client.gui.element.gauge.GuiChemicalGauge; +import mekanism.client.gui.element.progress.GuiProgress; +import mekanism.client.gui.element.progress.ProgressType; +import mekanism.client.gui.element.tab.GuiEnergyTab; +import mekanism.common.inventory.container.tile.MekanismTileContainer; +import mekanism.common.inventory.warning.WarningTracker.WarningType; +import org.jetbrains.annotations.NotNull; + +public class GuiNeutronCollector extends + GuiConfigurableTile> { + + public GuiNeutronCollector(MekanismTileContainer container, Inventory inv, + Component title) { + super(container, inv, title); + inventoryLabelY += 2; + dynamicSlots = true; + } + + @Override + protected void addGuiElements() { + super.addGuiElements(); + addRenderableWidget(new GuiVerticalPowerBar(this, tile.getEnergyContainer(), 164, 15)) + .warning(WarningType.NOT_ENOUGH_ENERGY, tile.getWarningCheck(RecipeError.NOT_ENOUGH_ENERGY)); + addRenderableWidget(new GuiEnergyTab(this, tile.getEnergyContainer(), tile::getActive)); + addRenderableWidget(new GuiChemicalGauge(() -> tile.gasTank, () -> tile.getChemicalTanks(null), + GaugeType.STANDARD, this, 26, 13)) + .warning(WarningType.NO_MATCHING_RECIPE, tile.getWarningCheck(RecipeError.NOT_ENOUGH_INPUT)); + addRenderableWidget(new GuiProgress(tile::getScaledProgress, ProgressType.LARGE_RIGHT, this, 64, 40)) + .warning(WarningType.INPUT_DOESNT_PRODUCE_OUTPUT, + tile.getWarningCheck(RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT)); + } + + @Override + protected void drawForegroundText(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY) { + renderTitleText(guiGraphics); + renderInventoryText(guiGraphics); + super.drawForegroundText(guiGraphics, mouseX, mouseY); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiSingularityCompressor.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiSingularityCompressor.java new file mode 100644 index 00000000..2e30eee0 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/client/gui/machine/GuiSingularityCompressor.java @@ -0,0 +1,47 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.client.gui.machine; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntitySingularityCompressor; + +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; + +import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; +import mekanism.client.gui.GuiConfigurableTile; +import mekanism.client.gui.element.GuiUpArrow; +import mekanism.client.gui.element.bar.GuiVerticalPowerBar; +import mekanism.client.gui.element.progress.GuiProgress; +import mekanism.client.gui.element.progress.ProgressType; +import mekanism.client.gui.element.tab.GuiEnergyTab; +import mekanism.common.inventory.container.tile.MekanismTileContainer; +import mekanism.common.inventory.warning.WarningTracker.WarningType; +import org.jetbrains.annotations.NotNull; + +public class GuiSingularityCompressor extends + GuiConfigurableTile> { + + public GuiSingularityCompressor(MekanismTileContainer container, Inventory inv, + Component title) { + super(container, inv, title); + dynamicSlots = true; + } + + @Override + protected void addGuiElements() { + super.addGuiElements(); + addRenderableWidget(new GuiUpArrow(this, 68, 38)); + addRenderableWidget(new GuiVerticalPowerBar(this, tile.getEnergyContainer(), 164, 15)) + .warning(WarningType.NOT_ENOUGH_ENERGY, tile.getWarningCheck(RecipeError.NOT_ENOUGH_ENERGY)); + addRenderableWidget(new GuiEnergyTab(this, tile.getEnergyContainer(), tile::getActive)); + addRenderableWidget(new GuiProgress(tile::getScaledProgress, ProgressType.BAR, this, 86, 38)) + .warning(WarningType.INPUT_DOESNT_PRODUCE_OUTPUT, + tile.getWarningCheck(RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT)); + } + + @Override + protected void drawForegroundText(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY) { + renderTitleText(guiGraphics); + renderInventoryText(guiGraphics); + super.drawForegroundText(guiGraphics, mouseX, mouseY); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/MekIntegrationLang.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/MekIntegrationLang.java similarity index 79% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/MekIntegrationLang.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/MekIntegrationLang.java index 8ed082b6..232eb613 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/MekIntegrationLang.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/MekIntegrationLang.java @@ -1,8 +1,9 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common; import mekanism.common.MekanismLang; public class MekIntegrationLang { + public static MekanismLang NEUTRON_COLLECTING; public static MekanismLang DESCRIPTION_NEUTRON_COLLECTING; public static MekanismLang NEUTRON_COMPRESSING; diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/MekIntegrationTags.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/MekIntegrationTags.java similarity index 89% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/MekIntegrationTags.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/MekIntegrationTags.java index 008b6396..c0966744 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/MekIntegrationTags.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/MekIntegrationTags.java @@ -1,17 +1,19 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common; -import mekanism.api.MekanismAPI; -import mekanism.api.chemical.Chemical; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import mekanism.api.MekanismAPI; +import mekanism.api.chemical.Chemical; + public final class MekIntegrationTags { private MekIntegrationTags() {} public static final class Items { + public static final TagKey ALLOYS = mekanismItem("alloys"); public static final TagKey ALLOYS_INFINITY = mekanismItem("alloys/infinity"); public static final TagKey ALLOYS_NEUTRON = mekanismItem("alloys/neutron"); @@ -23,6 +25,7 @@ private Items() {} } public static final class Chemicals { + public static final TagKey INFINITY = mekanismChemical("infinity"); public static final TagKey NEUTRON = mekanismChemical("neutron"); @@ -34,6 +37,7 @@ private static TagKey mekanismItem(String path) { } private static TagKey mekanismChemical(String path) { - return TagKey.create(MekanismAPI.CHEMICAL_REGISTRY_NAME, ResourceLocation.fromNamespaceAndPath(MekanismAPI.MEKANISM_MODID, path)); + return TagKey.create(MekanismAPI.CHEMICAL_REGISTRY_NAME, + ResourceLocation.fromNamespaceAndPath(MekanismAPI.MEKANISM_MODID, path)); } } diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/block/attribute/AttributeMekIntegrationFactoryType.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/block/attribute/AttributeMekIntegrationFactoryType.java new file mode 100644 index 00000000..88b009a8 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/block/attribute/AttributeMekIntegrationFactoryType.java @@ -0,0 +1,20 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.attribute; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryType; + +import mekanism.common.block.attribute.Attribute; +import org.jetbrains.annotations.NotNull; + +public class AttributeMekIntegrationFactoryType implements Attribute { + + private final MekIntegrationFactoryType type; + + public AttributeMekIntegrationFactoryType(MekIntegrationFactoryType type) { + this.type = type; + } + + @NotNull + public MekIntegrationFactoryType getMekIntegrationFactoryType() { + return type; + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/block/prefab/BlockMekIntegrationFactoryMachine.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/block/prefab/BlockMekIntegrationFactoryMachine.java new file mode 100644 index 00000000..7bee852d --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/block/prefab/BlockMekIntegrationFactoryMachine.java @@ -0,0 +1,38 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.prefab; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryMachine; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; + +import mekanism.common.block.prefab.BlockTile; +import mekanism.common.block.states.IStateFluidLoggable; +import mekanism.common.resource.BlockResourceInfo; +import mekanism.common.tile.base.TileEntityMekanism; + +import java.util.function.UnaryOperator; + +public class BlockMekIntegrationFactoryMachine> extends BlockTile { + + public BlockMekIntegrationFactoryMachine(MACHINE machine, UnaryOperator propertiesModifier) { + super(machine, propertiesModifier); + } + + public static class BlockMekIntegrationFactoryMachineModel> extends BlockMekIntegrationFactoryMachine + implements IStateFluidLoggable { + + public BlockMekIntegrationFactoryMachineModel(MACHINE machineType, + UnaryOperator propertiesModifier) { + super(machineType, propertiesModifier); + } + } + + public static class BlockMekIntegrationFactory> extends + BlockMekIntegrationFactoryMachineModel> { + + public BlockMekIntegrationFactory(MekIntegrationFactory factoryType) { + super(factoryType, properties -> properties.mapColor(BlockResourceInfo.STEEL.getMapColor())); + } + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/config/MekIntegrationConfig.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/config/MekIntegrationConfig.java new file mode 100644 index 00000000..49d19d2e --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/config/MekIntegrationConfig.java @@ -0,0 +1,3 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.config; + +public class MekIntegrationConfig {} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/config/UsageConfig.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/config/UsageConfig.java similarity index 78% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/config/UsageConfig.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/config/UsageConfig.java index c02d181f..fa561e3f 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/config/UsageConfig.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/config/UsageConfig.java @@ -1,10 +1,11 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.config; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.config; -import mekanism.common.config.BaseMekanismConfig; -import mekanism.common.config.value.CachedLongValue; import net.neoforged.fml.config.ModConfig; import net.neoforged.neoforge.common.ModConfigSpec; +import mekanism.common.config.BaseMekanismConfig; +import mekanism.common.config.value.CachedLongValue; + public class UsageConfig extends BaseMekanismConfig { private final ModConfigSpec configSpec; @@ -16,8 +17,10 @@ public class UsageConfig extends BaseMekanismConfig { ModConfigSpec.Builder builder = new ModConfigSpec.Builder(); builder.comment("Machine Energy Usage Config. This config is synced from server to client.").push("usage"); - neutronCollector = CachedLongValue.wrap(this, builder.comment("Energy per operation tick (Joules).").defineInRange("neutronCollector", 50L, 0L, Long.MAX_VALUE)); - singularityCompressor = CachedLongValue.wrap(this, builder.comment("Energy per operation tick (Joules).").defineInRange("singularityCompressor", 100L, 0L, Long.MAX_VALUE)); + neutronCollector = CachedLongValue.wrap(this, builder.comment("Energy per operation tick (Joules).") + .defineInRange("neutronCollector", 50L, 0L, Long.MAX_VALUE)); + singularityCompressor = CachedLongValue.wrap(this, builder.comment("Energy per operation tick (Joules).") + .defineInRange("singularityCompressor", 100L, 0L, Long.MAX_VALUE)); builder.pop(); configSpec = builder.build(); diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationBlockShapes.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationBlockShapes.java similarity index 87% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationBlockShapes.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationBlockShapes.java index 92cd9949..ba0d621e 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationBlockShapes.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationBlockShapes.java @@ -1,14 +1,14 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype; -import mekanism.common.util.EnumUtils; -import mekanism.common.util.VoxelShapeUtils; import net.minecraft.world.level.block.Block; import net.minecraft.world.phys.shapes.VoxelShape; +import mekanism.common.util.EnumUtils; +import mekanism.common.util.VoxelShapeUtils; + public class MekIntegrationBlockShapes { - private MekIntegrationBlockShapes() { - } + private MekIntegrationBlockShapes() {} private static VoxelShape box(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) { return Block.box(minX, minY, minZ, maxX, maxY, maxZ); @@ -39,7 +39,6 @@ private static VoxelShape box(double minX, double minY, double minZ, double maxX box(12, 2, 12, 14, 7, 14), box(2, 2, 12, 4, 7, 14), box(4, 3, 4, 12, 7, 12), - box(5, 3, 5, 11, 7, 11) - ), SOLAR_GENERATOR); + box(5, 3, 5, 11, 7, 11)), SOLAR_GENERATOR); } } diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactory.java new file mode 100644 index 00000000..405dc418 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactory.java @@ -0,0 +1,99 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationContainerTypes; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.util.MekIntegrationUtils; + +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.world.phys.shapes.VoxelShape; + +import mekanism.api.math.MathUtils; +import mekanism.common.MekanismLang; +import mekanism.common.block.attribute.AttributeEnergy; +import mekanism.common.block.attribute.AttributeGui; +import mekanism.common.block.attribute.AttributeParticleFX; +import mekanism.common.block.attribute.AttributeSideConfig; +import mekanism.common.block.attribute.AttributeSound; +import mekanism.common.block.attribute.AttributeTier; +import mekanism.common.block.attribute.AttributeUpgradeSupport; +import mekanism.common.block.attribute.AttributeUpgradeable; +import mekanism.common.inventory.container.MekanismContainer; +import mekanism.common.lib.math.Pos3D; +import mekanism.common.lib.transmitter.TransmissionType; +import mekanism.common.registration.impl.ContainerTypeRegistryObject; +import mekanism.common.registration.impl.TileEntityTypeRegistryObject; +import mekanism.common.tier.FactoryTier; +import mekanism.common.util.EnumUtils; + +import java.util.function.Supplier; + +import static mekanism.common.content.blocktype.BlockShapes.ENRICHING_FACTORY; + +public class MekIntegrationFactory> extends MekIntegrationFactoryMachine { + + private final MekIntegrationFactoryMachine origMachine; + + public MekIntegrationFactory(Supplier> tileEntityRegistrar, + Supplier> containerRegistrar, + MekIntegrationFactoryMachine origMachine, FactoryTier tier) { + super(tileEntityRegistrar, MekanismLang.DESCRIPTION_FACTORY, origMachine.getMekIntegrationFactoryType()); + this.origMachine = origMachine; + setMachineData(tier); + add(new AttributeGui(containerRegistrar, null), new AttributeTier<>(tier)); + + if (tier.ordinal() < MekIntegrationUtils.getFactoryTier().length - 1) { + add(new AttributeUpgradeable(() -> MekIntegrationBlocks.getMekIntegrationFactory( + EnumUtils.FACTORY_TIERS[tier.ordinal() + 1], origMachine.getMekIntegrationFactoryType()))); + } + } + + private void setMachineData(FactoryTier tier) { + setFrom(origMachine, AttributeSound.class, AttributeMekIntegrationFactoryType.class, + AttributeUpgradeSupport.class); + AttributeEnergy origEnergy = origMachine.get(AttributeEnergy.class); + add(new AttributeEnergy(origEnergy::getUsage, () -> MathUtils + .multiplyClamped(Math.max(origEnergy.getConfigStorage() / 2, origEnergy.getUsage()), tier.processes))); + } + + public static class MekIntegrationFactoryBuilder, + TILE extends TileEntityMIFactory, T extends MekIntegrationMachineBuilder> + extends BlockTileBuilder { + + protected MekIntegrationFactoryBuilder(FACTORY holder) { + super(holder); + } + + @SuppressWarnings("unchecked") + public static < + TILE extends TileEntityMIFactory> MekIntegrationFactoryBuilder, TILE, ?> createMekIntegrationFactory(Supplier tileEntityRegistrar, + MekIntegrationFactoryType type, + FactoryTier tier) { + // this is dirty but unfortunately necessary for things to play right + MekIntegrationFactoryBuilder, TILE, ?> builder = new MekIntegrationFactoryBuilder<>( + new MekIntegrationFactory<>((Supplier>) tileEntityRegistrar, + () -> MekIntegrationContainerTypes.FACTORY, type.getBaseMachine(), tier)); + // Note, we can't just return the builder here as then it gets all confused about object types, so we just + // assign the value here, and then return the builder itself as it is the same object + builder.withComputerSupport(tier, type.getRegistryNameComponentCapitalized() + "Factory"); + builder.withCustomShape(getShape(type)); + builder.with(switch (type) { + case NEUTRON_COLLECTING -> AttributeSideConfig.create(TransmissionType.ITEM, TransmissionType.CHEMICAL, + TransmissionType.ENERGY); + case SINGULARITY_COMPRESSING -> AttributeSideConfig.ELECTRIC_MACHINE; + }); + builder.replace(new AttributeParticleFX().addDense(ParticleTypes.SMOKE, 5, rand -> new Pos3D( + rand.nextFloat() * 0.7F - 0.3F, + rand.nextFloat() * 0.1F + 0.7F, + rand.nextFloat() * 0.7F - 0.3F))); + return builder; + } + + private static VoxelShape[] getShape(MekIntegrationFactoryType type) { + return switch (type) { + case NEUTRON_COLLECTING, SINGULARITY_COMPRESSING -> ENRICHING_FACTORY; + }; + } + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactoryMachine.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactoryMachine.java new file mode 100644 index 00000000..9156ba5b --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactoryMachine.java @@ -0,0 +1,50 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; + +import mekanism.common.MekanismLang; +import mekanism.common.block.attribute.AttributeUpgradeable; +import mekanism.common.content.blocktype.Machine; +import mekanism.common.registration.impl.TileEntityTypeRegistryObject; +import mekanism.common.tier.FactoryTier; +import mekanism.common.tile.base.TileEntityMekanism; + +import java.util.Objects; +import java.util.function.Supplier; + +public class MekIntegrationFactoryMachine extends Machine { + + public MekIntegrationFactoryMachine(Supplier> tileEntityRegistrar, + MekanismLang description, MekIntegrationFactoryType factoryType) { + super(tileEntityRegistrar, description); + add(new AttributeMekIntegrationFactoryType(factoryType), new AttributeUpgradeable(() -> MekIntegrationBlocks + .getMekIntegrationFactory(FactoryTier.BASIC, getMekIntegrationFactoryType()))); + } + + public MekIntegrationFactoryType getMekIntegrationFactoryType() { + return Objects.requireNonNull(get(AttributeMekIntegrationFactoryType.class)).getMekIntegrationFactoryType(); + } + + public static class MekIntegrationMachineBuilder, TILE extends TileEntityMekanism, + T extends MekIntegrationMachineBuilder> extends BlockTileBuilder { + + protected MekIntegrationMachineBuilder(MACHINE holder) { + super(holder); + } + + public static < + TILE extends TileEntityMekanism> MekIntegrationMachineBuilder, TILE, ?> createMekIntegrationMachine(Supplier> tileEntityRegistrar, + MekanismLang description) { + return new MekIntegrationMachineBuilder<>(new Machine<>(tileEntityRegistrar, description)); + } + + public static < + TILE extends TileEntityMekanism> MekIntegrationMachineBuilder, TILE, ?> createMekIntegrationFactoryMachine(Supplier> tileEntityRegistrar, + MekanismLang description, + MekIntegrationFactoryType factoryType) { + return new MekIntegrationMachineBuilder<>( + new MekIntegrationFactoryMachine<>(tileEntityRegistrar, description, factoryType)); + } + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactoryType.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactoryType.java new file mode 100644 index 00000000..d9612bd3 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/content/blocktype/MekIntegrationFactoryType.java @@ -0,0 +1,58 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.MekIntegrationLang; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlockTypes; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; + +import mekanism.api.annotations.NothingNullByDefault; +import mekanism.api.text.IHasTranslationKey; +import mekanism.common.MekanismLang; +import mekanism.common.registration.impl.BlockRegistryObject; + +import java.util.Locale; +import java.util.function.Supplier; + +@NothingNullByDefault +public enum MekIntegrationFactoryType implements IHasTranslationKey { + + NEUTRON_COLLECTING("neutron_collecting", MekIntegrationLang.NEUTRON_COLLECTING, + () -> MekIntegrationBlockTypes.NEUTRON_COLLECTOR, () -> MekIntegrationBlocks.NEUTRON_COLLECTOR), + SINGULARITY_COMPRESSING("singularity_compressing", MekIntegrationLang.NEUTRON_COMPRESSING, + () -> MekIntegrationBlockTypes.SINGULARITY_COMPRESSOR, () -> MekIntegrationBlocks.SINGULARITY_COMPRESSOR); + + private final String registryNameComponent; + private final MekanismLang langEntry; + private final Supplier> baseMachine; + private final Supplier> baseBlock; + + MekIntegrationFactoryType(String registryNameComponent, MekanismLang langEntry, + Supplier> baseMachine, + Supplier> baseBlock) { + this.registryNameComponent = registryNameComponent; + this.langEntry = langEntry; + this.baseMachine = baseMachine; + this.baseBlock = baseBlock; + } + + public String getRegistryNameComponent() { + return registryNameComponent; + } + + public String getRegistryNameComponentCapitalized() { + String name = getRegistryNameComponent(); + return name.substring(0, 1).toUpperCase(Locale.ROOT) + name.substring(1); + } + + public MekIntegrationFactoryMachine getBaseMachine() { + return baseMachine.get(); + } + + public BlockRegistryObject getBaseBlock() { + return baseBlock.get(); + } + + @Override + public String getTranslationKey() { + return langEntry.getTranslationKey(); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/container/tile/MekIntegrationFactoryContainer.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/container/tile/MekIntegrationFactoryContainer.java new file mode 100644 index 00000000..86f6fae2 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/container/tile/MekIntegrationFactoryContainer.java @@ -0,0 +1,41 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.inventory.container.tile; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationContainerTypes; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityChemicalToItemMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; + +import net.minecraft.world.entity.player.Inventory; +import net.neoforged.fml.ModList; + +import fr.iglee42.evolvedmekanism.tiers.EMFactoryTier; +import mekanism.common.inventory.container.tile.MekanismTileContainer; +import mekanism.common.tier.FactoryTier; + +public class MekIntegrationFactoryContainer extends MekanismTileContainer> { + + public MekIntegrationFactoryContainer(int id, Inventory inv, TileEntityMIFactory tile) { + super(MekIntegrationContainerTypes.FACTORY, id, inv, tile); + } + + @Override + protected int getInventoryYOffset() { + if (tile.hasSecondaryResourceBar()) { + return 95; + } + if (tile instanceof TileEntityChemicalToItemMIFactory) { + return 98; + } + return 85; + } + + @Override + protected int getInventoryXOffset() { + if (ModList.get().isLoaded("evolvedmekanism")) { + if (tile.tier.ordinal() >= EMFactoryTier.OVERCLOCKED.ordinal()) { + int index = tile.tier.ordinal() - 4; + return (22 * (index + 2)) - (3 * index); + } + } + return tile.tier == FactoryTier.ULTIMATE ? 26 : 8; + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/slot/MIFactoryInputInventorySlot.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/slot/MIFactoryInputInventorySlot.java new file mode 100644 index 00000000..c4c565dc --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/slot/MIFactoryInputInventorySlot.java @@ -0,0 +1,42 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.inventory.slot; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityItemToItemMIFactory; + +import net.minecraft.world.item.ItemStack; + +import mekanism.api.IContentsListener; +import mekanism.api.annotations.NothingNullByDefault; +import mekanism.api.inventory.IInventorySlot; +import mekanism.common.inventory.slot.InputInventorySlot; +import org.jetbrains.annotations.Nullable; + +import java.util.Objects; + +@NothingNullByDefault +public class MIFactoryInputInventorySlot extends InputInventorySlot { + + public static MIFactoryInputInventorySlot create(TileEntityItemToItemMIFactory factory, int process, + IInventorySlot outputSlot, @Nullable IContentsListener listener, + int x, int y) { + Objects.requireNonNull(factory, "Factory cannot be null"); + Objects.requireNonNull(outputSlot, "Output slot cannot be null"); + return new MIFactoryInputInventorySlot(factory, process, outputSlot, listener, x, y); + } + + private MIFactoryInputInventorySlot(TileEntityItemToItemMIFactory factory, int process, + IInventorySlot outputSlot, @Nullable IContentsListener listener, int x, int y) { + super(stack -> factory.inputProducesOutput(process, stack, outputSlot, false), factory::isValidInputItem, + listener, x, y); + } + + // Increase access level of setStackUnchecked + @Override + public void setStackUnchecked(ItemStack stack) { + super.setStackUnchecked(stack); + } + + @Override + public int getLimit(ItemStack stack) { + return 65536; + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/slot/MIInputInventorySlot.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/slot/MIInputInventorySlot.java new file mode 100644 index 00000000..3c03e51d --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/inventory/slot/MIInputInventorySlot.java @@ -0,0 +1,49 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.inventory.slot; + +import net.minecraft.world.item.ItemStack; + +import mekanism.api.IContentsListener; +import mekanism.api.annotations.NothingNullByDefault; +import mekanism.api.functions.ConstantPredicates; +import mekanism.common.inventory.container.slot.ContainerSlotType; +import mekanism.common.inventory.slot.BasicInventorySlot; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Objects; +import java.util.function.Predicate; + +@NothingNullByDefault +public class MIInputInventorySlot extends BasicInventorySlot { + + public static MIInputInventorySlot at(@Nullable IContentsListener listener, int x, int y) { + return at(ConstantPredicates.alwaysTrue(), listener, x, y); + } + + public static MIInputInventorySlot at(Predicate<@NotNull ItemStack> isItemValid, + @Nullable IContentsListener listener, int x, int y) { + return at(ConstantPredicates.alwaysTrue(), isItemValid, listener, x, y); + } + + public static MIInputInventorySlot at(Predicate<@NotNull ItemStack> insertPredicate, + Predicate<@NotNull ItemStack> isItemValid, + @Nullable IContentsListener listener, + int x, int y) { + Objects.requireNonNull(insertPredicate, "Insertion check cannot be null"); + Objects.requireNonNull(isItemValid, "Item validity check cannot be null"); + return new MIInputInventorySlot(insertPredicate, isItemValid, listener, x, y); + } + + protected MIInputInventorySlot(Predicate<@NotNull ItemStack> insertPredicate, + Predicate<@NotNull ItemStack> isItemValid, @Nullable IContentsListener listener, + int x, int y) { + super(ConstantPredicates.notExternal(), (stack, automationType) -> insertPredicate.test(stack), isItemValid, + listener, x, y); + setSlotType(ContainerSlotType.INPUT); + } + + @Override + public int getLimit(ItemStack stack) { + return 65536; + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/item/block/machine/ItemBlockMekIntegrationFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/item/block/machine/ItemBlockMekIntegrationFactory.java new file mode 100644 index 00000000..95f6399d --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/item/block/machine/ItemBlockMekIntegrationFactory.java @@ -0,0 +1,55 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.item.block.machine; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.prefab.BlockMekIntegrationFactoryMachine.BlockMekIntegrationFactory; + +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; + +import mekanism.api.text.EnumColor; +import mekanism.common.MekanismLang; +import mekanism.common.attachments.component.AttachedEjector; +import mekanism.common.attachments.component.AttachedSideConfig; +import mekanism.common.block.attribute.Attribute; +import mekanism.common.item.block.ItemBlockTooltip; +import mekanism.common.registries.MekanismDataComponents; +import mekanism.common.tier.FactoryTier; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class ItemBlockMekIntegrationFactory extends ItemBlockTooltip> { + + private static AttachedSideConfig getSideConfig(BlockMekIntegrationFactory block) { + return switch (Attribute.getOrThrow(block.builtInRegistryHolder(), AttributeMekIntegrationFactoryType.class) + .getMekIntegrationFactoryType()) { + case NEUTRON_COLLECTING -> AttachedSideConfig.ELECTRIC_MACHINE; + case SINGULARITY_COMPRESSING -> AttachedSideConfig.ADVANCED_MACHINE; + }; + } + + public ItemBlockMekIntegrationFactory(BlockMekIntegrationFactory block, Properties properties) { + super(block, true, properties + .component(MekanismDataComponents.SORTING, false) + .component(MekanismDataComponents.EJECTOR, AttachedEjector.DEFAULT) + .component(MekanismDataComponents.SIDE_CONFIG, getSideConfig(block))); + } + + public FactoryTier getTier() { + return Attribute.getTier(getBlock(), FactoryTier.class); + } + + @Override + protected void addTypeDetails(@NotNull ItemStack stack, @NotNull TooltipContext context, + @NotNull List tooltip, @NotNull TooltipFlag flag) { + // Should always be present but validate it just in case + AttributeMekIntegrationFactoryType factoryType = Attribute.get(getBlock(), + AttributeMekIntegrationFactoryType.class); + if (factoryType != null) { + tooltip.add(MekanismLang.FACTORY_TYPE.translateColored(EnumColor.INDIGO, EnumColor.GRAY, + factoryType.getMekIntegrationFactoryType())); + } + super.addTypeDetails(stack, context, tooltip, flag); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/network/to_server/MekIntegrationPacketGuiInteract.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/network/to_server/MekIntegrationPacketGuiInteract.java new file mode 100644 index 00000000..defc898b --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/network/to_server/MekIntegrationPacketGuiInteract.java @@ -0,0 +1,110 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.network.to_server; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; + +import net.minecraft.core.BlockPos; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.util.ByIdMap; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.neoforged.neoforge.network.handling.IPayloadContext; + +import io.netty.buffer.ByteBuf; +import mekanism.api.functions.TriConsumer; +import mekanism.common.network.IMekanismPacket; +import mekanism.common.tile.base.TileEntityMekanism; +import mekanism.common.util.WorldUtils; +import org.jetbrains.annotations.NotNull; + +import java.util.function.IntFunction; + +public class MekIntegrationPacketGuiInteract implements IMekanismPacket { + + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>( + AvaritiaIntegration.rl("mek_integration_gui_interact")); + public static final StreamCodec STREAM_CODEC = StreamCodec + .composite( + Type.STREAM_CODEC, packet -> packet.interactionType, + MekIntegrationGuiInteraction.STREAM_CODEC, packet -> packet.interaction, + BlockPos.STREAM_CODEC, packet -> packet.tilePosition, + ByteBufCodecs.VAR_INT, packet -> packet.extra, + MekIntegrationPacketGuiInteract::new); + + private final Type interactionType; + + private final MekIntegrationGuiInteraction interaction; + private final BlockPos tilePosition; + private final int extra; + + public MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction interaction, BlockEntity tile) { + this(interaction, tile.getBlockPos()); + } + + public MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction interaction, BlockPos tilePosition) { + this(interaction, tilePosition, 0); + } + + public MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction interaction, BlockPos tilePosition, int extra) { + this(Type.INT, interaction, tilePosition, extra); + } + + private MekIntegrationPacketGuiInteract(Type interactionType, MekIntegrationGuiInteraction interaction, + BlockPos tilePosition, int extra) { + this.interactionType = interactionType; + this.interaction = interaction; + this.tilePosition = tilePosition; + this.extra = extra; + } + + @NotNull + @Override + public CustomPacketPayload.Type type() { + return TYPE; + } + + @Override + public void handle(IPayloadContext context) { + Player player = context.player(); + TileEntityMekanism tile = WorldUtils.getTileEntity(TileEntityMekanism.class, player.level(), tilePosition); + if (tile != null && interactionType == Type.INT) { + interaction.consume(tile, player, extra); + } + } + + public enum MekIntegrationGuiInteraction { + + AUTO_SORT_BUTTON((tile, player, extra) -> { + if (tile instanceof TileEntityMIFactory factory) { + factory.toggleSorting(); + } + }); + + public static final IntFunction BY_ID = ByIdMap + .continuous(MekIntegrationGuiInteraction::ordinal, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + public static final StreamCodec STREAM_CODEC = ByteBufCodecs + .idMapper(BY_ID, MekIntegrationGuiInteraction::ordinal); + + private final TriConsumer consumerForTile; + + MekIntegrationGuiInteraction(TriConsumer consumerForTile) { + this.consumerForTile = consumerForTile; + } + + public void consume(TileEntityMekanism tile, Player player, int extra) { + consumerForTile.accept(tile, player, extra); + } + } + + private enum Type { + + INT; + + public static final IntFunction BY_ID = ByIdMap.continuous(Type::ordinal, values(), + ByIdMap.OutOfBoundsStrategy.WRAP); + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, Type::ordinal); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/recipe/MekIntegrationRecipeType.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/recipe/MekIntegrationRecipeType.java new file mode 100644 index 00000000..123695f7 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/recipe/MekIntegrationRecipeType.java @@ -0,0 +1,20 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; + +import net.minecraft.world.item.crafting.SingleRecipeInput; + +import mekanism.api.recipes.ItemStackToItemStackRecipe; +import mekanism.api.recipes.vanilla_input.SingleChemicalRecipeInput; +import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleChemical; +import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleItem; +import mekanism.common.registration.impl.RecipeTypeRegistryObject; + +public class MekIntegrationRecipeType { + + private MekIntegrationRecipeType() {} + + public static RecipeTypeRegistryObject> COLLECTING; + + public static RecipeTypeRegistryObject> MEK_COMPRESSING; +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/recipe/serializer/NeutronCollectorRecipeSerializer.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/recipe/serializer/NeutronCollectorRecipeSerializer.java new file mode 100644 index 00000000..670ddb7b --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/recipe/serializer/NeutronCollectorRecipeSerializer.java @@ -0,0 +1,50 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.serializer; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; + +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeSerializer; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import mekanism.api.SerializationConstants; +import mekanism.api.recipes.ingredients.ChemicalStackIngredient; +import org.jetbrains.annotations.NotNull; + +public class NeutronCollectorRecipeSerializer + implements RecipeSerializer { + + private final MapCodec codec; + private final StreamCodec streamCodec; + + public NeutronCollectorRecipeSerializer(IFactory factory) { + this.codec = RecordCodecBuilder.mapCodec(instance -> instance.group( + ChemicalStackIngredient.CODEC.fieldOf(SerializationConstants.INPUT) + .forGetter(ChemicalStackToItemStackRecipe::getInput), + ItemStack.CODEC.fieldOf(SerializationConstants.OUTPUT) + .forGetter(ChemicalStackToItemStackRecipe::getOutputRaw)) + .apply(instance, factory::create)); + this.streamCodec = StreamCodec.composite( + ChemicalStackIngredient.STREAM_CODEC, ChemicalStackToItemStackRecipe::getInput, + ItemStack.STREAM_CODEC, ChemicalStackToItemStackRecipe::getOutputRaw, + factory::create); + } + + @Override + public @NotNull MapCodec codec() { + return codec; + } + + @Override + public @NotNull StreamCodec streamCodec() { + return streamCodec; + } + + @FunctionalInterface + public interface IFactory { + + RECIPE create(ChemicalStackIngredient input, ItemStack output); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationBlockTypes.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationBlockTypes.java new file mode 100644 index 00000000..03387867 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationBlockTypes.java @@ -0,0 +1,67 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.MekIntegrationLang; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactory.MekIntegrationFactoryBuilder; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryMachine; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryMachine.MekIntegrationMachineBuilder; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntityNeutronCollector; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntitySingularityCompressor; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.util.MekIntegrationEnumUtils; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.util.MekIntegrationUtils; + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Table; +import mekanism.common.block.attribute.AttributeSideConfig; +import mekanism.common.config.MekanismConfig; +import mekanism.common.lib.transmitter.TransmissionType; +import mekanism.common.registries.MekanismSounds; +import mekanism.common.tier.FactoryTier; + +public class MekIntegrationBlockTypes { + + private MekIntegrationBlockTypes() {} + + private static final Table> FACTORIES = HashBasedTable + .create(); + + // Neutron Collector + public static final MekIntegrationFactoryMachine NEUTRON_COLLECTOR = MekIntegrationMachineBuilder + .createMekIntegrationFactoryMachine(() -> MekIntegrationTileEntityTypes.NEUTRON_COLLECTOR, + MekIntegrationLang.DESCRIPTION_NEUTRON_COLLECTING, MekIntegrationFactoryType.NEUTRON_COLLECTING) + .withGui(() -> MekIntegrationContainerTypes.NEUTRON_COLLECTOR) + .withSound(MekanismSounds.CHEMICAL_CRYSTALLIZER) + .withEnergyConfig(MekanismConfig.usage.chemicalCrystallizer, MekanismConfig.storage.chemicalCrystallizer) + .with(AttributeSideConfig.create(TransmissionType.ITEM, TransmissionType.CHEMICAL, TransmissionType.ENERGY)) + .withComputerSupport("neutronCollector") + .build(); + + // Neutron Compressor + public static final MekIntegrationFactoryMachine SINGULARITY_COMPRESSOR = MekIntegrationMachineBuilder + .createMekIntegrationFactoryMachine(() -> MekIntegrationTileEntityTypes.SINGULARITY_COMPRESSOR, + MekIntegrationLang.DESCRIPTION_SINGULARITY_COMPRESSING, + MekIntegrationFactoryType.SINGULARITY_COMPRESSING) + .withGui(() -> MekIntegrationContainerTypes.SINGULARITY_COMPRESSOR) + .withSound(MekanismSounds.CHEMICAL_CRYSTALLIZER) + .withEnergyConfig(MekanismConfig.usage.chemicalCrystallizer, MekanismConfig.storage.chemicalCrystallizer) + .with(AttributeSideConfig.ELECTRIC_MACHINE) + .withComputerSupport("singularityCompressor") + .build(); + + static { + for (FactoryTier tier : MekIntegrationUtils.getFactoryTier()) { + for (MekIntegrationFactoryType type : MekIntegrationEnumUtils.FACTORY_TYPES) { + FACTORIES.put(tier, type, + MekIntegrationFactoryBuilder + .createMekIntegrationFactory( + () -> MekIntegrationTileEntityTypes.getFactoryTile(tier, type), type, tier) + .build()); + } + } + } + + public static MekIntegrationFactory getFactory(FactoryTier tier, MekIntegrationFactoryType type) { + return FACTORIES.get(tier, type); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationBlocks.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationBlocks.java new file mode 100644 index 00000000..a57a6c48 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationBlocks.java @@ -0,0 +1,98 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.prefab.BlockMekIntegrationFactoryMachine.BlockMekIntegrationFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.item.block.machine.ItemBlockMekIntegrationFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntityNeutronCollector; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntitySingularityCompressor; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.util.MekIntegrationEnumUtils; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.util.MekIntegrationUtils; + +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Table; +import mekanism.api.tier.ITier; +import mekanism.common.block.attribute.AttributeTier; +import mekanism.common.block.prefab.BlockTile.BlockTileModel; +import mekanism.common.content.blocktype.BlockType; +import mekanism.common.content.blocktype.Machine; +import mekanism.common.item.block.ItemBlockTooltip; +import mekanism.common.registration.impl.BlockDeferredRegister; +import mekanism.common.registration.impl.BlockRegistryObject; +import mekanism.common.resource.BlockResourceInfo; +import mekanism.common.tier.FactoryTier; +import org.jetbrains.annotations.NotNull; + +import java.util.function.Supplier; + +public class MekIntegrationBlocks { + + private MekIntegrationBlocks() {} + + public static final BlockDeferredRegister BLOCKS = new BlockDeferredRegister(AvaritiaIntegration.MOD_ID); + + private static final Table, ItemBlockMekIntegrationFactory>> FACTORIES = HashBasedTable + .create(); + + static { + // factories + for (FactoryTier tier : MekIntegrationUtils.getFactoryTier()) { + for (MekIntegrationFactoryType type : MekIntegrationEnumUtils.FACTORY_TYPES) { + FACTORIES.put(tier, type, registerFactory(MekIntegrationBlockTypes.getFactory(tier, type))); + } + } + } + + public static final BlockRegistryObject>, ItemBlockTooltip>>> NEUTRON_COLLECTOR = BLOCKS + .registerDetails("neutron_collector", () -> new BlockTileModel<>(MekIntegrationBlockTypes.NEUTRON_COLLECTOR, + properties -> properties.mapColor(BlockResourceInfo.STEEL.getMapColor()))); + public static final BlockRegistryObject>, ItemBlockTooltip>>> SINGULARITY_COMPRESSOR = BLOCKS + .registerDetails("singularity_compressor", + () -> new BlockTileModel<>(MekIntegrationBlockTypes.SINGULARITY_COMPRESSOR, + properties -> properties.mapColor(BlockResourceInfo.STEEL.getMapColor()))); + + private static < + TILE extends TileEntityMIFactory> BlockRegistryObject, ItemBlockMekIntegrationFactory> registerFactory(MekIntegrationFactory type) { + return registerTieredBlock(type, + "_" + type.getMekIntegrationFactoryType().getRegistryNameComponent() + "_factory", + () -> new BlockMekIntegrationFactory<>(type), ItemBlockMekIntegrationFactory::new); + } + + private static BlockRegistryObject registerTieredBlock(BlockType type, String suffix, + Supplier blockSupplier, + java.util.function.BiFunction itemCreator) { + return registerTieredBlock(type.get(AttributeTier.class).tier(), suffix, blockSupplier, itemCreator); + } + + private static BlockRegistryObject registerTieredBlock(ITier tier, String suffix, + Supplier blockSupplier, + java.util.function.BiFunction itemCreator) { + return BLOCKS.register(tier.getBaseTier().getLowerName() + suffix, blockSupplier, itemCreator); + } + + /** + * Retrieves a Factory with a defined tier and recipe type. + * + * @param tier - tier to add to the Factory + * @param type - recipe type to add to the Factory + * + * @return factory with defined tier and recipe type + */ + public static BlockRegistryObject, ItemBlockMekIntegrationFactory> getMekIntegrationFactory(@NotNull FactoryTier tier, + @NotNull MekIntegrationFactoryType type) { + return FACTORIES.get(tier, type); + } + + @SuppressWarnings("unchecked") + public static BlockRegistryObject, ItemBlockMekIntegrationFactory>[] getMekIntegrationFactoryBlocks() { + return FACTORIES.values().toArray(new BlockRegistryObject[0]); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationChemicals.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationChemicals.java similarity index 90% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationChemicals.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationChemicals.java index 3fe244ad..2a66cd50 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationChemicals.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationChemicals.java @@ -1,6 +1,7 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.registries; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries; import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + import mekanism.api.chemical.Chemical; import mekanism.api.chemical.ChemicalStack; import mekanism.common.registration.impl.ChemicalDeferredRegister; diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationContainerTypes.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationContainerTypes.java new file mode 100644 index 00000000..7f0ae19a --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationContainerTypes.java @@ -0,0 +1,32 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.inventory.container.tile.MekIntegrationFactoryContainer; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntityNeutronCollector; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntitySingularityCompressor; + +import mekanism.common.inventory.container.tile.MekanismTileContainer; +import mekanism.common.registration.impl.ContainerTypeDeferredRegister; +import mekanism.common.registration.impl.ContainerTypeRegistryObject; + +public class MekIntegrationContainerTypes { + + private MekIntegrationContainerTypes() {} + + public static final ContainerTypeDeferredRegister CONTAINER_TYPES = new ContainerTypeDeferredRegister( + AvaritiaIntegration.MOD_ID); + + public static final ContainerTypeRegistryObject> NEUTRON_COLLECTOR = CONTAINER_TYPES + .register(MekIntegrationBlocks.NEUTRON_COLLECTOR, TileEntityNeutronCollector.class); + public static final ContainerTypeRegistryObject> SINGULARITY_COMPRESSOR = CONTAINER_TYPES + .register(MekIntegrationBlocks.SINGULARITY_COMPRESSOR, TileEntitySingularityCompressor.class); + + public static final ContainerTypeRegistryObject>> FACTORY = CONTAINER_TYPES + .register("factory", factoryClass(), MekIntegrationFactoryContainer::new); + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private static Class> factoryClass() { + return (Class) TileEntityMIFactory.class; + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationItems.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationItems.java new file mode 100644 index 00000000..283a6c80 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationItems.java @@ -0,0 +1,43 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Item.Properties; +import net.minecraft.world.item.Rarity; + +import mekanism.api.functions.ConstantPredicates; +import mekanism.common.attachments.containers.ContainerType; +import mekanism.common.attachments.containers.energy.EnergyContainersBuilder; +import mekanism.common.config.MekanismConfig; +import mekanism.common.item.ItemEnergized; +import mekanism.common.registration.impl.ItemDeferredRegister; +import mekanism.common.registration.impl.ItemRegistryObject; + +public class MekIntegrationItems { + + private MekIntegrationItems() {} + + public static final ItemDeferredRegister ITEMS = new ItemDeferredRegister(AvaritiaIntegration.MOD_ID); + + public static final ItemRegistryObject INFINITY_ENERGY_TABLET = ITEMS + .register("infinity_energy_tablet", () -> new ItemEnergized(new Properties().rarity(Rarity.EPIC))) + .addAttachedContainerCapabilities(ContainerType.ENERGY, () -> EnergyContainersBuilder.builder() + .addBasic(ConstantPredicates.alwaysTrue(), ConstantPredicates.alwaysTrue(), + MekanismConfig.gear.tabletChargeRate, MekanismConfig.gear.tabletMaxEnergy) + .build(), MekanismConfig.gear); + public static final ItemRegistryObject NEUTRON_ENERGY_TABLET = ITEMS + .register("neutron_energy_tablet", () -> new ItemEnergized(new Properties().rarity(Rarity.RARE))) + .addAttachedContainerCapabilities(ContainerType.ENERGY, () -> EnergyContainersBuilder.builder() + .addBasic(ConstantPredicates.alwaysTrue(), ConstantPredicates.alwaysTrue(), + MekanismConfig.gear.tabletChargeRate, MekanismConfig.gear.tabletMaxEnergy) + .build(), MekanismConfig.gear); + public static final ItemRegistryObject INFINITY_CONTROL_CIRCUIT = ITEMS.register("infinity_control_circuit", + Rarity.EPIC); + public static final ItemRegistryObject NEUTRON_CONTROL_CIRCUIT = ITEMS.register("neutron_control_circuit", + Rarity.EPIC); + public static final ItemRegistryObject ALLOY_INFINITY = ITEMS.register("alloy_infinity", Rarity.EPIC); + public static final ItemRegistryObject ALLOY_NEUTRON = ITEMS.register("alloy_neutron", Rarity.EPIC); + public static final ItemRegistryObject ENRICHED_INFINITY = ITEMS.register("enriched_infinity", Rarity.EPIC); + public static final ItemRegistryObject ENRICHED_NEUTRON = ITEMS.register("enriched_neutron", Rarity.EPIC); +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationRecipeSerializers.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationRecipeSerializers.java new file mode 100644 index 00000000..008527d3 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationRecipeSerializers.java @@ -0,0 +1,26 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.basic.BasicMekCompressorRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.basic.BasicNeutronCollectorRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.serializer.NeutronCollectorRecipeSerializer; + +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import mekanism.common.recipe.serializer.MekanismRecipeSerializer; + +public class MekIntegrationRecipeSerializers { + + private MekIntegrationRecipeSerializers() {} + + public static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister + .create(Registries.RECIPE_SERIALIZER, AvaritiaIntegration.MOD_ID); + + public static final DeferredHolder, RecipeSerializer> COLLECTOR = RECIPE_SERIALIZERS + .register("collector", () -> new NeutronCollectorRecipeSerializer<>(BasicNeutronCollectorRecipe::new)); + public static final DeferredHolder, RecipeSerializer> MEK_COMPRESSOR = RECIPE_SERIALIZERS + .register("compressor", () -> MekanismRecipeSerializer.itemToItem(BasicMekCompressorRecipe::new)); +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationTileEntityTypes.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationTileEntityTypes.java new file mode 100644 index 00000000..3a27ad25 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/registries/MekIntegrationTileEntityTypes.java @@ -0,0 +1,61 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries; + +import committee.nova.mods.avaritia_integration.AvaritiaIntegration; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityCollectingFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityCompressingFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory.TileEntityMIFactory; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntityNeutronCollector; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine.TileEntitySingularityCompressor; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.util.MekIntegrationUtils; + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Table; +import mekanism.common.registration.impl.TileEntityTypeDeferredRegister; +import mekanism.common.registration.impl.TileEntityTypeRegistryObject; +import mekanism.common.tier.FactoryTier; +import mekanism.common.tile.base.TileEntityMekanism; + +public class MekIntegrationTileEntityTypes { + + private MekIntegrationTileEntityTypes() {} + + public static final TileEntityTypeDeferredRegister TILE_ENTITY_TYPES = new TileEntityTypeDeferredRegister( + AvaritiaIntegration.MOD_ID); + + private static final Table>> FACTORIES = HashBasedTable + .create(); + + static { + for (FactoryTier tier : MekIntegrationUtils.getFactoryTier()) { + FACTORIES.put(tier, MekIntegrationFactoryType.NEUTRON_COLLECTING, TILE_ENTITY_TYPES + .mekBuilder( + MekIntegrationBlocks.getMekIntegrationFactory(tier, + MekIntegrationFactoryType.NEUTRON_COLLECTING), + (pos, + state) -> new TileEntityCollectingFactory(MekIntegrationBlocks.getMekIntegrationFactory( + tier, MekIntegrationFactoryType.NEUTRON_COLLECTING), pos, state)) + .serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build()); + FACTORIES.put(tier, MekIntegrationFactoryType.SINGULARITY_COMPRESSING, TILE_ENTITY_TYPES + .mekBuilder( + MekIntegrationBlocks.getMekIntegrationFactory(tier, + MekIntegrationFactoryType.SINGULARITY_COMPRESSING), + (pos, + state) -> new TileEntityCompressingFactory(MekIntegrationBlocks.getMekIntegrationFactory( + tier, MekIntegrationFactoryType.SINGULARITY_COMPRESSING), pos, state)) + .serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build()); + } + } + + public static final TileEntityTypeRegistryObject NEUTRON_COLLECTOR = TILE_ENTITY_TYPES + .mekBuilder(MekIntegrationBlocks.NEUTRON_COLLECTOR, TileEntityNeutronCollector::new) + .serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build(); + public static final TileEntityTypeRegistryObject SINGULARITY_COMPRESSOR = TILE_ENTITY_TYPES + .mekBuilder(MekIntegrationBlocks.SINGULARITY_COMPRESSOR, TileEntitySingularityCompressor::new) + .serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build(); + + public static TileEntityTypeRegistryObject> getFactoryTile(FactoryTier tier, + MekIntegrationFactoryType type) { + return FACTORIES.get(tier, type); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityChemicalToItemMIFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityChemicalToItemMIFactory.java similarity index 78% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityChemicalToItemMIFactory.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityChemicalToItemMIFactory.java index de7568f5..d3cf48d7 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityChemicalToItemMIFactory.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityChemicalToItemMIFactory.java @@ -1,12 +1,19 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.upgrade.ChemicalToItemUpgradeData; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderLookup; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; -import committee.nova.mods.avaritia_integration.module.mekanism.common.upgrade.ChemicalToItemUpgradeData; import mekanism.api.AutomationType; import mekanism.api.IContentsListener; import mekanism.api.chemical.BasicChemicalTank; -import mekanism.api.chemical.attribute.ChemicalAttributeValidator; import mekanism.api.chemical.ChemicalStack; import mekanism.api.chemical.IChemicalTank; +import mekanism.api.chemical.attribute.ChemicalAttributeValidator; import mekanism.api.chemical.attribute.ChemicalAttributes; import mekanism.api.inventory.IInventorySlot; import mekanism.api.radiation.IRadiationManager; @@ -29,11 +36,6 @@ import mekanism.common.tile.component.config.DataType; import mekanism.common.tile.component.config.slot.InventorySlotInfo; import mekanism.common.upgrade.IUpgradeData; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.core.HolderLookup; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -42,7 +44,8 @@ import java.util.List; import java.util.Set; -public abstract class TileEntityChemicalToItemMIFactory> extends TileEntityMIFactory { +public abstract class TileEntityChemicalToItemMIFactory> + extends TileEntityMIFactory { private static final long MAX_CHEMICAL = 10_000; @@ -53,7 +56,8 @@ public abstract class TileEntityChemicalToItemMIFactory inputGasTanks; - public TileEntityChemicalToItemMIFactory(Holder blockProvider, BlockPos pos, BlockState state, List errorTypes, Set globalErrorTypes) { + public TileEntityChemicalToItemMIFactory(Holder blockProvider, BlockPos pos, BlockState state, + List errorTypes, Set globalErrorTypes) { super(blockProvider, pos, state, errorTypes, globalErrorTypes); inputGasTanks = new ArrayList<>(); @@ -73,43 +77,54 @@ public TileEntityChemicalToItemMIFactory(Holder blockProvider, BlockPos p } ConfigInfo chemicalConfig = configComponent.getConfig(TransmissionType.CHEMICAL); if (chemicalConfig != null) { - chemicalConfig.addSlotInfo(DataType.INPUT, TileComponentConfig.createInfo(TransmissionType.CHEMICAL, true, false, inputGasTanks)); - chemicalConfig.addSlotInfo(DataType.OUTPUT, TileComponentConfig.createInfo(TransmissionType.CHEMICAL, false, true, inputGasTanks)); - chemicalConfig.addSlotInfo(DataType.INPUT_OUTPUT, TileComponentConfig.createInfo(TransmissionType.CHEMICAL, true, true, inputGasTanks)); + chemicalConfig.addSlotInfo(DataType.INPUT, + TileComponentConfig.createInfo(TransmissionType.CHEMICAL, true, false, inputGasTanks)); + chemicalConfig.addSlotInfo(DataType.OUTPUT, + TileComponentConfig.createInfo(TransmissionType.CHEMICAL, false, true, inputGasTanks)); + chemicalConfig.addSlotInfo(DataType.INPUT_OUTPUT, + TileComponentConfig.createInfo(TransmissionType.CHEMICAL, true, true, inputGasTanks)); chemicalConfig.setCanEject(false); } } @Override - protected void addGasTanks(ChemicalTankHelper builder, IContentsListener listener, IContentsListener updateSortingListener) { + protected void addGasTanks(ChemicalTankHelper builder, IContentsListener listener, + IContentsListener updateSortingListener) { inputTank = new IChemicalTank[tier.processes]; gasInputHandlers = new IInputHandler[tier.processes]; processInfoSlots = new GasToItemProcessInfo[tier.processes]; for (int i = 0; i < tier.processes; i++) { int index = i; - inputTank[i] = BasicChemicalTank.createModern(MAX_CHEMICAL * tier.processes, (stack, automationType) -> - automationType != AutomationType.EXTERNAL || (stack.has(ChemicalAttributes.Radiation.class) && IRadiationManager.INSTANCE.isRadiationEnabled()), + inputTank[i] = BasicChemicalTank.createModern(MAX_CHEMICAL * tier.processes, + (stack, automationType) -> automationType != AutomationType.EXTERNAL || + (stack.has(ChemicalAttributes.Radiation.class) && + IRadiationManager.INSTANCE.isRadiationEnabled()), (stack, type) -> isValidInputChemical(stack.copyWithAmount(1)), - stack -> isChemicalValidForTank(stack.copyWithAmount(1)) && inputProducesOutput(index, stack.copyWithAmount(1), outputSlot[index], false), + stack -> isChemicalValidForTank(stack.copyWithAmount(1)) && + inputProducesOutput(index, stack.copyWithAmount(1), outputSlot[index], false), ChemicalAttributeValidator.ALWAYS_ALLOW, recipeCacheLookupMonitors[index]); builder.addTank(inputTank[i]); - gasInputHandlers[i] = InputHelper.getInputHandler(inputTank[i], CachedRecipe.OperationTracker.RecipeError.NOT_ENOUGH_INPUT); + gasInputHandlers[i] = InputHelper.getInputHandler(inputTank[i], + RecipeError.NOT_ENOUGH_INPUT); } } @Override - protected void addSlots(InventorySlotHelper builder, IContentsListener listener, IContentsListener updateSortingListener) { + protected void addSlots(InventorySlotHelper builder, IContentsListener listener, + IContentsListener updateSortingListener) { outputSlot = new OutputInventorySlot[tier.processes]; itemOutputHandlers = new IOutputHandler[tier.processes]; for (int i = 0; i < tier.processes; i++) { outputSlot[i] = OutputInventorySlot.at(recipeCacheLookupMonitors[i], getXPos(i), 70); int index = i; - builder.addSlot(outputSlot[i]).tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE, index))); + builder.addSlot(outputSlot[i]).tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, + getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE, index))); itemOutputHandlers[i] = OutputHelper.getOutputHandler(outputSlot[i], RecipeError.NOT_ENOUGH_OUTPUT_SPACE); } } - public boolean inputProducesOutput(int process, @NotNull ChemicalStack fallbackInput, @NotNull IInventorySlot outputTank, boolean updateCache) { + public boolean inputProducesOutput(int process, @NotNull ChemicalStack fallbackInput, + @NotNull IInventorySlot outputTank, boolean updateCache) { return outputTank.isEmpty() || getRecipeForInput(process, fallbackInput, outputTank, updateCache) != null; } @@ -117,7 +132,8 @@ public boolean inputProducesOutput(int process, @NotNull ChemicalStack fallbackI protected abstract boolean isCachedRecipeValid(@Nullable CachedRecipe cached, @NotNull ChemicalStack stack); @Nullable - protected RECIPE getRecipeForInput(int process, @NotNull ChemicalStack fallbackInput, @NotNull IInventorySlot outputTank, boolean updateCache) { + protected RECIPE getRecipeForInput(int process, @NotNull ChemicalStack fallbackInput, + @NotNull IInventorySlot outputTank, boolean updateCache) { if (!CommonWorldTickHandler.flushTagAndRecipeCaches) { // If our recipe caches are valid, grab our cached recipe and see if it is still valid CachedRecipe cached = getCachedRecipe(process); @@ -141,7 +157,8 @@ protected RECIPE getRecipeForInput(int process, @NotNull ChemicalStack fallbackI } @Nullable - protected abstract RECIPE findRecipe(int process, @NotNull ChemicalStack fallbackInput, @NotNull IInventorySlot outputSlots); + protected abstract RECIPE findRecipe(int process, @NotNull ChemicalStack fallbackInput, + @NotNull IInventorySlot outputSlots); public abstract boolean isChemicalValidForTank(@NotNull ChemicalStack stack); @@ -176,6 +193,6 @@ public void parseUpgradeData(HolderLookup.Provider provider, @NotNull IUpgradeDa } } - public record GasToItemProcessInfo(int process, @NotNull IChemicalTank inputTank, @NotNull IInventorySlot outputSlot) { - } + public record GasToItemProcessInfo(int process, @NotNull IChemicalTank inputTank, + @NotNull IInventorySlot outputSlot) {} } diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityCollectingFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityCollectingFactory.java new file mode 100644 index 00000000..eec689f3 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityCollectingFactory.java @@ -0,0 +1,101 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.cache.ChemicalToItemCachedRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.MekIntegrationRecipeType; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import mekanism.api.chemical.ChemicalStack; +import mekanism.api.inventory.IInventorySlot; +import mekanism.api.math.MathUtils; +import mekanism.api.recipes.cache.CachedRecipe; +import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; +import mekanism.common.lib.transmitter.TransmissionType; +import mekanism.common.recipe.IMekanismRecipeTypeProvider; +import mekanism.common.recipe.lookup.ISingleRecipeLookupHandler.ChemicalRecipeLookupHandler; +import mekanism.common.recipe.lookup.cache.InputRecipeCache; +import mekanism.common.tile.component.TileComponentEjector; +import mekanism.common.util.InventoryUtils; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.Set; + +public class TileEntityCollectingFactory extends TileEntityChemicalToItemMIFactory + implements ChemicalRecipeLookupHandler { + + private static final List TRACKED_ERROR_TYPES = List.of( + RecipeError.NOT_ENOUGH_ENERGY, + RecipeError.NOT_ENOUGH_INPUT, + RecipeError.NOT_ENOUGH_OUTPUT_SPACE, + RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT); + private static final Set GLOBAL_ERROR_TYPES = Set.of(RecipeError.NOT_ENOUGH_ENERGY); + + public TileEntityCollectingFactory(Holder blockProvider, BlockPos pos, BlockState state) { + super(blockProvider, pos, state, TRACKED_ERROR_TYPES, GLOBAL_ERROR_TYPES); + + ejectorComponent = new TileComponentEjector(this); + ejectorComponent.setOutputData(configComponent, TransmissionType.ITEM); + } + + @Override + protected boolean isCachedRecipeValid(@Nullable CachedRecipe cached, + @NotNull ChemicalStack stack) { + return cached != null && cached.getRecipe().getInput().testType(stack); + } + + @Override + protected @Nullable ChemicalStackToItemStackRecipe findRecipe(int process, @NotNull ChemicalStack fallbackInput, + @NotNull IInventorySlot outputSlots) { + ItemStack output = outputSlots.getStack(); + return getRecipeType().getInputCache().findTypeBasedRecipe(level, fallbackInput, output, + (recipe, input, currentOutput) -> InventoryUtils.areItemsStackable(recipe.getOutput(input), + currentOutput)); + } + + @Override + public boolean isChemicalValidForTank(@NotNull ChemicalStack stack) { + return containsRecipe(stack); + } + + @Override + public boolean isValidInputChemical(@NotNull ChemicalStack stack) { + return containsRecipe(stack); + } + + @Override + protected int getNeededInput(ChemicalStackToItemStackRecipe recipe, ChemicalStack inputStack) { + return MathUtils.clampToInt(recipe.getInput().getNeededAmount(inputStack)); + } + + @Override + public @NotNull IMekanismRecipeTypeProvider> getRecipeType() { + return MekIntegrationRecipeType.COLLECTING; + } + + @Override + public @Nullable ChemicalStackToItemStackRecipe getRecipe(int cacheIndex) { + return findFirstRecipe(gasInputHandlers[cacheIndex]); + } + + @Override + public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ChemicalStackToItemStackRecipe recipe, + int cacheIndex) { + return ChemicalToItemCachedRecipe + .chemicalToItem(recipe, recheckAllRecipeErrors[cacheIndex], gasInputHandlers[cacheIndex], + itemOutputHandlers[cacheIndex]) + .setErrorsChanged(errors -> errorTracker.onErrorsChanged(errors, cacheIndex)) + .setCanHolderFunction(this::canFunction) + .setActive(active -> setActiveState(active, cacheIndex)) + .setEnergyRequirements(energyContainer::getEnergyPerTick, energyContainer) + .setRequiredTicks(this::getTicksRequired) + .setOnFinish(this::markForSave) + .setOperatingTicksChanged(operatingTicks -> progress[cacheIndex] = operatingTicks); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityCompressingFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityCompressingFactory.java new file mode 100644 index 00000000..7c01db62 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityCompressingFactory.java @@ -0,0 +1,101 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.MekIntegrationRecipeType; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import mekanism.api.IContentsListener; +import mekanism.api.inventory.IInventorySlot; +import mekanism.api.math.MathUtils; +import mekanism.api.recipes.ItemStackToItemStackRecipe; +import mekanism.api.recipes.cache.CachedRecipe; +import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; +import mekanism.api.recipes.cache.OneInputCachedRecipe; +import mekanism.common.capabilities.holder.chemical.ChemicalTankHelper; +import mekanism.common.lib.transmitter.TransmissionType; +import mekanism.common.recipe.IMekanismRecipeTypeProvider; +import mekanism.common.recipe.lookup.ISingleRecipeLookupHandler.ItemRecipeLookupHandler; +import mekanism.common.recipe.lookup.cache.InputRecipeCache; +import mekanism.common.tile.component.TileComponentEjector; +import mekanism.common.util.InventoryUtils; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.Set; + +public class TileEntityCompressingFactory extends TileEntityItemToItemMIFactory + implements ItemRecipeLookupHandler { + + private static final List TRACKED_ERROR_TYPES = List.of( + RecipeError.NOT_ENOUGH_ENERGY, + RecipeError.NOT_ENOUGH_INPUT, + RecipeError.NOT_ENOUGH_OUTPUT_SPACE, + RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT); + private static final Set GLOBAL_ERROR_TYPES = Set.of(RecipeError.NOT_ENOUGH_ENERGY); + + public TileEntityCompressingFactory(Holder blockProvider, BlockPos pos, BlockState state) { + super(blockProvider, pos, state, TRACKED_ERROR_TYPES, GLOBAL_ERROR_TYPES); + + ejectorComponent = new TileComponentEjector(this); + ejectorComponent.setOutputData(configComponent, TransmissionType.ITEM); + } + + @Override + protected boolean isCachedRecipeValid(@Nullable CachedRecipe cached, + @NotNull ItemStack stack) { + return cached != null && cached.getRecipe().getInput().testType(stack); + } + + @Override + protected @Nullable ItemStackToItemStackRecipe findRecipe(int process, @NotNull ItemStack fallbackInput, + @NotNull IInventorySlot outputSlots) { + ItemStack output = outputSlots.getStack(); + return getRecipeType().getInputCache().findTypeBasedRecipe(level, fallbackInput, output, + (recipe, input, currentOutput) -> InventoryUtils.areItemsStackable(recipe.getOutput(input), + currentOutput)); + } + + @Override + protected int getNeededInput(ItemStackToItemStackRecipe recipe, ItemStack inputStack) { + return MathUtils.clampToInt(recipe.getInput().getNeededAmount(inputStack)); + } + + @Override + public boolean isValidInputItem(@NotNull ItemStack stack) { + return containsRecipe(stack); + } + + @Override + protected void addGasTanks(ChemicalTankHelper builder, IContentsListener listener, + IContentsListener updateSortingListener) {} + + @Override + public @NotNull IMekanismRecipeTypeProvider> getRecipeType() { + return MekIntegrationRecipeType.MEK_COMPRESSING; + } + + @Override + public @Nullable ItemStackToItemStackRecipe getRecipe(int cacheIndex) { + return findFirstRecipe(itemInputHandlers[cacheIndex]); + } + + @Override + public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ItemStackToItemStackRecipe recipe, + int cacheIndex) { + return OneInputCachedRecipe + .itemToItem(recipe, recheckAllRecipeErrors[cacheIndex], itemInputHandlers[cacheIndex], + itemOutputHandlers[cacheIndex]) + .setErrorsChanged(errors -> errorTracker.onErrorsChanged(errors, cacheIndex)) + .setCanHolderFunction(this::canFunction) + .setActive(active -> setActiveState(active, cacheIndex)) + .setEnergyRequirements(energyContainer::getEnergyPerTick, energyContainer) + .setRequiredTicks(this::getTicksRequired) + .setOnFinish(this::markForSave) + .setOperatingTicksChanged(operatingTicks -> progress[cacheIndex] = operatingTicks); + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityItemToItemMIFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityItemToItemMIFactory.java new file mode 100644 index 00000000..bf64ac7c --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityItemToItemMIFactory.java @@ -0,0 +1,386 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.inventory.slot.MIFactoryInputInventorySlot; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import mekanism.api.Action; +import mekanism.api.IContentsListener; +import mekanism.api.inventory.IInventorySlot; +import mekanism.api.recipes.MekanismRecipe; +import mekanism.api.recipes.cache.CachedRecipe; +import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; +import mekanism.api.recipes.inputs.IInputHandler; +import mekanism.api.recipes.inputs.InputHelper; +import mekanism.api.recipes.outputs.IOutputHandler; +import mekanism.api.recipes.outputs.OutputHelper; +import mekanism.common.CommonWorldTickHandler; +import mekanism.common.capabilities.holder.slot.InventorySlotHelper; +import mekanism.common.integration.computer.ComputerException; +import mekanism.common.integration.computer.annotation.ComputerMethod; +import mekanism.common.inventory.slot.OutputInventorySlot; +import mekanism.common.inventory.warning.WarningTracker.WarningType; +import mekanism.common.lib.inventory.HashedItem; +import mekanism.common.util.MekanismUtils; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.IntSupplier; + +public abstract class TileEntityItemToItemMIFactory> + extends TileEntityMIFactory { + + protected ProcessInfo[] processInfoSlots; + + protected final List inputItemSlots; + + protected TileEntityItemToItemMIFactory(Holder blockProvider, BlockPos pos, BlockState state, + List errorTypes, Set globalErrorTypes) { + super(blockProvider, pos, state, errorTypes, globalErrorTypes); + inputItemSlots = new ArrayList<>(); + + for (ProcessInfo info : processInfoSlots) { + inputItemSlots.add(info.inputSlot()); + outputItemSlots.add(info.outputSlot()); + } + + configComponent.setupItemIOConfig(inputItemSlots, outputItemSlots, energySlot, false); + } + + @Override + protected void addSlots(InventorySlotHelper builder, IContentsListener listener, + IContentsListener updateSortingListener) { + itemInputHandlers = new IInputHandler[tier.processes]; + itemOutputHandlers = new IOutputHandler[tier.processes]; + processInfoSlots = new ProcessInfo[tier.processes]; + for (int i = 0; i < tier.processes; i++) { + OutputInventorySlot outputSlot = OutputInventorySlot.at(updateSortingListener, getXPos(i), 57); + // Note: As we are an item factory that has comparator's based on items we can just use the monitor as a + // listener directly + MIFactoryInputInventorySlot inputSlot = MIFactoryInputInventorySlot.create(this, i, outputSlot, + recipeCacheLookupMonitors[i], getXPos(i), 13); + int index = i; + builder.addSlot(inputSlot).tracksWarnings(slot -> slot.warning(WarningType.NO_MATCHING_RECIPE, + getWarningCheck(RecipeError.NOT_ENOUGH_INPUT, index))); + builder.addSlot(outputSlot).tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, + getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE, index))); + itemInputHandlers[i] = InputHelper.getInputHandler(inputSlot, RecipeError.NOT_ENOUGH_INPUT); + itemOutputHandlers[i] = OutputHelper.getOutputHandler(outputSlot, RecipeError.NOT_ENOUGH_OUTPUT_SPACE); + processInfoSlots[i] = new ProcessInfo(i, inputSlot, outputSlot); + } + } + + @Override + protected void needSortingInventory() { + sortInventory(); + } + + /** + * Checks if the cached recipe (or recipe for current factory if the cache is out of date) can produce a specific + * output. + * + * @param process Which process the cache recipe is. + * @param fallbackInput Used if the cached recipe is null or to validate the cached recipe is not out of date. + * @param outputSlot The output slot for this slot. + * @param updateCache True to make the cached recipe get updated if it is out of date. + * + * @return True if the recipe produces the given output. + */ + public boolean inputProducesOutput(int process, @NotNull ItemStack fallbackInput, + @NotNull IInventorySlot outputSlot, boolean updateCache) { + return outputSlot.isEmpty() || getRecipeForInput(process, fallbackInput, outputSlot, updateCache) != null; + } + + protected abstract boolean isCachedRecipeValid(@Nullable CachedRecipe cached, @NotNull ItemStack stack); + + @Nullable + protected RECIPE getRecipeForInput(int process, @NotNull ItemStack fallbackInput, + @NotNull IInventorySlot outputSlot, boolean updateCache) { + if (!CommonWorldTickHandler.flushTagAndRecipeCaches) { + // If our recipe caches are valid, grab our cached recipe and see if it is still valid + CachedRecipe cached = getCachedRecipe(process); + if (cached != null && isCachedRecipeValid(cached, fallbackInput)) { + // Our input matches the recipe we have cached for this slot + return cached.getRecipe(); + } + } + // If there is no cached item input, or it doesn't match our fallback then it is an out of date cache, so we + // ignore the fact that we have a cache + RECIPE foundRecipe = findRecipe(process, fallbackInput, outputSlot); + if (foundRecipe == null) { + // We could not find any valid recipe for the given item that matches the items in the current output slots + return null; + } + if (updateCache) { + // If we want to update the cache, then create a new cache with the recipe we found and update the cache + recipeCacheLookupMonitors[process].updateCachedRecipe(foundRecipe); + } + return foundRecipe; + } + + @Nullable + protected abstract RECIPE findRecipe(int process, @NotNull ItemStack fallbackInput, + @NotNull IInventorySlot outputSlots); + + protected abstract int getNeededInput(RECIPE recipe, ItemStack inputStack); + + /** + * Like isItemValidForSlot makes no assumptions about current stored types + */ + public abstract boolean isValidInputItem(@NotNull ItemStack stack); + + @ComputerMethod + ItemStack getInput(int process) throws ComputerException { + validateValidProcess(process); + return processInfoSlots[process].inputSlot().getStack(); + } + + @ComputerMethod + ItemStack getOutput(int process) throws ComputerException { + validateValidProcess(process); + return processInfoSlots[process].outputSlot().getStack(); + } + + private void sortInventory() { + Map processes = new HashMap<>(); + List emptyProcesses = new ArrayList<>(); + for (ProcessInfo processInfo : processInfoSlots) { + IInventorySlot inputSlot = processInfo.inputSlot(); + if (inputSlot.isEmpty()) { + emptyProcesses.add(processInfo); + } else { + ItemStack inputStack = inputSlot.getStack(); + HashedItem item = HashedItem.raw(inputStack); + RecipeProcessInfo recipeProcessInfo = processes.computeIfAbsent(item, i -> new RecipeProcessInfo()); + recipeProcessInfo.processes.add(processInfo); + recipeProcessInfo.totalCount += inputStack.getCount(); + if (recipeProcessInfo.lazyMinPerSlot == null && !CommonWorldTickHandler.flushTagAndRecipeCaches) { + // If we don't have a lazily initialized min per slot calculation set for it yet + // and our cache is not invalid/out of date due to a reload + CachedRecipe cachedRecipe = getCachedRecipe(processInfo.process()); + if (isCachedRecipeValid(cachedRecipe, inputStack)) { + // And our current process has a cached recipe then set the lazily initialized per slot value + // Note: If something goes wrong, and we end up with zero as how much we need as an input + // we just bump the value up to one to make sure we properly handle it + recipeProcessInfo.lazyMinPerSlot = () -> Math.max(1, + getNeededInput(cachedRecipe.getRecipe(), inputStack)); + } + } + } + } + if (processes.isEmpty()) { + // If all input slots are empty, just exit + return; + } + for (Map.Entry entry : processes.entrySet()) { + RecipeProcessInfo recipeProcessInfo = entry.getValue(); + if (recipeProcessInfo.lazyMinPerSlot == null) { + // If we don't have a lazy initializer for our minPerSlot setup, that means that there is + // no valid cached recipe for any of the slots of this type currently, so we want to try and + // get the recipe we will have for the first slot, once we end up with more items in the stack + recipeProcessInfo.lazyMinPerSlot = () -> { + // Note: We put all of this logic in the lazy init, so that we don't actually call any of this + // until it is needed. That way if we have no empty slots and all our input slots are filled + // we don't do any extra processing here, and can properly short circuit + HashedItem item = entry.getKey(); + ItemStack largerInput = item.createStack(Math.min(65536, recipeProcessInfo.totalCount)); + ProcessInfo processInfo = recipeProcessInfo.processes.get(0); + // Try getting a recipe for our input with a larger size, and update the cache if we find one + RECIPE recipe = getRecipeForInput(processInfo.process(), largerInput, processInfo.outputSlot(), + true); + if (recipe != null) { + return Math.max(1, getNeededInput(recipe, largerInput)); + } + return 1; + }; + } + } + if (!emptyProcesses.isEmpty()) { + // If we have any empty slots, we need to factor them in as valid slots for items to transferred to + addEmptySlotsAsTargets(processes, emptyProcesses); + // Note: Any remaining empty slots are "ignored" as we don't have any + // spare items to distribute to them + } + // Distribute items among the slots + distributeItems(processes); + } + + private void addEmptySlotsAsTargets(Map processes, + List emptyProcesses) { + for (Map.Entry entry : processes.entrySet()) { + RecipeProcessInfo recipeProcessInfo = entry.getValue(); + int minPerSlot = recipeProcessInfo.getMinPerSlot(); + int maxSlots = recipeProcessInfo.totalCount / minPerSlot; + if (maxSlots <= 1) { + // If we don't have enough to even fill the input for a slot for a single recipe; skip + continue; + } + // Otherwise, if we have at least enough items for two slots see how many we already have with items in them + int processCount = recipeProcessInfo.processes.size(); + if (maxSlots <= processCount) { + // If we don't have enough extra to fill another slot skip + continue; + } + // Note: This is some arbitrary input stack one of the stacks contained + ItemStack sourceStack = entry.getKey().getInternalStack(); + int emptyToAdd = maxSlots - processCount; + int added = 0; + List toRemove = new ArrayList<>(); + for (ProcessInfo emptyProcess : emptyProcesses) { + if (inputProducesOutput(emptyProcess.process(), sourceStack, emptyProcess.outputSlot(), true)) { + // If the input is valid for the stuff in the empty process' output slot + // then add our empty process to our recipeProcessInfo, and mark + // the empty process as accounted for + recipeProcessInfo.processes.add(emptyProcess); + toRemove.add(emptyProcess); + added++; + if (added >= emptyToAdd) { + // If we added as many as we could based on how much input we have; exit + break; + } + } + } + emptyProcesses.removeAll(toRemove); + if (emptyProcesses.isEmpty()) { + // We accounted for all our empty processes, stop looking at inputs + // for purposes of distributing empty slots among them + break; + } + } + } + + private void distributeItems(Map processes) { + for (Map.Entry entry : processes.entrySet()) { + RecipeProcessInfo recipeProcessInfo = entry.getValue(); + int processCount = recipeProcessInfo.processes.size(); + if (processCount == 1) { + // If there is only one process with the item in it; short-circuit, no balancing is needed + continue; + } + HashedItem item = entry.getKey(); + // Note: This isn't based on any limits the slot may have (but we currently don't have any reduced ones + // here, so it doesn't matter) + int maxStackSize = 65536; + int numberPerSlot = recipeProcessInfo.totalCount / processCount; + if (numberPerSlot == maxStackSize) { + // If all the slots are already maxed out; short-circuit, no balancing is needed + continue; + } + int remainder = recipeProcessInfo.totalCount % processCount; + int minPerSlot = recipeProcessInfo.getMinPerSlot(); + if (minPerSlot > 1) { + int perSlotRemainder = numberPerSlot % minPerSlot; + if (perSlotRemainder > 0) { + // Reduce the number we distribute per slot by what our excess + // is if we are trying to balance it by the size of the input + // required by the recipe + numberPerSlot -= perSlotRemainder; + // and then add how many items we removed to our remainder + remainder += perSlotRemainder * processCount; + // Note: After this processing the remainder is at most: + // processCount - 1 + processCount * (minPerSlot - 1) = + // processCount - 1 + processCount * minPerSlot - processCount = + // processCount * minPerSlot - 1 + // Which means that reducing the remainder by minPerSlot for each + // slot while we still have a remainder, will make sure + } + if (numberPerSlot + minPerSlot > maxStackSize) { + // If adding how much we want per slot would cause the slot to overflow + // we reduce how much we set per slot to how much there is room for + // Note: we can do this safely because while our remainder may be + // processCount * minPerSlot - 1 (as shown above), if we are in + // this if statement, that means that we really have at most: + // processCount * maxStackSize - 1 items being distributed and + // have: processCount * numberPerSlot + remainder + // which means that our remainder is actually at most: + // processCount * (maxStackSize - numberPerSlot) - 1 + // so we can safely set our per slot distribution to maxStackSize - numberPerSlot + minPerSlot = maxStackSize - numberPerSlot; + } + } + for (int i = 0; i < processCount; i++) { + ProcessInfo processInfo = recipeProcessInfo.processes.get(i); + MIFactoryInputInventorySlot inputSlot = processInfo.inputSlot(); + int sizeForSlot = numberPerSlot; + if (remainder > 0) { + // If we have a remainder, factor it into our slots + if (remainder > minPerSlot) { + // If our remainder is greater than how much we need to fill out the min amount for the slot + // based + // on the recipe then, to keep it distributed as evenly as possible, increase our size for the + // slot + // by how much we need, and decrease our remainder by that amount + sizeForSlot += minPerSlot; + remainder -= minPerSlot; + } else { + // Otherwise, add our entire remainder to the size for slot, and mark our remainder as fully + // used + sizeForSlot += remainder; + remainder = 0; + } + } + if (inputSlot.isEmpty()) { + // Note: sizeForSlot should never be zero here as we would not have added + // the empty slot to this item's distribution grouping if it would not + // end up getting any items; check it just in case though before creating + // a stack for the slot and setting it + if (sizeForSlot > 0) { + // Note: We use setStackUnchecked here, as there is a very small chance that + // the stack is not actually valid for the slot because of a reload causing + // recipes to change. If this is the case, then we want to properly not crash, + // but we would rather not add any extra overhead about revalidating the item + // each time as it can get somewhat expensive. + inputSlot.setStackUnchecked(item.createStack(sizeForSlot)); + } + } else { + // Slot is not currently empty + if (sizeForSlot == 0) { + // If the amount of the item we want to set it to is zero (all got used by earlier stacks, which + // might + // happen if the recipe requires a stacked input (minPerSlot > 1)), then we need to set the slot + // to empty + inputSlot.setEmpty(); + } else if (inputSlot.getCount() != sizeForSlot) { + // Otherwise, if our slot doesn't already contain the amount we want it to, + // we need to adjust how much is stored in it, and log an error if it changed + // by a different amount then we expected + // Note: We use setStackSize here rather than setStack to avoid an unnecessary stack copy call + // as copying item stacks can sometimes be rather expensive in a heavily modded environment + MekanismUtils.logMismatchedStackSize(sizeForSlot, + inputSlot.setStackSize(sizeForSlot, Action.EXECUTE)); + } + } + } + } + } + + public record ProcessInfo(int process, @NotNull MIFactoryInputInventorySlot inputSlot, + @NotNull IInventorySlot outputSlot) {} + + private static class RecipeProcessInfo { + + private final List processes = new ArrayList<>(); + @Nullable + private IntSupplier lazyMinPerSlot; + private int minPerSlot = 1; + private int totalCount; + + public int getMinPerSlot() { + if (lazyMinPerSlot != null) { + // Get the value lazily + minPerSlot = lazyMinPerSlot.getAsInt(); + lazyMinPerSlot = null; + } + return minPerSlot; + } + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityMIFactory.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityMIFactory.java similarity index 81% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityMIFactory.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityMIFactory.java index 70e517b2..f3752bfd 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityMIFactory.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/factory/TileEntityMIFactory.java @@ -1,8 +1,20 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.factory; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.IntArrayTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; -import committee.nova.mods.avaritia_integration.module.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; import it.unimi.dsi.fastutil.ints.IntArraySet; import it.unimi.dsi.fastutil.ints.IntSet; import mekanism.api.IContentsListener; @@ -31,8 +43,8 @@ import mekanism.common.integration.computer.computercraft.ComputerConstants; import mekanism.common.inventory.container.MekanismContainer; import mekanism.common.inventory.container.sync.SyncableBoolean; -import mekanism.common.inventory.container.sync.SyncableLong; import mekanism.common.inventory.container.sync.SyncableInt; +import mekanism.common.inventory.container.sync.SyncableLong; import mekanism.common.inventory.slot.EnergyInventorySlot; import mekanism.common.lib.transmitter.TransmissionType; import mekanism.common.recipe.lookup.IRecipeLookupHandler; @@ -47,23 +59,18 @@ import mekanism.common.util.MekanismUtils; import mekanism.common.util.NBTUtils; import mekanism.common.util.UpgradeUtils; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.IntArrayTag; -import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.Set; import java.util.function.BooleanSupplier; -public abstract class TileEntityMIFactory> extends TileEntityConfigurableMachine implements IRecipeLookupHandler { +public abstract class TileEntityMIFactory> extends TileEntityConfigurableMachine + implements IRecipeLookupHandler { /** * How many ticks it takes, by default, to run an operation. @@ -100,16 +107,20 @@ public abstract class TileEntityMIFactory> exte protected final List outputItemSlots; - @WrappingComputerMethod(wrapper = SpecialComputerMethodWrapper.ComputerIInventorySlotWrapper.class, methodNames = "getEnergyItem", docPlaceholder = "energy slot") + @WrappingComputerMethod(wrapper = SpecialComputerMethodWrapper.ComputerIInventorySlotWrapper.class, + methodNames = "getEnergyItem", + docPlaceholder = "energy slot") EnergyInventorySlot energySlot; protected IInputHandler<@NotNull ItemStack>[] itemInputHandlers; protected IOutputHandler<@NotNull ItemStack>[] itemOutputHandlers; protected IInputHandler[] gasInputHandlers; - public TileEntityMIFactory(Holder blockProvider, BlockPos pos, BlockState state, List errorTypes, Set globalErrorTypes) { + public TileEntityMIFactory(Holder blockProvider, BlockPos pos, BlockState state, + List errorTypes, Set globalErrorTypes) { super(blockProvider, pos, state); - type = Objects.requireNonNull(Attribute.get(getBlockHolder(), AttributeMekIntegrationFactoryType.class)).getMekIntegrationFactoryType(); + type = Objects.requireNonNull(Attribute.get(getBlockHolder(), AttributeMekIntegrationFactoryType.class)) + .getMekIntegrationFactoryType(); outputItemSlots = new ArrayList<>(); configComponent.setupInputConfig(TransmissionType.ENERGY, energyContainer); @@ -118,20 +129,22 @@ public TileEntityMIFactory(Holder blockProvider, BlockPos pos, BlockState activeStates = new boolean[tier.processes]; recheckAllRecipeErrors = new BooleanSupplier[tier.processes]; for (int i = 0; i < recheckAllRecipeErrors.length; i++) { - //Note: We store one per slot so that we can recheck the different slots at different times to reduce the load on the server + // Note: We store one per slot so that we can recheck the different slots at different times to reduce the + // load on the server recheckAllRecipeErrors[i] = TileEntityRecipeMachine.shouldRecheckAllErrors(this); } errorTracker = new ErrorTracker(errorTypes, globalErrorTypes, tier.processes); } /** - * Used for slots/contents pertaining to the inventory checks to mark sorting as being needed again and recipes as needing to be rechecked. This combines with the + * Used for slots/contents pertaining to the inventory checks to mark sorting as being needed again and recipes as + * needing to be rechecked. This combines with the * passed in listener to allow for abstracting the comparator type checks up to the base level. */ protected IContentsListener markAllMonitorsChanged(IContentsListener listener) { return () -> { listener.onContentsChanged(); - //Note: Updating sorting is handled by the onChange calls + // Note: Updating sorting is handled by the onChange calls for (FactoryRecipeCacheLookupMonitor cacheLookupMonitor : recipeCacheLookupMonitors) { cacheLookupMonitor.onChange(); } @@ -174,22 +187,26 @@ protected IInventorySlotHolder getInitialInventory(IContentsListener listener) { InventorySlotHelper builder = InventorySlotHelper.forSideWithConfig(this); addSlots(builder, listener, () -> { listener.onContentsChanged(); - //Mark sorting as being needed again + // Mark sorting as being needed again sortingNeeded = true; }); - //Add the energy slot after adding the other slots so that it has the lowest priority in shift clicking - //Note: We can just pass ourselves as the listener instead of the listener that updates sorting as well, + // Add the energy slot after adding the other slots so that it has the lowest priority in shift clicking + // Note: We can just pass ourselves as the listener instead of the listener that updates sorting as well, // as changes to it won't change anything about the sorting of the recipe - builder.addSlot(energySlot = EnergyInventorySlot.fillOrConvert(energyContainer, this::getLevel, listener, 7, 13)); + builder.addSlot( + energySlot = EnergyInventorySlot.fillOrConvert(energyContainer, this::getLevel, listener, 7, 13)); return builder.build(); } - protected abstract void addSlots(InventorySlotHelper builder, IContentsListener listener, IContentsListener updateSortingListener); + protected abstract void addSlots(InventorySlotHelper builder, IContentsListener listener, + IContentsListener updateSortingListener); - protected abstract void addGasTanks(ChemicalTankHelper builder, IContentsListener listener, IContentsListener updateSortingListener); + protected abstract void addGasTanks(ChemicalTankHelper builder, IContentsListener listener, + IContentsListener updateSortingListener); public int getXPos(int index) { - int baseX = tier == FactoryTier.BASIC ? 55 : tier == FactoryTier.ADVANCED ? 35 : tier == FactoryTier.ELITE ? 29 : 27; + int baseX = tier == FactoryTier.BASIC ? 55 : + tier == FactoryTier.ADVANCED ? 35 : tier == FactoryTier.ELITE ? 29 : 27; int baseXMult = tier == FactoryTier.BASIC ? 38 : tier == FactoryTier.ADVANCED ? 26 : 19; return baseX + (index * baseXMult); } @@ -209,7 +226,7 @@ protected boolean onUpdateServer() { energySlot.fillContainerOrConvert(); if (sortingNeeded && isSorting()) { - //If sorting is needed, and we have sorting enabled mark + // If sorting is needed, and we have sorting enabled mark // sorting as no longer needed and sort the inventory sortingNeeded = false; // Note: If sorting happens, sorting will be marked as needed once more @@ -221,23 +238,24 @@ protected boolean onUpdateServer() { // with other items. needSortingInventory(); } else if (!sortingNeeded && CommonWorldTickHandler.flushTagAndRecipeCaches) { - //Otherwise, if sorting isn't currently needed and the recipe cache is invalid + // Otherwise, if sorting isn't currently needed and the recipe cache is invalid // Mark sorting as being needed again for the next check as recipes may // have changed so our current sort may be incorrect sortingNeeded = true; } - //Copy this so that if it changes we still have the original amount. Don't bother making it a constant though as this way + // Copy this so that if it changes we still have the original amount. Don't bother making it a constant though + // as this way // we can then use minusEqual instead of subtract to remove an extra copy call long prev = energyContainer.getEnergy(); for (int i = 0; i < recipeCacheLookupMonitors.length; i++) { if (!recipeCacheLookupMonitors[i].updateAndProcess()) { - //If we don't have a recipe in that slot make sure that our active state for that position is false + // If we don't have a recipe in that slot make sure that our active state for that position is false activeStates[i] = false; } } - //Update the active state based on the current active state of each recipe + // Update the active state based on the current active state of each recipe boolean isActive = false; for (boolean state : activeStates) { if (state) { @@ -246,18 +264,16 @@ protected boolean onUpdateServer() { } } setActive(isActive); - //If none of the recipes are actively processing don't bother with any subtraction + // If none of the recipes are actively processing don't bother with any subtraction lastUsage = isActive ? prev - energyContainer.getEnergy() : 0L; return sendUpdatePacket; } - protected void needSortingInventory() { - - } + protected void needSortingInventory() {} @Nullable protected CachedRecipe getCachedRecipe(int cacheIndex) { - //TODO: Sanitize that cacheIndex is in bounds? + // TODO: Sanitize that cacheIndex is in bounds? return recipeCacheLookupMonitors[cacheIndex].getCachedRecipe(cacheIndex); } @@ -357,16 +373,18 @@ public List getInfo(@NotNull Upgrade upgrade) { @Override public boolean isConfigurationDataCompatible(Block blockType) { if (super.isConfigurationDataCompatible(blockType)) { - //Check exact match first + // Check exact match first return true; } - //Then check other factory tiers + // Then check other factory tiers for (FactoryTier factoryTier : EnumUtils.FACTORY_TIERS) { - if (factoryTier != tier && MekIntegrationBlocks.getMekIntegrationFactory(factoryTier, type).value() == blockType) { + if (factoryTier != tier && + MekIntegrationBlocks.getMekIntegrationFactory(factoryTier, type).value() == blockType) { return true; } } - //And finally check if it is the non factory version (it will be missing sorting data, but we can gracefully ignore that) + // And finally check if it is the non factory version (it will be missing sorting data, but we can gracefully + // ignore that) return type.getBaseBlock().value() == blockType; } @@ -408,10 +426,12 @@ public void parseUpgradeData(HolderLookup.Provider provider, @NotNull IUpgradeDa } } - //Methods relating to IComputerTile + // Methods relating to IComputerTile protected void validateValidProcess(int process) throws ComputerException { if (process < 0 || process >= progress.length) { - throw new ComputerException("Process: '%d' is out of bounds, as this factory only has '%d' processes (zero indexed).", process, progress.length); + throw new ComputerException( + "Process: '%d' is out of bounds, as this factory only has '%d' processes (zero indexed).", process, + progress.length); } } @@ -429,19 +449,19 @@ int getRecipeProgress(int process) throws ComputerException { validateValidProcess(process); return getProgress(process); } - //End methods IComputerTile + // End methods IComputerTile protected static class ErrorTracker { private final List errorTypes; private final IntSet globalTypes; - //TODO: See if we can get it so we only have to sync a single version of global types? + // TODO: See if we can get it so we only have to sync a single version of global types? private final boolean[][] trackedErrors; private final int processes; public ErrorTracker(List errorTypes, Set globalErrorTypes, int processes) { - //Copy the list if it is mutable to ensure it doesn't get changed, otherwise just use the list + // Copy the list if it is mutable to ensure it doesn't get changed, otherwise just use the list this.errorTypes = List.copyOf(errorTypes); globalTypes = new IntArraySet(globalErrorTypes.size()); for (int i = 0; i < this.errorTypes.size(); i++) { @@ -474,12 +494,13 @@ private BooleanSupplier getWarningCheck(RecipeError error, int processIndex) { int errorIndex = errorTypes.indexOf(error); if (errorIndex >= 0) { if (globalTypes.contains(errorIndex)) { - return () -> Arrays.stream(trackedErrors).anyMatch(processTrackedErrors -> processTrackedErrors[errorIndex]); + return () -> Arrays.stream(trackedErrors) + .anyMatch(processTrackedErrors -> processTrackedErrors[errorIndex]); } return () -> trackedErrors[processIndex][errorIndex]; } } - //Something went wrong + // Something went wrong return () -> false; } } diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/machine/TileEntityNeutronCollector.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/machine/TileEntityNeutronCollector.java new file mode 100644 index 00000000..79e3bafd --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/machine/TileEntityNeutronCollector.java @@ -0,0 +1,166 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.cache.ChemicalToItemCachedRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.MekIntegrationRecipeType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; + +import mekanism.api.AutomationType; +import mekanism.api.IContentsListener; +import mekanism.api.RelativeSide; +import mekanism.api.chemical.BasicChemicalTank; +import mekanism.api.chemical.Chemical; +import mekanism.api.chemical.ChemicalStack; +import mekanism.api.chemical.IChemicalTank; +import mekanism.api.chemical.attribute.ChemicalAttributeValidator; +import mekanism.api.functions.ConstantPredicates; +import mekanism.api.recipes.cache.CachedRecipe; +import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; +import mekanism.api.recipes.inputs.IInputHandler; +import mekanism.api.recipes.inputs.InputHelper; +import mekanism.api.recipes.outputs.IOutputHandler; +import mekanism.api.recipes.outputs.OutputHelper; +import mekanism.common.capabilities.energy.MachineEnergyContainer; +import mekanism.common.capabilities.holder.chemical.ChemicalTankHelper; +import mekanism.common.capabilities.holder.chemical.IChemicalTankHolder; +import mekanism.common.capabilities.holder.energy.EnergyContainerHelper; +import mekanism.common.capabilities.holder.energy.IEnergyContainerHolder; +import mekanism.common.capabilities.holder.slot.IInventorySlotHolder; +import mekanism.common.capabilities.holder.slot.InventorySlotHelper; +import mekanism.common.inventory.container.slot.SlotOverlay; +import mekanism.common.inventory.slot.EnergyInventorySlot; +import mekanism.common.inventory.slot.OutputInventorySlot; +import mekanism.common.inventory.slot.chemical.ChemicalInventorySlot; +import mekanism.common.inventory.warning.WarningTracker.WarningType; +import mekanism.common.lib.radiation.RadiationManager; +import mekanism.common.lib.transmitter.TransmissionType; +import mekanism.common.recipe.IMekanismRecipeTypeProvider; +import mekanism.common.recipe.lookup.ISingleRecipeLookupHandler.ChemicalRecipeLookupHandler; +import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleChemical; +import mekanism.common.registries.MekanismChemicals; +import mekanism.common.tile.component.TileComponentEjector; +import mekanism.common.tile.prefab.TileEntityProgressMachine; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class TileEntityNeutronCollector extends TileEntityProgressMachine + implements ChemicalRecipeLookupHandler { + + private static final List TRACKED_ERROR_TYPES = List.of( + RecipeError.NOT_ENOUGH_ENERGY, + RecipeError.NOT_ENOUGH_INPUT, + RecipeError.NOT_ENOUGH_OUTPUT_SPACE, + RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT); + + private static final long MAX_GAS = 10_000; + + public IChemicalTank gasTank; + + private final IInputHandler<@NotNull ChemicalStack> inputHandler; + private final IOutputHandler<@NotNull ItemStack> outputHandler; + + private MachineEnergyContainer energyContainer; + + ChemicalInventorySlot gasInputSlot; + OutputInventorySlot outputSlot; + EnergyInventorySlot energySlot; + + public TileEntityNeutronCollector(BlockPos pos, BlockState state) { + super(MekIntegrationBlocks.NEUTRON_COLLECTOR, pos, state, TRACKED_ERROR_TYPES, 200); + configComponent.setupItemIOConfig(gasInputSlot, outputSlot, energySlot); + configComponent.setupIOConfig(TransmissionType.CHEMICAL, gasTank, RelativeSide.RIGHT).setCanEject(false); + configComponent.setupInputConfig(TransmissionType.ENERGY, energyContainer); + + ejectorComponent = new TileComponentEjector(this); + ejectorComponent.setOutputData(configComponent, TransmissionType.ITEM); + + inputHandler = InputHelper.getInputHandler(gasTank, RecipeError.NOT_ENOUGH_INPUT); + outputHandler = OutputHelper.getOutputHandler(outputSlot, RecipeError.NOT_ENOUGH_OUTPUT_SPACE); + } + + @Override + protected @Nullable IChemicalTankHolder getInitialChemicalTanks(IContentsListener listener, + IContentsListener recipeCacheListener, + IContentsListener recipeCacheUnpauseListener) { + ChemicalTankHelper builder = ChemicalTankHelper.forSideWithConfig(this); + builder.addTank(gasTank = BasicChemicalTank.createModern(MAX_GAS, + (type, automationType) -> automationType != AutomationType.EXTERNAL || + (type.isRadioactive() && RadiationManager.isGlobalRadiationEnabled()), + ConstantPredicates.alwaysTrueBi(), this::containsRecipe, + ChemicalAttributeValidator.ALWAYS_ALLOW, recipeCacheListener)); + return builder.build(); + } + + @Override + protected @Nullable IEnergyContainerHolder getInitialEnergyContainers(IContentsListener listener, + IContentsListener recipeCacheListener, + IContentsListener recipeCacheUnpauseListener) { + EnergyContainerHelper builder = EnergyContainerHelper.forSideWithConfig(this); + builder.addContainer(energyContainer = MachineEnergyContainer.input(this, listener)); + return builder.build(); + } + + @Override + protected @Nullable IInventorySlotHolder getInitialInventory(IContentsListener listener, + IContentsListener recipeCacheListener, + IContentsListener recipeCacheUnpauseListener) { + InventorySlotHelper builder = InventorySlotHelper.forSideWithConfig(this); + builder.addSlot(gasInputSlot = ChemicalInventorySlot.fill(gasTank, listener, 7, 56)); + builder.addSlot(outputSlot = OutputInventorySlot.at(listener, 131, 36)) + .tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, + getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE))); + builder.addSlot( + energySlot = EnergyInventorySlot.fillOrConvert(energyContainer, this::getLevel, listener, 7, 14)); + gasInputSlot.setSlotOverlay(SlotOverlay.PLUS); + return builder.build(); + } + + private boolean canGasInsert(Chemical Chemical) { + return Chemical.equals(MekanismChemicals.SPENT_NUCLEAR_WASTE.get()) || + Chemical.equals(MekanismChemicals.POLONIUM.get()) || + Chemical.equals(MekanismChemicals.PLUTONIUM.get()) || + Chemical.equals(MekanismChemicals.ANTIMATTER.get()); + } + + @Override + protected boolean onUpdateServer() { + boolean sendUpdatePacket = super.onUpdateServer(); + energySlot.fillContainerOrConvert(); + gasInputSlot.fillTank(); + recipeCacheLookupMonitor.updateAndProcess(); + return sendUpdatePacket; + } + + @Override + public @NotNull IMekanismRecipeTypeProvider> getRecipeType() { + return MekIntegrationRecipeType.COLLECTING; + } + + @Override + public @Nullable ChemicalStackToItemStackRecipe getRecipe(int cacheIndex) { + return findFirstRecipe(inputHandler); + } + + @Override + public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ChemicalStackToItemStackRecipe recipe, + int cacheIndex) { + return ChemicalToItemCachedRecipe.chemicalToItem(recipe, recheckAllRecipeErrors, inputHandler, outputHandler) + .setErrorsChanged(this::onErrorsChanged) + .setCanHolderFunction(this::canFunction) + .setActive(this::setActive) + .setEnergyRequirements(energyContainer::getEnergyPerTick, energyContainer) + .setRequiredTicks(this::getTicksRequired) + .setOnFinish(this::markForSave) + .setOperatingTicksChanged(this::setOperatingTicks); + } + + public MachineEnergyContainer getEnergyContainer() { + return energyContainer; + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/machine/TileEntitySingularityCompressor.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/machine/TileEntitySingularityCompressor.java similarity index 76% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/machine/TileEntitySingularityCompressor.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/machine/TileEntitySingularityCompressor.java index c5716ca5..93a9fcef 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/machine/TileEntitySingularityCompressor.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/tile/machine/TileEntitySingularityCompressor.java @@ -1,8 +1,13 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.tile.machine; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.inventory.slot.MIInputInventorySlot; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.MekIntegrationRecipeType; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.registries.MekIntegrationBlocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; -import committee.nova.mods.avaritia_integration.module.mekanism.common.inventory.slot.MIInputInventorySlot; -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.MekIntegrationRecipeType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; import mekanism.api.IContentsListener; import mekanism.api.recipes.ItemStackToItemStackRecipe; import mekanism.api.recipes.cache.CachedRecipe; @@ -26,22 +31,19 @@ import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleItem; import mekanism.common.tile.component.TileComponentEjector; import mekanism.common.tile.prefab.TileEntityProgressMachine; -import net.minecraft.core.BlockPos; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; -public class TileEntitySingularityCompressor extends TileEntityProgressMachine implements ItemRecipeLookupHandler { +public class TileEntitySingularityCompressor extends TileEntityProgressMachine + implements ItemRecipeLookupHandler { private static final List TRACKED_ERROR_TYPES = List.of( RecipeError.NOT_ENOUGH_ENERGY, RecipeError.NOT_ENOUGH_INPUT, RecipeError.NOT_ENOUGH_OUTPUT_SPACE, - RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT - ); + RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT); private final IInputHandler<@NotNull ItemStack> inputHandler; private final IOutputHandler<@NotNull ItemStack> outputHandler; @@ -64,18 +66,25 @@ public TileEntitySingularityCompressor(BlockPos pos, BlockState state) { } @Override - protected @Nullable IInventorySlotHolder getInitialInventory(IContentsListener listener, IContentsListener recipeCacheListener, IContentsListener recipeCacheUnpauseListener) { + protected @Nullable IInventorySlotHolder getInitialInventory(IContentsListener listener, + IContentsListener recipeCacheListener, + IContentsListener recipeCacheUnpauseListener) { InventorySlotHelper builder = InventorySlotHelper.forSideWithConfig(this); builder.addSlot(inputSlot = MIInputInventorySlot.at(this::containsRecipe, recipeCacheListener, 64, 17)) - .tracksWarnings(slot -> slot.warning(WarningType.NO_MATCHING_RECIPE, getWarningCheck(RecipeError.NOT_ENOUGH_INPUT))); + .tracksWarnings(slot -> slot.warning(WarningType.NO_MATCHING_RECIPE, + getWarningCheck(RecipeError.NOT_ENOUGH_INPUT))); builder.addSlot(outputSlot = OutputInventorySlot.at(listener, 116, 35)) - .tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE))); - builder.addSlot(energySlot = EnergyInventorySlot.fillOrConvert(energyContainer, this::getLevel, listener, 64, 53)); + .tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, + getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE))); + builder.addSlot( + energySlot = EnergyInventorySlot.fillOrConvert(energyContainer, this::getLevel, listener, 64, 53)); return builder.build(); } @Override - protected @Nullable IEnergyContainerHolder getInitialEnergyContainers(IContentsListener listener, IContentsListener recipeCacheListener, IContentsListener recipeCacheUnpauseListener) { + protected @Nullable IEnergyContainerHolder getInitialEnergyContainers(IContentsListener listener, + IContentsListener recipeCacheListener, + IContentsListener recipeCacheUnpauseListener) { EnergyContainerHelper builder = EnergyContainerHelper.forSideWithConfig(this); builder.addContainer(energyContainer = MachineEnergyContainer.input(this, listener)); return builder.build(); @@ -105,7 +114,8 @@ protected boolean onUpdateServer() { } @Override - public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ItemStackToItemStackRecipe recipe, int cacheIndex) { + public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ItemStackToItemStackRecipe recipe, + int cacheIndex) { return OneInputCachedRecipe.itemToItem(recipe, recheckAllRecipeErrors, inputHandler, outputHandler) .setErrorsChanged(this::onErrorsChanged) .setCanHolderFunction(this::canFunction) diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/upgrade/ChemicalToItemUpgradeData.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/upgrade/ChemicalToItemUpgradeData.java new file mode 100644 index 00000000..eb02b1e3 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/upgrade/ChemicalToItemUpgradeData.java @@ -0,0 +1,58 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.upgrade; + +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; + +import mekanism.api.chemical.IChemicalTank; +import mekanism.api.energy.IEnergyContainer; +import mekanism.api.inventory.IInventorySlot; +import mekanism.common.inventory.slot.EnergyInventorySlot; +import mekanism.common.tile.component.ITileComponent; +import mekanism.common.tile.interfaces.IRedstoneControl; +import mekanism.common.upgrade.IUpgradeData; + +import java.util.Collections; +import java.util.List; + +public class ChemicalToItemUpgradeData implements IUpgradeData { + + public final boolean redstone; + public final IRedstoneControl.RedstoneControl controlType; + public final IEnergyContainer energyContainer; + public final int[] progress; + public final boolean sorting; + public final EnergyInventorySlot energySlot; + public final List outputSlots; + public final List inputTanks; + public final CompoundTag components; + + public ChemicalToItemUpgradeData(HolderLookup.Provider provider, boolean redstone, + IRedstoneControl.RedstoneControl controlType, + IEnergyContainer energyContainer, int operatingTicks, + EnergyInventorySlot energySlot, + IChemicalTank inputTank, IInventorySlot outputSlot, + List components) { + this(provider, redstone, controlType, energyContainer, new int[] { operatingTicks }, energySlot, + Collections.singletonList(inputTank), + Collections.singletonList(outputSlot), false, components); + } + + public ChemicalToItemUpgradeData(HolderLookup.Provider provider, boolean redstone, + IRedstoneControl.RedstoneControl controlType, + IEnergyContainer energyContainer, int[] progress, EnergyInventorySlot energySlot, + List inputTanks, List outputSlots, boolean sorting, + List components) { + this.redstone = redstone; + this.controlType = controlType; + this.energyContainer = energyContainer; + this.progress = progress; + this.energySlot = energySlot; + this.outputSlots = outputSlots; + this.inputTanks = inputTanks; + this.sorting = sorting; + this.components = new CompoundTag(); + for (ITileComponent component : components) { + component.write(this.components, provider); + } + } +} diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/util/MekIntegrationEnumUtils.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/util/MekIntegrationEnumUtils.java new file mode 100644 index 00000000..e8d22b47 --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/util/MekIntegrationEnumUtils.java @@ -0,0 +1,32 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.util; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.content.blocktype.MekIntegrationFactoryType; + +import net.neoforged.fml.ModList; + +import fr.iglee42.evolvedmekanism.tiers.EMFactoryTier; +import mekanism.common.tier.FactoryTier; + +public class MekIntegrationEnumUtils { + + private MekIntegrationEnumUtils() {} + + /** + * Cached value of {@link MekIntegrationFactoryType#values()}. DO NOT MODIFY THIS LIST. + */ + public static final MekIntegrationFactoryType[] FACTORY_TYPES = MekIntegrationFactoryType.values(); + + /** + * Cached value of {@link EMFactoryTier()}(If you load it). DO NOT MODIFY THIS LIST. + */ + public static FactoryTier[] EM_TIERS; + + static { + // Compatible wit Emek + // 需要判断是否加载模组 + if (ModList.get().isLoaded("evolvedmekanism")) { + EM_TIERS = new FactoryTier[] { EMFactoryTier.OVERCLOCKED, EMFactoryTier.QUANTUM, EMFactoryTier.DENSE, + EMFactoryTier.MULTIVERSAL, EMFactoryTier.CREATIVE }; + } + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/util/MekIntegrationUtils.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/util/MekIntegrationUtils.java similarity index 75% rename from src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/util/MekIntegrationUtils.java rename to integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/util/MekIntegrationUtils.java index 7dcba52c..2128937f 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/util/MekIntegrationUtils.java +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/common/util/MekIntegrationUtils.java @@ -1,8 +1,9 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.util; +package committee.nova.mods.avaritia_integration.integrations.mekanism.common.util; + +import net.neoforged.fml.ModList; import mekanism.common.tier.FactoryTier; import mekanism.common.util.EnumUtils; -import net.neoforged.fml.ModList; import java.util.Arrays; @@ -20,8 +21,10 @@ public static FactoryTier[] getFactoryTier() { // Compatible wit Emek if (ModList.get().isLoaded("evolvedmekanism")) { FactoryTier[] mergedTiers; - mergedTiers = Arrays.copyOf(EnumUtils.FACTORY_TIERS, EnumUtils.FACTORY_TIERS.length + MekIntegrationEnumUtils.EM_TIERS.length); - System.arraycopy(MekIntegrationEnumUtils.EM_TIERS, 0, mergedTiers, EnumUtils.FACTORY_TIERS.length, MekIntegrationEnumUtils.EM_TIERS.length); + mergedTiers = Arrays.copyOf(EnumUtils.FACTORY_TIERS, + EnumUtils.FACTORY_TIERS.length + MekIntegrationEnumUtils.EM_TIERS.length); + System.arraycopy(MekIntegrationEnumUtils.EM_TIERS, 0, mergedTiers, EnumUtils.FACTORY_TIERS.length, + MekIntegrationEnumUtils.EM_TIERS.length); return EnumUtils.FACTORY_TIERS; } else { return EnumUtils.FACTORY_TIERS; diff --git a/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/mixin/MixinMekanismRecipeType.java b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/mixin/MixinMekanismRecipeType.java new file mode 100644 index 00000000..b98d785a --- /dev/null +++ b/integrations/mekanism/src/main/java/committee/nova/mods/avaritia_integration/integrations/mekanism/mixin/MixinMekanismRecipeType.java @@ -0,0 +1,47 @@ +package committee.nova.mods.avaritia_integration.integrations.mekanism.mixin; + +import committee.nova.mods.avaritia_integration.integrations.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; +import committee.nova.mods.avaritia_integration.integrations.mekanism.common.recipe.MekIntegrationRecipeType; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeInput; +import net.minecraft.world.item.crafting.RecipeType; + +import mekanism.api.recipes.ItemStackToItemStackRecipe; +import mekanism.api.recipes.MekanismRecipe; +import mekanism.common.Mekanism; +import mekanism.common.recipe.IMekanismRecipeTypeProvider; +import mekanism.common.recipe.MekanismRecipeType; +import mekanism.common.recipe.lookup.cache.IInputRecipeCache; +import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleChemical; +import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleItem; +import mekanism.common.registration.impl.RecipeTypeRegistryObject; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.function.Function; + +@Mixin(value = MekanismRecipeType.class, remap = false) +public abstract class MixinMekanismRecipeType, INPUT_CACHE extends IInputRecipeCache> + implements RecipeType, + IMekanismRecipeTypeProvider { + + @Shadow + private static , + INPUT_CACHE extends IInputRecipeCache> RecipeTypeRegistryObject register(ResourceLocation name, + Function, INPUT_CACHE> inputCacheCreator) { + return null; + } + + @Inject(method = "", at = @At("TAIL")) + private static void avaritia_integration$registerMekanismRecipes(CallbackInfo ci) { + MekIntegrationRecipeType.COLLECTING = register(Mekanism.rl("collector"), + recipeType -> new SingleChemical<>(recipeType, ChemicalStackToItemStackRecipe::getInput)); + MekIntegrationRecipeType.MEK_COMPRESSING = register(Mekanism.rl("compressor"), + recipeType -> new SingleItem<>(recipeType, ItemStackToItemStackRecipe::getInput)); + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/advanced_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/advanced_neutron_collecting_factory.json new file mode 100644 index 00000000..51da4310 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/advanced_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/advanced" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/advanced", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/advanced", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/advanced", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/advanced_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/advanced_singularity_compressing_factory.json new file mode 100644 index 00000000..b385c219 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/advanced_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/advanced" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/advanced", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/advanced", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/advanced", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/basic_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/basic_neutron_collecting_factory.json new file mode 100644 index 00000000..16d4cc7b --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/basic_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/basic" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/basic", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/basic", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/basic", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/basic" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/basic", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/basic", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/basic", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/basic_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/basic_singularity_compressing_factory.json new file mode 100644 index 00000000..9f4dd5ef --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/basic_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/basic" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/basic", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/basic", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/basic", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/basic" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/basic", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/basic", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/basic", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/creative_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/creative_neutron_collecting_factory.json new file mode 100644 index 00000000..0c301b35 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/creative_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/creative" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/creative", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/creative", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/creative", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/creative" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/creative", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/creative", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/creative", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/creative_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/creative_singularity_compressing_factory.json new file mode 100644 index 00000000..de07b7f9 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/creative_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/creative" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/creative", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/creative", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/creative", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/creative" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/creative", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/creative", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/creative", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/dense_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/dense_neutron_collecting_factory.json new file mode 100644 index 00000000..3dc262c9 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/dense_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/dense" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/dense", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/dense", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/dense", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/dense" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/dense", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/dense", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/dense", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/dense_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/dense_singularity_compressing_factory.json new file mode 100644 index 00000000..3fbc2cbe --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/dense_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/dense" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/dense", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/dense", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/dense", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/dense" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/dense", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/dense", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/dense", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/elite_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/elite_neutron_collecting_factory.json new file mode 100644 index 00000000..53c181f4 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/elite_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/elite" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/elite", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/elite", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/elite", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/elite" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/elite", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/elite", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/elite", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/elite_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/elite_singularity_compressing_factory.json new file mode 100644 index 00000000..4a38c6bb --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/elite_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/elite" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/elite", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/elite", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/elite", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/elite" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/elite", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/elite", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/elite", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/multiversal_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/multiversal_neutron_collecting_factory.json new file mode 100644 index 00000000..985665d1 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/multiversal_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/multiversal" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/multiversal", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/multiversal", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/multiversal", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/multiversal_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/multiversal_singularity_compressing_factory.json new file mode 100644 index 00000000..9038205c --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/multiversal_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/multiversal" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/multiversal", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/multiversal", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/multiversal", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/neutron_collector.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/neutron_collector.json new file mode 100644 index 00000000..83b0ef76 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/neutron_collector.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/neutron_collector" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/neutron_collector", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/neutron_collector", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/neutron_collector", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/neutron_collector_active" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/neutron_collector_active", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/neutron_collector_active", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/neutron_collector_active", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/overclocked_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/overclocked_neutron_collecting_factory.json new file mode 100644 index 00000000..19a733bd --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/overclocked_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/overclocked" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/overclocked", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/overclocked", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/overclocked", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/overclocked_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/overclocked_singularity_compressing_factory.json new file mode 100644 index 00000000..f9f3d07d --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/overclocked_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/overclocked" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/overclocked", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/overclocked", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/overclocked", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/quantum_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/quantum_neutron_collecting_factory.json new file mode 100644 index 00000000..c29cc9f3 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/quantum_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/quantum" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/quantum", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/quantum", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/quantum", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/quantum_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/quantum_singularity_compressing_factory.json new file mode 100644 index 00000000..c450c97b --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/quantum_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/quantum" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/quantum", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/quantum", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/quantum", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/singularity_compressor.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/singularity_compressor.json new file mode 100644 index 00000000..b1baf1a7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/singularity_compressor.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/singularity_compressor" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/singularity_compressor", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/singularity_compressor", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/singularity_compressor", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/singularity_compressor_active" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/singularity_compressor_active", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/singularity_compressor_active", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/singularity_compressor_active", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/ultimate_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/ultimate_neutron_collecting_factory.json new file mode 100644 index 00000000..de9af1c6 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/ultimate_neutron_collecting_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/ultimate" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/ultimate", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/ultimate", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/neutron_collecting/ultimate", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/ultimate_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/ultimate_singularity_compressing_factory.json new file mode 100644 index 00000000..9618464e --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/blockstates/ultimate_singularity_compressing_factory.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/ultimate" + }, + "facing=south,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/ultimate", + "y": 180 + }, + "facing=east,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/ultimate", + "y": 90 + }, + "facing=west,active=false": { + "model": "avaritia_integration:block/factory/singularity_compressing/ultimate", + "y": -90 + }, + "facing=north,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate" + }, + "facing=south,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate", + "y": 180 + }, + "facing=east,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate", + "y": 90 + }, + "facing=west,active=true": { + "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate", + "y": -90 + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/advanced.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/advanced.json new file mode 100644 index 00000000..c2cabb20 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/advanced.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/advanced" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/basic.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/basic.json new file mode 100644 index 00000000..d0f73bcd --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/basic.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/basic" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/creative.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/creative.json new file mode 100644 index 00000000..f0ba79be --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/creative.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/creative" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/dense.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/dense.json new file mode 100644 index 00000000..0a14297b --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/dense.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/dense" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/elite.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/elite.json new file mode 100644 index 00000000..1b14fff0 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/elite.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/elite" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/multiversal.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/multiversal.json new file mode 100644 index 00000000..e1782a71 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/multiversal.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/multiversal" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/overclocked.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/overclocked.json new file mode 100644 index 00000000..b482ff0f --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/overclocked.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/overclocked" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/quantum.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/quantum.json new file mode 100644 index 00000000..580c62ee --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/quantum.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/quantum" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/ultimate.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/ultimate.json new file mode 100644 index 00000000..7c6990a4 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/ultimate.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/ultimate" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/advanced.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/advanced.json new file mode 100644 index 00000000..a8acf0b9 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/advanced.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/advanced" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/base.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/base.json new file mode 100644 index 00000000..978a689a --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/base.json @@ -0,0 +1,273 @@ +{ + "credit": "Made by CyanideX using Blockbench", + "render_type": "minecraft:cutout", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front", + "front": "avaritia_integration:block/factory/neutron_collecting/front", + "back": "mekanism:block/factory/enriching/enriching_factory_back", + "side": "mekanism:block/factory/enriching/enriching_factory_side", + "top": "mekanism:block/factory/enriching/enriching_factory_top", + "bottom": "mekanism:block/factory/enriching/enriching_factory_bottom", + "elements": "mekanism:block/factory/enriching/enriching_factory_elements", + "back_panel": "mekanism:block/factory/factory_front_back", + "ports": "mekanism:block/models/ports", + "ports_led": "mekanism:block/models/ports_led" + }, + "elements": [ + { + "name": "front_panel", + "from": [0, 0, 0], + "to": [16, 16, 4], + "faces": { + "north": { + "uv": [0, 0, 16, 16], + "texture": "#front", + "cullface": "north" + }, + "east": { + "uv": [4, 0, 0, 16], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [0, 0, 16, 16], + "texture": "#back_panel" + }, + "west": { + "uv": [0, 0, 4, 16], + "texture": "#side", + "cullface": "west" + }, + "up": { + "uv": [0, 12, 16, 16], + "rotation": 180, + "texture": "#top", + "cullface": "up" + }, + "down": { + "uv": [0, 0, 16, 4], + "rotation": 180, + "texture": "#bottom", + "cullface": "down" + } + } + }, + { + "name": "port", + "from": [4, 4, 14], + "to": [12, 12, 16], + "faces": { + "north": { + "uv": [0, 8, 8, 16], + "texture": "#ports" + }, + "east": { + "uv": [7, 0, 9, 8], + "texture": "#ports" + }, + "south": { + "uv": [0, 8, 8, 16], + "texture": "#ports", + "cullface": "south" + }, + "west": { + "uv": [7, 0, 9, 8], + "texture": "#ports" + }, + "up": { + "uv": [0, 7, 8, 9], + "texture": "#ports" + }, + "down": { + "uv": [0, 7, 8, 9], + "texture": "#ports", + "cullface": "south" + } + } + }, + { + "name": "port_led", + "from": [4, 4, 14], + "to": [12, 12, 16], + "faces": { + "south": { + "uv": [8, 8, 16, 16], + "texture": "#ports_led", + "cullface": "south" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "core", + "from": [1, 7, 4], + "to": [15, 14, 14], + "faces": { + "south": { + "uv": [1, 2, 15, 9], + "texture": "#back" + }, + "down": { + "uv": [1, 2, 15, 12], + "texture": "#back" + } + } + }, + { + "name": "middle", + "from": [2, 4, 4], + "to": [14, 7, 10], + "faces": { + "east": { + "uv": [10, 9, 4, 12], + "texture": "#side" + }, + "south": { + "uv": [2, 9, 14, 12], + "texture": "#back" + }, + "west": { + "uv": [4, 9, 10, 12], + "texture": "#side" + } + } + }, + { + "name": "middle_connector", + "from": [5, 5, 10], + "to": [11, 7, 14], + "faces": { + "east": { + "uv": [14, 10, 10, 12], + "texture": "#side" + }, + "west": { + "uv": [10, 10, 14, 12], + "texture": "#side" + }, + "down": { + "uv": [6, 11, 10, 12], + "texture": "#back" + } + } + }, + { + "name": "base", + "from": [0, 0, 4], + "to": [16, 4, 16], + "faces": { + "east": { + "uv": [16, 12, 5, 16], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [0, 12, 16, 16], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [5, 12, 16, 16], + "texture": "#side", + "cullface": "west" + }, + "up": { + "uv": [0, 0, 16, 12], + "rotation": 180, + "texture": "#elements" + }, + "down": { + "uv": [0, 4, 16, 16], + "rotation": 180, + "texture": "#bottom", + "cullface": "down" + } + } + }, + { + "name": "shell_01", + "from": [0, 14, 4], + "to": [16, 16, 16], + "faces": { + "east": { + "uv": [16, 0, 4, 2], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [0, 0, 16, 2], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [4, 0, 16, 2], + "texture": "#side", + "cullface": "west" + }, + "up": { + "uv": [0, 0, 16, 12], + "rotation": 180, + "texture": "#top", + "cullface": "up" + }, + "down": { + "uv": [0, 0, 16, 12], + "texture": "#top" + } + } + }, + { + "name": "shell_02", + "from": [0, 6, 4], + "to": [2, 14, 16], + "faces": { + "east": { + "uv": [16, 2, 4, 10], + "texture": "#side" + }, + "south": { + "uv": [0, 2, 2, 10], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [4, 2, 16, 10], + "texture": "#side", + "cullface": "west" + }, + "down": { + "uv": [0, 0, 2, 12], + "texture": "#top" + } + } + }, + { + "name": "shell_03", + "from": [14, 6, 4], + "to": [16, 14, 16], + "faces": { + "east": { + "uv": [16, 2, 4, 10], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [14, 2, 16, 10], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [4, 0, 16, 8], + "texture": "#side" + }, + "down": { + "uv": [14, 0, 16, 12], + "texture": "#top" + } + } + } + ] +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/basic.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/basic.json new file mode 100644 index 00000000..2fde4c31 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/basic.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/basic" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/creative.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/creative.json new file mode 100644 index 00000000..b93d0ee6 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/creative.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/creative" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/dense.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/dense.json new file mode 100644 index 00000000..9685d0d9 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/dense.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/dense" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/elite.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/elite.json new file mode 100644 index 00000000..cc1df135 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/elite.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/elite" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/multiversal.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/multiversal.json new file mode 100644 index 00000000..e09f02c7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/multiversal.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/multiversal" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/overclocked.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/overclocked.json new file mode 100644 index 00000000..b9c61cc7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/overclocked.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/overclocked" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/quantum.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/quantum.json new file mode 100644 index 00000000..bd97f7a1 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/quantum.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/quantum" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/ultimate.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/ultimate.json new file mode 100644 index 00000000..f6ed636f --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/ultimate.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/neutron_collecting/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/neutron_collecting/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/ultimate" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/advanced.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/advanced.json new file mode 100644 index 00000000..9c5a91cd --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/advanced.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/advanced" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/basic.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/basic.json new file mode 100644 index 00000000..a2468233 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/basic.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/basic" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/creative.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/creative.json new file mode 100644 index 00000000..7a0c7b66 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/creative.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/creative" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/dense.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/dense.json new file mode 100644 index 00000000..86326169 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/dense.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/dense" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/elite.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/elite.json new file mode 100644 index 00000000..0c705070 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/elite.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/elite" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/multiversal.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/multiversal.json new file mode 100644 index 00000000..2fdf67be --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/multiversal.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/multiversal" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/overclocked.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/overclocked.json new file mode 100644 index 00000000..a45b5706 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/overclocked.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/overclocked" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/quantum.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/quantum.json new file mode 100644 index 00000000..fc474555 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/quantum.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/active/quantum" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/ultimate.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/ultimate.json new file mode 100644 index 00000000..a7068eb7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/ultimate.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/active/ultimate" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/advanced.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/advanced.json new file mode 100644 index 00000000..daa6e302 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/advanced.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/advanced" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/base.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/base.json new file mode 100644 index 00000000..aa54f5b3 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/base.json @@ -0,0 +1,273 @@ +{ + "credit": "Made by CyanideX using Blockbench", + "render_type": "minecraft:cutout", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front", + "front": "avaritia_integration:block/factory/singularity_compressing/front", + "back": "mekanism:block/factory/enriching/enriching_factory_back", + "side": "mekanism:block/factory/enriching/enriching_factory_side", + "top": "mekanism:block/factory/enriching/enriching_factory_top", + "bottom": "mekanism:block/factory/enriching/enriching_factory_bottom", + "elements": "mekanism:block/factory/enriching/enriching_factory_elements", + "back_panel": "mekanism:block/factory/factory_front_back", + "ports": "mekanism:block/models/ports", + "ports_led": "mekanism:block/models/ports_led" + }, + "elements": [ + { + "name": "front_panel", + "from": [0, 0, 0], + "to": [16, 16, 4], + "faces": { + "north": { + "uv": [0, 0, 16, 16], + "texture": "#front", + "cullface": "north" + }, + "east": { + "uv": [4, 0, 0, 16], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [0, 0, 16, 16], + "texture": "#back_panel" + }, + "west": { + "uv": [0, 0, 4, 16], + "texture": "#side", + "cullface": "west" + }, + "up": { + "uv": [0, 12, 16, 16], + "rotation": 180, + "texture": "#top", + "cullface": "up" + }, + "down": { + "uv": [0, 0, 16, 4], + "rotation": 180, + "texture": "#bottom", + "cullface": "down" + } + } + }, + { + "name": "port", + "from": [4, 4, 14], + "to": [12, 12, 16], + "faces": { + "north": { + "uv": [0, 8, 8, 16], + "texture": "#ports" + }, + "east": { + "uv": [7, 0, 9, 8], + "texture": "#ports" + }, + "south": { + "uv": [0, 8, 8, 16], + "texture": "#ports", + "cullface": "south" + }, + "west": { + "uv": [7, 0, 9, 8], + "texture": "#ports" + }, + "up": { + "uv": [0, 7, 8, 9], + "texture": "#ports" + }, + "down": { + "uv": [0, 7, 8, 9], + "texture": "#ports", + "cullface": "south" + } + } + }, + { + "name": "port_led", + "from": [4, 4, 14], + "to": [12, 12, 16], + "faces": { + "south": { + "uv": [8, 8, 16, 16], + "texture": "#ports_led", + "cullface": "south" + } + }, + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + { + "name": "core", + "from": [1, 7, 4], + "to": [15, 14, 14], + "faces": { + "south": { + "uv": [1, 2, 15, 9], + "texture": "#back" + }, + "down": { + "uv": [1, 2, 15, 12], + "texture": "#back" + } + } + }, + { + "name": "middle", + "from": [2, 4, 4], + "to": [14, 7, 10], + "faces": { + "east": { + "uv": [10, 9, 4, 12], + "texture": "#side" + }, + "south": { + "uv": [2, 9, 14, 12], + "texture": "#back" + }, + "west": { + "uv": [4, 9, 10, 12], + "texture": "#side" + } + } + }, + { + "name": "middle_connector", + "from": [5, 5, 10], + "to": [11, 7, 14], + "faces": { + "east": { + "uv": [14, 10, 10, 12], + "texture": "#side" + }, + "west": { + "uv": [10, 10, 14, 12], + "texture": "#side" + }, + "down": { + "uv": [6, 11, 10, 12], + "texture": "#back" + } + } + }, + { + "name": "base", + "from": [0, 0, 4], + "to": [16, 4, 16], + "faces": { + "east": { + "uv": [16, 12, 5, 16], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [0, 12, 16, 16], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [5, 12, 16, 16], + "texture": "#side", + "cullface": "west" + }, + "up": { + "uv": [0, 0, 16, 12], + "rotation": 180, + "texture": "#elements" + }, + "down": { + "uv": [0, 4, 16, 16], + "rotation": 180, + "texture": "#bottom", + "cullface": "down" + } + } + }, + { + "name": "shell_01", + "from": [0, 14, 4], + "to": [16, 16, 16], + "faces": { + "east": { + "uv": [16, 0, 4, 2], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [0, 0, 16, 2], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [4, 0, 16, 2], + "texture": "#side", + "cullface": "west" + }, + "up": { + "uv": [0, 0, 16, 12], + "rotation": 180, + "texture": "#top", + "cullface": "up" + }, + "down": { + "uv": [0, 0, 16, 12], + "texture": "#top" + } + } + }, + { + "name": "shell_02", + "from": [0, 6, 4], + "to": [2, 14, 16], + "faces": { + "east": { + "uv": [16, 2, 4, 10], + "texture": "#side" + }, + "south": { + "uv": [0, 2, 2, 10], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [4, 2, 16, 10], + "texture": "#side", + "cullface": "west" + }, + "down": { + "uv": [0, 0, 2, 12], + "texture": "#top" + } + } + }, + { + "name": "shell_03", + "from": [14, 6, 4], + "to": [16, 14, 16], + "faces": { + "east": { + "uv": [16, 2, 4, 10], + "texture": "#side", + "cullface": "east" + }, + "south": { + "uv": [14, 2, 16, 10], + "texture": "#back", + "cullface": "south" + }, + "west": { + "uv": [4, 0, 16, 8], + "texture": "#side" + }, + "down": { + "uv": [14, 0, 16, 12], + "texture": "#top" + } + } + } + ] +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/basic.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/basic.json new file mode 100644 index 00000000..6052ca66 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/basic.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/basic" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/creative.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/creative.json new file mode 100644 index 00000000..3f62a258 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/creative.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/creative" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/dense.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/dense.json new file mode 100644 index 00000000..a36b7af9 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/dense.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/dense" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/elite.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/elite.json new file mode 100644 index 00000000..3995a240 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/elite.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/elite" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/multiversal.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/multiversal.json new file mode 100644 index 00000000..5bec2b1d --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/multiversal.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/multiversal" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/overclocked.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/overclocked.json new file mode 100644 index 00000000..2963bf88 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/overclocked.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/overclocked" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/quantum.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/quantum.json new file mode 100644 index 00000000..2d63e68e --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/quantum.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "evolvedmekanism:block/factory/front_led/quantum" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/ultimate.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/ultimate.json new file mode 100644 index 00000000..14cd8de7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/ultimate.json @@ -0,0 +1,15 @@ +{ + "loader": "neoforge:composite", + "parent": "block/block", + "textures": { + "particle": "avaritia_integration:block/factory/singularity_compressing/front" + }, + "children": { + "base": { + "parent": "avaritia_integration:block/factory/singularity_compressing/base" + }, + "front_led": { + "parent": "mekanism:block/factory/front_led/ultimate" + } + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/neutron_collector.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/neutron_collector.json new file mode 100644 index 00000000..46e7b178 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/neutron_collector.json @@ -0,0 +1,12 @@ +{ + "parent": "mekanism:block/machine", + "textures": { + "sides": "mekanism:block/enrichment_chamber/right", + "front": "avaritia_integration:block/neutron_collector/front", + "west": "mekanism:block/enrichment_chamber/right", + "east": "mekanism:block/enrichment_chamber/left", + "south": "mekanism:block/enrichment_chamber/back", + "up": "mekanism:block/enrichment_chamber/top", + "down": "mekanism:block/enrichment_chamber/bottom" + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/neutron_collector_active.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/neutron_collector_active.json new file mode 100644 index 00000000..c2cadee5 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/neutron_collector_active.json @@ -0,0 +1,6 @@ +{ + "parent": "avaritia_integration:block/neutron_collector", + "textures": { + "front": "avaritia_integration:block/neutron_collector/front_active" + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor.json new file mode 100644 index 00000000..77483e10 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor.json @@ -0,0 +1,12 @@ +{ + "parent": "mekanism:block/machine", + "textures": { + "sides": "mekanism:block/enrichment_chamber/right", + "front": "avaritia_integration:block/singularity_compressor/front", + "west": "mekanism:block/enrichment_chamber/right", + "east": "mekanism:block/enrichment_chamber/left", + "south": "mekanism:block/enrichment_chamber/back", + "up": "mekanism:block/enrichment_chamber/top", + "down": "mekanism:block/enrichment_chamber/bottom" + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor_active.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor_active.json new file mode 100644 index 00000000..824fca9a --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor_active.json @@ -0,0 +1,6 @@ +{ + "parent": "avaritia_integration:block/singularity_compressor", + "textures": { + "front": "avaritia_integration:block/singularity_compressor/front_active" + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/advanced_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/advanced_neutron_collecting_factory.json new file mode 100644 index 00000000..b5a05806 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/advanced_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/advanced" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/advanced_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/advanced_singularity_compressing_factory.json new file mode 100644 index 00000000..4c2d2fee --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/advanced_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/advanced" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/alloy_infinity.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/alloy_infinity.json new file mode 100644 index 00000000..b978bbb2 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/alloy_infinity.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/alloy_infinity", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/alloy_neutron.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/alloy_neutron.json new file mode 100644 index 00000000..0d4fc881 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/alloy_neutron.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/alloy_neutron", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/basic_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/basic_neutron_collecting_factory.json new file mode 100644 index 00000000..e6cc1fe6 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/basic_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/basic" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/basic_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/basic_singularity_compressing_factory.json new file mode 100644 index 00000000..ef1bd6b8 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/basic_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/basic" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/creative_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/creative_neutron_collecting_factory.json new file mode 100644 index 00000000..32377d14 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/creative_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/creative" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/creative_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/creative_singularity_compressing_factory.json new file mode 100644 index 00000000..68f4d5e7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/creative_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/creative" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/dense_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/dense_neutron_collecting_factory.json new file mode 100644 index 00000000..372f730a --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/dense_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/dense" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/dense_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/dense_singularity_compressing_factory.json new file mode 100644 index 00000000..63c9ff57 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/dense_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/dense" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/elite_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/elite_neutron_collecting_factory.json new file mode 100644 index 00000000..41b2d0cc --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/elite_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/elite" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/elite_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/elite_singularity_compressing_factory.json new file mode 100644 index 00000000..d2e04537 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/elite_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/elite" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/enriched_infinity.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/enriched_infinity.json new file mode 100644 index 00000000..9d5c17e7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/enriched_infinity.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/enriched_infinity", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/enriched_neutron.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/enriched_neutron.json new file mode 100644 index 00000000..94dbc13a --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/enriched_neutron.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/enriched_neutron", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/infinity_control_circuit.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/infinity_control_circuit.json new file mode 100644 index 00000000..a81e8374 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/infinity_control_circuit.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_control_circuit", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/infinity_energy_tablet.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/infinity_energy_tablet.json new file mode 100644 index 00000000..0ecf49de --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/infinity_energy_tablet.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/infinity/infinity_energy_tablet", + "halo": "avaritia:misc/halo" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -16777216, + "size": 10, + "pulse": true + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/multiversal_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/multiversal_neutron_collecting_factory.json new file mode 100644 index 00000000..a92c751b --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/multiversal_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/multiversal" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/multiversal_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/multiversal_singularity_compressing_factory.json new file mode 100644 index 00000000..07af5356 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/multiversal_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/multiversal" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_collector.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_collector.json new file mode 100644 index 00000000..512118bc --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_collector.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/neutron_collector" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_control_circuit.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_control_circuit.json new file mode 100644 index 00000000..60df9391 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_control_circuit.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_control_circuit", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_energy_tablet.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_energy_tablet.json new file mode 100644 index 00000000..53052fb1 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/neutron_energy_tablet.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/neutron/neutron_energy_tablet", + "halo": "avaritia:misc/halo_noise" + }, + "loader": "avaritia:halo", + "halo": { + "texture": "#halo", + "color": -1711276033, + "size": 6, + "pulse": false + } +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/overclocked_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/overclocked_neutron_collecting_factory.json new file mode 100644 index 00000000..10a9b9da --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/overclocked_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/overclocked" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/overclocked_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/overclocked_singularity_compressing_factory.json new file mode 100644 index 00000000..0b3a172f --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/overclocked_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/overclocked" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/quantum_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/quantum_neutron_collecting_factory.json new file mode 100644 index 00000000..baef7a87 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/quantum_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/quantum" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/quantum_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/quantum_singularity_compressing_factory.json new file mode 100644 index 00000000..4fa07575 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/quantum_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/quantum" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/singularity_compressor.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/singularity_compressor.json new file mode 100644 index 00000000..b45f0815 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/singularity_compressor.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/singularity_compressor" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/ultimate_neutron_collecting_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/ultimate_neutron_collecting_factory.json new file mode 100644 index 00000000..52cb9dff --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/ultimate_neutron_collecting_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/neutron_collecting/ultimate" +} diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/ultimate_singularity_compressing_factory.json b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/ultimate_singularity_compressing_factory.json new file mode 100644 index 00000000..49ef59bc --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/models/item/ultimate_singularity_compressing_factory.json @@ -0,0 +1,3 @@ +{ + "parent": "avaritia_integration:block/factory/singularity_compressing/ultimate" +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/factory/neutron_collecting/front.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/factory/neutron_collecting/front.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/factory/neutron_collecting/front.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/factory/neutron_collecting/front.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/factory/singularity_compressing/front.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/factory/singularity_compressing/front.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/factory/singularity_compressing/front.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/factory/singularity_compressing/front.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png.mcmeta b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png.mcmeta new file mode 100644 index 00000000..45f6fb94 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 3 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front.png diff --git a/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png.mcmeta b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png.mcmeta new file mode 100644 index 00000000..45f6fb94 --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 3 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png.mcmeta b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png.mcmeta new file mode 100644 index 00000000..0b83816b --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 4 + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png rename to integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png diff --git a/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png.mcmeta b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png.mcmeta new file mode 100644 index 00000000..0b83816b --- /dev/null +++ b/integrations/mekanism/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 4 + } +} diff --git a/integrations/mekanism/src/main/resources/avaritia_integration_mekanism.mixins.json b/integrations/mekanism/src/main/resources/avaritia_integration_mekanism.mixins.json new file mode 100644 index 00000000..cd439856 --- /dev/null +++ b/integrations/mekanism/src/main/resources/avaritia_integration_mekanism.mixins.json @@ -0,0 +1,11 @@ +{ + "required": true, + "package": "committee.nova.mods.avaritia_integration.integrations.mekanism.mixin", + "compatibilityLevel": "JAVA_21", + "refmap": "avaritia_integration.refmap.json", + "mixins": ["MixinMekanismRecipeType"], + "injectors": { + "defaultRequire": 1 + }, + "minVersion": "0.8" +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/infinity/from_dust.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/infinity/from_dust.json new file mode 100644 index 00000000..b05c2d1d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/infinity/from_dust.json @@ -0,0 +1,18 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:chemical_conversion", + "input": { + "ingredient": { + "tag": "c:dusts/infinity" + } + }, + "output": { + "amount": 10, + "infuse_type": "avaritia_integration:infinity" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/infinity/from_enriched.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/infinity/from_enriched.json new file mode 100644 index 00000000..fb741180 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/infinity/from_enriched.json @@ -0,0 +1,18 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:chemical_conversion", + "input": { + "ingredient": { + "tag": "mekanism:enriched/infinity" + } + }, + "output": { + "amount": 80, + "infuse_type": "avaritia_integration:infinity" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/neutron/from_dust.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/neutron/from_dust.json new file mode 100644 index 00000000..9b6e2db3 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/neutron/from_dust.json @@ -0,0 +1,18 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:chemical_conversion", + "input": { + "ingredient": { + "tag": "c:dusts/neutronium" + } + }, + "output": { + "amount": 10, + "infuse_type": "avaritia_integration:neutron" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/neutron/from_enriched.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/neutron/from_enriched.json new file mode 100644 index 00000000..3e1af34f --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/chemical_conversion/neutron/from_enriched.json @@ -0,0 +1,18 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:chemical_conversion", + "input": { + "ingredient": { + "tag": "mekanism:enriched/neutron" + } + }, + "output": { + "amount": 80, + "infuse_type": "avaritia_integration:neutron" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/ingot_from_plutonium.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/ingot_from_plutonium.json new file mode 100644 index 00000000..170e56ab --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/ingot_from_plutonium.json @@ -0,0 +1,16 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 1000, + "chemical": "mekanism:plutonium" + }, + "output": { + "id": "avaritia:neutron_ingot" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/ingot_from_polonium.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/ingot_from_polonium.json new file mode 100644 index 00000000..744bea05 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/ingot_from_polonium.json @@ -0,0 +1,16 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 1000, + "chemical": "mekanism:polonium" + }, + "output": { + "id": "avaritia:neutron_ingot" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_block.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_block.json new file mode 100644 index 00000000..56a35723 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_block.json @@ -0,0 +1,16 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 1, + "chemical": "mekanism:antimatter" + }, + "output": { + "id": "avaritia:neutron" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_dust.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_dust.json new file mode 100644 index 00000000..e45b97de --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_dust.json @@ -0,0 +1,16 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 2000, + "chemical": "mekanism:nuclear_waste" + }, + "output": { + "id": "avaritia_integration:neutron_dust" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_nugget.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_nugget.json new file mode 100644 index 00000000..19c99a7d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/neutron_nugget.json @@ -0,0 +1,16 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 5000, + "chemical": "mekanism:spent_nuclear_waste" + }, + "output": { + "id": "avaritia:neutron_nugget" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_deuterium.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_deuterium.json new file mode 100644 index 00000000..73600934 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_deuterium.json @@ -0,0 +1,16 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 10000, + "chemical": "mekanismgenerators:deuterium" + }, + "output": { + "id": "avaritia:neutron_pile" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_fusion_fuel.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_fusion_fuel.json new file mode 100644 index 00000000..ea011ae4 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_fusion_fuel.json @@ -0,0 +1,17 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 10000, + "chemical": "mekanismgenerators:fusion_fuel" + }, + "output": { + "count": 2, + "id": "avaritia:neutron_pile" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_tritium.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_tritium.json new file mode 100644 index 00000000..926b7f8a --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/collector/pile_from_tritium.json @@ -0,0 +1,16 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanismgenerators" + } + ], + "type": "avaritia_integration:collector", + "input": { + "amount": 10000, + "chemical": "mekanismgenerators:tritium" + }, + "output": { + "id": "avaritia:neutron_pile" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/aluminum.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/aluminum.json new file mode 100644 index 00000000..2b31b641 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/aluminum.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "c:ingots/aluminum" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/aluminum", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:aluminum" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/amethyst_shard.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/amethyst_shard.json new file mode 100644 index 00000000..213b13ef --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/amethyst_shard.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:gems/amethyst", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:amethyst_shard" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/blue_ice.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/blue_ice.json new file mode 100644 index 00000000..af1b39f4 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/blue_ice.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "minecraft:blue_ice", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:blue_ice" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/bronze.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/bronze.json new file mode 100644 index 00000000..7cbc3882 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/bronze.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/bronze" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/bronze", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:bronze" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/coal.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/coal.json new file mode 100644 index 00000000..9d27354f --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/coal.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "minecraft:coal", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:coal" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/copper.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/copper.json new file mode 100644 index 00000000..cbab8ded --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/copper.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/copper", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:copper" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/diamond.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/diamond.json new file mode 100644 index 00000000..5a35c902 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:gems/diamond", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:diamond" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/electrum.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/electrum.json new file mode 100644 index 00000000..c6c36900 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/electrum.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/electrum" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/electrum", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:electrum" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/emerald.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/emerald.json new file mode 100644 index 00000000..fb7bf9cd --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:gems/emerald", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:emerald" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/glowstone.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/glowstone.json new file mode 100644 index 00000000..46ebdc6d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/glowstone.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:dusts/glowstone", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:glowstone" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/gold.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/gold.json new file mode 100644 index 00000000..e41b887d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/gold.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/gold", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:gold" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/invar.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/invar.json new file mode 100644 index 00000000..7d6f5f22 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/invar.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/invar" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/invar", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:invar" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/iron.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/iron.json new file mode 100644 index 00000000..554c2a55 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/iron.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "c:ingots/iron", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:iron" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/lapis_lazuli.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/lapis_lazuli.json new file mode 100644 index 00000000..29edaccf --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:gems/lapis", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:lapis_lazuli" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/lead.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/lead.json new file mode 100644 index 00000000..ec0d4a02 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/lead.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/lead" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/lead", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:lead" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/netherite.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/netherite.json new file mode 100644 index 00000000..bbe7dfc0 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/netherite.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/netherite", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:netherite" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/nickel.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/nickel.json new file mode 100644 index 00000000..e00d8472 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/nickel.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/nickel" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/nickel", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:nickel" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/obsidian.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/obsidian.json new file mode 100644 index 00000000..0b51dd9d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/obsidian.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:obsidian", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:obsidian" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/osmium.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/osmium.json new file mode 100644 index 00000000..e65c13de --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/osmium.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/osmium" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/osmium", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:osmium" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/platinum.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/platinum.json new file mode 100644 index 00000000..6a113847 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/platinum.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/platinum" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/platinum", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:platinum" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/quartz.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/quartz.json new file mode 100644 index 00000000..54aa461f --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/quartz.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:gems/quartz", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:quartz" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/redstone.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/redstone.json new file mode 100644 index 00000000..f1512639 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:dusts/redstone", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:redstone" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/refined_obsidian.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/refined_obsidian.json new file mode 100644 index 00000000..075b8bc2 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/refined_obsidian.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/refined_obsidian" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/refined_obsidian", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:refined_obsidian" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/silver.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/silver.json new file mode 100644 index 00000000..899e0452 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/silver.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/silver" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/silver", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:silver" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/steel.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/steel.json new file mode 100644 index 00000000..4a946fbb --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/steel.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/steel" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/steel", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:steel" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/tin.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/tin.json new file mode 100644 index 00000000..3fae1bf3 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/tin.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/tin" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/tin", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:tin" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/uranium.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/uranium.json new file mode 100644 index 00000000..b0407704 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/compresser/uranium.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "c:not", + "value": { + "type": "c:tag_empty", + "tag": "c:ingots/uranium" + } + } + ], + "type": "avaritia_integration:compressor", + "input": { + "ingredient": "#c:ingots/uranium", + "count": 1000 + }, + "output": { + "id": "avaritia:singularity", + "components": { + "avaritia:singularity_id": "avaritia:uranium" + } + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/control_circuit/infinity.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/control_circuit/infinity.json new file mode 100644 index 00000000..bcae6d6e --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/control_circuit/infinity.json @@ -0,0 +1,29 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia:extreme_smithing", + "addition": [ + { + "tag": "mekanism:alloys/infinity" + }, + { + "item": "avaritia:enhancement_core" + }, + { + "item": "avaritia:infinity_catalyst" + } + ], + "base": { + "item": "avaritia_integration:neutron_control_circuit" + }, + "result": { + "id": "avaritia_integration:infinity_control_circuit" + }, + "template": { + "item": "avaritia:upgrade_smithing_template" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/control_circuit/neutron.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/control_circuit/neutron.json new file mode 100644 index 00000000..cf68087d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/control_circuit/neutron.json @@ -0,0 +1,59 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia:shaped_table", + "category": "misc", + "key": { + "B": { + "tag": "c:circuits/basic" + }, + "D": { + "tag": "c:circuits/advanced" + }, + "E": { + "tag": "c:circuits/elite" + }, + "U": { + "tag": "c:circuits/ultimate" + }, + "Z": { + "tag": "mekanism:alloys/basic" + }, + "Y": { + "tag": "mekanism:alloys/infused" + }, + "X": { + "tag": "mekanism:alloys/reinforced" + }, + "W": { + "tag": "mekanism:alloys/atomic" + }, + "C": { + "item": "avaritia:neutron_gear" + }, + "A": { + "tag": "mekanism:alloys/neutron" + } + }, + "pattern": [ + " ", + " AAAAAAA ", + " ABBBDDA ", + " ABWWXDA ", + " AUZCXDA ", + " AUZYYEA ", + " AUUEEEA ", + " AAAAAAA ", + " " + ], + "result": { + "count": 4, + "id": "avaritia_integration:neutron_control_circuit" + }, + "show_notification": true, + "tier": 4 +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/enriched/infinity.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/enriched/infinity.json new file mode 100644 index 00000000..48816fcc --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/enriched/infinity.json @@ -0,0 +1,17 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:enriching", + "input": { + "ingredient": { + "tag": "c:dusts/infinity" + } + }, + "output": { + "id": "avaritia_integration:enriched_infinity" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/enriched/neutron.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/enriched/neutron.json new file mode 100644 index 00000000..adec00d3 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/enriched/neutron.json @@ -0,0 +1,17 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:enriching", + "input": { + "ingredient": { + "tag": "c:dusts/neutronium" + } + }, + "output": { + "id": "avaritia_integration:enriched_neutron" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/neutron_ingot.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/neutron_ingot.json new file mode 100644 index 00000000..03e418f3 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/enriching/neutron_ingot.json @@ -0,0 +1,18 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:enriching", + "input": { + "amount": 4, + "ingredient": { + "item": "avaritia_integration:neutron_dust" + } + }, + "output": { + "id": "avaritia:neutron_ingot" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/advanced/collecting.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/advanced/collecting.json new file mode 100644 index 00000000..e74e05c5 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/advanced/collecting.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/infused" + }, + "C": { + "tag": "c:circuits/advanced" + }, + "I": { + "tag": "c:ingots/osmium" + }, + "P": { + "item": "avaritia_integration:basic_neutron_collecting_factory" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:advanced_neutron_collecting_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/advanced/singularity_compressing.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/advanced/singularity_compressing.json new file mode 100644 index 00000000..8462c29f --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/advanced/singularity_compressing.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/infused" + }, + "C": { + "tag": "c:circuits/advanced" + }, + "I": { + "tag": "c:ingots/osmium" + }, + "P": { + "item": "avaritia_integration:basic_singularity_compressing_factory" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:advanced_singularity_compressing_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/basic/collecting.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/basic/collecting.json new file mode 100644 index 00000000..f5f85d5d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/basic/collecting.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/basic" + }, + "C": { + "tag": "c:circuits/basic" + }, + "I": { + "tag": "c:ingots/iron" + }, + "P": { + "item": "avaritia_integration:neutron_collector" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:basic_neutron_collecting_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/basic/singularity_compressing.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/basic/singularity_compressing.json new file mode 100644 index 00000000..e48f3893 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/basic/singularity_compressing.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/basic" + }, + "C": { + "tag": "c:circuits/basic" + }, + "I": { + "tag": "c:ingots/iron" + }, + "P": { + "item": "avaritia_integration:singularity_compressor" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:basic_singularity_compressing_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/elite/collecting.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/elite/collecting.json new file mode 100644 index 00000000..907f781e --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/elite/collecting.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/reinforced" + }, + "C": { + "tag": "c:circuits/elite" + }, + "I": { + "tag": "c:ingots/gold" + }, + "P": { + "item": "avaritia_integration:advanced_neutron_collecting_factory" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:elite_neutron_collecting_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/elite/singularity_compressing.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/elite/singularity_compressing.json new file mode 100644 index 00000000..1c52c931 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/elite/singularity_compressing.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/reinforced" + }, + "C": { + "tag": "c:circuits/elite" + }, + "I": { + "tag": "c:ingots/gold" + }, + "P": { + "item": "avaritia_integration:advanced_singularity_compressing_factory" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:elite_singularity_compressing_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/ultimate/collecting.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/ultimate/collecting.json new file mode 100644 index 00000000..1799d85b --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/ultimate/collecting.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/atomic" + }, + "C": { + "tag": "c:circuits/ultimate" + }, + "I": { + "tag": "c:gems/diamond" + }, + "P": { + "item": "avaritia_integration:elite_neutron_collecting_factory" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:ultimate_neutron_collecting_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/ultimate/singularity_compressing.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/ultimate/singularity_compressing.json new file mode 100644 index 00000000..17d8734d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/factory/ultimate/singularity_compressing.json @@ -0,0 +1,27 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:mek_data", + "key": { + "A": { + "tag": "mekanism:alloys/atomic" + }, + "C": { + "tag": "c:circuits/ultimate" + }, + "I": { + "tag": "c:gems/diamond" + }, + "P": { + "item": "avaritia_integration:elite_singularity_compressing_factory" + } + }, + "pattern": ["ACA", "IPI", "ACA"], + "result": { + "id": "avaritia_integration:ultimate_singularity_compressing_factory" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/infinity_energy_tablet.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/infinity_energy_tablet.json new file mode 100644 index 00000000..950a3328 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/infinity_energy_tablet.json @@ -0,0 +1,29 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia:extreme_smithing", + "addition": [ + { + "item": "avaritia:infinity_nugget" + }, + { + "item": "avaritia:enhancement_core" + }, + { + "item": "avaritia:infinity_catalyst" + } + ], + "base": { + "item": "avaritia_integration:neutron_energy_tablet" + }, + "result": { + "id": "avaritia_integration:infinity_energy_tablet" + }, + "template": { + "item": "avaritia:upgrade_smithing_template" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/metallurgic_infusing/alloy/infinity.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/metallurgic_infusing/alloy/infinity.json new file mode 100644 index 00000000..2798ca5c --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/metallurgic_infusing/alloy/infinity.json @@ -0,0 +1,21 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:metallurgic_infusing", + "chemicalInput": { + "amount": 40, + "tag": "mekanism:infinity" + }, + "itemInput": { + "ingredient": { + "tag": "mekanism:alloys/neutron" + } + }, + "output": { + "id": "avaritia_integration:alloy_infinity" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/metallurgic_infusing/alloy/neutron.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/metallurgic_infusing/alloy/neutron.json new file mode 100644 index 00000000..a2c32217 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/metallurgic_infusing/alloy/neutron.json @@ -0,0 +1,21 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "mekanism:metallurgic_infusing", + "chemicalInput": { + "amount": 80, + "tag": "mekanism:neutron" + }, + "itemInput": { + "ingredient": { + "tag": "mekanism:alloys/atomic" + } + }, + "output": { + "id": "avaritia_integration:alloy_neutron" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/neutron_collector.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/neutron_collector.json new file mode 100644 index 00000000..506157d7 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/neutron_collector.json @@ -0,0 +1,30 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "tag": "c:circuits/ultimate" + }, + "C": { + "item": "avaritia:neutron_collector" + }, + "R": { + "tag": "mekanism:alloys/atomic" + }, + "X": { + "item": "mekanism:steel_casing" + }, + "D": { + "tag": "c:ingots/neutron" + } + }, + "pattern": ["RCR", "BXB", "RDR"], + "result": { + "id": "avaritia_integration:neutron_collector" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/neutron_energy_tablet.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/neutron_energy_tablet.json new file mode 100644 index 00000000..e0a4e0f9 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/neutron_energy_tablet.json @@ -0,0 +1,40 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "avaritia:shaped_table", + "category": "misc", + "key": { + "N": { + "tag": "c:ingots/neutronium" + }, + "T": { + "item": "mekanism:energy_tablet" + }, + "G": { + "tag": "c:ingots/gold" + }, + "A": { + "tag": "mekanism:alloys/atomic" + } + }, + "pattern": [ + "NNNNTNNNN", + "N GTG N", + "N GTG N", + "A GTG A", + "A GTG A", + "A GTG A", + "N GTG N", + "N GTG N", + "NNNNTNNNN" + ], + "result": { + "id": "avaritia_integration:neutron_energy_tablet" + }, + "show_notification": true, + "tier": 4 +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/singularity_compressor.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/singularity_compressor.json new file mode 100644 index 00000000..52dde07a --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/recipe/singularity_compressor.json @@ -0,0 +1,30 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "mekanism" + } + ], + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "tag": "c:circuits/ultimate" + }, + "C": { + "item": "avaritia:neutron_compressor" + }, + "R": { + "tag": "mekanism:alloys/atomic" + }, + "X": { + "item": "mekanism:steel_casing" + }, + "D": { + "tag": "avaritia:singularity" + } + }, + "pattern": ["RCR", "BXB", "RDR"], + "result": { + "id": "avaritia_integration:singularity_compressor" + } +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys.json new file mode 100644 index 00000000..1d3c94d1 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["#mekanism:alloys/infinity", "#mekanism:alloys/neutron"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys/infinity.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys/infinity.json new file mode 100644 index 00000000..af55aaa2 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys/infinity.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia_integration:alloy_infinity"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys/neutron.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys/neutron.json new file mode 100644 index 00000000..4d7f7db4 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/alloys/neutron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia_integration:alloy_neutron"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched.json new file mode 100644 index 00000000..12e824cd --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["#mekanism:enriched/infinity", "#mekanism:enriched/neutron"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched/infinity.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched/infinity.json new file mode 100644 index 00000000..bedb930d --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched/infinity.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia_integration:enriched_infinity"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched/neutron.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched/neutron.json new file mode 100644 index 00000000..a144673b --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/item/enriched/neutron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia_integration:enriched_neutron"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/mekanism/chemical/infinity.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/mekanism/chemical/infinity.json new file mode 100644 index 00000000..7e28bc4c --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/mekanism/chemical/infinity.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia_integration:infinity"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/mekanism/chemical/neutron.json b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/mekanism/chemical/neutron.json new file mode 100644 index 00000000..5b42d581 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/data/mekanism/tags/mekanism/chemical/neutron.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["avaritia_integration:neutron"] +} diff --git a/integrations/mekanism/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/mekanism/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..9d01f517 --- /dev/null +++ b/integrations/mekanism/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration Mekanism Data" + } +} diff --git a/integrations/mekanism/src/main/templates/META-INF/neoforge.mods.toml b/integrations/mekanism/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..af34aaf9 --- /dev/null +++ b/integrations/mekanism/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,36 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[mixins]] +config = "${mod_id}.mixins.json" + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/pneumaticcraft/build.gradle b/integrations/pneumaticcraft/build.gradle new file mode 100644 index 00000000..2ae9f97c --- /dev/null +++ b/integrations/pneumaticcraft/build.gradle @@ -0,0 +1,11 @@ +ext.ai_mod_id = 'avaritia_integration_pneumaticcraft' +ext.ai_mod_name = 'Avaritia Integration PneumaticCraft' +ext.ai_mod_description = 'Avaritia Integration module for PneumaticCraft: Repressurized.' +ext.ai_run_directory = 'integrations/pneumaticcraft' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.pneumaticcraftRepressurized +} diff --git a/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/AIPneumaticCraftIntegrationMod.java b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/AIPneumaticCraftIntegrationMod.java new file mode 100644 index 00000000..45a86295 --- /dev/null +++ b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/AIPneumaticCraftIntegrationMod.java @@ -0,0 +1,27 @@ +package committee.nova.mods.avaritia_integration.integrations.pneumaticcraft; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIPneumaticCraftIntegrationMod.MOD_ID) +public final class AIPneumaticCraftIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_pneumaticcraft"; + private static final String DEPENDENCY_MOD_ID = "pneumaticcraft"; + + public AIPneumaticCraftIntegrationMod(IEventBus bus, ModContainer modContainer) { + if (IntegrationRuntime.shouldLoad(MOD_ID, this) && IntegrationRuntime.load(MOD_ID, bus, + new PneumaticCraftModule())) + ModRun.init(bus); + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/ModRun.java b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/ModRun.java new file mode 100644 index 00000000..14960604 --- /dev/null +++ b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/ModRun.java @@ -0,0 +1,8 @@ +package committee.nova.mods.avaritia_integration.integrations.pneumaticcraft; + +import net.neoforged.bus.api.IEventBus; + +class ModRun { + + public static void init(IEventBus bus) {} +} diff --git a/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/PneumaticCraftModule.java b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/PneumaticCraftModule.java new file mode 100644 index 00000000..12d80ab9 --- /dev/null +++ b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/PneumaticCraftModule.java @@ -0,0 +1,23 @@ +package committee.nova.mods.avaritia_integration.integrations.pneumaticcraft; + +import committee.nova.mods.avaritia_integration.integrations.pneumaticcraft.registry.PneumaticCraftIntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; + +public final class PneumaticCraftModule implements Module { + + public static final String MOD_ID = "pneumaticcraft"; + + @Override + public void init(IEventBus registryBus) { + PneumaticCraftIntegrationItems.REGISTRY.register(registryBus); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + output.accept(PneumaticCraftIntegrationItems.CREATIVE_COMPRESSED_IRON.get()); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/pneumaticcraft/registry/PneumaticCraftIntegrationItems.java b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/registry/PneumaticCraftIntegrationItems.java similarity index 79% rename from src/main/java/committee/nova/mods/avaritia_integration/module/pneumaticcraft/registry/PneumaticCraftIntegrationItems.java rename to integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/registry/PneumaticCraftIntegrationItems.java index 993f23da..8059c3a9 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/pneumaticcraft/registry/PneumaticCraftIntegrationItems.java +++ b/integrations/pneumaticcraft/src/main/java/committee/nova/mods/avaritia_integration/integrations/pneumaticcraft/registry/PneumaticCraftIntegrationItems.java @@ -1,8 +1,9 @@ -package committee.nova.mods.avaritia_integration.module.pneumaticcraft.registry; +package committee.nova.mods.avaritia_integration.integrations.pneumaticcraft.registry; import committee.nova.mods.avaritia.api.common.item.BaseItem; import committee.nova.mods.avaritia.init.registry.ModRarities; import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + import net.minecraft.world.item.Item; import net.neoforged.neoforge.registries.DeferredItem; import net.neoforged.neoforge.registries.DeferredRegister; @@ -10,9 +11,11 @@ import java.util.function.Supplier; public final class PneumaticCraftIntegrationItems { + public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - public static final DeferredItem CREATIVE_COMPRESSED_IRON = register("creative_compressed_iron", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem CREATIVE_COMPRESSED_IRON = register("creative_compressed_iron", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); public static DeferredItem register(String id, Supplier obj) { return REGISTRY.register(id, obj); diff --git a/integrations/pneumaticcraft/src/main/resources/assets/avaritia_integration/models/item/creative_compressed_iron.json b/integrations/pneumaticcraft/src/main/resources/assets/avaritia_integration/models/item/creative_compressed_iron.json new file mode 100644 index 00000000..587c87b7 --- /dev/null +++ b/integrations/pneumaticcraft/src/main/resources/assets/avaritia_integration/models/item/creative_compressed_iron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/creative_compressed_iron" + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/creative_compressed_iron.png b/integrations/pneumaticcraft/src/main/resources/assets/avaritia_integration/textures/item/items/creative_compressed_iron.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/creative_compressed_iron.png rename to integrations/pneumaticcraft/src/main/resources/assets/avaritia_integration/textures/item/items/creative_compressed_iron.png diff --git a/integrations/pneumaticcraft/src/main/templates/META-INF/neoforge.mods.toml b/integrations/pneumaticcraft/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/pneumaticcraft/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/refinedstorage/build.gradle b/integrations/refinedstorage/build.gradle new file mode 100644 index 00000000..752ca8db --- /dev/null +++ b/integrations/refinedstorage/build.gradle @@ -0,0 +1,11 @@ +ext.ai_mod_id = 'avaritia_integration_refinedstorage' +ext.ai_mod_name = 'Avaritia Integration Refined Storage' +ext.ai_mod_description = 'Avaritia Integration module for Refined Storage.' +ext.ai_run_directory = 'integrations/refinedstorage' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') + implementation forge.refinedStorage +} diff --git a/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/AIRefinedStorageIntegrationMod.java b/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/AIRefinedStorageIntegrationMod.java new file mode 100644 index 00000000..f7a9175f --- /dev/null +++ b/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/AIRefinedStorageIntegrationMod.java @@ -0,0 +1,26 @@ +package committee.nova.mods.avaritia_integration.integrations.refinedstorage; + +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRuntime; +import committee.nova.mods.avaritia_integration.module.ModModule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +@Mod(AIRefinedStorageIntegrationMod.MOD_ID) +public final class AIRefinedStorageIntegrationMod implements ModModule { + + public static final String MOD_ID = "avaritia_integration_refinedstorage"; + private static final String DEPENDENCY_MOD_ID = "refinedstorage"; + + public AIRefinedStorageIntegrationMod(IEventBus bus, ModContainer modContainer) { + if (IntegrationRuntime.shouldLoad(MOD_ID, this)) + IntegrationRuntime.load(MOD_ID, bus, new RefinedStorageModule()); + } + + @Override + public IntegrationRule defaultLoadRule() { + return ModModule.rule(ModModule.dependency(DEPENDENCY_MOD_ID)); + } +} diff --git a/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/RefinedStorageModule.java b/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/RefinedStorageModule.java new file mode 100644 index 00000000..780ec588 --- /dev/null +++ b/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/RefinedStorageModule.java @@ -0,0 +1,23 @@ +package committee.nova.mods.avaritia_integration.integrations.refinedstorage; + +import committee.nova.mods.avaritia_integration.integrations.refinedstorage.registry.RefinedStorageIntegrationItems; +import committee.nova.mods.avaritia_integration.module.Module; + +import net.minecraft.world.item.CreativeModeTab; +import net.neoforged.bus.api.IEventBus; + +public final class RefinedStorageModule implements Module { + + public static final String MOD_ID = "refinedstorage"; + + @Override + public void init(IEventBus registryBus) { + RefinedStorageIntegrationItems.REGISTRY.register(registryBus); + } + + @Override + public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, + CreativeModeTab.Output output) { + output.accept(RefinedStorageIntegrationItems.INFINITY_STORAGE_PART.get()); + } +} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/refinedstorage/registry/RefinedStorageIntegrationItems.java b/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/registry/RefinedStorageIntegrationItems.java similarity index 79% rename from src/main/java/committee/nova/mods/avaritia_integration/module/refinedstorage/registry/RefinedStorageIntegrationItems.java rename to integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/registry/RefinedStorageIntegrationItems.java index 917be644..4a8136fa 100644 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/refinedstorage/registry/RefinedStorageIntegrationItems.java +++ b/integrations/refinedstorage/src/main/java/committee/nova/mods/avaritia_integration/integrations/refinedstorage/registry/RefinedStorageIntegrationItems.java @@ -1,8 +1,9 @@ -package committee.nova.mods.avaritia_integration.module.refinedstorage.registry; +package committee.nova.mods.avaritia_integration.integrations.refinedstorage.registry; import committee.nova.mods.avaritia.api.common.item.BaseItem; import committee.nova.mods.avaritia.init.registry.ModRarities; import committee.nova.mods.avaritia_integration.AvaritiaIntegration; + import net.minecraft.world.item.Item; import net.neoforged.neoforge.registries.DeferredItem; import net.neoforged.neoforge.registries.DeferredRegister; @@ -10,9 +11,11 @@ import java.util.function.Supplier; public final class RefinedStorageIntegrationItems { + public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - public static final DeferredItem INFINITY_STORAGE_PART = register("infinity_storage_part", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); + public static final DeferredItem INFINITY_STORAGE_PART = register("infinity_storage_part", + () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); public static DeferredItem register(String id, Supplier obj) { return REGISTRY.register(id, obj); diff --git a/integrations/refinedstorage/src/main/resources/assets/avaritia_integration/models/item/infinity_storage_part.json b/integrations/refinedstorage/src/main/resources/assets/avaritia_integration/models/item/infinity_storage_part.json new file mode 100644 index 00000000..7f8c8f40 --- /dev/null +++ b/integrations/refinedstorage/src/main/resources/assets/avaritia_integration/models/item/infinity_storage_part.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/infinity_storage_part" + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_part.png b/integrations/refinedstorage/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_part.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_part.png rename to integrations/refinedstorage/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_storage_part.png diff --git a/integrations/refinedstorage/src/main/templates/META-INF/neoforge.mods.toml b/integrations/refinedstorage/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/refinedstorage/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/tconstruct-data/build.gradle b/integrations/tconstruct-data/build.gradle new file mode 100644 index 00000000..b5aac0a8 --- /dev/null +++ b/integrations/tconstruct-data/build.gradle @@ -0,0 +1,10 @@ +ext.ai_mod_id = 'avaritia_integration_tconstruct_data' +ext.ai_mod_name = 'Avaritia Integration Tinkers Construct Data' +ext.ai_mod_description = 'Avaritia Integration data module for Tinkers Construct.' +ext.ai_run_directory = 'integrations/tconstruct-data' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') +} diff --git a/integrations/tconstruct-data/src/main/java/committee/nova/mods/avaritia_integration/integrations/tconstruct/AITConstructDataIntegrationMod.java b/integrations/tconstruct-data/src/main/java/committee/nova/mods/avaritia_integration/integrations/tconstruct/AITConstructDataIntegrationMod.java new file mode 100644 index 00000000..912a227a --- /dev/null +++ b/integrations/tconstruct-data/src/main/java/committee/nova/mods/avaritia_integration/integrations/tconstruct/AITConstructDataIntegrationMod.java @@ -0,0 +1,25 @@ +package committee.nova.mods.avaritia_integration.integrations.tconstruct; + +import committee.nova.mods.avaritia_integration.api.load.DependencyRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationLoadApi; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +import java.util.List; + +@Mod(AITConstructDataIntegrationMod.MOD_ID) +public final class AITConstructDataIntegrationMod { + + public static final String MOD_ID = "avaritia_integration_tconstruct_data"; + + public AITConstructDataIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration TConstruct Data"); + IntegrationLoadApi.registerDefaultRule(MOD_ID, + new IntegrationRule(List.of(new DependencyRule("tconstruct", "", "")))); + IntegrationLoadApi.shouldLoad(MOD_ID); + } +} diff --git a/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/mantle/colors.json b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/mantle/colors.json new file mode 100644 index 00000000..902356ee --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/mantle/colors.json @@ -0,0 +1,20 @@ +{ + "modifier.avaritia_integration": { + "infinitum": "#cccccc", + "rule_over": "#cccccc", + "vault_split": "#cccccc", + "eternity": "#cccccc", + "blaze_crown": "#fdc045", + "crystalshine": "#67bbb6", + "condensing": "#a0a4bf", + "crystaluix": "#67bbb6", + "star_dash": "#5e9ddd", + "superheat": "#fdc045" + }, + "material.avaritia_integration": { + "infinity": "#cccccc", + "blaze_cube": "#fdc045", + "crystal_matrix": "#67bbb6", + "neutronium": "#a0a4bf" + } +} diff --git a/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/mantle/fluid_texture/molten_infinity.json b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/mantle/fluid_texture/molten_infinity.json new file mode 100644 index 00000000..5e9b4b10 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/mantle/fluid_texture/molten_infinity.json @@ -0,0 +1,11 @@ +{ + "color": "FFFFFFFF", + "flowing": "avaritia_integration:fluid/molten_infinity_flow", + "fog": { + "calculate_color": true, + "end": 2.0, + "shape": "sphere", + "start": 0.25 + }, + "still": "avaritia_integration:fluid/molten_infinity_still" +} diff --git a/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/blaze_cube.json b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/blaze_cube.json new file mode 100644 index 00000000..10ba2a98 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/blaze_cube.json @@ -0,0 +1,52 @@ +{ + "fallbacks": ["bone", "rock"], + "color": "CD4418", + "luminosity": 6, + "generator": { + "transformer": { + "type": "tconstruct:recolor_sprite", + "color_mapping": { + "type": "tconstruct:grey_to_color", + "palette": [ + { + "grey": 0, + "color": "FF000000" + }, + { + "grey": 63, + "color": "FFf88131" + }, + { + "grey": 102, + "color": "FFff8838" + }, + { + "grey": 140, + "color": "FFffa938" + }, + { + "grey": 178, + "color": "FFfdc045" + }, + { + "grey": 216, + "color": "FFffeb6b" + }, + { + "grey": 255, + "color": "FFfffca6" + } + ] + } + }, + "supported_stats": [ + "tconstruct:head", + "tconstruct:handle", + "tconstruct:extra", + "tconstruct:repair_kit", + "tconstruct:limb", + "tconstruct:grip" + ], + "ignoreMaterial_stats": false + } +} diff --git a/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/crystal_matrix.json b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/crystal_matrix.json new file mode 100644 index 00000000..ac58809a --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/crystal_matrix.json @@ -0,0 +1,52 @@ +{ + "fallbacks": ["crystal", "rock"], + "color": "9af3ee", + "luminosity": 7, + "generator": { + "transformer": { + "type": "tconstruct:recolor_sprite", + "color_mapping": { + "type": "tconstruct:grey_to_color", + "palette": [ + { + "grey": 0, + "color": "FF000000" + }, + { + "grey": 63, + "color": "FF1b5c58" + }, + { + "grey": 102, + "color": "FF387f7b" + }, + { + "grey": 140, + "color": "FF59aaa5" + }, + { + "grey": 178, + "color": "FF67bbb6" + }, + { + "grey": 216, + "color": "FF80d8d3" + }, + { + "grey": 255, + "color": "FF9af3ee" + } + ] + } + }, + "supported_stats": [ + "tconstruct:head", + "tconstruct:handle", + "tconstruct:extra", + "tconstruct:repair_kit", + "tconstruct:limb", + "tconstruct:grip" + ], + "ignoreMaterial_stats": false + } +} diff --git a/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/infinity.json b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/infinity.json new file mode 100644 index 00000000..be0a4d61 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/infinity.json @@ -0,0 +1,84 @@ +{ + "fallbacks": ["metal"], + "color": "cccccc", + "luminosity": 12, + "generator": { + "transformer": { + "type": "tconstruct:frames", + "frames": [ + { + "type": "tconstruct:grey_to_sprite", + "palette": [ + { + "color": "FF000000", + "grey": 0 + }, + { + "grey": 63, + "path": "avaritia_integration:gen/infinity_dark" + }, + { + "grey": 178, + "path": "avaritia_integration:gen/infinity_medium" + }, + { + "grey": 255, + "path": "avaritia_integration:gen/infinity_light" + } + ] + }, + { + "type": "tconstruct:grey_to_sprite", + "palette": [ + { + "color": "FF000000", + "grey": 0 + }, + { + "color": "FFb9b9b9", + "grey": 63 + }, + { + "color": "FFc5c5c5", + "grey": 102 + }, + { + "color": "FFcccccc", + "grey": 140 + }, + { + "color": "FFe4e4e4", + "grey": 178 + }, + { + "color": "FFf0f0f0", + "grey": 216 + }, + { + "color": "FFffffff", + "grey": 255 + } + ] + } + ], + "meta": "avaritia:block/resource/infinity" + }, + "supported_stats": [ + "tconstruct:head", + "tconstruct:handle", + "tconstruct:extra", + "tconstruct:repair_kit", + "tconstruct:limb", + "tconstruct:grip", + "tconstruct:armor_plating", + "tconstruct:plating_boots", + "tconstruct:plating_leggings", + "tconstruct:plating_chestplate", + "tconstruct:plating_helmet", + "tconstruct:plating_shield", + "tconstruct:maille", + "tconstruct:armor_maille" + ], + "ignoreMaterial_stats": false + } +} diff --git a/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/modifier_icons.json b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/modifier_icons.json new file mode 100644 index 00000000..7f2abd7d --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/modifier_icons.json @@ -0,0 +1,14 @@ +{ + "avaritia_integration:crystaluix": [ + "avaritia:item/resource/crystal/diamond_lattice", + "tconstruct:gui/modifiers/book" + ], + "avaritia_integration:star_dash": [ + "avaritia:item/resource/fuel/star_fuel", + "tconstruct:gui/modifiers/book" + ], + "avaritia_integration:superheat": [ + "avaritia:item/resource/blaze/blaze_cube", + "tconstruct:gui/modifiers/book" + ] +} diff --git a/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/neutronium.json b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/neutronium.json new file mode 100644 index 00000000..1296936a --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/assets/avaritia_integration/tinkering/materials/neutronium.json @@ -0,0 +1,52 @@ +{ + "fallbacks": ["metal"], + "color": "727272", + "luminosity": 1, + "generator": { + "transformer": { + "type": "tconstruct:recolor_sprite", + "color_mapping": { + "type": "tconstruct:grey_to_color", + "palette": [ + { + "grey": 0, + "color": "FF000000" + }, + { + "grey": 63, + "color": "FFbabed9" + }, + { + "grey": 102, + "color": "FFa0a4bf" + }, + { + "grey": 140, + "color": "FF404040" + }, + { + "grey": 178, + "color": "FF2e3030" + }, + { + "grey": 216, + "color": "FF161616" + }, + { + "grey": 255, + "color": "FF080808" + } + ] + } + }, + "supported_stats": [ + "tconstruct:head", + "tconstruct:handle", + "tconstruct:extra", + "tconstruct:repair_kit", + "tconstruct:limb", + "tconstruct:grip" + ], + "ignoreMaterial_stats": false + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_blaze.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_blaze.json new file mode 100644 index 00000000..ef2c5862 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_blaze.json @@ -0,0 +1,35 @@ +{ + "block_effects": [ + { + "type": "tconstruct:melt_block", + "min_amount": 90, + "temperature": 3000 + } + ], + "entity_effects": [ + { + "type": "tconstruct:conditional", + "effect": { + "type": "tconstruct:damage", + "damage": 6.0, + "damage_type": { + "melee": "tconstruct:fluid_fire_melee", + "ranged": "tconstruct:fluid_fire_ranged" + } + }, + "target": { + "type": "mantle:inverted", + "inverted_type": "mantle:fire_immune" + } + }, + { + "type": "tconstruct:fire", + "action": "add", + "time": 10 + } + ], + "fluid": { + "amount": 50, + "tag": "tconstruct:molten_blaze" + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_crystal_matrix.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_crystal_matrix.json new file mode 100644 index 00000000..26344e6a --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_crystal_matrix.json @@ -0,0 +1,12 @@ +{ + "block_effects": [ + { + "type": "tconstruct:break_block", + "hardness": 500.0 + } + ], + "fluid": { + "amount": 10, + "tag": "tconstruct:molten_crystal_matrix" + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_infinity.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_infinity.json new file mode 100644 index 00000000..34124fdf --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_infinity.json @@ -0,0 +1,19 @@ +{ + "entity_effects": [ + { + "type": "tconstruct:conditional", + "effect": { + "type": "tconstruct:damage", + "damage": 40.0, + "damage_type": { + "melee": "avaritia:infinity", + "ranged": "avaritia:infinity" + } + } + } + ], + "fluid": { + "amount": 10, + "tag": "tconstruct:molten_infinity" + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_neutron.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_neutron.json new file mode 100644 index 00000000..58952e71 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_neutron.json @@ -0,0 +1,27 @@ +{ + "block_effects": [ + { + "type": "tconstruct:mob_effect_cloud", + "effects": [ + { + "effect": "minecraft:slowness", + "level": 4, + "time": 120 + } + ] + } + ], + "entity_effects": [ + { + "type": "tconstruct:mob_effect", + "action": "add", + "effect": "minecraft:slowness", + "level": 4, + "time": 120 + } + ], + "fluid": { + "amount": 10, + "tag": "tconstruct:molten_neutron" + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_star.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_star.json new file mode 100644 index 00000000..ecf7b145 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/fluid_effects/molten_star.json @@ -0,0 +1,30 @@ +{ + "block_effects": [ + { + "type": "tconstruct:explosion", + "block_interaction": "keep", + "damage": { + "each_level": 0 + }, + "knockback": { + "flat": 0.5 + }, + "place_fire": true, + "radius": { + "each_level": 2.0, + "flat": 2.0 + } + } + ], + "entity_effects": [ + { + "type": "tconstruct:fire", + "action": "add", + "time": 20 + } + ], + "fluid": { + "amount": 50, + "tag": "tconstruct:molten_star" + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/blaze_cube.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/blaze_cube.json new file mode 100644 index 00000000..dc61c197 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/blaze_cube.json @@ -0,0 +1,6 @@ +{ + "craftable": false, + "tier": 4, + "sortOrder": 12, + "hidden": false +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/crystal_matrix.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/crystal_matrix.json new file mode 100644 index 00000000..6fa2543c --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/crystal_matrix.json @@ -0,0 +1,6 @@ +{ + "craftable": false, + "tier": 4, + "sortOrder": 11, + "hidden": false +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/infinity.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/infinity.json new file mode 100644 index 00000000..2ee3a809 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/infinity.json @@ -0,0 +1,6 @@ +{ + "craftable": false, + "tier": 4, + "sortOrder": 22, + "hidden": false +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/neutronium.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/neutronium.json new file mode 100644 index 00000000..fecc0a5e --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/definition/neutronium.json @@ -0,0 +1,6 @@ +{ + "craftable": false, + "tier": 4, + "sortOrder": 13, + "hidden": false +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/blaze_cube.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/blaze_cube.json new file mode 100644 index 00000000..4cfd4d9b --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/blaze_cube.json @@ -0,0 +1,28 @@ +{ + "stats": { + "tconstruct:binding": {}, + "tconstruct:handle": { + "durability": -0.15, + "mining_speed": 0.15, + "melee_speed": 0.25, + "melee_damage": 0.15 + }, + "tconstruct:head": { + "durability": 1350, + "mining_speed": 4.5, + "mining_tier": "minecraft:netherite", + "melee_attack": 6 + }, + "tconstruct:limb": { + "durability": 1350, + "draw_speed": 0.15, + "velocity": 0.35, + "accuracy": -0.2 + }, + "tconstruct:grip": { + "durability": -0.15, + "accuracy": -0.1, + "melee_damage": 6 + } + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/crystal_matrix.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/crystal_matrix.json new file mode 100644 index 00000000..fc9fb9a0 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/crystal_matrix.json @@ -0,0 +1,28 @@ +{ + "stats": { + "tconstruct:binding": {}, + "tconstruct:handle": { + "durability": 0.2, + "mining_speed": 0.25, + "melee_speed": 0.1, + "melee_damage": -0.1 + }, + "tconstruct:head": { + "durability": 1450, + "mining_speed": 14, + "mining_tier": "minecraft:netherite", + "melee_attack": 3 + }, + "tconstruct:limb": { + "durability": 1450, + "draw_speed": 0.35, + "velocity": 0.15, + "accuracy": -0.15 + }, + "tconstruct:grip": { + "durability": 0.2, + "accuracy": -0.1, + "melee_damage": 3 + } + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/infinity.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/infinity.json new file mode 100644 index 00000000..a74cd397 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/infinity.json @@ -0,0 +1,53 @@ +{ + "stats": { + "tconstruct:binding": {}, + "tconstruct:maille": {}, + "tconstruct:handle": { + "durability": 5, + "mining_speed": 5, + "melee_speed": 5, + "melee_damage": 5 + }, + "tconstruct:head": { + "durability": 9999, + "mining_speed": 511, + "mining_tier": "minecraft:netherite", + "melee_attack": 255 + }, + "tconstruct:limb": { + "durability": 9999, + "draw_speed": 10, + "velocity": 10, + "accuracy": 1 + }, + "tconstruct:grip": { + "durability": 5, + "accuracy": 1, + "melee_damage": 255 + }, + "tconstruct:plating_boots": { + "armor": 3, + "durability": 9998, + "knockback_resistance": 1 + }, + "tconstruct:plating_chestplate": { + "armor": 8, + "durability": 9998, + "knockback_resistance": 1 + }, + "tconstruct:plating_helmet": { + "armor": 3, + "durability": 9998, + "knockback_resistance": 1 + }, + "tconstruct:plating_leggings": { + "armor": 6, + "durability": 9998, + "knockback_resistance": 1 + }, + "tconstruct:plating_shield": { + "durability": 9998, + "knockback_resistance": 1 + } + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/neutronium.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/neutronium.json new file mode 100644 index 00000000..5fe37af2 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/stats/neutronium.json @@ -0,0 +1,28 @@ +{ + "stats": { + "tconstruct:binding": {}, + "tconstruct:handle": { + "durability": 0.35, + "mining_speed": 0.15, + "melee_speed": 0.15, + "melee_damage": 0.15 + }, + "tconstruct:head": { + "durability": 1900, + "mining_speed": 6, + "mining_tier": "minecraft:netherite", + "melee_attack": 4.5 + }, + "tconstruct:limb": { + "durability": 1900, + "draw_speed": 0.2, + "velocity": 0.2, + "accuracy": 0.05 + }, + "tconstruct:grip": { + "durability": 0.35, + "accuracy": 0.05, + "melee_damage": 4 + } + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/blaze_cube.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/blaze_cube.json new file mode 100644 index 00000000..fab49d9b --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/blaze_cube.json @@ -0,0 +1,3 @@ +{ + "default": [{ "name": "avaritia_integration:blaze_crown" }] +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/crystal_matrix.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/crystal_matrix.json new file mode 100644 index 00000000..c5a06727 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/crystal_matrix.json @@ -0,0 +1,3 @@ +{ + "default": [{ "name": "avaritia_integration:crystalshine" }] +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/infinity.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/infinity.json new file mode 100644 index 00000000..78ade085 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/infinity.json @@ -0,0 +1,36 @@ +{ + "perStat": { + "tconstruct:ranged": [ + { + "name": "avaritia_integration:infinitum" + }, + { + "name": "avaritia_integration:vault_split" + } + ], + "tconstruct:melee_harvest": [ + { + "name": "avaritia_integration:infinitum" + }, + { + "name": "avaritia_integration:rule_over" + } + ], + "tconstruct:armor": [ + { + "name": "avaritia_integration:infinitum" + }, + { + "name": "avaritia_integration:eternity" + } + ], + "tconstruct:plating_shield": [ + { + "name": "avaritia_integration:infinitum" + }, + { + "name": "avaritia_integration:eternity" + } + ] + } +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/neutronium.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/neutronium.json new file mode 100644 index 00000000..4bcca9d3 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/materials/traits/neutronium.json @@ -0,0 +1,3 @@ +{ + "default": [{ "name": "avaritia_integration:condensing" }] +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/condensing.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/condensing.json new file mode 100644 index 00000000..404e01b2 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/condensing.json @@ -0,0 +1,17 @@ +{ + "level_display": "tconstruct:default", + "modules": [ + { + "type": "avaritia_integration:condensing" + }, + { + "type": "tconstruct:attribute", + "attribute": "forge:entity_gravity", + "each_level": 0.05, + "operation": "multiply_total", + "slots": ["mainhand", "offhand"], + "tooltip_style": "percent" + } + ], + "tooltip_display": "always" +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/eternity.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/eternity.json new file mode 100644 index 00000000..41edceb0 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/eternity.json @@ -0,0 +1,20 @@ +{ + "level_display": "tconstruct:no_levels", + "modules": [ + { + "type": "tconstruct:armor_level", + "allow_broken": false, + "held_tag": "tconstruct:modifiable/armor/held", + "key": "avaritia_integration:eternity" + }, + { + "type": "tconstruct:max_armor_attribute", + "allow_broken": false, + "attribute": "tconstruct:generic.bad_effect_duration_multiplier", + "each_level": -1, + "held_tag": "tconstruct:modifiable/held", + "operation": "multiply_base" + } + ], + "tooltip_display": "always" +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/infinitum.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/infinitum.json new file mode 100644 index 00000000..600ae0b3 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/infinitum.json @@ -0,0 +1,26 @@ +{ + "level_display": "tconstruct:no_levels", + "modules": [ + { + "type": "avaritia_integration:infinitum" + }, + { + "type": "tconstruct:rarity", + "rarity": "cosmic" + }, + { + "type": "tconstruct:volatile_flag", + "flag": "tconstruct:indestructible" + }, + { + "type": "tconstruct:reduce_tool_damage", + "flat": 1.0 + }, + { + "type": "tconstruct:modifier_slot", + "each_level": 1, + "name": "abilities" + } + ], + "tooltip_display": "always" +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/rule_over.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/rule_over.json new file mode 100644 index 00000000..1b6e37f6 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/rule_over.json @@ -0,0 +1,35 @@ +{ + "level_display": "tconstruct:no_levels", + "modules": [ + { + "type": "avaritia_integration:rule_over" + }, + { + "type": "tconstruct:constant_enchantment", + "level": 10, + "name": "minecraft:fortune", + "tool": { + "type": "mantle:tag", + "tag": "tconstruct:modifiable/harvest" + } + }, + { + "type": "tconstruct:weapon_looting", + "level": 10, + "tool": { + "type": "mantle:or", + "predicates": [ + { + "type": "mantle:set", + "items": ["minecraft:air"] + }, + { + "type": "mantle:tag", + "tag": "tconstruct:modifiable/melee" + } + ] + } + } + ], + "tooltip_display": "always" +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/vault_split.json b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/vault_split.json new file mode 100644 index 00000000..9a7213a3 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/data/avaritia_integration/tinkering/modifiers/vault_split.json @@ -0,0 +1,16 @@ +{ + "level_display": "tconstruct:no_levels", + "modules": [ + { + "type": "avaritia_integration:vault_split" + }, + { + "type": "tconstruct:stat_boost", + "flat": 6.5, + "operation": "add", + "stat": "tconstruct:projectile_damage" + } + ], + "priority": 45, + "tooltip_display": "always" +} diff --git a/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..b3dc4ea5 --- /dev/null +++ b/integrations/tconstruct-data/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration TConstruct Data" + } +} diff --git a/integrations/tconstruct-data/src/main/templates/META-INF/neoforge.mods.toml b/integrations/tconstruct-data/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/tconstruct-data/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/integrations/thermal-expansion-data/build.gradle b/integrations/thermal-expansion-data/build.gradle new file mode 100644 index 00000000..9e139b45 --- /dev/null +++ b/integrations/thermal-expansion-data/build.gradle @@ -0,0 +1,10 @@ +ext.ai_mod_id = 'avaritia_integration_thermal_expansion_data' +ext.ai_mod_name = 'Avaritia Integration Thermal Expansion Data' +ext.ai_mod_description = 'Avaritia Integration data module for Thermal Expansion.' +ext.ai_run_directory = 'integrations/thermal-expansion-data' +apply from: rootProject.file('gradle/scripts/mod-project.gradle') + +dependencies { + implementation forge.reAvaritia + implementation project(':core') +} diff --git a/integrations/thermal-expansion-data/src/main/java/committee/nova/mods/avaritia_integration/integrations/thermalexpansion/AIThermalExpansionDataIntegrationMod.java b/integrations/thermal-expansion-data/src/main/java/committee/nova/mods/avaritia_integration/integrations/thermalexpansion/AIThermalExpansionDataIntegrationMod.java new file mode 100644 index 00000000..e42fe1c4 --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/java/committee/nova/mods/avaritia_integration/integrations/thermalexpansion/AIThermalExpansionDataIntegrationMod.java @@ -0,0 +1,25 @@ +package committee.nova.mods.avaritia_integration.integrations.thermalexpansion; + +import committee.nova.mods.avaritia_integration.api.load.DependencyRule; +import committee.nova.mods.avaritia_integration.api.load.IntegrationDataPackRegistrar; +import committee.nova.mods.avaritia_integration.api.load.IntegrationLoadApi; +import committee.nova.mods.avaritia_integration.api.load.IntegrationRule; + +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; + +import java.util.List; + +@Mod(AIThermalExpansionDataIntegrationMod.MOD_ID) +public final class AIThermalExpansionDataIntegrationMod { + + public static final String MOD_ID = "avaritia_integration_thermal_expansion_data"; + + public AIThermalExpansionDataIntegrationMod(IEventBus bus, ModContainer modContainer) { + IntegrationDataPackRegistrar.register(bus, MOD_ID, "Avaritia Integration Thermal Expansion Data"); + IntegrationLoadApi.registerDefaultRule(MOD_ID, + new IntegrationRule(List.of(new DependencyRule("thermal_expansion", "", "")))); + IntegrationLoadApi.shouldLoad(MOD_ID); + } +} diff --git a/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/models/item/creative_augment_base.json b/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/models/item/creative_augment_base.json new file mode 100644 index 00000000..41e64d65 --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/models/item/creative_augment_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/items/creative_augment_base" + } +} diff --git a/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/models/item/creative_integral_components.json b/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/models/item/creative_integral_components.json new file mode 100644 index 00000000..011011e6 --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/models/item/creative_integral_components.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "avaritia_integration:item/thermal_expansion/creative_integral_components", + "layer1": "thermal:item/augments/upgrade_augment_3_lights", + "layer2": "thermal:item/augments/upgrade_augment_anim" + } +} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/creative_augment_base.png b/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/textures/item/items/creative_augment_base.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/items/creative_augment_base.png rename to integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/textures/item/items/creative_augment_base.png diff --git a/src/main/resources/assets/avaritia_integration/textures/item/thermal_expansion/creative_integral_components.png b/integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/textures/item/thermal_expansion/creative_integral_components.png similarity index 100% rename from src/main/resources/assets/avaritia_integration/textures/item/thermal_expansion/creative_integral_components.png rename to integrations/thermal-expansion-data/src/main/resources/assets/avaritia_integration/textures/item/thermal_expansion/creative_integral_components.png diff --git a/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/creative_integral_components.json b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/creative_integral_components.json new file mode 100644 index 00000000..b54a2325 --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/creative_integral_components.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:smithing_transform", + "forge:conditions": [ + { + "type": "forge:mod_loaded", + "modid": "thermal_expansion" + } + ], + "addition": { + "item": "thermal:upgrade_augment_3" + }, + "base": { + "item": "avaritia_integration:creative_augment_base" + }, + "result": { + "item": "avaritia_integration:creative_integral_components" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} diff --git a/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/fluid_tank_creative_augment.json b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/fluid_tank_creative_augment.json new file mode 100644 index 00000000..39340e3c --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/fluid_tank_creative_augment.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:smithing_transform", + "forge:conditions": [ + { + "type": "forge:mod_loaded", + "modid": "thermal_expansion" + } + ], + "addition": { + "item": "thermal:fluid_tank_augment" + }, + "base": { + "item": "avaritia_integration:creative_augment_base" + }, + "result": { + "item": "thermal:fluid_tank_creative_augment" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} diff --git a/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/machine_catalyst_creative_augment.json b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/machine_catalyst_creative_augment.json new file mode 100644 index 00000000..98cda6f8 --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/machine_catalyst_creative_augment.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:smithing_transform", + "forge:conditions": [ + { + "type": "forge:mod_loaded", + "modid": "thermal_expansion" + } + ], + "addition": { + "item": "thermal:machine_catalyst_augment" + }, + "base": { + "item": "avaritia_integration:creative_augment_base" + }, + "result": { + "item": "thermal:machine_catalyst_creative_augment" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} diff --git a/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/machine_efficiency_creative_augment.json b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/machine_efficiency_creative_augment.json new file mode 100644 index 00000000..8e83bbf4 --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/machine_efficiency_creative_augment.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:smithing_transform", + "forge:conditions": [ + { + "type": "forge:mod_loaded", + "modid": "thermal_expansion" + } + ], + "addition": { + "item": "thermal:machine_efficiency_augment" + }, + "base": { + "item": "avaritia_integration:creative_augment_base" + }, + "result": { + "item": "thermal:machine_efficiency_creative_augment" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} diff --git a/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/rf_coil_creative_augment.json b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/rf_coil_creative_augment.json new file mode 100644 index 00000000..c866a34b --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/data/thermal_expansion/recipe/smithing/rf_coil_creative_augment.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:smithing_transform", + "forge:conditions": [ + { + "type": "forge:mod_loaded", + "modid": "thermal_expansion" + } + ], + "addition": { + "item": "thermal:rf_coil_augment" + }, + "base": { + "item": "avaritia_integration:creative_augment_base" + }, + "result": { + "item": "thermal:rf_coil_creative_augment" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} diff --git a/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/pack.mcmeta b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/pack.mcmeta new file mode 100644 index 00000000..2f86c23d --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/resources/integration_packs/server_data/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 48, + "description": "Avaritia Integration Thermal Expansion Data" + } +} diff --git a/integrations/thermal-expansion-data/src/main/templates/META-INF/neoforge.mods.toml b/integrations/thermal-expansion-data/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..7b7f232a --- /dev/null +++ b/integrations/thermal-expansion-data/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,33 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies."${mod_id}"]] +modId = "avaritia_integration" +type = "required" +versionRange = "[${mod_version},)" +ordering = "AFTER" +side = "BOTH" + +${dependency_blocks} diff --git a/lombok.config b/lombok.config new file mode 100644 index 00000000..14fae368 --- /dev/null +++ b/lombok.config @@ -0,0 +1,16 @@ +# this is the highest directory lombok should search for config files +config.stopBubbling = true + +# use jetbrains nullability annotations +lombok.addNullAnnotations = jetbrains + +# add annotations that @Getter and @Setter should copy from the field +lombok.copyableAnnotations += dev.latvian.mods.rhino.util.HideFromJS +# all the api status annotations +lombok.copyableAnnotations += org.jetbrains.annotations.ApiStatus.Experimental +lombok.copyableAnnotations += org.jetbrains.annotations.ApiStatus.Internal +lombok.copyableAnnotations += org.jetbrains.annotations.ApiStatus.Obsolete +lombok.copyableAnnotations += org.jetbrains.annotations.ApiStatus.ScheduledForRemoval +lombok.copyableAnnotations += org.jetbrains.annotations.ApiStatus.AvailableSince +lombok.copyableAnnotations += org.jetbrains.annotations.ApiStatus.NonExtendable +lombok.copyableAnnotations += org.jetbrains.annotations.ApiStatus.OverrideOnly diff --git a/settings.gradle b/settings.gradle index ada876e2..f3899fcd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,3 +9,29 @@ pluginManagement { plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' } + +dependencyResolutionManagement { + versionCatalogs { + forge { + from(files('gradle/forge.versions.toml')) + } + } +} + +rootProject.name = mod_id + +include 'core' +include 'all' + +include 'integrations:ae2' +include 'integrations:botania' +include 'integrations:create' +include 'integrations:enderio' +include 'integrations:industrialforegoing' +include 'integrations:ifeu' +include 'integrations:mekanism' +include 'integrations:mekanism-generators' +include 'integrations:pneumaticcraft' +include 'integrations:refinedstorage' +include 'integrations:thermal-expansion-data' +include 'integrations:tconstruct-data' diff --git a/shell.nix b/shell.nix new file mode 100644 index 00000000..a35c327c --- /dev/null +++ b/shell.nix @@ -0,0 +1,20 @@ +with import {}; +let + libs = [ + pkgs.glfw + pkgs.libGL + pkgs.libpulseaudio + ]; + + existingLDPath = builtins.getEnv "LD_LIBRARY_PATH"; + + LDPath = if builtins.stringLength existingLDPath == 0 then + "${lib.makeLibraryPath libs}" + else + "${lib.makeLibraryPath libs}:${existingLDPath}" + ; +in + mkShell { + buildInputs = libs; + LD_LIBRARY_PATH = LDPath; + } diff --git a/src/main/java/committee/nova/mods/avaritia_integration/AvaritiaIntegration.java b/src/main/java/committee/nova/mods/avaritia_integration/AvaritiaIntegration.java deleted file mode 100644 index 6229eb0d..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/AvaritiaIntegration.java +++ /dev/null @@ -1,34 +0,0 @@ -package committee.nova.mods.avaritia_integration; - -import com.mojang.logging.LogUtils; -import committee.nova.mods.avaritia_integration.init.data.AIDataGen; -import committee.nova.mods.avaritia_integration.init.registry.*; -import committee.nova.mods.avaritia_integration.module.ModuleManager; -import net.minecraft.resources.ResourceLocation; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.fml.ModContainer; -import net.neoforged.fml.common.Mod; -import org.slf4j.Logger; - -@Mod(AvaritiaIntegration.MOD_ID) -public class AvaritiaIntegration { - public static final String MOD_ID = "avaritia_integration"; - public static final Logger LOGGER = LogUtils.getLogger(); - public static IEventBus MOD_EVENT_BUS; - - public AvaritiaIntegration(IEventBus bus, ModContainer modContainer) { - MOD_EVENT_BUS = bus; - - AICreativeTabs.REGISTRY.register(bus); - AIItems.REGISTRY.register(bus); - AIBlocks.REGISTRY.register(bus); - AIFluidTypes.REGISTRY.register(bus); - AIFluids.REGISTRY.register(bus); - ModuleManager.loadModules(bus); - bus.addListener(AIDataGen::gatherData); - } - - public static ResourceLocation rl(String name) { - return ResourceLocation.fromNamespaceAndPath(MOD_ID, name); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListScreen.java b/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListScreen.java deleted file mode 100644 index dd40e355..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListScreen.java +++ /dev/null @@ -1,82 +0,0 @@ -package committee.nova.mods.avaritia_integration.client.screen; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.ModuleManager; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.components.Button; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.Component; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; - -import java.util.List; -//TODO:未完成,显示有问题 -@ApiStatus.Internal -public class ModuleListScreen extends Screen { - private final Screen parent; - private ModuleListWidget widget; - private Button enableButton; - private boolean initialized = false; - private List tooltips = List.of(); - - public ModuleListScreen(Screen parent) { - super(Component.translatable("screen.%s.module.title".formatted(AvaritiaIntegration.MOD_ID))); - this.parent = parent; - } - - @Override - public void init() { - super.init(); - if (this.initialized) this.widget.updateSize(40, this.width - 40, 64, this.height - 32); - else { - this.initialized = true; - this.widget = new ModuleListWidget(this,this.minecraft, 40, this.width - 40, 64, this.height - 32); - this.widget.update(); - } - this.addWidget(this.widget); - this.addRenderableWidget(Button.builder(Component.translatable("screen.%s.module.back".formatted(AvaritiaIntegration.MOD_ID)), button -> this.onClose()).bounds(40, 40, 100, 20).build()); - this.enableButton = this.addRenderableWidget(Button.builder(Component.translatable("screen.%s.module.enable".formatted(AvaritiaIntegration.MOD_ID)), button -> { - ModuleListWidget.ModuleEntry entry = this.widget.getSelected(); - if (entry != null) ModuleManager.switchEnableState(entry.getData()); - this.updateEnableButton(); - }).bounds(150, 40, 100, 20).build()); - this.enableButton.active = this.widget.getSelected() != null; - } - - public void updateEnableButton() { - ModuleListWidget.ModuleEntry entry = this.widget.getSelected(); - if (entry != null) { - this.enableButton.active = true; - this.enableButton.setMessage(Component.translatable("screen.%s.module.%s".formatted(AvaritiaIntegration.MOD_ID, entry.getData().getEnableState() != ModuleManager.EnableState.DISABLED ? "disable" : "enable"))); - } else this.enableButton.active = false; - } - - @Override - public void render(@NotNull GuiGraphics context, int mouseX, int mouseY, float delta) { - super.renderBackground(context, mouseX, mouseY, delta); - this.tooltips = List.of(); - this.widget.render(context, mouseX, mouseY, delta); - assert this.minecraft != null; - if (!this.tooltips.isEmpty()) - context.renderComponentTooltip(this.minecraft.font, this.tooltips, mouseX, mouseY); - context.drawCenteredString(this.font, this.title, this.width / 2, 20, 16777215); - context.drawCenteredString(this.font, Component.translatable("screen.avaritia_integration.module.warning"), this.width / 2, 30, 16777215); - super.render(context, mouseX, mouseY, delta); - } - - public void select(ModuleListWidget.ModuleEntry entry) { - this.widget.setSelected(entry); - this.updateEnableButton(); - } - - @Override - public void onClose() { - super.onClose(); - assert this.minecraft != null; - this.minecraft.setScreen(this.parent); - } - - void setTooltips(List tooltips) { - this.tooltips = tooltips; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListWidget.java b/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListWidget.java deleted file mode 100644 index 88b3364f..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/client/screen/ModuleListWidget.java +++ /dev/null @@ -1,79 +0,0 @@ -package committee.nova.mods.avaritia_integration.client.screen; - -import committee.nova.mods.avaritia_integration.module.ModuleManager; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.components.ObjectSelectionList; -import net.minecraft.network.chat.Component; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; - -@ApiStatus.Internal -public class ModuleListWidget extends ObjectSelectionList { - private final ModuleListScreen screen; - - public ModuleListWidget(ModuleListScreen screen, Minecraft client, int left, int right, int top, int bottom) { - super(client, right - left, bottom - top, top, bottom); - this.screen = screen; - this.updateSize(left, right, top, bottom); - } - - void updateSize(int left, int right, int top, int bottom) { - - } - - public void update() { - this.clearEntries(); - ModuleManager.getAllModules().forEach(x -> this.addEntry(new ModuleEntry(this.screen, x))); - } - - - @Override - public int getRowWidth() { - return super.getRowWidth() + 30 * 2; - } - - @Override - protected int getScrollbarPosition() { - return super.getScrollbarPosition() + 30 + 30; - } - - @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - ModuleEntry entry = this.getSelected(); - return entry != null && entry.keyPressed(keyCode, scanCode, modifiers) || super.keyPressed(keyCode, scanCode, modifiers); - } - - public static class ModuleEntry extends Entry { - private final Minecraft client = Minecraft.getInstance(); - private final ModuleListScreen screen; - private final ModuleManager.ModuleData data; - - public ModuleEntry(ModuleListScreen screen, ModuleManager.ModuleData data) { - this.screen = screen; - this.data = data; - } - - @Override - public void render(GuiGraphics context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { - context.drawString(this.client.font, this.data.getTranslateKey(), x + 32 + 3, y + 1, 16777215, true); - context.drawString(this.client.font, this.data.getStateKey(), x + 32 + 3, y + 1 + 9, 16777215, true); - if (this.isMouseOver(mouseX, mouseY)) this.screen.setTooltips(this.data.getErrorTooltip()); - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - this.screen.select(this); - return false; - } - - public ModuleManager.ModuleData getData() { - return this.data; - } - - @Override - public @NotNull Component getNarration() { - return Component.translatable(this.data.getTranslateKey().toString()); - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/data/AIDataGen.java b/src/main/java/committee/nova/mods/avaritia_integration/init/data/AIDataGen.java deleted file mode 100644 index 440468c6..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/data/AIDataGen.java +++ /dev/null @@ -1,25 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.data; - -import committee.nova.mods.avaritia_integration.init.data.provider.AIRecipes; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.DataGenerator; -import net.minecraft.data.PackOutput; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.neoforge.common.data.ExistingFileHelper; -import net.neoforged.neoforge.data.event.GatherDataEvent; - -import java.util.concurrent.CompletableFuture; - -public class AIDataGen { - - @SubscribeEvent - public static void gatherData(GatherDataEvent event) { - DataGenerator generator = event.getGenerator(); - PackOutput output = generator.getPackOutput(); - ExistingFileHelper helper = event.getExistingFileHelper(); - CompletableFuture future = event.getLookupProvider(); - if (event.includeServer()) { - generator.addProvider(true, new AIRecipes(output, future)); - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/data/provider/AIRecipes.java b/src/main/java/committee/nova/mods/avaritia_integration/init/data/provider/AIRecipes.java deleted file mode 100644 index 7cf8dd67..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/data/provider/AIRecipes.java +++ /dev/null @@ -1,106 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.data.provider; - -import appeng.core.definitions.AEBlocks; -import appeng.core.definitions.AEItems; -import com.buuz135.industrial.recipe.LaserDrillFluidRecipe; -import com.buuz135.industrial.recipe.LaserDrillRarity; -import com.buuz135.industrial.recipe.data.EntityData; -import com.hrznstudio.titanium.api.IRecipeProvider; -import committee.nova.mods.avaritia.init.data.provider.recipe.ModShapedRecipeBuilder; -import committee.nova.mods.avaritia.init.registry.ModItems; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationItems; -import committee.nova.mods.avaritia_integration.module.enderio.registry.EnderIOIntegrationItems; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.registry.IndustrialForegoingIntegrationFluids; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.data.PackOutput; -import net.minecraft.data.recipes.RecipeCategory; -import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.data.recipes.RecipeProvider; -import net.minecraft.data.recipes.ShapedRecipeBuilder; -import net.minecraft.world.entity.EntityType; -import net.neoforged.neoforge.common.conditions.IConditionBuilder; -import net.neoforged.neoforge.fluids.crafting.SizedFluidIngredient; - -import java.util.ArrayList; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; - -public class AIRecipes extends RecipeProvider implements IConditionBuilder { - - - public AIRecipes(PackOutput output, CompletableFuture registries) { - super(output, registries); - } - - @Override - protected void buildRecipes(RecipeOutput consumer) { - - //Ender IO - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, EnderIOIntegrationItems.INFINITY_GRINDING_BALL.get()) - .pattern(" a ") - .pattern("aaa") - .pattern(" a ") - .define('a', ModItems.infinity_ingot.get()) - .unlockedBy("has_item", has(ModItems.infinity_ingot.get())).save(consumer); - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, EnderIOIntegrationItems.NEUTRON_GRINDING_BALL.get()) - .pattern(" a ") - .pattern("aaa") - .pattern(" a ") - .define('a', ModItems.neutron_ingot.get()) - .unlockedBy("has_item", has(ModItems.neutron_ingot.get())).save(consumer); - - //AE2 - - ModShapedRecipeBuilder.shaped(RecipeCategory.MISC, AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT.get()) - .pattern(" rrrrr ") - .pattern(" vesssev ") - .pattern("reafcfaer") - .pattern("rsfxzxfsr") - .pattern("rsczdzcsr") - .pattern("rsfxzxfsr") - .pattern("reafcfaer") - .pattern(" vesssev ") - .pattern(" rrrrr ") - .define('a', AEItems.ENDER_DUST) - .define('s', AEItems.SKY_DUST) - .define('d', AEBlocks.CONTROLLER) - .define('f', AEItems.CELL_COMPONENT_256K) - .define('z', AEItems.SPATIAL_128_CELL_COMPONENT) - .define('x', AEItems.MATTER_BALL) - .define('c', AEItems.SINGULARITY) - .define('e', ModItems.infinity_catalyst.get()) - .define('r', ModItems.infinity_ingot.get()) - .define('v', ModItems.neutron_gear.get()) - - .unlockedBy("has_item", has(ModItems.infinity_ingot.get())).save(consumer); - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL.get()) - .pattern("aq") - .pattern("s ") - .define('a', AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT.get()) - .define('q', AEItems.FLUID_CELL_HOUSING) - .define('s', AEItems.ITEM_CELL_HOUSING) - .unlockedBy("has_item", has(ModItems.neutron_ingot.get())).save(consumer); - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG.get()) - .pattern("aq") - .define('a', AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT.get()) - .define('q', AE2IntegrationItems.INFINITY_ME_STORAGE_CELL.get()) - .unlockedBy("has_item", has(ModItems.neutron_ingot.get())).save(consumer); - - BuiltInRegistries.ITEM.stream().filter(item -> BuiltInRegistries.ITEM.getKey(item).getNamespace().equals(AvaritiaIntegration.MOD_ID)).forEach(item -> { - if(item instanceof IRecipeProvider provider){ - provider.registerRecipe(consumer); - } - }); - - var elderlyMedullaRecipe = new LaserDrillFluidRecipe(SizedFluidIngredient.of(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid().get(),50),7, Optional.of(EntityData.of(EntityType.ELDER_GUARDIAN)), new LaserDrillRarity(new LaserDrillRarity.BiomeRarity(new ArrayList<>(), new ArrayList<>()), new LaserDrillRarity.DimensionRarity(new ArrayList<>(),new ArrayList<>()),-64, 256, 8)); - var voidMatterRecipe = new LaserDrillFluidRecipe(SizedFluidIngredient.of(IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid().get(),20),15, Optional.empty(), new LaserDrillRarity(new LaserDrillRarity.BiomeRarity(LaserDrillRarity.BiomeRarity.END, new ArrayList<>()), new LaserDrillRarity.DimensionRarity(new ArrayList<>(),new ArrayList<>()),-32, 64, 8)); - LaserDrillFluidRecipe.createRecipe(consumer,"elderly_medulla","industrialforegoing",elderlyMedullaRecipe); - LaserDrillFluidRecipe.createRecipe(consumer,"void_matter","industrialforegoing",voidMatterRecipe); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/mixins/MixinMekanismRecipeType.java b/src/main/java/committee/nova/mods/avaritia_integration/init/mixins/MixinMekanismRecipeType.java deleted file mode 100644 index 1caa8c72..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/mixins/MixinMekanismRecipeType.java +++ /dev/null @@ -1,42 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.mixins; - -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.MekIntegrationRecipeType; -import mekanism.api.recipes.ItemStackToItemStackRecipe; -import mekanism.api.recipes.MekanismRecipe; -import mekanism.api.recipes.vanilla_input.SingleChemicalRecipeInput; -import mekanism.common.Mekanism; -import mekanism.common.recipe.IMekanismRecipeTypeProvider; -import mekanism.common.recipe.MekanismRecipeType; -import mekanism.common.recipe.lookup.cache.IInputRecipeCache; -import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleChemical; -import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleItem; -import mekanism.common.registration.impl.RecipeTypeRegistryObject; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.crafting.RecipeInput; -import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.item.crafting.SingleRecipeInput; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import java.util.function.Function; - -@Mixin(value = MekanismRecipeType.class, remap = false) -public abstract class MixinMekanismRecipeType, INPUT_CACHE extends IInputRecipeCache> - implements RecipeType, IMekanismRecipeTypeProvider { - - @Shadow - private static , INPUT_CACHE extends IInputRecipeCache> - RecipeTypeRegistryObject register(ResourceLocation name, Function, INPUT_CACHE> inputCacheCreator) { - return null; - } - - @Inject(method = "", at = @At("TAIL")) - private static void avaritia_integration$registerMekanismRecipes(CallbackInfo ci) { - MekIntegrationRecipeType.COLLECTING = register(Mekanism.rl("collector"), recipeType -> new SingleChemical<>(recipeType, ChemicalStackToItemStackRecipe::getInput)); - MekIntegrationRecipeType.MEK_COMPRESSING = register(Mekanism.rl("compressor"), recipeType -> new SingleItem<>(recipeType, ItemStackToItemStackRecipe::getInput)); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIBlocks.java b/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIBlocks.java deleted file mode 100644 index aba8da0d..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIBlocks.java +++ /dev/null @@ -1,35 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.world.level.block.LiquidBlock; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.MapColor; -import net.minecraft.world.level.material.PushReaction; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.neoforge.registries.DeferredBlock; -import net.neoforged.neoforge.registries.DeferredRegister; - -public class AIBlocks { - public static final DeferredRegister.Blocks REGISTRY = DeferredRegister.createBlocks(AvaritiaIntegration.MOD_ID); - - public static final DeferredBlock molten_blaze_block = REGISTRY.register("molten_blaze_fluid", - ()->new BurningLiquidBlock(AIFluids.source_molten_blaze, createProperties(MapColor.COLOR_RED, 15), 10, 15f)); - - public static final DeferredBlock molten_crystal_matrix_block = REGISTRY.register("molten_crystal_matrix_fluid", - ()->new BurningLiquidBlock(AIFluids.source_molten_crystal_matrix, createProperties(MapColor.COLOR_LIGHT_BLUE, 15), 10, 10f)); - - public static final DeferredBlock molten_neutron_block = REGISTRY.register("molten_neutron_fluid", - ()->new BurningLiquidBlock(AIFluids.source_molten_neutron, createProperties(MapColor.COLOR_GRAY, 15), 10, 27f)); - - public static final DeferredBlock molten_star_block = REGISTRY.register("molten_star_fluid", - ()->new BurningLiquidBlock(AIFluids.source_molten_star, createProperties(MapColor.COLOR_BLUE, 15), 10, 45f)); - - public static BlockBehaviour.Properties createProperties(MapColor color, int lightLevel) { - return BlockBehaviour.Properties.of().mapColor(color).replaceable().noCollission().randomTicks().strength(100.0F).lightLevel(state -> lightLevel).pushReaction(PushReaction.DESTROY).noLootTable().liquid().sound(SoundType.EMPTY); - } - - public static void registers(IEventBus bus) { - REGISTRY.register(bus); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AICreativeTabs.java b/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AICreativeTabs.java deleted file mode 100644 index 0753c2b6..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AICreativeTabs.java +++ /dev/null @@ -1,30 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.ModuleManager; -import net.minecraft.core.registries.Registries; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.function.Supplier; - -@SuppressWarnings("unused") -public final class AICreativeTabs { - public static final DeferredRegister REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, AvaritiaIntegration.MOD_ID); - - public static final DeferredHolder CREATIVE_TAB = REGISTRY.register("avaritia_integration_group", () -> CreativeModeTab.builder() - .title(Component.translatable("itemGroup.tab.Integration")) - .icon(() -> AIItems.INFINITY_GEAR.get().getDefaultInstance()) - .displayItems((parameters, output) -> { - AIItems.ITEMS.forEach(r -> output.accept(r.get())); - ModuleManager.collectCreativeTabItems(parameters, output); - }) - .build()); - - public static void register(IEventBus bus){ - REGISTRY.register(bus); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluidTypes.java b/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluidTypes.java deleted file mode 100644 index 10e3e687..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluidTypes.java +++ /dev/null @@ -1,47 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.world.level.pathfinder.PathType; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.neoforge.common.SoundActions; -import net.neoforged.neoforge.fluids.FluidType; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.NeoForgeRegistries; -import org.joml.Vector3f; - -public class AIFluidTypes { - - public static final DeferredRegister REGISTRY = - DeferredRegister.create(NeoForgeRegistries.FLUID_TYPES, AvaritiaIntegration.MOD_ID); - - - public static final DeferredHolder molten_blaze = REGISTRY.register("molten_blaze", - ()->new BaseFluidType("molten_blaze", new Vector3f(253f/225f,192f/225f,69f/255f), - base("molten_blaze").temperature(3300).lightLevel(15))); - - public static final DeferredHolder molten_crystal_matrix = REGISTRY.register("molten_crystal_matrix", - ()->new BaseFluidType("molten_crystal_matrix", new Vector3f(103f/225f,187f/225f,182f/255f), - base("molten_crystal_matrix").temperature(2800).lightLevel(15))); - - public static final DeferredHolder molten_neutron = REGISTRY.register("molten_neutron", - ()->new BaseFluidType("molten_neutron", new Vector3f(160f/225f,164f/225f,191f/255f), - base("molten_neutron").temperature(8300).lightLevel(15))); - - - public static final DeferredHolder molten_star = REGISTRY.register("molten_star", - ()->new BaseFluidType("molten_star", new Vector3f(94f/225f,157f/225f,221f/255f), - base("molten_star").temperature(12300).lightLevel(15))); - - private static FluidType.Properties base(String name) { - return FluidType.Properties.create().viscosity(10000).density(2000).descriptionId("fluid.avaritia_integration." + name).sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL). - sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY).canSwim(false).canDrown(false).pathType(PathType.LAVA).adjacentPathType(null) - .motionScale(0.0023333333333333335); - } - - public static void registers(IEventBus bus) { - REGISTRY.register(bus); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluids.java b/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluids.java deleted file mode 100644 index dc982ed3..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIFluids.java +++ /dev/null @@ -1,50 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.world.level.material.FlowingFluid; -import net.minecraft.world.level.material.Fluid; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.neoforge.fluids.BaseFlowingFluid; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; - -public class AIFluids { - public static final DeferredRegister REGISTRY = DeferredRegister.create(BuiltInRegistries.FLUID, AvaritiaIntegration.MOD_ID); - - public static final DeferredHolder source_molten_blaze = REGISTRY.register("molten_blaze", - ()->new BaseFlowingFluid.Source(AIFluids.molten_blaze)); - public static final DeferredHolder flowing_molten_blaze = REGISTRY.register("flowing_molten_blaze", - ()->new BaseFlowingFluid.Flowing(AIFluids.molten_blaze)); - public static final BaseFlowingFluid.Properties molten_blaze = new BaseFlowingFluid.Properties( - AIFluidTypes.molten_blaze, source_molten_blaze, flowing_molten_blaze).slopeFindDistance(3).levelDecreasePerBlock(3).tickRate(30) - .block(AIBlocks.molten_blaze_block).bucket(AIItems.MOLTEN_BLAZE_BUCKET); - - public static final DeferredHolder source_molten_crystal_matrix = REGISTRY.register("molten_crystal_matrix", - ()->new BaseFlowingFluid.Source(AIFluids.molten_crystal_matrix)); - public static final DeferredHolder flowing_molten_crystal_matrix = REGISTRY.register("flowing_molten_crystal_matrix", - ()->new BaseFlowingFluid.Flowing(AIFluids.molten_crystal_matrix)); - public static final BaseFlowingFluid.Properties molten_crystal_matrix = new BaseFlowingFluid.Properties( - AIFluidTypes.molten_crystal_matrix, source_molten_crystal_matrix, flowing_molten_crystal_matrix).slopeFindDistance(3).levelDecreasePerBlock(3).tickRate(30) - .block(AIBlocks.molten_crystal_matrix_block).bucket(AIItems.MOLTEN_CRYSTAL_MATRIX_BUCKET); - - public static final DeferredHolder source_molten_neutron = REGISTRY.register("molten_neutron", - ()->new BaseFlowingFluid.Source(AIFluids.molten_neutron)); - public static final DeferredHolder flowing_molten_neutron = REGISTRY.register("flowing_molten_neutron", - ()->new BaseFlowingFluid.Flowing(AIFluids.molten_neutron)); - public static final BaseFlowingFluid.Properties molten_neutron = new BaseFlowingFluid.Properties( - AIFluidTypes.molten_neutron, source_molten_neutron, flowing_molten_neutron).slopeFindDistance(3).levelDecreasePerBlock(3).tickRate(30) - .block(AIBlocks.molten_neutron_block).bucket(AIItems.MOLTEN_NEUTRON_BUCKET); - - public static final DeferredHolder source_molten_star = REGISTRY.register("molten_star", - ()->new BaseFlowingFluid.Source(AIFluids.molten_star)); - public static final DeferredHolder flowing_molten_star = REGISTRY.register("flowing_molten_star", - ()->new BaseFlowingFluid.Flowing(AIFluids.molten_star)); - public static final BaseFlowingFluid.Properties molten_star = new BaseFlowingFluid.Properties( - AIFluidTypes.molten_star, source_molten_star, flowing_molten_star).slopeFindDistance(8).levelDecreasePerBlock(8).tickRate(30) - .block(AIBlocks.molten_star_block).bucket(AIItems.MOLTEN_STAR_BUCKET); - - public static void registers(IEventBus bus) { - REGISTRY.register(bus); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIItems.java b/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIItems.java deleted file mode 100644 index 038fa3f4..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/init/registry/AIItems.java +++ /dev/null @@ -1,84 +0,0 @@ -package committee.nova.mods.avaritia_integration.init.registry; - -import committee.nova.mods.avaritia.api.common.item.BaseItem; -import committee.nova.mods.avaritia.init.registry.ModRarities; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.world.item.BucketItem; -import net.minecraft.world.item.Item; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.LinkedList; -import java.util.List; -import java.util.function.Supplier; - -@SuppressWarnings("unused") -public class AIItems { - public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - - public static final List> ITEMS = new LinkedList<>(); - //blaze_cube - public static final DeferredItem BLAZE_CUBE_BOLT = register("blaze_cube_bolt", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_DENSE_PLATE = register("blaze_cube_dense_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_DOUBLE_PLATE = register("blaze_cube_double_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_DUST = register("blaze_cube_dust", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_GEAR = register("blaze_cube_gear", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_LONG_ROD = register("blaze_cube_long_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_NUGGET = register("blaze_cube_nugget", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_PLATE = register("blaze_cube_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_RING = register("blaze_cube_ring", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_ROD = register("blaze_cube_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_SCREW = register("blaze_cube_screw", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_SPRING = register("blaze_cube_spring", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem BLAZE_CUBE_WIRE = register("blaze_cube_wire", () -> new BaseItem(pro -> pro.rarity(ModRarities.UNCOMMON))); - public static final DeferredItem MOLTEN_BLAZE_BUCKET = register("molten_blaze_bucket", () -> new BucketItem(AIFluids.source_molten_blaze.get(), new Item.Properties().stacksTo(1).rarity(ModRarities.UNCOMMON))); - //crystal_matrix - public static final DeferredItem CRYSTAL_MATRIX_BOLT = register("crystal_matrix_bolt", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_DENSE_PLATE = register("crystal_matrix_dense_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_DOUBLE_PLATE = register("crystal_matrix_double_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_DUST = register("crystal_matrix_dust", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_GEAR = register("crystal_matrix_gear", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_LONG_ROD = register("crystal_matrix_long_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_NUGGET = register("crystal_matrix_nugget", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_PLATE = register("crystal_matrix_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_RING = register("crystal_matrix_ring", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_ROD = register("crystal_matrix_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_SCREW = register("crystal_matrix_screw", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_SPRING = register("crystal_matrix_spring", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem CRYSTAL_MATRIX_WIRE = register("crystal_matrix_wire", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem MOLTEN_CRYSTAL_MATRIX_BUCKET = register("molten_crystal_matrix_bucket", () -> new BucketItem(AIFluids.source_molten_crystal_matrix.get(), new Item.Properties().stacksTo(1).rarity(ModRarities.RARE))); - //infinity - public static final DeferredItem INFINITY_BOLT = register("infinity_bolt", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_DENSE_PLATE = register("infinity_dense_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_DOUBLE_PLATE = register("infinity_double_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_DUST = register("infinity_dust", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_GEAR = register("infinity_gear", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_LONG_ROD = register("infinity_long_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_PLATE = register("infinity_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_RING = register("infinity_ring", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_ROD = register("infinity_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_SCREW = register("infinity_screw", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_SPRING = register("infinity_spring", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem INFINITY_WIRE = register("infinity_wire", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - //neutron - public static final DeferredItem NEUTRON_BOLT = register("neutron_bolt", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_DENSE_PLATE = register("neutron_dense_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_DOUBLE_PLATE = register("neutron_double_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_DUST = register("neutron_dust", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_LONG_ROD = register("neutron_long_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_PLATE = register("neutron_plate", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_RING = register("neutron_ring", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_ROD = register("neutron_rod", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_SCREW = register("neutron_screw", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_SPRING = register("neutron_spring", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem NEUTRON_WIRE = register("neutron_wire", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - public static final DeferredItem MOLTEN_NEUTRON_BUCKET = register("molten_neutron_bucket", () -> new BucketItem(AIFluids.source_molten_neutron.get(), new Item.Properties().stacksTo(1).rarity(ModRarities.RARE))); - - public static final DeferredItem MOLTEN_STAR_BUCKET = register("molten_star_bucket", () -> new BucketItem(AIFluids.source_molten_star.get(), new Item.Properties().stacksTo(1).rarity(ModRarities.RARE))); - - public static DeferredItem register(String id, Supplier obj) { - DeferredItem r = REGISTRY.register(id, obj); - ITEMS.add(r); - return r; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ModMeta.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ModMeta.java deleted file mode 100644 index 346b6509..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ModMeta.java +++ /dev/null @@ -1,25 +0,0 @@ -package committee.nova.mods.avaritia_integration.module; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Define depended mod meta - * - * @author IAFEnvoy - */ -@Documented -@Retention(RetentionPolicy.RUNTIME) -@Target({/* No targets allowed */}) -public @interface ModMeta { - /* - The target mod id - */ - String value(); - - String minVersion() default ""; - - String maxVersion() default ""; -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/Module.java b/src/main/java/committee/nova/mods/avaritia_integration/module/Module.java deleted file mode 100644 index 7f978e86..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/Module.java +++ /dev/null @@ -1,33 +0,0 @@ -package committee.nova.mods.avaritia_integration.module; - -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; - -/** - * Base module interface - * - * @author IAFEnvoy - */ -public interface Module { - default void init(IEventBus registryBus) { - } - - default void process() { - } - - default void initClient() { - } - - default void processClient() { - } - - //TODO::Maybe auto bus? - default void registerEvent(IEventBus modBus, IEventBus gameBus) { - } - - default void registerClientEvent(IEventBus modBus, IEventBus gameBus) { - } - - default void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ModuleEntry.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ModuleEntry.java deleted file mode 100644 index 2da94253..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ModuleEntry.java +++ /dev/null @@ -1,24 +0,0 @@ -package committee.nova.mods.avaritia_integration.module; - -import java.lang.annotation.*; - -/** - * Define a module - * - * @author IAFEnvoy - */ -@SuppressWarnings("unused") -@Documented -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface ModuleEntry { - /* - The id of this module - */ - String id(); - - /* - When should this module load - */ - ModMeta[] target() default {}; -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ModuleManager.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ModuleManager.java deleted file mode 100644 index 84eb2e36..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ModuleManager.java +++ /dev/null @@ -1,266 +0,0 @@ -package committee.nova.mods.avaritia_integration.module; - -import com.mojang.logging.LogUtils; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.util.ConfigLoader; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.ModContainer; -import net.neoforged.fml.ModList; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; -import net.neoforged.fml.loading.FMLEnvironment; -import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.neoforgespi.language.IModInfo; -import net.neoforged.neoforgespi.language.ModFileScanData; -import org.apache.maven.artifact.versioning.ArtifactVersion; -import org.apache.maven.artifact.versioning.DefaultArtifactVersion; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; -import org.objectweb.asm.Type; -import org.slf4j.Logger; - -import java.lang.reflect.Constructor; -import java.util.*; - -/** - * Find and load all modules - * - * @author IAFEnvoy - */ -@EventBusSubscriber( modid = AvaritiaIntegration.MOD_ID) -public final class ModuleManager { - private static final Logger LOGGER = LogUtils.getLogger(); - private static final String DISABLE_CONFIG_PATH = "./config/avaritia/integration/disabled_modules.json"; - private static final DisableConfig DISABLED_MODULES = ConfigLoader.load(DisableConfig.class, DISABLE_CONFIG_PATH, new DisableConfig()); - private static final List ALL_MODULES = ModList.get() - .getAllScanData() - .stream().flatMap(x -> x.getAnnotations().stream()) - .filter(x -> x.annotationType().equals(Type.getType(ModuleEntry.class))) - .map(ModuleData::parse) - .toList(); - private static final Map ENABLED_MODULES = ALL_MODULES - .stream() - .filter(x -> x.getEnableState().shouldLoad()) - .collect(LinkedHashMap::new, (p, c) -> p.put(c, createModule(c)), HashMap::putAll); - - @Nullable - private static Module createModule(ModuleData data) { - Class clazz = null; - try { - clazz = Class.forName(data.className); - } catch (Exception e) { - ModuleManager.LOGGER.error("Failed to get class", e); - } - if (clazz == null) return null; - Object obj = null; - try { - Constructor constructor = clazz.getDeclaredConstructor(); - constructor.setAccessible(true); - obj = constructor.newInstance(); - } catch (Exception var2) { - ModuleManager.LOGGER.error("Failed to construct object"); - } - return obj instanceof Module module ? module : null; - } - - public static List getAllModules() { - return ALL_MODULES; - } - - @ApiStatus.Internal - public static void loadModules(IEventBus modBus) { - List scanned = ALL_MODULES.stream().map(ModuleData::id).toList(); - ModuleManager.LOGGER.info("Scanned {} modules: {}", scanned.size(), String.join(", ", scanned)); - List initializing = ENABLED_MODULES.keySet().stream().map(ModuleData::id).toList(); - ModuleManager.LOGGER.info("Start initializing {} modules: {}", initializing.size(), String.join(", ", initializing)); - List initialized = new LinkedList<>(); - for (Map.Entry entry : ENABLED_MODULES.entrySet()) { - ModuleData data = entry.getKey(); - try { - Module module = entry.getValue(); - if (module == null) continue; - module.init(modBus); - module.registerEvent(modBus, NeoForge.EVENT_BUS); - if (FMLEnvironment.dist.isClient()) { - module.initClient(); - module.registerClientEvent(modBus, NeoForge.EVENT_BUS); - } - initialized.add(data.id); - } catch (Exception e) { - ModuleManager.LOGGER.error("Failed to setup module {}.", data.id, e); - } - } - ModuleManager.LOGGER.info("Successfully initialized {} modules: {}", initialized.size(), String.join(", ", initialized)); - } - - @ApiStatus.Internal - @SubscribeEvent - public static void postProcess(FMLCommonSetupEvent event) { - List processing = ENABLED_MODULES.keySet().stream().map(ModuleData::id).toList(); - ModuleManager.LOGGER.info("Start processing {} modules: {}", processing.size(), String.join(", ", processing)); - List processed = new LinkedList<>(); - for (Map.Entry entry : ENABLED_MODULES.entrySet()) { - ModuleData data = entry.getKey(); - try { - Module module = entry.getValue(); - if (module == null) continue; - module.process(); - if (FMLEnvironment.dist.isClient()) module.processClient(); - processed.add(data.id); - } catch (Exception e) { - ModuleManager.LOGGER.error("Failed to post module {}.", data.id, e); - } - } - ModuleManager.LOGGER.info("Successfully processed {} modules: {}", processed.size(), String.join(", ", processed)); - } - - @ApiStatus.Internal - public static void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - for (Map.Entry entry : ENABLED_MODULES.entrySet()) { - ModuleData data = entry.getKey(); - try { - Module module = entry.getValue(); - if (module == null) continue; - module.collectCreativeTabItems(parameters, output); - } catch (Exception e) { - ModuleManager.LOGGER.error("Failed to append creative tab items {}.", data.id, e); - } - } - } - - private static Optional getModVersion(String id) { - return ModList.get().getModContainerById(id).map(ModContainer::getModInfo).map(IModInfo::getVersion); - } - - private static ErrorType getState(String id, String minVersion, String maxVersion) { - Optional optional = getModVersion(id); - if (optional.isEmpty()) return ErrorType.MISSING_MOD; - ArtifactVersion version = optional.get(); - if (!minVersion.isEmpty()) { - ArtifactVersion min = new DefaultArtifactVersion(minVersion); - if (version.compareTo(min) < 0) return ErrorType.VERSION_TOO_LOW; - } - if (!maxVersion.isEmpty()) { - ArtifactVersion max = new DefaultArtifactVersion(maxVersion); - if (version.compareTo(max) > 0) return ErrorType.VERSION_TOO_HIGH; - } - return ErrorType.NONE; - } - - public static DependencyData getDependencyData(String id, String minVersion, String maxVersion) { - return new DependencyData(id, minVersion, maxVersion, getState(id, minVersion, maxVersion)); - } - - public static void switchEnableState(ModuleData data) { - String id = data.id; - if (DISABLED_MODULES.disabled().contains(id)) DISABLED_MODULES.disabled().remove(id); - else DISABLED_MODULES.disabled().add(id); - DISABLED_MODULES.save(); - } - - public record ModuleData(String id, String className, List dependencies) { - @SuppressWarnings("unchecked") - public static ModuleData parse(ModFileScanData.AnnotationData data) { - String className = data.memberName(); - Map annotationData = data.annotationData(); - String id = annotationData.get("id").toString(); - List> target = (List>) annotationData.getOrDefault("target", List.of()); - return new ModuleData(id, className, target.stream().map(m -> getDependencyData(m.get("value").toString(), m.getOrDefault("minVersion", "").toString(), m.getOrDefault("maxVersion", "").toString())).toList()); - } - - public EnableState getEnableState() { - if (DISABLED_MODULES.disabled().contains(this.id)) return EnableState.DISABLED; - return this.dependencies.stream().filter(x -> x.state != ErrorType.NONE).findAny().isEmpty() ? EnableState.ENABLED : EnableState.ERROR; - } - - public MutableComponent getTranslateKey() { - return Component.translatable("module.%s.name.%s".formatted(AvaritiaIntegration.MOD_ID, this.id)); - } - - public Component getStateKey() { - EnableState state = this.getEnableState(); - return Component.translatable("screen.%s.state.%s".formatted(AvaritiaIntegration.MOD_ID, state.name().toLowerCase(Locale.ROOT))).withStyle(state.getColor()); - } - - public List getErrorTooltip() { - EnableState state = this.getEnableState(); - if (!state.hasError()) return List.of(); - return this.dependencies.stream().map(DependencyData::getErrorMessage).filter(Optional::isPresent).map(Optional::get).toList(); - } - } - - public record DependencyData(String id, String minVersion, String maxVersion, ErrorType state) { - public Optional getErrorMessage() { - String version = getModVersion(this.id).map(Object::toString).orElse("???"); - return switch (this.state) { - case NONE -> Optional.empty(); - case MISSING_MOD -> - Optional.of(Component.translatable("screen.%s.message.missing_mod".formatted(AvaritiaIntegration.MOD_ID), this.formatVersionRange(), this.id)); - case VERSION_TOO_HIGH -> - Optional.of(Component.translatable("screen.%s.message.version_too_high".formatted(AvaritiaIntegration.MOD_ID), this.formatVersionRange(), this.id, version)); - case VERSION_TOO_LOW -> - Optional.of(Component.translatable("screen.%s.message.version_too_low".formatted(AvaritiaIntegration.MOD_ID), this.formatVersionRange(), this.id, version)); - }; - } - - public Component formatVersionRange() { - if (this.minVersion.isEmpty()) { - if (this.maxVersion.isEmpty()) - return Component.translatable("screen.avaritia_integration.message.version_any"); - else - return Component.translatable("screen.avaritia_integration.message.version_lower", this.maxVersion); - } else { - if (this.maxVersion.isEmpty()) - return Component.translatable("screen.avaritia_integration.message.version_higher", this.minVersion); - else - return Component.translatable("screen.avaritia_integration.message.version_between", this.minVersion, this.maxVersion); - } - } - } - - public record DisableConfig(List disabled) { - public DisableConfig() { - this(new LinkedList<>()); - } - - public void save() { - ConfigLoader.save(DISABLE_CONFIG_PATH, this); - } - } - - public enum EnableState { - ENABLED(true, false, ChatFormatting.GREEN), - DISABLED(false, false, ChatFormatting.YELLOW), - ERROR(false, true, ChatFormatting.RED); - private final boolean shouldLoad; - private final boolean error; - private final ChatFormatting color; - - EnableState(boolean shouldLoad, boolean error, ChatFormatting color) { - this.shouldLoad = shouldLoad; - this.error = error; - this.color = color; - } - - public boolean shouldLoad() { - return this.shouldLoad; - } - - public boolean hasError() { - return this.error; - } - - public ChatFormatting getColor() { - return this.color; - } - } - - public enum ErrorType { - NONE, MISSING_MOD, VERSION_TOO_HIGH, VERSION_TOO_LOW; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/AE2Module.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/AE2Module.java deleted file mode 100644 index ddaaab98..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/AE2Module.java +++ /dev/null @@ -1,59 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.ae2; - -import appeng.api.storage.StorageCells; -import appeng.api.upgrades.Upgrades; -import appeng.core.definitions.AEItems; -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.ae2.client.AE2ClientPlugin; -import committee.nova.mods.avaritia_integration.module.ae2.me.AEUniversalCellHandler; -import committee.nova.mods.avaritia_integration.module.ae2.me.biginteger.AEBigIntegerCellHandler; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationDataComponents; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationItems; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; - -@ModuleEntry(id = AE2Module.MOD_ID, target = @ModMeta(AE2Module.MOD_ID)) -public final class AE2Module implements Module { - public static final String MOD_ID = "ae2"; - - @Override - public void init(IEventBus registryBus) { - AE2IntegrationItems.REGISTRY.register(registryBus); - AE2IntegrationDataComponents.register(registryBus); - } - - @Override - public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { - Module.super.registerClientEvent(modBus, gameBus); - AE2ClientPlugin.registerStorageLED(modBus); - } - - @Override - public void process() { - Module.super.process(); - StorageCells.addCellHandler(AEUniversalCellHandler.INSTANCE); - StorageCells.addCellHandler(AEBigIntegerCellHandler.INSTANCE); - - Upgrades.add(AEItems.FUZZY_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); - Upgrades.add(AEItems.VOID_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); - Upgrades.add(AEItems.INVERTER_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); - Upgrades.add(AEItems.EQUAL_DISTRIBUTION_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, 1); - - Upgrades.add(AEItems.FUZZY_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG, 1); - Upgrades.add(AEItems.INVERTER_CARD, AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG, 1); - } - - @Override - public void processClient() { - AE2ClientPlugin.register(); - } - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - output.accept(AE2IntegrationItems.INFINITY_ME_STORAGE_COMPONENT); - output.accept(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL); - output.accept(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/client/AE2StorageModels.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/client/AE2StorageModels.java deleted file mode 100644 index c923a24e..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/client/AE2StorageModels.java +++ /dev/null @@ -1,24 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.ae2.client; - -import appeng.api.client.StorageCellModels; -import committee.nova.mods.avaritia_integration.module.ae2.item.AEUniversalCellItem; -import committee.nova.mods.avaritia_integration.module.ae2.registry.AE2IntegrationItems; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.FastColor; -import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent; - -public class AE2StorageModels { - private static final ResourceLocation MODEL_CELL_CREATIVE = ResourceLocation.parse("ae2:block/drive/cells/creative_cell"); - - public static void registerStorageModels() { - StorageCellModels.registerModel(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, MODEL_CELL_CREATIVE); - StorageCellModels.registerModel(AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG, MODEL_CELL_CREATIVE); - } - - public static void registerItemColors(RegisterColorHandlersEvent.Item event) { - event.register((itemStack, idx) -> FastColor.ARGB32.opaque(AEUniversalCellItem.getColor(itemStack, idx)), - AE2IntegrationItems.INFINITY_ME_STORAGE_CELL, - AE2IntegrationItems.INFINITY_ME_STORAGE_CELL_BIG - ); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/InfiniteCellItem.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/InfiniteCellItem.java deleted file mode 100644 index 3f24f974..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/item/InfiniteCellItem.java +++ /dev/null @@ -1,8 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.ae2.item; - - -public class InfiniteCellItem extends AEUniversalCellItem { - public InfiniteCellItem(Properties pProperties, double idleDrain) { - super(pProperties, idleDrain, -1, -1); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/registry/AE2IntegrationDataComponents.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/registry/AE2IntegrationDataComponents.java deleted file mode 100644 index db969889..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/registry/AE2IntegrationDataComponents.java +++ /dev/null @@ -1,106 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.ae2.registry; - -import appeng.api.stacks.GenericStack; -import com.mojang.serialization.Codec; -import com.mojang.serialization.DataResult; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.core.UUIDUtil; -import net.minecraft.core.component.DataComponentType; -import net.minecraft.core.registries.Registries; -import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.ByteBufCodecs; -import net.minecraft.network.codec.StreamCodec; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.function.UnaryOperator; - -public class AE2IntegrationDataComponents { - public static final DeferredRegister> DATA_COMPONENTS = - DeferredRegister.create(Registries.DATA_COMPONENT_TYPE, AvaritiaIntegration.MOD_ID); - - private static DeferredHolder, DataComponentType> register( - String name, UnaryOperator> builder - ) { - return DATA_COMPONENTS.register(name, () -> builder.apply(DataComponentType.builder()).build()); - } - - // 已用字节 - public static final DeferredHolder, DataComponentType> CELL_BYTES_USAGE = - register("cell_bytes_usage", b -> b - .persistent(Codec.LONG) - .networkSynchronized(ByteBufCodecs.VAR_LONG) - .cacheEncoding() - ); - - // 已用字节-BigInteger版 - public static final DeferredHolder, DataComponentType> CELL_BYTE_USAGE_BIG = - register("cell_byte_usage_big", b -> b - .persistent(Codec.STRING.comapFlatMap( - s -> { - try { - return DataResult.success(new BigInteger(s)); - } catch (NumberFormatException e) { - return DataResult.error(() -> "Invalid BigInteger: " + s); - } - }, - BigInteger::toString - )) - .networkSynchronized(StreamCodec.of( - (RegistryFriendlyByteBuf buf, BigInteger v) -> { - byte[] arr = v.toByteArray(); - buf.writeByteArray(arr); - }, - (RegistryFriendlyByteBuf buf) -> { - byte[] arr = buf.readByteArray(); - return new BigInteger(arr); - } - )) - ); - - // 已用类型 - public static final DeferredHolder, DataComponentType> CELL_TYPES_USAGE = - register("cell_types_usage", b -> b - .persistent(Codec.INT) - .networkSynchronized(ByteBufCodecs.VAR_INT) // 亦可省略 - .cacheEncoding() - ); - - // 单元状态(字符串存枚举名) - public static final DeferredHolder, DataComponentType> CELL_STATE = - register("cell_state", b -> b - .persistent(Codec.STRING) - .networkSynchronized(ByteBufCodecs.STRING_UTF8) - .cacheEncoding() - ); - - // Tooltip 展示栈:持久化用 AE 的容错 List,网络用内置 list 编解码 + AE 的 STREAM_CODEC - public static final DeferredHolder, DataComponentType>> CELL_SHOW_TOOLTIP_STACKS = - register("cell_show_tooltip_stacks", b -> b - .persistent(GenericStack.FAULT_TOLERANT_LIST_CODEC) - .networkSynchronized( - ByteBufCodecs.collection( - ArrayList::new, - GenericStack.STREAM_CODEC - ) - ) - .cacheEncoding() - ); - - // 组件唯一仓库 UUID - public static final DeferredHolder, DataComponentType> CELL_UUID = - register("cell_uuid", b -> b - .persistent(UUIDUtil.CODEC) - .networkSynchronized(UUIDUtil.STREAM_CODEC) - .cacheEncoding() - ); - - public static void register(IEventBus eventBus) { - DATA_COMPONENTS.register(eventBus); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/registry/AE2IntegrationItems.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/registry/AE2IntegrationItems.java deleted file mode 100644 index c1d49ca9..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ae2/registry/AE2IntegrationItems.java +++ /dev/null @@ -1,40 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.ae2.registry; - -import committee.nova.mods.avaritia.api.common.item.BaseItem; -import committee.nova.mods.avaritia.init.registry.ModRarities; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.ae2.AE2Module; -import committee.nova.mods.avaritia_integration.module.ae2.item.AEBigIntegerCellItem; -import committee.nova.mods.avaritia_integration.module.ae2.item.InfiniteCellItem; -import net.minecraft.world.item.Item; -import net.neoforged.fml.ModList; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.function.Supplier; - -public final class AE2IntegrationItems { - public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - - public static final DeferredItem INFINITY_ME_STORAGE_COMPONENT = register("infinity_me_storage_component", () -> new BaseItem(p -> p.rarity(ModRarities.EPIC))); - - public static final DeferredItem INFINITY_ME_STORAGE_CELL = register("infinity_me_storage_cell", - () -> { - if (ModList.get().isLoaded(AE2Module.MOD_ID)) - return new InfiniteCellItem(new Item.Properties().stacksTo(1).rarity(ModRarities.EPIC), 8); - else - return new BaseItem(p -> p.rarity(ModRarities.EPIC)); - }); - - public static final DeferredItem INFINITY_ME_STORAGE_CELL_BIG = register("infinity_me_storage_cell_big", - () -> { - if (ModList.get().isLoaded(AE2Module.MOD_ID)) - return new AEBigIntegerCellItem(new Item.Properties().stacksTo(1).rarity(ModRarities.EPIC), 64); - else - return new BaseItem(p -> p.rarity(ModRarities.EPIC)); - }); - - public static DeferredItem register(String id, Supplier obj) { - return REGISTRY.register(id, obj); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/BotaniaModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/BotaniaModule.java deleted file mode 100644 index 915b9bdc..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/BotaniaModule.java +++ /dev/null @@ -1,138 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania; - -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.botania.block.behavor.AlphaSparkBehavior; -import committee.nova.mods.avaritia_integration.module.botania.entity.AlphaSparkEntity; -import committee.nova.mods.avaritia_integration.module.botania.entity.InfinityManaPoolBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlocks; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationEntities; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationItems; -import committee.nova.mods.avaritia_integration.module.botania.render.AlphaSparkRender; -import committee.nova.mods.avaritia_integration.module.botania.render.InfinityManaPoolBlockEntityRender; -import committee.nova.mods.avaritia_integration.module.botania.render.InfinityTinyPotatoBlockEntityRender; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; -import net.minecraft.client.renderer.entity.EntityRenderers; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.DispenserBlock; -import net.minecraft.world.level.block.FlowerPotBlock; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; -import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; -import vazkii.botania.api.BotaniaForgeCapabilities; -import vazkii.botania.api.BotaniaForgeClientCapabilities; -import vazkii.botania.api.block_entity.BindableSpecialFlowerBlockEntity; -import vazkii.botania.client.render.block_entity.SpecialFlowerBlockEntityRenderer; - -@ModuleEntry(id = BotaniaModule.MOD_ID, target = @ModMeta(BotaniaModule.MOD_ID)) -public final class BotaniaModule implements Module { - public static final String MOD_ID = "botania"; - - @Override - public void init(IEventBus registryBus) { - BotaniaIntegrationBlocks.REGISTRY.register(registryBus); - BotaniaIntegrationBlockEntities.REGISTRY.register(registryBus); - BotaniaIntegrationEntities.REGISTRY.register(registryBus); - BotaniaIntegrationItems.REGISTRY.register(registryBus); - } - - @Override - public void process() { - ((FlowerPotBlock) Blocks.FLOWER_POT).addPlant(BotaniaIntegrationBlocks.ASGARD_DANDELION.getId(), BotaniaIntegrationBlocks.POTTED_ASGARD_DANDELION); - ((FlowerPotBlock) Blocks.FLOWER_POT).addPlant(BotaniaIntegrationBlocks.SOARLEANDER.getId(), BotaniaIntegrationBlocks.POTTED_SOARLEANDER); - } - - @Override - public void registerEvent(IEventBus modBus, IEventBus gameBus) { - modBus.addListener(BotaniaModule::addDispenserBehaviours); - modBus.addListener(BotaniaModule::registerCapabilities); - } - - public static void addDispenserBehaviours(FMLCommonSetupEvent event) { - event.enqueueWork(() -> { - DispenserBlock.registerBehavior(BotaniaIntegrationItems.ALPHA_SPARK.get(), new AlphaSparkBehavior()); - }); - } - - - public static void registerCapabilities(RegisterCapabilitiesEvent e) { - e.registerBlockEntity( - BotaniaForgeCapabilities.MANA_RECEIVER, - BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), - (be, direction) -> be - ); - e.registerBlockEntity( - BotaniaForgeCapabilities.WANDABLE, - BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), - (be, direction) -> be - ); - e.registerBlockEntity( - BotaniaForgeCapabilities.SPARK_ATTACHABLE, - BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), - (be, direction) -> be - ); - } - - @Override - public void processClient() { - EntityRenderers.register(BotaniaIntegrationEntities.ALPHA_SPARK_ENTITIES.get(), AlphaSparkRender::new); - BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.ASGARD_DANDELION.get(), SpecialFlowerBlockEntityRenderer::new); - BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.SOARLEANDER.get(), SpecialFlowerBlockEntityRenderer::new); - BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.INFINITY_TINY_POTATO.get(), InfinityTinyPotatoBlockEntityRender::new); - BlockEntityRenderers.register(BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), InfinityManaPoolBlockEntityRender::new); - ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.ASGARD_DANDELION.get(), RenderType.cutout()); - ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.ASGARD_DANDELION_FLOATING.get(), RenderType.cutout()); - ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.SOARLEANDER.get(), RenderType.cutout()); - ItemBlockRenderTypes.setRenderLayer(BotaniaIntegrationBlocks.SOARLEANDER_FLOATING.get(), RenderType.cutout()); - } - - @Override - public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { - modBus.addListener(BotaniaModule::registerBlockEntityClientCapability); - modBus.addListener(BotaniaModule::registerEntityClientCapabilities); - } - - public static void registerBlockEntityClientCapability(RegisterCapabilitiesEvent e) { - e.registerBlockEntity( - BotaniaForgeClientCapabilities.BLOCK_WAND_HUD, - BotaniaIntegrationBlockEntities.ASGARD_DANDELION.get(), - (be, unused) -> new BindableSpecialFlowerBlockEntity.BindableFlowerWandHud<>(be) - ); - e.registerBlockEntity( - BotaniaForgeClientCapabilities.BLOCK_WAND_HUD, - BotaniaIntegrationBlockEntities.SOARLEANDER.get(), - (be, unused) -> new BindableSpecialFlowerBlockEntity.BindableFlowerWandHud<>(be) - ); - e.registerBlockEntity( - BotaniaForgeClientCapabilities.BLOCK_WAND_HUD, - BotaniaIntegrationBlockEntities.INFINITY_MANA_POOL.get(), - (be, unused) -> new InfinityManaPoolBlockEntity.WandHud(be) - ); - } - - private static void registerEntityClientCapabilities(RegisterCapabilitiesEvent e) { - e.registerEntity( - BotaniaForgeClientCapabilities.ENTITY_WAND_HUD, - BotaniaIntegrationEntities.ALPHA_SPARK_ENTITIES.get(), - (entity, unused) -> new AlphaSparkEntity.WandHud(entity) - ); - } - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - output.accept(BotaniaIntegrationBlocks.ASGARD_DANDELION.get()); - output.accept(BotaniaIntegrationBlocks.ASGARD_DANDELION_FLOATING.get()); - - output.accept(BotaniaIntegrationBlocks.SOARLEANDER.get()); - output.accept(BotaniaIntegrationBlocks.SOARLEANDER_FLOATING.get()); - - output.accept(BotaniaIntegrationBlocks.INFINITY_MANA_POOL.get()); - output.accept(BotaniaIntegrationBlocks.INFINITY_POTATO.get()); - output.accept(BotaniaIntegrationItems.ALPHA_SPARK.get()); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/AsgardDandelionBlock.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/AsgardDandelionBlock.java deleted file mode 100644 index 29198b7e..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/AsgardDandelionBlock.java +++ /dev/null @@ -1,35 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.block; - -import committee.nova.mods.avaritia_integration.module.botania.entity.AsgardDandelionBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.world.effect.MobEffect; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import vazkii.botania.api.block_entity.SpecialFlowerBlockEntity; -import vazkii.botania.common.block.BotaniaBlock; -import vazkii.botania.common.block.flower.SpecialFlowerBlock; - -import java.util.function.Supplier; - -public class AsgardDandelionBlock extends SpecialFlowerBlock { - public AsgardDandelionBlock(Holder stewEffect, int stewDuration, Properties props, Supplier> blockEntityType) { - super(stewEffect, stewDuration, props, blockEntityType); - } - - @Override - public @Nullable BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return new AsgardDandelionBlockEntity(pos, state); - } - - @Override - public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - return BotaniaBlock.createTickerHelper(type, BotaniaIntegrationBlockEntities.ASGARD_DANDELION.get(), AsgardDandelionBlockEntity::commonTick); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/InfinityTinyPotatoBlock.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/InfinityTinyPotatoBlock.java deleted file mode 100644 index 94c36d50..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/InfinityTinyPotatoBlock.java +++ /dev/null @@ -1,145 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.block; - -import committee.nova.mods.avaritia_integration.module.botania.entity.InfinityTinyPotatoBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.component.DataComponents; -import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.util.RandomSource; -import net.minecraft.world.Containers; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.*; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import vazkii.botania.common.block.BotaniaBlocks; -import vazkii.botania.common.block.BotaniaWaterloggedBlock; -import vazkii.botania.common.block.block_entity.SimpleInventoryBlockEntity; -import vazkii.botania.common.block.block_entity.TinyPotatoBlockEntity; - - -public class InfinityTinyPotatoBlock extends BotaniaWaterloggedBlock implements EntityBlock { - private static final VoxelShape SHAPE = box(4.0, 0.0, 4.0, 12.0, 12.0, 12.0); - - public InfinityTinyPotatoBlock() { - super(Properties.ofFullCopy(BotaniaBlocks.tinyPotato)); - this.registerDefaultState(this.defaultBlockState().setValue(BlockStateProperties.HORIZONTAL_FACING, Direction.SOUTH)); - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder builder) { - super.createBlockStateDefinition(builder); - builder.add(BlockStateProperties.HORIZONTAL_FACING); - } - - @Override - public boolean hasAnalogOutputSignal(@NotNull BlockState state) { - return true; - } - - @Override - public int getAnalogOutputSignal(@NotNull BlockState state, Level level, @NotNull BlockPos pos) { - BlockEntity var5 = level.getBlockEntity(pos); - if (var5 instanceof TinyPotatoBlockEntity tater) { - return AbstractContainerMenu.getRedstoneSignalFromContainer(tater); - } else { - return 0; - } - } - - @Override - public void onRemove(@NotNull BlockState state, @NotNull Level world, @NotNull BlockPos pos, @NotNull BlockState newState, boolean isMoving) { - if (!state.is(newState.getBlock())) { - BlockEntity be = world.getBlockEntity(pos); - if (be instanceof SimpleInventoryBlockEntity inventory) { - Containers.dropContents(world, pos, inventory.getItemHandler()); - world.updateNeighbourForOutputSignal(pos, this); - } - - super.onRemove(state, world, pos, newState, isMoving); - } - - } - - @Override - public @NotNull VoxelShape getShape(@NotNull BlockState state, @NotNull BlockGetter world, @NotNull BlockPos pos, @NotNull CollisionContext ctx) { - return SHAPE; - } - - @Override - protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) { - if (world.getBlockEntity(pos) instanceof InfinityTinyPotatoBlockEntity potatoTile) { - InteractionHand hand = player.getUsedItemHand(); - ItemStack heldItem = player.getItemInHand(hand); - potatoTile.interact(player, hand, heldItem, hit.getDirection()); - - //粒子和音效 - double x = pos.getX(); - double y = pos.getY(); - double z = pos.getZ(); - RandomSource rand = world.random; - for (int i = 0; i < 10; i++) - world.addParticle(ParticleTypes.HEART, x + rand.nextDouble(), y + rand.nextDouble(), z + rand.nextDouble(), 0.0D, 0.1D + rand.nextDouble(), 0.0D); -// if (heldItem.isEmpty() && player.isCrouching()) { -// world.playSound(player, pos, SoundEvents.GENERIC_EXPLODE, SoundSource.BLOCKS, 1.0f, 1.0f); -// for (int i = 0; i < 5; i++) -// world.addParticle(ParticleTypes.EXPLOSION, x + rand.nextDouble(), y + rand.nextDouble(), z + rand.nextDouble(), 0.1D, 0.1D + rand.nextDouble(), 0.1D); -// } - } - return InteractionResult.sidedSuccess(world.isClientSide()); - } - - @Override - public @NotNull BlockState getStateForPlacement(BlockPlaceContext ctx) { - return super.getStateForPlacement(ctx).setValue(BlockStateProperties.HORIZONTAL_FACING, ctx.getHorizontalDirection()); - } - - @Override - public @NotNull BlockState mirror(@NotNull BlockState state, Mirror mirror) { - return state.setValue(BlockStateProperties.HORIZONTAL_FACING, mirror.mirror(state.getValue(BlockStateProperties.HORIZONTAL_FACING))); - } - - @Override - public @NotNull BlockState rotate(@NotNull BlockState state, Rotation rot) { - return state.setValue(BlockStateProperties.HORIZONTAL_FACING, rot.rotate(state.getValue(BlockStateProperties.HORIZONTAL_FACING))); - } - - @Override - public void setPlacedBy(Level world, BlockPos pos, BlockState state, @org.jetbrains.annotations.Nullable LivingEntity living, ItemStack stack) { - if (stack.has(DataComponents.CUSTOM_NAME) && world.getBlockEntity(pos) instanceof TinyPotatoBlockEntity tater) { - tater.name = stack.getHoverName(); - } - } - - @Override - public @NotNull RenderShape getRenderShape(BlockState state) { - return RenderShape.ENTITYBLOCK_ANIMATED; - } - - @Override - public @NotNull BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return new InfinityTinyPotatoBlockEntity(pos, state); - } - - @Override - public @Nullable BlockEntityTicker getTicker(@NotNull Level level, @NotNull BlockState state, @NotNull BlockEntityType type) { - return createTickerHelper(type, BotaniaIntegrationBlockEntities.INFINITY_TINY_POTATO.get(), InfinityTinyPotatoBlockEntity::commonTick); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/SoarleanderBlock.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/SoarleanderBlock.java deleted file mode 100644 index 888ce919..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/block/SoarleanderBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.block; - -import committee.nova.mods.avaritia_integration.module.botania.entity.SoarleanderBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.registry.BotaniaIntegrationBlockEntities; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.world.effect.MobEffect; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import vazkii.botania.api.block_entity.SpecialFlowerBlockEntity; -import vazkii.botania.common.block.BotaniaBlock; -import vazkii.botania.common.block.flower.SpecialFlowerBlock; - -import java.util.function.Supplier; - -public class SoarleanderBlock extends SpecialFlowerBlock { - public SoarleanderBlock(Holder stewEffect, int stewDuration, BlockBehaviour.Properties props, Supplier> blockEntityType) { - super(stewEffect, stewDuration, props, blockEntityType); - } - - @Override - public @Nullable BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return new SoarleanderBlockEntity(pos, state); - } - - @Override - public @Nullable BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { - return BotaniaBlock.createTickerHelper(type, BotaniaIntegrationBlockEntities.SOARLEANDER.get(), SoarleanderBlockEntity::commonTick); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationBlockEntities.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationBlockEntities.java deleted file mode 100644 index a8cc9ef1..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationBlockEntities.java +++ /dev/null @@ -1,51 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.botania.entity.AsgardDandelionBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.entity.InfinityManaPoolBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.entity.InfinityTinyPotatoBlockEntity; -import committee.nova.mods.avaritia_integration.module.botania.entity.SoarleanderBlockEntity; -import net.minecraft.core.registries.Registries; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.function.Supplier; - -public final class BotaniaIntegrationBlockEntities { - public static final DeferredRegister> REGISTRY = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, AvaritiaIntegration.MOD_ID); - - public static final DeferredHolder, BlockEntityType> ASGARD_DANDELION = register( - "asgard_dandelion", - () -> BlockEntityType.Builder.of( - AsgardDandelionBlockEntity::new, - BotaniaIntegrationBlocks.ASGARD_DANDELION.get(), BotaniaIntegrationBlocks.ASGARD_DANDELION_FLOATING.get() - ).build(null) - ); - public static final DeferredHolder, BlockEntityType> SOARLEANDER = register( - "soarleander", - () -> BlockEntityType.Builder.of( - SoarleanderBlockEntity::new, - BotaniaIntegrationBlocks.SOARLEANDER.get(), BotaniaIntegrationBlocks.SOARLEANDER_FLOATING.get() - ).build(null) - ); - public static final DeferredHolder, BlockEntityType> INFINITY_MANA_POOL = register( - "infinity_mana_pool", - () -> BlockEntityType.Builder.of( - InfinityManaPoolBlockEntity::new, - BotaniaIntegrationBlocks.INFINITY_MANA_POOL.get() - ).build(null) - ); - public static final DeferredHolder, BlockEntityType> INFINITY_TINY_POTATO = register( - "infinity_tiny_potato", - () -> BlockEntityType.Builder.of( - InfinityTinyPotatoBlockEntity::new, - BotaniaIntegrationBlocks.INFINITY_POTATO.get() - ).build(null) - ); - - private static DeferredHolder, BlockEntityType> register(String id, Supplier> obj) { - return REGISTRY.register(id, obj); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationBlocks.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationBlocks.java deleted file mode 100644 index 0cb67b7f..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationBlocks.java +++ /dev/null @@ -1,72 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.registry; - -import committee.nova.mods.avaritia.init.registry.ModRarities; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.botania.block.AsgardDandelionBlock; -import committee.nova.mods.avaritia_integration.module.botania.block.InfinityManaPoolBlock; -import committee.nova.mods.avaritia_integration.module.botania.block.InfinityTinyPotatoBlock; -import committee.nova.mods.avaritia_integration.module.botania.block.SoarleanderBlock; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.FlowerPotBlock; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.PushReaction; -import net.neoforged.neoforge.registries.DeferredBlock; -import net.neoforged.neoforge.registries.DeferredRegister; -import vazkii.botania.common.block.BotaniaBlocks; -import vazkii.botania.common.block.flower.FloatingSpecialFlowerBlock; - -import java.util.function.Function; -import java.util.function.Supplier; - -public final class BotaniaIntegrationBlocks { - public static final DeferredRegister.Blocks REGISTRY = DeferredRegister.createBlocks(AvaritiaIntegration.MOD_ID); - - public static final DeferredBlock ASGARD_DANDELION = register("asgard_dandelion", - () -> new AsgardDandelionBlock(MobEffects.HUNGER, 0, BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY), BotaniaIntegrationBlockEntities.ASGARD_DANDELION::get)); - public static final DeferredBlock ASGARD_DANDELION_FLOATING = register("asgard_dandelion_floating", - () -> new FloatingSpecialFlowerBlock(BotaniaBlocks.FLOATING_PROPS, BotaniaIntegrationBlockEntities.ASGARD_DANDELION::get)); - public static final DeferredBlock POTTED_ASGARD_DANDELION = register("potted_asgard_dandelion", false, - () -> flowerPot(ASGARD_DANDELION.get(), 15)); - public static final DeferredBlock SOARLEANDER = register("soarleander", - () -> new SoarleanderBlock(MobEffects.WITHER, 1, BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY).lightLevel(level -> 5), BotaniaIntegrationBlockEntities.SOARLEANDER::get)); - public static final DeferredBlock SOARLEANDER_FLOATING = register("soarleander_floating", - () -> new FloatingSpecialFlowerBlock(BotaniaBlocks.FLOATING_PROPS.lightLevel(level -> 5), BotaniaIntegrationBlockEntities.SOARLEANDER::get)); - public static final DeferredBlock POTTED_SOARLEANDER = register("potted_soarleander", false, - () -> flowerPot(SOARLEANDER.get(), 5)); - public static final DeferredBlock INFINITY_MANA_POOL = register("infinity_mana_pool", - () -> new InfinityManaPoolBlock(BlockBehaviour.Properties.ofFullCopy(BotaniaBlocks.livingrock).lightLevel(level -> 15)), new Item.Properties().rarity(ModRarities.COSMIC.getValue())); - public static final DeferredBlock INFINITY_POTATO = register("infinity_potato", - InfinityTinyPotatoBlock::new); - - private static DeferredBlock register(String id, Supplier obj) { - return register(id, obj, true, b -> new BlockItem(b, new Item.Properties())); - } - - private static DeferredBlock register(String id, boolean hasItem, Supplier obj) { - return register(id, obj, hasItem, b -> new BlockItem(b, new Item.Properties())); - } - - private static DeferredBlock register(String id, Supplier obj, Item.Properties properties) { - return register(id, obj, true, b -> new BlockItem(b, properties)); - } - - private static DeferredBlock register(String id, Supplier obj, boolean hasItem, Item.Properties properties) { - return register(id, obj, hasItem, b -> new BlockItem(b, properties)); - } - - private static DeferredBlock register(String id, Supplier obj, boolean hasItem, Function itemBuilder) { - DeferredBlock r = REGISTRY.register(id, obj); - if (hasItem) BotaniaIntegrationItems.register(id, () -> itemBuilder.apply(r.get())); - return r; - } - - static FlowerPotBlock flowerPot(Block block, int lightLevel) { - BlockBehaviour.Properties properties = BlockBehaviour.Properties.of().instabreak().noOcclusion().pushReaction(PushReaction.DESTROY); - return new FlowerPotBlock(block, lightLevel > 0 ? properties.lightLevel((blockState) -> lightLevel) : properties); - } - -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationEntities.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationEntities.java deleted file mode 100644 index 6b75e679..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationEntities.java +++ /dev/null @@ -1,32 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.botania.entity.AlphaSparkEntity; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.MobCategory; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.function.Supplier; - -public final class BotaniaIntegrationEntities { - public static final DeferredRegister> REGISTRY = DeferredRegister.create(Registries.ENTITY_TYPE, AvaritiaIntegration.MOD_ID); - - public static final DeferredHolder, EntityType> ALPHA_SPARK_ENTITIES = register( - "alpha_spark", - () -> EntityType.Builder.of(AlphaSparkEntity::new, MobCategory.MISC) - .sized(0.2F, 0.5F) - .fireImmune() - .clientTrackingRange(4) - .updateInterval(10) - .build(ResourceLocation.tryBuild(AvaritiaIntegration.MOD_ID, "alpha_spark").toString()) - ); - - - private static DeferredHolder, EntityType> register(String id, Supplier> obj) { - return REGISTRY.register(id, obj); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationItems.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationItems.java deleted file mode 100644 index d3e1ef40..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/registry/BotaniaIntegrationItems.java +++ /dev/null @@ -1,22 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.botania.item.AlphaSparkItem; -import net.minecraft.world.item.Item; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.function.Supplier; - -public final class BotaniaIntegrationItems { - public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - - public static final DeferredItem ALPHA_SPARK = register( - "alpha_spark", - () -> new AlphaSparkItem(new Item.Properties()) - ); - - public static DeferredItem register(String id, Supplier obj) { - return REGISTRY.register(id, obj); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/AlphaSparkRender.java b/src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/AlphaSparkRender.java deleted file mode 100644 index 03acec25..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/botania/render/AlphaSparkRender.java +++ /dev/null @@ -1,42 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.botania.render; - -import committee.nova.mods.avaritia_integration.module.botania.entity.AlphaSparkEntity; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.inventory.InventoryMenu; -import vazkii.botania.client.render.entity.BaseSparkRenderer; - -import java.util.Objects; - -/** - * @author cnlimiter - */ -public class AlphaSparkRender extends BaseSparkRenderer { - private final TextureAtlasSprite dispersiveIcon; - private final TextureAtlasSprite dominantIcon; - private final TextureAtlasSprite recessiveIcon; - private final TextureAtlasSprite isolatedIcon; - - public AlphaSparkRender(EntityRendererProvider.Context ctx) { - super(ctx); - var atlas = Minecraft.getInstance().getTextureAtlas(InventoryMenu.BLOCK_ATLAS); - this.dispersiveIcon = Objects.requireNonNull(atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_dispersive"))); - this.dominantIcon = Objects.requireNonNull(atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_dominant"))); - this.recessiveIcon = Objects.requireNonNull(atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_recessive"))); - this.isolatedIcon = Objects.requireNonNull(atlas.apply(ResourceLocation.fromNamespaceAndPath("botania", "item/spark_upgrade_rune_isolated"))); - } - - @Override - public TextureAtlasSprite getSpinningIcon(AlphaSparkEntity entity) { - return switch (entity.getUpgrade()) { - case NONE -> null; - case DISPERSIVE -> this.dispersiveIcon; - case DOMINANT -> this.dominantIcon; - case RECESSIVE -> this.recessiveIcon; - case ISOLATED -> this.isolatedIcon; - }; - } - -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/create/CreateModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/create/CreateModule.java deleted file mode 100644 index 37e2b373..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/create/CreateModule.java +++ /dev/null @@ -1,24 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.create; - -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.create.registry.CreateIntegrationItems; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; - -@ModuleEntry(id = CreateModule.MOD_ID, target = @ModMeta(CreateModule.MOD_ID)) -public final class CreateModule implements Module { - public static final String MOD_ID = "create"; - - @Override - public void init(IEventBus registryBus) { - CreateIntegrationItems.REGISTRY.register(registryBus); - } - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - output.accept(CreateIntegrationItems.CREATIVE_MECHANISM.get()); - output.accept(CreateIntegrationItems.CREATIVE_COMPOUND.get()); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/create/registry/CreateIntegrationItems.java b/src/main/java/committee/nova/mods/avaritia_integration/module/create/registry/CreateIntegrationItems.java deleted file mode 100644 index 12cad9ca..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/create/registry/CreateIntegrationItems.java +++ /dev/null @@ -1,22 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.create.registry; - -import committee.nova.mods.avaritia.api.common.item.BaseItem; -import committee.nova.mods.avaritia.init.registry.ModRarities; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.core.registries.Registries; -import net.minecraft.world.item.Item; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.function.Supplier; - -public final class CreateIntegrationItems { - public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - - public static final DeferredItem CREATIVE_MECHANISM = register("creative_mechanism", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem CREATIVE_COMPOUND = register("creative_compound", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - - public static DeferredItem register(String id, Supplier obj) { - return REGISTRY.register(id, obj); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/EnderIOModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/EnderIOModule.java deleted file mode 100644 index 7426a2d8..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/EnderIOModule.java +++ /dev/null @@ -1,25 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.enderio; - -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.enderio.registry.EnderIOIntegrationItems; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; - -@ModuleEntry(id = EnderIOModule.MOD_ID, target = @ModMeta(EnderIOModule.MOD_ID)) -public final class EnderIOModule implements Module { - public static final String MOD_ID = "enderio"; - - @Override - public void init(IEventBus registryBus) { - EnderIOIntegrationItems.REGISTRY.register(registryBus); - } - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - output.accept(EnderIOIntegrationItems.INFINITY_CAPACITOR.get()); - output.accept(EnderIOIntegrationItems.INFINITY_GRINDING_BALL.get()); - output.accept(EnderIOIntegrationItems.NEUTRON_GRINDING_BALL.get()); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/registry/EnderIOIntegrationItems.java b/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/registry/EnderIOIntegrationItems.java deleted file mode 100644 index 7c4e1065..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/enderio/registry/EnderIOIntegrationItems.java +++ /dev/null @@ -1,26 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.enderio.registry; - -import com.enderio.enderio.api.capacitor.CapacitorData; -import com.enderio.enderio.init.EIODataComponents; -import committee.nova.mods.avaritia.Const; -import committee.nova.mods.avaritia.api.common.item.BaseItem; -import committee.nova.mods.avaritia.init.registry.ModRarities; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.enderio.item.InfinityCapacitorItem; -import net.minecraft.world.item.Item; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.function.Supplier; - -public final class EnderIOIntegrationItems { - public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - - public static final DeferredItem INFINITY_CAPACITOR = register("infinity_capacitor", () -> new InfinityCapacitorItem( new Item.Properties().rarity(ModRarities.EPIC).component(EIODataComponents.CAPACITOR_DATA, CapacitorData.simple(9.999999046325684F)))); - public static final DeferredItem INFINITY_GRINDING_BALL = register("infinity_grinding_ball", () -> new BaseItem(pro -> pro.rarity(ModRarities.EPIC))); - public static final DeferredItem NEUTRON_GRINDING_BALL = register("neutron_grinding_ball", () -> new BaseItem(pro -> pro.rarity(ModRarities.RARE))); - - public static DeferredItem register(String id, Supplier obj) { - return REGISTRY.register(id, obj); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ifeu/IFEUModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ifeu/IFEUModule.java deleted file mode 100644 index 49f55775..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ifeu/IFEUModule.java +++ /dev/null @@ -1,26 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.ifeu; - -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.ifeu.rregistry.IFEUIntegrationItems; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; - -@ModuleEntry(id = IFEUModule.MOD_ID, target = @ModMeta(IFEUModule.MOD_ID)) -public class IFEUModule implements Module { - public static final String MOD_ID = "ifeu"; - - @Override - public void init(IEventBus registryBus) { - IFEUIntegrationItems.ITEMS.register(registryBus); - } - - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - IFEUIntegrationItems.ITEMS.getEntries().forEach(itemDeferredHolder -> { - output.accept(itemDeferredHolder.get()); - }); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/ifeu/rregistry/IFEUIntegrationItems.java b/src/main/java/committee/nova/mods/avaritia_integration/module/ifeu/rregistry/IFEUIntegrationItems.java deleted file mode 100644 index 0d9ed17d..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/ifeu/rregistry/IFEUIntegrationItems.java +++ /dev/null @@ -1,120 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.ifeu.rregistry; - -import com.buuz135.industrial.module.ModuleCore; -import com.buuz135.industrial.recipe.DissolutionChamberRecipe; -import com.buuz135.industrial.utils.IndustrialTags; -import com.google.common.base.Supplier; -import committee.nova.mods.avaritia.init.registry.ModItems; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.init.registry.AIItems; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.registry.IndustrialForegoingIntegrationFluids; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.level.material.Fluid; -import net.neoforged.neoforge.common.Tags; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.yxiao233.ifeu.api.item.EnergyAddonItem; -import net.yxiao233.ifeu.common.registry.IFEUItems; - -import java.util.List; -import java.util.Optional; - -public class IFEUIntegrationItems { - public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - public static DeferredHolder ENERGY_ADDON_BLAZE_CUBE = ITEMS.register("energy_addon_blaze_cube", () -> new EnergyAddonItem(7, IFEUItems.TAB_ADDONS){ - @Override - public void registerRecipe(RecipeOutput recipeOutput) { - dissolutionChamberRecipe(this.getDefaultInstance(), List.of( - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(IndustrialTags.Items.PLASTIC), - tagValue(IndustrialTags.Items.PLASTIC), - itemValue(AIItems.BLAZE_CUBE_GEAR.get().getDefaultInstance()), - itemValue(AIItems.BLAZE_CUBE_GEAR.get().getDefaultInstance()) - ), new FluidStack(ModuleCore.ETHER.getSourceFluid(),1000),100,recipeOutput); - } - }); - public static DeferredHolder ENERGY_ADDON_CRYSTAL_MATRIX = ITEMS.register("energy_addon_crystal_matrix", () -> new EnergyAddonItem(8, IFEUItems.TAB_ADDONS){ - @Override - public void registerRecipe(RecipeOutput recipeOutput) { - dissolutionChamberRecipe(this.getDefaultInstance(), List.of( - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(IndustrialTags.Items.PLASTIC), - tagValue(IndustrialTags.Items.PLASTIC), - itemValue(AIItems.CRYSTAL_MATRIX_GEAR.get().getDefaultInstance()), - itemValue(AIItems.CRYSTAL_MATRIX_GEAR.get().getDefaultInstance()) - ), new FluidStack(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid(),1000),200,recipeOutput); - } - }); - public static DeferredHolder ENERGY_ADDON_NEUTRON = ITEMS.register("energy_addon_neutron", () -> new EnergyAddonItem(9, IFEUItems.TAB_ADDONS){ - @Override - public void registerRecipe(RecipeOutput recipeOutput) { - dissolutionChamberRecipe(this.getDefaultInstance(), List.of( - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(IndustrialTags.Items.PLASTIC), - tagValue(IndustrialTags.Items.PLASTIC), - itemValue(ModItems.neutron_gear.get().getDefaultInstance()), - itemValue(ModItems.neutron_gear.get().getDefaultInstance()) - ), new FluidStack(IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid(),1000),300,recipeOutput); - } - }); - public static DeferredHolder ENERGY_ADDON_INFINITY = ITEMS.register("energy_addon_infinity", () -> new EnergyAddonItem(10, IFEUItems.TAB_ADDONS){ - @Override - public void registerRecipe(RecipeOutput recipeOutput) { - dissolutionChamberRecipe(this.getDefaultInstance(), List.of( - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(IndustrialTags.Items.PLASTIC), - tagValue(IndustrialTags.Items.PLASTIC), - itemValue(AIItems.INFINITY_GEAR.get().getDefaultInstance()), - itemValue(AIItems.INFINITY_GEAR.get().getDefaultInstance()) - ), new FluidStack(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid(),2000),400,recipeOutput); - } - }); - public static DeferredHolder registerEnergyAddon(String prefix, DeferredHolder input, Supplier> fluid, int amount, int processingTime) { - return ITEMS.register("energy_addon_" + prefix, () -> new EnergyAddonItem(7, ModuleCore.TAB_CORE){ - @Override - public void registerRecipe(RecipeOutput recipeOutput) { - dissolutionChamberRecipe(this.getDefaultInstance(), List.of( - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.STORAGE_BLOCKS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(Tags.Items.GLASS_PANES_COLORLESS), - tagValue(IndustrialTags.Items.PLASTIC), - tagValue(IndustrialTags.Items.PLASTIC), - itemValue(input.get().getDefaultInstance()), - itemValue(input.get().getDefaultInstance()) - ), new FluidStack(fluid.get(),amount),processingTime,recipeOutput); - } - }); - } - - private static void dissolutionChamberRecipe(ItemStack result, List inputs, FluidStack inputFluid, int processingTime, RecipeOutput output){ - var recipe = new DissolutionChamberRecipe(inputs, inputFluid, processingTime, Optional.of(result), Optional.empty()); - DissolutionChamberRecipe.createRecipe(output, BuiltInRegistries.ITEM.getKey(result.getItem()).getPath(),recipe); - } - - private static Ingredient tagValue(TagKey tagKey){ - return Ingredient.of(tagKey); - } - - private static Ingredient itemValue(ItemStack stack){ - return Ingredient.of(stack); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/IndustrialForegoingModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/IndustrialForegoingModule.java deleted file mode 100644 index d82ee942..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/IndustrialForegoingModule.java +++ /dev/null @@ -1,51 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing; - -import com.buuz135.industrial.item.addon.ProcessingAddonItem; -import com.hrznstudio.titanium.api.augment.AugmentTypes; -import com.hrznstudio.titanium.item.AugmentWrapper; -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.item.ModEfficiencyAddonItem; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.item.ModProcessingAddonItem; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.item.ModSpeedAddonItem; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.registry.IndustrialForegoingIntegrationBlocks; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.registry.IndustrialForegoingIntegrationFluids; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.registry.IndustrialForegoingIntegrationItems; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.ItemLike; -import net.neoforged.bus.api.IEventBus; - -@ModuleEntry(id = IndustrialForegoingModule.MOD_ID, target = @ModMeta(IndustrialForegoingModule.MOD_ID)) -public final class IndustrialForegoingModule implements Module { - public static final String MOD_ID = "industrialforegoing"; - @Override - public void init(IEventBus registryBus) { - IndustrialForegoingIntegrationItems.ITEMS.register(registryBus); - IndustrialForegoingIntegrationBlocks.BLOCKS.register(registryBus); - IndustrialForegoingIntegrationFluids.FLUIDS.register(registryBus); - IndustrialForegoingIntegrationFluids.FLUID_TYPES.register(registryBus); - } - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - IndustrialForegoingIntegrationItems.ADDONS.forEach((materialName, obj) ->{ - if(obj.get() instanceof ModSpeedAddonItem speedAddonItem){ - ItemStack stack = new ItemStack(speedAddonItem); - AugmentWrapper.setType(stack, AugmentTypes.SPEED, (float)(1 + speedAddonItem.getTier())); - output.accept(stack); - }else if(obj.get() instanceof ModProcessingAddonItem processingAddonItem){ - ItemStack stack = new ItemStack(processingAddonItem); - AugmentWrapper.setType(stack, ProcessingAddonItem.PROCESSING, (float)(1 + processingAddonItem.getTier())); - output.accept(stack); - }else if(obj.get() instanceof ModEfficiencyAddonItem efficiencyAddonItem){ - ItemStack stack = new ItemStack(efficiencyAddonItem); - AugmentWrapper.setType(stack, AugmentTypes.EFFICIENCY, 1.0F - (float)efficiencyAddonItem.getTier() * 0.1F); - output.accept(stack); - } - }); - output.accept(IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getBucketFluid()); - output.accept(IndustrialForegoingIntegrationFluids.VOID_MATTER.getBucketFluid()); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/fluid/IFBaseFluidInstance.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/fluid/IFBaseFluidInstance.java deleted file mode 100644 index 2ab974e9..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/fluid/IFBaseFluidInstance.java +++ /dev/null @@ -1,147 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.fluid; - -import net.minecraft.world.item.BucketItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.LiquidBlock; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.material.*; -import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; -import net.neoforged.neoforge.fluids.FluidType; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; -import org.jetbrains.annotations.NotNull; - -import javax.annotation.Nonnull; -import java.util.function.Consumer; -import java.util.function.Supplier; - -public class IFBaseFluidInstance { - - private final DeferredHolder fluidType; - private final DeferredHolder flowingFluid; - private final DeferredHolder sourceFluid; - private final DeferredHolder bucketFluid; - private final DeferredHolder blockFluid; - - private final String fluidName; - - public IFBaseFluidInstance( - DeferredRegister itemRegister, - DeferredRegister blockRegister, - DeferredRegister fluidRegister, - DeferredRegister fluidTypeRegister, - String name, - FluidType.Properties fluidTypeProperties, - IClientFluidTypeExtensions renderProperties - ) { - this.fluidName = name; - - this.fluidType = fluidTypeRegister.register(name, () -> - new FluidType(fluidTypeProperties) { - @Override - @SuppressWarnings("removal") - public void initializeClient(@NotNull Consumer consumer) { - consumer.accept(renderProperties); - } - }); - - this.sourceFluid = fluidRegister.register(name + "_source", - () -> new Source(this)); - - this.flowingFluid = fluidRegister.register(name + "_flowing", - () -> new Flowing(this)); - - this.blockFluid = blockRegister.register(name, - () -> new LiquidBlock( - (FlowingFluid) sourceFluid.get(), - BlockBehaviour.Properties.of() - .replaceable() - .noCollission() - .strength(100f) - .pushReaction(PushReaction.DESTROY) - .liquid().sound(SoundType.EMPTY) - .noLootTable() - )); - - this.bucketFluid = itemRegister.register(name + "_bucket", - () -> new BucketItem( - sourceFluid.get(), - new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1) - )); - - } - - public DeferredHolder getFluidType() { - return fluidType; - } - - public DeferredHolder getFlowingFluid() { - return flowingFluid; - } - - public DeferredHolder getSourceFluid() { - return sourceFluid; - } - - - public Item getBucketFluid() { - return bucketFluid.get(); - } - - public Block getBlockFluid() { - return blockFluid.get(); - } - - public String getFluidName() { - return fluidName; - } - - - public static class Source extends IFBaseFluid { - public Source(IFBaseFluidInstance instance) { - super(instance); - } - - @Override - public int getAmount(@NotNull FluidState state) { - return 8; - } - - @Override - public boolean isSource(@NotNull FluidState state) { - return true; - } - } - - - public static class Flowing extends IFBaseFluid { - - public Flowing(IFBaseFluidInstance instance) { - super(instance); - this.registerDefaultState( - this.getStateDefinition().any().setValue(LEVEL, 7) - ); - } - - @Override - protected void createFluidStateDefinition( - StateDefinition.Builder builder) { - super.createFluidStateDefinition(builder); - builder.add(LEVEL); - } - - @Override - public int getAmount(@NotNull FluidState state) { - return state.getValue(LEVEL); - } - - @Override - public boolean isSource(@NotNull FluidState state) { - return false; - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/AddonInfo.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/AddonInfo.java deleted file mode 100644 index 74be9f0c..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/AddonInfo.java +++ /dev/null @@ -1,116 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.item; - -import com.buuz135.industrial.item.addon.ProcessingAddonItem; -import com.buuz135.industrial.recipe.DissolutionChamberRecipe; -import com.hrznstudio.titanium.api.augment.AugmentTypes; -import com.hrznstudio.titanium.api.augment.IAugmentType; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.network.chat.Component; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.level.material.Fluid; -import net.neoforged.neoforge.common.Tags; -import net.neoforged.neoforge.fluids.FluidStack; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.*; -import java.util.function.Supplier; - -public class AddonInfo { - private final int tier; - private final String materialName; - private final Supplier gear; - private final Supplier fluid; - private final int amount; - private final int processingTime; - private AddonInfo(int tier, Supplier gear, Supplier fluid, int amount, int processingTime, String materialName){ - this.tier = tier; - this.materialName = materialName; - this.gear = gear; - this.fluid = fluid; - this.amount = amount; - this.processingTime = processingTime; - } - - public static AddonInfo create(int tier, Supplier gear, Supplier fluid, int amount, int processingTime, String materialName){ - return new AddonInfo(tier,gear,fluid,amount,processingTime,materialName); - } - - public void registry(HashMap> map, DeferredRegister register){ - String speed = getId(AugmentTypes.SPEED); - String efficiency = getId(AugmentTypes.EFFICIENCY); - String processing = getId(ProcessingAddonItem.PROCESSING); - map.put(speed,register.register(speed,() -> new ModSpeedAddonItem(tier, Component.translatable(getDescription())){ - @Override - public void registerRecipe(RecipeOutput consumer) { - dissolutionChamberRecipe(this.getDefaultInstance(),List.of( - tagValue(Tags.Items.DUSTS_REDSTONE), - tagValue(Tags.Items.DUSTS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES), - tagValue(Tags.Items.GLASS_PANES), - itemValue(gear.get().getDefaultInstance()), - itemValue(gear.get().getDefaultInstance()), - itemValue(Items.SUGAR.getDefaultInstance()), - itemValue(Items.SUGAR.getDefaultInstance()) - ), new FluidStack(fluid.get(),amount),processingTime,consumer); - } - })); - map.put(efficiency,register.register(efficiency,() -> new ModEfficiencyAddonItem(tier, Component.translatable(getDescription())){ - @Override - public void registerRecipe(RecipeOutput consumer) { - dissolutionChamberRecipe(this.getDefaultInstance(),List.of( - tagValue(Tags.Items.DUSTS_REDSTONE), - tagValue(Tags.Items.DUSTS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES), - tagValue(Tags.Items.GLASS_PANES), - itemValue(gear.get().getDefaultInstance()), - itemValue(gear.get().getDefaultInstance()), - tagValue(Tags.Items.RODS_BLAZE), - tagValue(Tags.Items.RODS_BLAZE) - ), new FluidStack(fluid.get(),amount),processingTime,consumer); - } - })); - map.put(processing,register.register(processing,() -> new ModProcessingAddonItem(tier, Component.translatable(getDescription())){ - @Override - public void registerRecipe(RecipeOutput consumer) { - dissolutionChamberRecipe(this.getDefaultInstance(),List.of( - tagValue(Tags.Items.DUSTS_REDSTONE), - tagValue(Tags.Items.DUSTS_REDSTONE), - tagValue(Tags.Items.GLASS_PANES), - tagValue(Tags.Items.GLASS_PANES), - itemValue(gear.get().getDefaultInstance()), - itemValue(gear.get().getDefaultInstance()), - itemValue(Items.CRAFTING_TABLE.getDefaultInstance()), - itemValue(Items.FURNACE.getDefaultInstance()) - ), new FluidStack(fluid.get(),amount),processingTime,consumer); - } - })); - } - - public String getId(IAugmentType type){ - return type.getType().toLowerCase() + "_addon_" + materialName.toLowerCase(); - } - - public String getDescription(){ - return "addon." + AvaritiaIntegration.MOD_ID + "." + materialName.toLowerCase(); - } - - - private static void dissolutionChamberRecipe(ItemStack result, List inputs, FluidStack inputFluid, int processingTime, RecipeOutput output){ - var recipe = new DissolutionChamberRecipe(inputs, inputFluid, processingTime, Optional.of(result), Optional.empty()); - DissolutionChamberRecipe.createRecipe(output, BuiltInRegistries.ITEM.getKey(result.getItem()).getPath(),recipe); - } - - private static Ingredient tagValue(TagKey tagKey){ - return Ingredient.of(tagKey); - } - - private static Ingredient itemValue(ItemStack stack){ - return Ingredient.of(stack); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModEfficiencyAddonItem.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModEfficiencyAddonItem.java deleted file mode 100644 index 245b63ca..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModEfficiencyAddonItem.java +++ /dev/null @@ -1,48 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.item; - -import com.hrznstudio.titanium.api.augment.AugmentTypes; -import com.hrznstudio.titanium.item.AugmentWrapper; -import com.hrznstudio.titanium.item.BasicItem; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public class ModEfficiencyAddonItem extends AddonItem{ - public ModEfficiencyAddonItem(int tier, Component materialName) { - super(tier,materialName); - } - - @Override - public void onCraftedBy(@NotNull ItemStack stack, @NotNull Level worldIn, @NotNull Player playerIn) { - super.onCraftedBy(stack, worldIn, playerIn); - AugmentWrapper.setType(stack, AugmentTypes.EFFICIENCY, 1.0F - (float)this.tier * 0.1F); - } - - @Override - public @NotNull String getDescriptionId() { - String addon = Component.translatable("item.industrialforegoing.addon").getString(); - return addon + Component.translatable("item.industrialforegoing.efficiency").getString() + "Tier " + materialName.getString() + " "; - } - - @Override - public boolean hasTooltipDetails(@Nullable BasicItem.Key key) { - if(key == null){ - return true; - } - return super.hasTooltipDetails(key); - } - - - @Override - public void addTooltipDetails(@Nullable BasicItem.Key key, ItemStack stack, List tooltip, boolean advanced) { - super.addTooltipDetails(key, stack, tooltip, advanced); - float reduction = tier * -10; - tooltip.add(Component.translatable("tooltip.avaritia_integration.cooldown_amount").append(": " + reduction + "%").withStyle(ChatFormatting.GRAY)); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModProcessingAddonItem.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModProcessingAddonItem.java deleted file mode 100644 index bb103266..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModProcessingAddonItem.java +++ /dev/null @@ -1,48 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.item; - -import com.buuz135.industrial.item.addon.ProcessingAddonItem; -import com.hrznstudio.titanium.item.AugmentWrapper; -import com.hrznstudio.titanium.item.BasicItem; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public class ModProcessingAddonItem extends AddonItem{ - public ModProcessingAddonItem(int tier, Component materialName) { - super(tier,materialName); - } - - @Override - public void onCraftedBy(@NotNull ItemStack stack, @NotNull Level worldIn, @NotNull Player playerIn) { - super.onCraftedBy(stack, worldIn, playerIn); - AugmentWrapper.setType(stack, ProcessingAddonItem.PROCESSING, (float)(1 + this.tier)); - } - - @Override - public @NotNull String getDescriptionId() { - String addon = Component.translatable("item.industrialforegoing.addon").getString(); - return addon + Component.translatable("item.industrialforegoing.processing").getString() + "Tier " + materialName.getString() + " "; - } - - @Override - public boolean hasTooltipDetails(@Nullable BasicItem.Key key) { - if(key == null){ - return true; - } - return super.hasTooltipDetails(key); - } - - - @Override - public void addTooltipDetails(@Nullable BasicItem.Key key, ItemStack stack, List tooltip, boolean advanced) { - super.addTooltipDetails(key, stack, tooltip, advanced); - float upgrade = 1 + tier; - tooltip.add(Component.translatable("item.industrialforegoing.processing").append("x" + upgrade).withStyle(ChatFormatting.GRAY)); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModSpeedAddonItem.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModSpeedAddonItem.java deleted file mode 100644 index ec10266f..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/item/ModSpeedAddonItem.java +++ /dev/null @@ -1,47 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.item; - -import com.hrznstudio.titanium.api.augment.AugmentTypes; -import com.hrznstudio.titanium.item.AugmentWrapper; -import com.hrznstudio.titanium.item.BasicItem; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public class ModSpeedAddonItem extends AddonItem{ - public ModSpeedAddonItem(int tier, Component materialName) { - super(tier,materialName); - } - - @Override - public void onCraftedBy(@NotNull ItemStack stack, @NotNull Level worldIn, @NotNull Player playerIn) { - super.onCraftedBy(stack, worldIn, playerIn); - AugmentWrapper.setType(stack, AugmentTypes.SPEED, (float)(1 + this.tier)); - } - - @Override - public @NotNull String getDescriptionId() { - String addon = Component.translatable("item.industrialforegoing.addon").getString(); - return addon + Component.translatable("item.industrialforegoing.speed").getString() + "Tier " + materialName.getString() + " "; - } - - @Override - public boolean hasTooltipDetails(@Nullable BasicItem.Key key) { - if(key == null){ - return true; - } - return super.hasTooltipDetails(key); - } - - @Override - public void addTooltipDetails(@Nullable BasicItem.Key key, ItemStack stack, List tooltip, boolean advanced) { - super.addTooltipDetails(key, stack, tooltip, advanced); - float reduction = (1.0F - 1.0F / (1.0F + tier)) * -100.0F; - tooltip.add(Component.translatable("tooltip.avaritia_integration.cooldown_time").append(": " + Math.ceil(reduction) + "%").withStyle(ChatFormatting.GRAY)); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationBlocks.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationBlocks.java deleted file mode 100644 index b1ba61f2..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationBlocks.java +++ /dev/null @@ -1,10 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.registry; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import net.minecraft.core.registries.Registries; -import net.minecraft.world.level.block.Block; -import net.neoforged.neoforge.registries.DeferredRegister; - -public class IndustrialForegoingIntegrationBlocks { - public static final DeferredRegister BLOCKS = DeferredRegister.create(Registries.BLOCK, AvaritiaIntegration.MOD_ID); -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationFluids.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationFluids.java deleted file mode 100644 index da2e36ec..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationFluids.java +++ /dev/null @@ -1,36 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.registry; - -import com.hrznstudio.titanium.fluid.ClientFluidTypeExtensions; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.fluid.IFBaseFluidInstance; -import net.minecraft.core.registries.Registries; -import net.minecraft.world.level.material.Fluid; -import net.neoforged.neoforge.fluids.FluidType; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.NeoForgeRegistries; - -public class IndustrialForegoingIntegrationFluids { - - public static final DeferredRegister FLUIDS = - DeferredRegister.create(Registries.FLUID, AvaritiaIntegration.MOD_ID); - - public static final DeferredRegister FLUID_TYPES = - DeferredRegister.create(NeoForgeRegistries.FLUID_TYPES, AvaritiaIntegration.MOD_ID); - - public static final IFBaseFluidInstance ELDERLY_MEDULLA = register("elderly_medulla"); - public static final IFBaseFluidInstance VOID_MATTER = register("void_matter"); - - private static IFBaseFluidInstance register(String name){ - return new IFBaseFluidInstance( - IndustrialForegoingIntegrationItems.ITEMS, - IndustrialForegoingIntegrationBlocks.BLOCKS, - FLUIDS, FLUID_TYPES, - name, - FluidType.Properties.create().density(1000), - new ClientFluidTypeExtensions( - AvaritiaIntegration.rl("block/fluids/" + name + "_still"), - AvaritiaIntegration.rl("block/fluids/" + name + "_flow") - ) - ); - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationItems.java b/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationItems.java deleted file mode 100644 index a02b5441..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/industrialforegoing/registry/IndustrialForegoingIntegrationItems.java +++ /dev/null @@ -1,32 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.industrialforegoing.registry; - -import com.buuz135.industrial.module.ModuleCore; -import committee.nova.mods.avaritia.init.registry.ModItems; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.init.registry.AIItems; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.item.AddonInfo; -import committee.nova.mods.avaritia_integration.module.industrialforegoing.item.AddonItem; -import net.minecraft.world.item.Item; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredRegister; - -import java.util.HashMap; -import java.util.function.Supplier; - -public class IndustrialForegoingIntegrationItems { - public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(AvaritiaIntegration.MOD_ID); - - public static final HashMap> ADDONS = registryAddons(); - - private static HashMap> registryAddons(){ - HashMap> map = new HashMap<>(); - AddonInfo.create(3,AIItems.BLAZE_CUBE_GEAR,() -> ModuleCore.ETHER.getSourceFluid().get(),1000,100,"blaze_cube").registry(map,ITEMS); - AddonInfo.create(5,AIItems.CRYSTAL_MATRIX_GEAR,IndustrialForegoingIntegrationFluids.ELDERLY_MEDULLA.getSourceFluid(),1000,200,"crystal_matrix").registry(map,ITEMS); - AddonInfo.create(8,ModItems.neutron_gear,IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid(),1000,300,"neutron").registry(map,ITEMS); - AddonInfo.create(12,AIItems.INFINITY_GEAR,IndustrialForegoingIntegrationFluids.VOID_MATTER.getSourceFluid(),2000,400,"infinity").registry(map,ITEMS); - return map; - } - public static DeferredItem register(String id, Supplier obj) { - return ITEMS.register(id, obj); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/MekanismModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/MekanismModule.java deleted file mode 100644 index 162ad476..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/MekanismModule.java +++ /dev/null @@ -1,68 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.mekanism.client.gui.machine.GuiMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.client.gui.machine.GuiNeutronCollector; -import committee.nova.mods.avaritia_integration.module.mekanism.client.gui.machine.GuiSingularityCompressor; -import committee.nova.mods.avaritia_integration.module.mekanism.common.network.to_server.MekIntegrationPacketGuiInteract; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.*; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationBlocks; -import mekanism.client.ClientRegistrationUtil; -import net.minecraft.core.Holder; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.CreativeModeTab.ItemDisplayParameters; -import net.minecraft.world.item.CreativeModeTab.Output; -import net.minecraft.world.item.Item; -import net.neoforged.bus.api.EventPriority; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent; -import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; - -@ModuleEntry(id = MekanismModule.MOD_ID, target = @ModMeta(MekanismModule.MOD_ID)) -public final class MekanismModule implements Module { - public static final String MOD_ID = "mekanism"; - - public static ResourceLocation rl(String path) { - return ResourceLocation.fromNamespaceAndPath(AvaritiaIntegration.MOD_ID, path); - } - - @Override - public void init(IEventBus registryBus) { - MekIntegrationItems.ITEMS.register(registryBus); - MekIntegrationBlocks.BLOCKS.register(registryBus); - MekIntegrationContainerTypes.CONTAINER_TYPES.register(registryBus); - MekIntegrationTileEntityTypes.TILE_ENTITY_TYPES.register(registryBus); - MekIntegrationChemicals.CHEMICALS.register(registryBus); - MekIntegrationRecipeSerializers.RECIPE_SERIALIZERS.register(registryBus); - registryBus.addListener(this::registerPayloads); - } - - private void registerPayloads(RegisterPayloadHandlersEvent event) { - event.registrar(AvaritiaIntegration.MOD_ID) - .playToServer(MekIntegrationPacketGuiInteract.TYPE, MekIntegrationPacketGuiInteract.STREAM_CODEC, MekIntegrationPacketGuiInteract::handle); - } - - @Override - public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { - modBus.addListener(EventPriority.LOW, this::registerScreen); - } - - private void registerScreen(RegisterMenuScreensEvent event) { - ClientRegistrationUtil.registerScreen(event, MekIntegrationContainerTypes.NEUTRON_COLLECTOR, GuiNeutronCollector::new); - ClientRegistrationUtil.registerScreen(event, MekIntegrationContainerTypes.SINGULARITY_COMPRESSOR, GuiSingularityCompressor::new); - ClientRegistrationUtil.registerScreen(event, MekIntegrationContainerTypes.FACTORY, GuiMIFactory::new); - } - - @Override - public void collectCreativeTabItems(ItemDisplayParameters parameters, Output output) { - for (Holder itemHolder : MekIntegrationItems.ITEMS.getEntries()) { - output.accept(itemHolder.value()); - } - for (Holder blockHolder : MekIntegrationBlocks.BLOCKS.getSecondaryEntries()) { - output.accept(blockHolder.value()); - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/basic/BasicMekCompressorRecipe.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/basic/BasicMekCompressorRecipe.java deleted file mode 100644 index ab5aac51..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/basic/BasicMekCompressorRecipe.java +++ /dev/null @@ -1,33 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.basic; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.MekIntegrationRecipeType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationRecipeSerializers; -import mekanism.api.annotations.NothingNullByDefault; -import mekanism.api.recipes.basic.BasicItemStackToItemStackRecipe; -import mekanism.api.recipes.ingredients.ItemStackIngredient; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.RecipeSerializer; - -@NothingNullByDefault -public class BasicMekCompressorRecipe extends BasicItemStackToItemStackRecipe { - - public BasicMekCompressorRecipe(ItemStackIngredient input, ItemStack output) { - super(input, output, MekIntegrationRecipeType.MEK_COMPRESSING.getRecipeType()); - } - - @Override - public RecipeSerializer getSerializer() { - return MekIntegrationRecipeSerializers.MEK_COMPRESSOR.get(); - } - - @Override - public String getGroup() { - return MekIntegrationBlocks.SINGULARITY_COMPRESSOR.getName(); - } - - @Override - public ItemStack getToastSymbol() { - return new ItemStack(MekIntegrationBlocks.SINGULARITY_COMPRESSOR.asItem()); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/basic/BasicNeutronCollectorRecipe.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/basic/BasicNeutronCollectorRecipe.java deleted file mode 100644 index 2ff22501..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/basic/BasicNeutronCollectorRecipe.java +++ /dev/null @@ -1,39 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.basic; - -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.MekIntegrationRecipeType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationRecipeSerializers; -import mekanism.api.annotations.NothingNullByDefault; -import mekanism.api.recipes.ingredients.ChemicalStackIngredient; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraft.world.item.crafting.RecipeType; - -@NothingNullByDefault -public class BasicNeutronCollectorRecipe extends ChemicalStackToItemStackRecipe { - - public BasicNeutronCollectorRecipe(ChemicalStackIngredient input, ItemStack output) { - super(input, output); - } - - @Override - public RecipeSerializer getSerializer() { - return MekIntegrationRecipeSerializers.COLLECTOR.get(); - } - - @Override - public RecipeType getType() { - return MekIntegrationRecipeType.COLLECTING.getRecipeType(); - } - - @Override - public String getGroup() { - return MekIntegrationBlocks.NEUTRON_COLLECTOR.getName(); - } - - @Override - public ItemStack getToastSymbol() { - return new ItemStack(MekIntegrationBlocks.NEUTRON_COLLECTOR.asItem()); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/cache/ChemicalToItemCachedRecipe.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/cache/ChemicalToItemCachedRecipe.java deleted file mode 100644 index f21616c5..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/api/recipes/cache/ChemicalToItemCachedRecipe.java +++ /dev/null @@ -1,42 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.cache; - -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; -import mekanism.api.chemical.ChemicalStack; -import mekanism.api.recipes.MekanismRecipe; -import mekanism.api.recipes.cache.OneInputCachedRecipe; -import mekanism.api.recipes.ingredients.InputIngredient; -import mekanism.api.recipes.inputs.IInputHandler; -import mekanism.api.recipes.outputs.IOutputHandler; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.NotNull; - -import java.util.function.BooleanSupplier; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.Supplier; - -public class ChemicalToItemCachedRecipe & Predicate> extends OneInputCachedRecipe { - - /** - * @param recipe Recipe. - * @param recheckAllErrors Returns {@code true} if processing should be continued even if an error is hit in order to gather all the errors. It is recommended to not - * do this every tick or if there is no one viewing recipes. - * @param inputHandler Input handler. - * @param outputHandler Output handler. - * @param inputSupplier Supplier of the recipe's input ingredient. - * @param outputGetter Gets the recipe's output when given the corresponding input. - * @param inputEmptyCheck Checks if the input is empty. - * @param outputEmptyCheck Checks if the output is empty (indicating something went horribly wrong). - */ - protected ChemicalToItemCachedRecipe(RECIPE recipe, BooleanSupplier recheckAllErrors, IInputHandler inputHandler, IOutputHandler outputHandler, - Supplier> inputSupplier, Function outputGetter, Predicate inputEmptyCheck, - Predicate outputEmptyCheck) { - super(recipe, recheckAllErrors, inputHandler, outputHandler, inputSupplier, outputGetter, inputEmptyCheck, outputEmptyCheck); - } - - public static ChemicalToItemCachedRecipe<@NotNull ChemicalStack, @NotNull ItemStack, ChemicalStackToItemStackRecipe> chemicalToItem(ChemicalStackToItemStackRecipe recipe, - BooleanSupplier recheckAllErrors, IInputHandler<@NotNull ChemicalStack> inputHandler, IOutputHandler<@NotNull ItemStack> outputHandler) { - return new ChemicalToItemCachedRecipe<>(recipe, recheckAllErrors, inputHandler, outputHandler, recipe::getInput, recipe::getOutput, ChemicalStack::isEmpty, - ItemStack::isEmpty); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/element/tab/GuiMISortingTab.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/element/tab/GuiMISortingTab.java deleted file mode 100644 index f8697b07..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/element/tab/GuiMISortingTab.java +++ /dev/null @@ -1,40 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.client.gui.element.tab; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.network.to_server.MekIntegrationPacketGuiInteract; -import committee.nova.mods.avaritia_integration.module.mekanism.common.network.to_server.MekIntegrationPacketGuiInteract.MekIntegrationGuiInteraction; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import mekanism.client.SpecialColors; -import mekanism.client.gui.IGuiWrapper; -import mekanism.client.gui.element.GuiInsetElement; -import mekanism.client.render.MekanismRenderer; -import mekanism.common.MekanismLang; -import mekanism.common.network.PacketUtils; -import mekanism.common.util.MekanismUtils; -import mekanism.common.util.MekanismUtils.ResourceType; -import mekanism.common.util.text.BooleanStateDisplay.OnOff; -import net.minecraft.client.gui.GuiGraphics; -import org.jetbrains.annotations.NotNull; - -public class GuiMISortingTab extends GuiInsetElement> { - - public GuiMISortingTab(IGuiWrapper gui, TileEntityMIFactory tile) { - super(MekanismUtils.getResource(ResourceType.GUI, "sorting.png"), gui, tile, -26, 62, 35, 18, true); - setTooltip(MekanismLang.AUTO_SORT); - } - - @Override - public void drawBackground(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { - super.drawBackground(guiGraphics, mouseX, mouseY, partialTicks); - drawScrollingString(guiGraphics, OnOff.of(dataSource.isSorting()).getTextComponent(), 0, 24, TextAlignment.CENTER, titleTextColor(), 3, false); - } - - @Override - protected void colorTab(GuiGraphics guiGraphics) { - MekanismRenderer.color(guiGraphics, SpecialColors.TAB_FACTORY_SORT); - } - - @Override - public void onClick(double mouseX, double mouseY, int button) { - PacketUtils.sendToServer(new MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction.AUTO_SORT_BUTTON, dataSource)); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiMIFactory.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiMIFactory.java deleted file mode 100644 index d7a8b3eb..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiMIFactory.java +++ /dev/null @@ -1,88 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.client.gui.machine; - -import committee.nova.mods.avaritia_integration.module.mekanism.client.gui.element.tab.GuiMISortingTab; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityChemicalToItemMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityItemToItemMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import fr.iglee42.evolvedmekanism.tiers.EMFactoryTier; -import mekanism.api.recipes.cache.CachedRecipe; -import mekanism.client.gui.GuiConfigurableTile; -import mekanism.client.gui.element.bar.GuiVerticalPowerBar; -import mekanism.client.gui.element.gauge.GaugeType; -import mekanism.client.gui.element.gauge.GuiChemicalGauge; -import mekanism.client.gui.element.progress.GuiProgress; -import mekanism.client.gui.element.progress.ProgressType; -import mekanism.client.gui.element.tab.GuiEnergyTab; -import mekanism.common.inventory.container.tile.MekanismTileContainer; -import mekanism.common.inventory.warning.WarningTracker.WarningType; -import mekanism.common.tier.FactoryTier; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Inventory; -import net.neoforged.fml.ModList; -import org.jetbrains.annotations.NotNull; - -import java.util.function.LongSupplier; - -public class GuiMIFactory extends GuiConfigurableTile, MekanismTileContainer>> { - - public GuiMIFactory(MekanismTileContainer> container, Inventory inv, Component title) { - super(container, inv, title); - if (tile instanceof TileEntityChemicalToItemMIFactory) imageHeight += 13; - inventoryLabelY = tile instanceof TileEntityChemicalToItemMIFactory ? 88 : 75; - if (tile.tier == FactoryTier.ULTIMATE) { - imageWidth += 34; - inventoryLabelX = 26; - } - if (isEMLoadAndTierOrdinalAboveOverLocked()) { - int index = tile.tier.ordinal() - 4; - imageWidth += (36 * (index + 2)) + (2 * index); - inventoryLabelX = (22 * (index + 2)) - (3 * index); - } - titleLabelY = 4; - dynamicSlots = true; - } - - private boolean isEMLoadAndTierOrdinalAboveOverLocked() { - if (ModList.get().isLoaded("evolvedmekanism")) { - return tile.tier.ordinal() >= EMFactoryTier.OVERCLOCKED.ordinal(); - } - return false; - } - - @Override - protected void addGuiElements() { - super.addGuiElements(); - if (tile instanceof TileEntityItemToItemMIFactory) { - addRenderableWidget(new GuiMISortingTab(this, tile)); - } - addRenderableWidget(new GuiVerticalPowerBar(this, tile.getEnergyContainer(), imageWidth - 12, 16, tile instanceof TileEntityChemicalToItemMIFactory ? 65 : 52)) - .warning(WarningType.NOT_ENOUGH_ENERGY, tile.getWarningCheck(CachedRecipe.OperationTracker.RecipeError.NOT_ENOUGH_ENERGY, 0)); - addRenderableWidget(new GuiEnergyTab(this, tile.getEnergyContainer(), (LongSupplier) tile::getLastUsage)); - - if (tile instanceof TileEntityChemicalToItemMIFactory factory) { - for (int i = 0; i < tile.tier.processes; i++) { - int index = i; - addRenderableWidget(new GuiChemicalGauge(() -> factory.inputGasTanks.get(index), () -> factory.getChemicalTanks(null), GaugeType.SMALL, this, factory.getXPos(index) - 1, 13)) - .warning(WarningType.NO_MATCHING_RECIPE, factory.getWarningCheck(CachedRecipe.OperationTracker.RecipeError.NOT_ENOUGH_INPUT, index)); - } - } - - for (int i = 0; i < tile.tier.processes; i++) { - int cacheIndex = i; - addRenderableWidget(new GuiProgress(() -> tile.getScaledProgress(1, cacheIndex), ProgressType.DOWN, this, 4 + tile.getXPos(i), getProgressYPos())) - .warning(WarningType.INPUT_DOESNT_PRODUCE_OUTPUT, tile.getWarningCheck(CachedRecipe.OperationTracker.RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT, cacheIndex)); - } - } - - private int getProgressYPos() { - return tile instanceof TileEntityChemicalToItemMIFactory ? 46 : 33; - } - - @Override - protected void drawForegroundText(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY) { - renderTitleText(guiGraphics); - renderInventoryText(guiGraphics); - super.drawForegroundText(guiGraphics, mouseX, mouseY); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiNeutronCollector.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiNeutronCollector.java deleted file mode 100644 index c1789257..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiNeutronCollector.java +++ /dev/null @@ -1,45 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.client.gui.machine; - -import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; -import mekanism.client.gui.GuiConfigurableTile; -import mekanism.client.gui.element.bar.GuiVerticalPowerBar; -import mekanism.client.gui.element.gauge.GaugeType; -import mekanism.client.gui.element.gauge.GuiChemicalGauge; -import mekanism.client.gui.element.progress.GuiProgress; -import mekanism.client.gui.element.progress.ProgressType; -import mekanism.client.gui.element.tab.GuiEnergyTab; -import mekanism.common.inventory.container.tile.MekanismTileContainer; -import mekanism.common.inventory.warning.WarningTracker.WarningType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntityNeutronCollector; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Inventory; -import org.jetbrains.annotations.NotNull; - -public class GuiNeutronCollector extends GuiConfigurableTile> { - - public GuiNeutronCollector(MekanismTileContainer container, Inventory inv, Component title) { - super(container, inv, title); - inventoryLabelY += 2; - dynamicSlots = true; - } - - @Override - protected void addGuiElements() { - super.addGuiElements(); - addRenderableWidget(new GuiVerticalPowerBar(this, tile.getEnergyContainer(), 164, 15)) - .warning(WarningType.NOT_ENOUGH_ENERGY, tile.getWarningCheck(RecipeError.NOT_ENOUGH_ENERGY)); - addRenderableWidget(new GuiEnergyTab(this, tile.getEnergyContainer(), tile::getActive)); - addRenderableWidget(new GuiChemicalGauge(() -> tile.gasTank, () -> tile.getChemicalTanks(null), GaugeType.STANDARD, this, 26, 13)) - .warning(WarningType.NO_MATCHING_RECIPE, tile.getWarningCheck(RecipeError.NOT_ENOUGH_INPUT)); - addRenderableWidget(new GuiProgress(tile::getScaledProgress, ProgressType.LARGE_RIGHT, this, 64, 40)) - .warning(WarningType.INPUT_DOESNT_PRODUCE_OUTPUT, tile.getWarningCheck(RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT)); - } - - @Override - protected void drawForegroundText(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY) { - renderTitleText(guiGraphics); - renderInventoryText(guiGraphics); - super.drawForegroundText(guiGraphics, mouseX, mouseY); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiSingularityCompressor.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiSingularityCompressor.java deleted file mode 100644 index 902e0d3b..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/client/gui/machine/GuiSingularityCompressor.java +++ /dev/null @@ -1,42 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.client.gui.machine; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntitySingularityCompressor; -import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; -import mekanism.client.gui.GuiConfigurableTile; -import mekanism.client.gui.element.GuiUpArrow; -import mekanism.client.gui.element.bar.GuiVerticalPowerBar; -import mekanism.client.gui.element.progress.GuiProgress; -import mekanism.client.gui.element.progress.ProgressType; -import mekanism.client.gui.element.tab.GuiEnergyTab; -import mekanism.common.inventory.container.tile.MekanismTileContainer; -import mekanism.common.inventory.warning.WarningTracker.WarningType; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Inventory; -import org.jetbrains.annotations.NotNull; - -public class GuiSingularityCompressor extends GuiConfigurableTile> { - - public GuiSingularityCompressor(MekanismTileContainer container, Inventory inv, Component title) { - super(container, inv, title); - dynamicSlots = true; - } - - @Override - protected void addGuiElements() { - super.addGuiElements(); - addRenderableWidget(new GuiUpArrow(this, 68, 38)); - addRenderableWidget(new GuiVerticalPowerBar(this, tile.getEnergyContainer(), 164, 15)) - .warning(WarningType.NOT_ENOUGH_ENERGY, tile.getWarningCheck(RecipeError.NOT_ENOUGH_ENERGY)); - addRenderableWidget(new GuiEnergyTab(this, tile.getEnergyContainer(), tile::getActive)); - addRenderableWidget(new GuiProgress(tile::getScaledProgress, ProgressType.BAR, this, 86, 38)) - .warning(WarningType.INPUT_DOESNT_PRODUCE_OUTPUT, tile.getWarningCheck(RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT)); - } - - @Override - protected void drawForegroundText(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY) { - renderTitleText(guiGraphics); - renderInventoryText(guiGraphics); - super.drawForegroundText(guiGraphics, mouseX, mouseY); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/block/attribute/AttributeMekIntegrationFactoryType.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/block/attribute/AttributeMekIntegrationFactoryType.java deleted file mode 100644 index d89aefaf..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/block/attribute/AttributeMekIntegrationFactoryType.java +++ /dev/null @@ -1,19 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.block.attribute; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryType; -import mekanism.common.block.attribute.Attribute; -import org.jetbrains.annotations.NotNull; - -public class AttributeMekIntegrationFactoryType implements Attribute { - - private final MekIntegrationFactoryType type; - - public AttributeMekIntegrationFactoryType(MekIntegrationFactoryType type) { - this.type = type; - } - - @NotNull - public MekIntegrationFactoryType getMekIntegrationFactoryType() { - return type; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/block/prefab/BlockMekIntegrationFactoryMachine.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/block/prefab/BlockMekIntegrationFactoryMachine.java deleted file mode 100644 index 27a8237c..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/block/prefab/BlockMekIntegrationFactoryMachine.java +++ /dev/null @@ -1,33 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.block.prefab; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryMachine; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import mekanism.common.block.prefab.BlockTile; -import mekanism.common.block.states.IStateFluidLoggable; -import mekanism.common.resource.BlockResourceInfo; -import mekanism.common.tile.base.TileEntityMekanism; -import net.minecraft.world.level.block.state.BlockBehaviour; - -import java.util.function.UnaryOperator; - -public class BlockMekIntegrationFactoryMachine> extends BlockTile { - - public BlockMekIntegrationFactoryMachine(MACHINE machine, UnaryOperator propertiesModifier) { - super(machine, propertiesModifier); - } - - public static class BlockMekIntegrationFactoryMachineModel> extends BlockMekIntegrationFactoryMachine implements IStateFluidLoggable { - - public BlockMekIntegrationFactoryMachineModel(MACHINE machineType, UnaryOperator propertiesModifier) { - super(machineType, propertiesModifier); - } - } - - public static class BlockMekIntegrationFactory> extends BlockMekIntegrationFactoryMachineModel> { - - public BlockMekIntegrationFactory(MekIntegrationFactory factoryType) { - super(factoryType, properties -> properties.mapColor(BlockResourceInfo.STEEL.getMapColor())); - } - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/config/MekIntegrationConfig.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/config/MekIntegrationConfig.java deleted file mode 100644 index 93c42cbc..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/config/MekIntegrationConfig.java +++ /dev/null @@ -1,4 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.config; - -public class MekIntegrationConfig { -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactory.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactory.java deleted file mode 100644 index 9436e2bb..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactory.java +++ /dev/null @@ -1,84 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationContainerTypes; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.util.MekIntegrationEnumUtils; -import committee.nova.mods.avaritia_integration.module.mekanism.common.util.MekIntegrationUtils; -import mekanism.common.MekanismLang; -import mekanism.common.block.attribute.*; -import mekanism.common.lib.transmitter.TransmissionType; -import mekanism.common.inventory.container.MekanismContainer; -import mekanism.common.lib.math.Pos3D; -import mekanism.common.registration.impl.ContainerTypeRegistryObject; -import mekanism.common.registration.impl.TileEntityTypeRegistryObject; -import mekanism.common.tier.FactoryTier; -import mekanism.api.math.MathUtils; -import mekanism.common.util.EnumUtils; -import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.world.phys.shapes.VoxelShape; - -import java.util.function.Supplier; - -import static mekanism.common.content.blocktype.BlockShapes.ENRICHING_FACTORY; - -public class MekIntegrationFactory> extends MekIntegrationFactoryMachine { - - private final MekIntegrationFactoryMachine origMachine; - - public MekIntegrationFactory(Supplier> tileEntityRegistrar, Supplier> containerRegistrar, - MekIntegrationFactoryMachine origMachine, FactoryTier tier) { - super(tileEntityRegistrar, MekanismLang.DESCRIPTION_FACTORY, origMachine.getMekIntegrationFactoryType()); - this.origMachine = origMachine; - setMachineData(tier); - add(new AttributeGui(containerRegistrar, null), new AttributeTier<>(tier)); - - if (tier.ordinal() < MekIntegrationUtils.getFactoryTier().length - 1) { - add(new AttributeUpgradeable(() -> MekIntegrationBlocks.getMekIntegrationFactory(EnumUtils.FACTORY_TIERS[tier.ordinal() + 1], origMachine.getMekIntegrationFactoryType()))); - } - } - - private void setMachineData(FactoryTier tier) { - setFrom(origMachine, AttributeSound.class, AttributeMekIntegrationFactoryType.class, AttributeUpgradeSupport.class); - AttributeEnergy origEnergy = origMachine.get(AttributeEnergy.class); - add(new AttributeEnergy(origEnergy::getUsage, () -> MathUtils.multiplyClamped(Math.max(origEnergy.getConfigStorage() / 2, origEnergy.getUsage()), tier.processes))); - } - - public static class MekIntegrationFactoryBuilder, TILE extends TileEntityMIFactory, T extends MekIntegrationMachineBuilder> - extends BlockTileBuilder { - - protected MekIntegrationFactoryBuilder(FACTORY holder) { - super(holder); - } - - @SuppressWarnings("unchecked") - public static > MekIntegrationFactoryBuilder, TILE, ?> createMekIntegrationFactory(Supplier tileEntityRegistrar, MekIntegrationFactoryType type, - FactoryTier tier) { - // this is dirty but unfortunately necessary for things to play right - MekIntegrationFactoryBuilder, TILE, ?> builder = new MekIntegrationFactoryBuilder<>(new MekIntegrationFactory<>((Supplier>) tileEntityRegistrar, - () -> MekIntegrationContainerTypes.FACTORY, type.getBaseMachine(), tier)); - //Note, we can't just return the builder here as then it gets all confused about object types, so we just - // assign the value here, and then return the builder itself as it is the same object - builder.withComputerSupport(tier, type.getRegistryNameComponentCapitalized() + "Factory"); - builder.withCustomShape(getShape(type)); - builder.with(switch (type) { - case NEUTRON_COLLECTING -> - AttributeSideConfig.create(TransmissionType.ITEM, TransmissionType.CHEMICAL, TransmissionType.ENERGY); - case SINGULARITY_COMPRESSING -> AttributeSideConfig.ELECTRIC_MACHINE; - }); - builder.replace(new AttributeParticleFX().addDense(ParticleTypes.SMOKE, 5, rand -> new Pos3D( - rand.nextFloat() * 0.7F - 0.3F, - rand.nextFloat() * 0.1F + 0.7F, - rand.nextFloat() * 0.7F - 0.3F - ))); - return builder; - } - - private static VoxelShape[] getShape(MekIntegrationFactoryType type) { - return switch (type) { - case NEUTRON_COLLECTING, SINGULARITY_COMPRESSING -> ENRICHING_FACTORY; - }; - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactoryMachine.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactoryMachine.java deleted file mode 100644 index 92221207..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactoryMachine.java +++ /dev/null @@ -1,41 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; -import mekanism.common.MekanismLang; -import mekanism.common.block.attribute.AttributeUpgradeable; -import mekanism.common.content.blocktype.Machine; -import mekanism.common.registration.impl.TileEntityTypeRegistryObject; -import mekanism.common.tier.FactoryTier; -import mekanism.common.tile.base.TileEntityMekanism; - -import java.util.Objects; -import java.util.function.Supplier; - -public class MekIntegrationFactoryMachine extends Machine { - - public MekIntegrationFactoryMachine(Supplier> tileEntityRegistrar, MekanismLang description, MekIntegrationFactoryType factoryType) { - super(tileEntityRegistrar, description); - add(new AttributeMekIntegrationFactoryType(factoryType), new AttributeUpgradeable(() -> MekIntegrationBlocks.getMekIntegrationFactory(FactoryTier.BASIC, getMekIntegrationFactoryType()))); - } - - public MekIntegrationFactoryType getMekIntegrationFactoryType() { - return Objects.requireNonNull(get(AttributeMekIntegrationFactoryType.class)).getMekIntegrationFactoryType(); - } - - public static class MekIntegrationMachineBuilder, TILE extends TileEntityMekanism, T extends MekIntegrationMachineBuilder> extends BlockTileBuilder { - - protected MekIntegrationMachineBuilder(MACHINE holder) { - super(holder); - } - - public static MekIntegrationMachineBuilder, TILE, ?> createMekIntegrationMachine(Supplier> tileEntityRegistrar, MekanismLang description) { - return new MekIntegrationMachineBuilder<>(new Machine<>(tileEntityRegistrar, description)); - } - - public static MekIntegrationMachineBuilder, TILE, ?> createMekIntegrationFactoryMachine(Supplier> tileEntityRegistrar, - MekanismLang description, MekIntegrationFactoryType factoryType) { - return new MekIntegrationMachineBuilder<>(new MekIntegrationFactoryMachine<>(tileEntityRegistrar, description, factoryType)); - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactoryType.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactoryType.java deleted file mode 100644 index 73e9ecef..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/content/blocktype/MekIntegrationFactoryType.java +++ /dev/null @@ -1,52 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.MekIntegrationLang; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlockTypes; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; -import mekanism.api.annotations.NothingNullByDefault; -import mekanism.api.text.IHasTranslationKey; -import mekanism.common.MekanismLang; -import mekanism.common.registration.impl.BlockRegistryObject; - -import java.util.Locale; -import java.util.function.Supplier; - -@NothingNullByDefault -public enum MekIntegrationFactoryType implements IHasTranslationKey { - NEUTRON_COLLECTING("neutron_collecting", MekIntegrationLang.NEUTRON_COLLECTING, () -> MekIntegrationBlockTypes.NEUTRON_COLLECTOR, () -> MekIntegrationBlocks.NEUTRON_COLLECTOR), - SINGULARITY_COMPRESSING("singularity_compressing", MekIntegrationLang.NEUTRON_COMPRESSING, () -> MekIntegrationBlockTypes.SINGULARITY_COMPRESSOR, () -> MekIntegrationBlocks.SINGULARITY_COMPRESSOR); - - private final String registryNameComponent; - private final MekanismLang langEntry; - private final Supplier> baseMachine; - private final Supplier> baseBlock; - - MekIntegrationFactoryType(String registryNameComponent, MekanismLang langEntry, Supplier> baseMachine, Supplier> baseBlock) { - this.registryNameComponent = registryNameComponent; - this.langEntry = langEntry; - this.baseMachine = baseMachine; - this.baseBlock = baseBlock; - } - - public String getRegistryNameComponent() { - return registryNameComponent; - } - - public String getRegistryNameComponentCapitalized() { - String name = getRegistryNameComponent(); - return name.substring(0, 1).toUpperCase(Locale.ROOT) + name.substring(1); - } - - public MekIntegrationFactoryMachine getBaseMachine() { - return baseMachine.get(); - } - - public BlockRegistryObject getBaseBlock() { - return baseBlock.get(); - } - - @Override - public String getTranslationKey() { - return langEntry.getTranslationKey(); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/container/tile/MekIntegrationFactoryContainer.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/container/tile/MekIntegrationFactoryContainer.java deleted file mode 100644 index 592fd79d..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/container/tile/MekIntegrationFactoryContainer.java +++ /dev/null @@ -1,39 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.inventory.container.tile; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationContainerTypes; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityChemicalToItemMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import fr.iglee42.evolvedmekanism.tiers.EMFactoryTier; -import mekanism.common.inventory.container.tile.MekanismTileContainer; -import mekanism.common.tier.FactoryTier; -import net.minecraft.world.entity.player.Inventory; -import net.neoforged.fml.ModList; - -public class MekIntegrationFactoryContainer extends MekanismTileContainer> { - - public MekIntegrationFactoryContainer(int id, Inventory inv, TileEntityMIFactory tile) { - super(MekIntegrationContainerTypes.FACTORY, id, inv, tile); - } - - @Override - protected int getInventoryYOffset() { - if (tile.hasSecondaryResourceBar()) { - return 95; - } - if (tile instanceof TileEntityChemicalToItemMIFactory) { - return 98; - } - return 85; - } - - @Override - protected int getInventoryXOffset() { - if (ModList.get().isLoaded("evolvedmekanism")) { - if (tile.tier.ordinal() >= EMFactoryTier.OVERCLOCKED.ordinal()) { - int index = tile.tier.ordinal() - 4; - return (22 * (index + 2)) - (3 * index); - } - } - return tile.tier == FactoryTier.ULTIMATE ? 26 : 8; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/slot/MIFactoryInputInventorySlot.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/slot/MIFactoryInputInventorySlot.java deleted file mode 100644 index 108ea6db..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/slot/MIFactoryInputInventorySlot.java +++ /dev/null @@ -1,36 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.inventory.slot; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityItemToItemMIFactory; -import mekanism.api.IContentsListener; -import mekanism.api.annotations.NothingNullByDefault; -import mekanism.api.inventory.IInventorySlot; -import mekanism.common.inventory.slot.InputInventorySlot; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.Nullable; - -import java.util.Objects; - -@NothingNullByDefault -public class MIFactoryInputInventorySlot extends InputInventorySlot { - - public static MIFactoryInputInventorySlot create(TileEntityItemToItemMIFactory factory, int process, IInventorySlot outputSlot, @Nullable IContentsListener listener, int x, int y) { - Objects.requireNonNull(factory, "Factory cannot be null"); - Objects.requireNonNull(outputSlot, "Output slot cannot be null"); - return new MIFactoryInputInventorySlot(factory, process, outputSlot, listener, x, y); - } - - private MIFactoryInputInventorySlot(TileEntityItemToItemMIFactory factory, int process, IInventorySlot outputSlot, @Nullable IContentsListener listener, int x, int y) { - super(stack -> factory.inputProducesOutput(process, stack, outputSlot, false), factory::isValidInputItem, listener, x, y); - } - - //Increase access level of setStackUnchecked - @Override - public void setStackUnchecked(ItemStack stack) { - super.setStackUnchecked(stack); - } - - @Override - public int getLimit(ItemStack stack) { - return 65536; - } -} \ No newline at end of file diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/slot/MIInputInventorySlot.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/slot/MIInputInventorySlot.java deleted file mode 100644 index db7daa86..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/inventory/slot/MIInputInventorySlot.java +++ /dev/null @@ -1,42 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.inventory.slot; - -import mekanism.api.IContentsListener; -import mekanism.api.annotations.NothingNullByDefault; -import mekanism.api.functions.ConstantPredicates; -import mekanism.common.inventory.container.slot.ContainerSlotType; -import mekanism.common.inventory.slot.BasicInventorySlot; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Objects; -import java.util.function.Predicate; - -@NothingNullByDefault -public class MIInputInventorySlot extends BasicInventorySlot { - - public static MIInputInventorySlot at(@Nullable IContentsListener listener, int x, int y) { - return at(ConstantPredicates.alwaysTrue(), listener, x, y); - } - - public static MIInputInventorySlot at(Predicate<@NotNull ItemStack> isItemValid, @Nullable IContentsListener listener, int x, int y) { - return at(ConstantPredicates.alwaysTrue(), isItemValid, listener, x, y); - } - - public static MIInputInventorySlot at(Predicate<@NotNull ItemStack> insertPredicate, Predicate<@NotNull ItemStack> isItemValid, @Nullable IContentsListener listener, - int x, int y) { - Objects.requireNonNull(insertPredicate, "Insertion check cannot be null"); - Objects.requireNonNull(isItemValid, "Item validity check cannot be null"); - return new MIInputInventorySlot(insertPredicate, isItemValid, listener, x, y); - } - - protected MIInputInventorySlot(Predicate<@NotNull ItemStack> insertPredicate, Predicate<@NotNull ItemStack> isItemValid, @Nullable IContentsListener listener, int x, int y) { - super(ConstantPredicates.notExternal(), (stack, automationType) -> insertPredicate.test(stack), isItemValid, listener, x, y); - setSlotType(ContainerSlotType.INPUT); - } - - @Override - public int getLimit(ItemStack stack) { - return 65536; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/item/block/machine/ItemBlockMekIntegrationFactory.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/item/block/machine/ItemBlockMekIntegrationFactory.java deleted file mode 100644 index 53b49d29..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/item/block/machine/ItemBlockMekIntegrationFactory.java +++ /dev/null @@ -1,50 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.item.block.machine; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.block.attribute.AttributeMekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.block.prefab.BlockMekIntegrationFactoryMachine.BlockMekIntegrationFactory; -import mekanism.api.text.EnumColor; -import mekanism.common.MekanismLang; -import mekanism.common.attachments.component.AttachedEjector; -import mekanism.common.attachments.component.AttachedSideConfig; -import mekanism.common.block.attribute.Attribute; -import mekanism.common.item.block.ItemBlockTooltip; -import mekanism.common.registries.MekanismDataComponents; -import mekanism.common.tier.FactoryTier; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ItemBlockMekIntegrationFactory extends ItemBlockTooltip> { - - private static AttachedSideConfig getSideConfig(BlockMekIntegrationFactory block) { - return switch (Attribute.getOrThrow(block.builtInRegistryHolder(), AttributeMekIntegrationFactoryType.class).getMekIntegrationFactoryType()) { - case NEUTRON_COLLECTING -> AttachedSideConfig.ELECTRIC_MACHINE; - case SINGULARITY_COMPRESSING -> AttachedSideConfig.ADVANCED_MACHINE; - }; - } - - public ItemBlockMekIntegrationFactory(BlockMekIntegrationFactory block, Properties properties) { - super(block, true, properties - .component(MekanismDataComponents.SORTING, false) - .component(MekanismDataComponents.EJECTOR, AttachedEjector.DEFAULT) - .component(MekanismDataComponents.SIDE_CONFIG, getSideConfig(block)) - ); - } - - public FactoryTier getTier() { - return Attribute.getTier(getBlock(), FactoryTier.class); - } - - @Override - protected void addTypeDetails(@NotNull ItemStack stack, @NotNull TooltipContext context, @NotNull List tooltip, @NotNull TooltipFlag flag) { - //Should always be present but validate it just in case - AttributeMekIntegrationFactoryType factoryType = Attribute.get(getBlock(), AttributeMekIntegrationFactoryType.class); - if (factoryType != null) { - tooltip.add(MekanismLang.FACTORY_TYPE.translateColored(EnumColor.INDIGO, EnumColor.GRAY, factoryType.getMekIntegrationFactoryType())); - } - super.addTypeDetails(stack, context, tooltip, flag); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/network/to_server/MekIntegrationPacketGuiInteract.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/network/to_server/MekIntegrationPacketGuiInteract.java deleted file mode 100644 index aa2c0d29..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/network/to_server/MekIntegrationPacketGuiInteract.java +++ /dev/null @@ -1,101 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.network.to_server; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import io.netty.buffer.ByteBuf; -import mekanism.api.functions.TriConsumer; -import mekanism.common.network.IMekanismPacket; -import mekanism.common.tile.base.TileEntityMekanism; -import mekanism.common.util.WorldUtils; -import net.minecraft.core.BlockPos; -import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.ByteBufCodecs; -import net.minecraft.network.codec.StreamCodec; -import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.util.ByIdMap; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.neoforged.neoforge.network.handling.IPayloadContext; -import org.jetbrains.annotations.NotNull; - -import java.util.function.IntFunction; - -public class MekIntegrationPacketGuiInteract implements IMekanismPacket { - - public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(AvaritiaIntegration.rl("mek_integration_gui_interact")); - public static final StreamCodec STREAM_CODEC = StreamCodec.composite( - Type.STREAM_CODEC, packet -> packet.interactionType, - MekIntegrationGuiInteraction.STREAM_CODEC, packet -> packet.interaction, - BlockPos.STREAM_CODEC, packet -> packet.tilePosition, - ByteBufCodecs.VAR_INT, packet -> packet.extra, - MekIntegrationPacketGuiInteract::new - ); - - private final Type interactionType; - - private final MekIntegrationGuiInteraction interaction; - private final BlockPos tilePosition; - private final int extra; - - public MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction interaction, BlockEntity tile) { - this(interaction, tile.getBlockPos()); - } - - public MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction interaction, BlockPos tilePosition) { - this(interaction, tilePosition, 0); - } - - public MekIntegrationPacketGuiInteract(MekIntegrationGuiInteraction interaction, BlockPos tilePosition, int extra) { - this(Type.INT, interaction, tilePosition, extra); - } - - private MekIntegrationPacketGuiInteract(Type interactionType, MekIntegrationGuiInteraction interaction, BlockPos tilePosition, int extra) { - this.interactionType = interactionType; - this.interaction = interaction; - this.tilePosition = tilePosition; - this.extra = extra; - } - - @NotNull - @Override - public CustomPacketPayload.Type type() { - return TYPE; - } - - @Override - public void handle(IPayloadContext context) { - Player player = context.player(); - TileEntityMekanism tile = WorldUtils.getTileEntity(TileEntityMekanism.class, player.level(), tilePosition); - if (tile != null && interactionType == Type.INT) { - interaction.consume(tile, player, extra); - } - } - - public enum MekIntegrationGuiInteraction { - AUTO_SORT_BUTTON((tile, player, extra) -> { - if (tile instanceof TileEntityMIFactory factory) { - factory.toggleSorting(); - } - }); - - public static final IntFunction BY_ID = ByIdMap.continuous(MekIntegrationGuiInteraction::ordinal, values(), ByIdMap.OutOfBoundsStrategy.WRAP); - public static final StreamCodec STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, MekIntegrationGuiInteraction::ordinal); - - private final TriConsumer consumerForTile; - - MekIntegrationGuiInteraction(TriConsumer consumerForTile) { - this.consumerForTile = consumerForTile; - } - - public void consume(TileEntityMekanism tile, Player player, int extra) { - consumerForTile.accept(tile, player, extra); - } - } - - private enum Type { - INT; - - public static final IntFunction BY_ID = ByIdMap.continuous(Type::ordinal, values(), ByIdMap.OutOfBoundsStrategy.WRAP); - public static final StreamCodec STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, Type::ordinal); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/recipe/MekIntegrationRecipeType.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/recipe/MekIntegrationRecipeType.java deleted file mode 100644 index f55e0e99..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/recipe/MekIntegrationRecipeType.java +++ /dev/null @@ -1,19 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.recipe; - -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; -import mekanism.api.recipes.ItemStackToItemStackRecipe; -import mekanism.api.recipes.vanilla_input.SingleChemicalRecipeInput; -import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleChemical; -import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleItem; -import mekanism.common.registration.impl.RecipeTypeRegistryObject; -import net.minecraft.world.item.crafting.SingleRecipeInput; - -public class MekIntegrationRecipeType { - - private MekIntegrationRecipeType() { - } - - public static RecipeTypeRegistryObject> COLLECTING; - - public static RecipeTypeRegistryObject> MEK_COMPRESSING; -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/recipe/serializer/NeutronCollectorRecipeSerializer.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/recipe/serializer/NeutronCollectorRecipeSerializer.java deleted file mode 100644 index 554be4bf..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/recipe/serializer/NeutronCollectorRecipeSerializer.java +++ /dev/null @@ -1,45 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.serializer; - -import com.mojang.serialization.MapCodec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; -import mekanism.api.SerializationConstants; -import mekanism.api.recipes.ingredients.ChemicalStackIngredient; -import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.StreamCodec; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.RecipeSerializer; -import org.jetbrains.annotations.NotNull; - -public class NeutronCollectorRecipeSerializer implements RecipeSerializer { - - private final MapCodec codec; - private final StreamCodec streamCodec; - - public NeutronCollectorRecipeSerializer(IFactory factory) { - this.codec = RecordCodecBuilder.mapCodec(instance -> instance.group( - ChemicalStackIngredient.CODEC.fieldOf(SerializationConstants.INPUT).forGetter(ChemicalStackToItemStackRecipe::getInput), - ItemStack.CODEC.fieldOf(SerializationConstants.OUTPUT).forGetter(ChemicalStackToItemStackRecipe::getOutputRaw) - ).apply(instance, factory::create)); - this.streamCodec = StreamCodec.composite( - ChemicalStackIngredient.STREAM_CODEC, ChemicalStackToItemStackRecipe::getInput, - ItemStack.STREAM_CODEC, ChemicalStackToItemStackRecipe::getOutputRaw, - factory::create - ); - } - - @Override - public @NotNull MapCodec codec() { - return codec; - } - - @Override - public @NotNull StreamCodec streamCodec() { - return streamCodec; - } - - @FunctionalInterface - public interface IFactory { - RECIPE create(ChemicalStackIngredient input, ItemStack output); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationBlockTypes.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationBlockTypes.java deleted file mode 100644 index 504da53e..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationBlockTypes.java +++ /dev/null @@ -1,61 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.registries; - -import com.google.common.collect.HashBasedTable; -import com.google.common.collect.Table; -import committee.nova.mods.avaritia_integration.module.mekanism.common.MekIntegrationLang; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactory.MekIntegrationFactoryBuilder; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryMachine; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryMachine.MekIntegrationMachineBuilder; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntityNeutronCollector; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntitySingularityCompressor; -import committee.nova.mods.avaritia_integration.module.mekanism.common.util.MekIntegrationEnumUtils; -import committee.nova.mods.avaritia_integration.module.mekanism.common.util.MekIntegrationUtils; -import mekanism.common.config.MekanismConfig; -import mekanism.common.block.attribute.AttributeSideConfig; -import mekanism.common.lib.transmitter.TransmissionType; -import mekanism.common.registries.MekanismSounds; -import mekanism.common.tier.FactoryTier; -import mekanism.common.util.EnumUtils; - -public class MekIntegrationBlockTypes { - - private MekIntegrationBlockTypes() { - - } - - private static final Table> FACTORIES = HashBasedTable.create(); - - // Neutron Collector - public static final MekIntegrationFactoryMachine NEUTRON_COLLECTOR = MekIntegrationMachineBuilder - .createMekIntegrationFactoryMachine(() -> MekIntegrationTileEntityTypes.NEUTRON_COLLECTOR, MekIntegrationLang.DESCRIPTION_NEUTRON_COLLECTING, MekIntegrationFactoryType.NEUTRON_COLLECTING) - .withGui(() -> MekIntegrationContainerTypes.NEUTRON_COLLECTOR) - .withSound(MekanismSounds.CHEMICAL_CRYSTALLIZER) - .withEnergyConfig(MekanismConfig.usage.chemicalCrystallizer, MekanismConfig.storage.chemicalCrystallizer) - .with(AttributeSideConfig.create(TransmissionType.ITEM, TransmissionType.CHEMICAL, TransmissionType.ENERGY)) - .withComputerSupport("neutronCollector") - .build(); - - // Neutron Compressor - public static final MekIntegrationFactoryMachine SINGULARITY_COMPRESSOR = MekIntegrationMachineBuilder - .createMekIntegrationFactoryMachine(() -> MekIntegrationTileEntityTypes.SINGULARITY_COMPRESSOR, MekIntegrationLang.DESCRIPTION_SINGULARITY_COMPRESSING, MekIntegrationFactoryType.SINGULARITY_COMPRESSING) - .withGui(() -> MekIntegrationContainerTypes.SINGULARITY_COMPRESSOR) - .withSound(MekanismSounds.CHEMICAL_CRYSTALLIZER) - .withEnergyConfig(MekanismConfig.usage.chemicalCrystallizer, MekanismConfig.storage.chemicalCrystallizer) - .with(AttributeSideConfig.ELECTRIC_MACHINE) - .withComputerSupport("singularityCompressor") - .build(); - - static { - for (FactoryTier tier : MekIntegrationUtils.getFactoryTier()) { - for (MekIntegrationFactoryType type : MekIntegrationEnumUtils.FACTORY_TYPES) { - FACTORIES.put(tier, type, MekIntegrationFactoryBuilder.createMekIntegrationFactory(() -> MekIntegrationTileEntityTypes.getFactoryTile(tier, type), type, tier).build()); - } - } - } - - public static MekIntegrationFactory getFactory(FactoryTier tier, MekIntegrationFactoryType type) { - return FACTORIES.get(tier, type); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationBlocks.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationBlocks.java deleted file mode 100644 index 90846439..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationBlocks.java +++ /dev/null @@ -1,86 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.registries; - -import com.google.common.collect.HashBasedTable; -import com.google.common.collect.Table; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanism.common.block.prefab.BlockMekIntegrationFactoryMachine.BlockMekIntegrationFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.item.block.machine.ItemBlockMekIntegrationFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntityNeutronCollector; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntitySingularityCompressor; -import committee.nova.mods.avaritia_integration.module.mekanism.common.util.MekIntegrationEnumUtils; -import committee.nova.mods.avaritia_integration.module.mekanism.common.util.MekIntegrationUtils; -import mekanism.api.tier.ITier; -import mekanism.common.block.attribute.AttributeTier; -import mekanism.common.block.prefab.BlockTile.BlockTileModel; -import mekanism.common.content.blocktype.BlockType; -import mekanism.common.content.blocktype.Machine; -import mekanism.common.item.block.ItemBlockTooltip; -import mekanism.common.registration.impl.BlockDeferredRegister; -import mekanism.common.registration.impl.BlockRegistryObject; -import mekanism.common.resource.BlockResourceInfo; -import mekanism.common.tier.FactoryTier; -import mekanism.common.util.EnumUtils; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import org.jetbrains.annotations.NotNull; - -import java.util.function.Supplier; - -public class MekIntegrationBlocks { - - private MekIntegrationBlocks() { - - } - - public static final BlockDeferredRegister BLOCKS = new BlockDeferredRegister(AvaritiaIntegration.MOD_ID); - - private static final Table, ItemBlockMekIntegrationFactory>> FACTORIES = HashBasedTable.create(); - - static { - // factories - for (FactoryTier tier : MekIntegrationUtils.getFactoryTier()) { - for (MekIntegrationFactoryType type : MekIntegrationEnumUtils.FACTORY_TYPES) { - FACTORIES.put(tier, type, registerFactory(MekIntegrationBlockTypes.getFactory(tier, type))); - } - } - } - - public static final BlockRegistryObject>, ItemBlockTooltip>>> NEUTRON_COLLECTOR = BLOCKS.registerDetails("neutron_collector", () -> new BlockTileModel<>(MekIntegrationBlockTypes.NEUTRON_COLLECTOR, properties -> properties.mapColor(BlockResourceInfo.STEEL.getMapColor()))); - public static final BlockRegistryObject>, ItemBlockTooltip>>> SINGULARITY_COMPRESSOR = BLOCKS.registerDetails("singularity_compressor", () -> new BlockTileModel<>(MekIntegrationBlockTypes.SINGULARITY_COMPRESSOR, properties -> properties.mapColor(BlockResourceInfo.STEEL.getMapColor()))); - - - private static > BlockRegistryObject, ItemBlockMekIntegrationFactory> registerFactory(MekIntegrationFactory type) { - return registerTieredBlock(type, "_" + type.getMekIntegrationFactoryType().getRegistryNameComponent() + "_factory", () -> new BlockMekIntegrationFactory<>(type), ItemBlockMekIntegrationFactory::new); - } - - private static BlockRegistryObject registerTieredBlock(BlockType type, String suffix, - Supplier blockSupplier, java.util.function.BiFunction itemCreator) { - return registerTieredBlock(type.get(AttributeTier.class).tier(), suffix, blockSupplier, itemCreator); - } - - private static BlockRegistryObject registerTieredBlock(ITier tier, String suffix, - Supplier blockSupplier, java.util.function.BiFunction itemCreator) { - return BLOCKS.register(tier.getBaseTier().getLowerName() + suffix, blockSupplier, itemCreator); - } - - /** - * Retrieves a Factory with a defined tier and recipe type. - * - * @param tier - tier to add to the Factory - * @param type - recipe type to add to the Factory - * - * @return factory with defined tier and recipe type - */ - public static BlockRegistryObject, ItemBlockMekIntegrationFactory> getMekIntegrationFactory(@NotNull FactoryTier tier, @NotNull MekIntegrationFactoryType type) { - return FACTORIES.get(tier, type); - } - - @SuppressWarnings("unchecked") - public static BlockRegistryObject, ItemBlockMekIntegrationFactory>[] getMekIntegrationFactoryBlocks() { - return FACTORIES.values().toArray(new BlockRegistryObject[0]); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationContainerTypes.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationContainerTypes.java deleted file mode 100644 index e5f6f648..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationContainerTypes.java +++ /dev/null @@ -1,28 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.registries; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanism.common.inventory.container.tile.MekIntegrationFactoryContainer; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntityNeutronCollector; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntitySingularityCompressor; -import mekanism.common.inventory.container.tile.MekanismTileContainer; -import mekanism.common.registration.impl.ContainerTypeDeferredRegister; -import mekanism.common.registration.impl.ContainerTypeRegistryObject; - -public class MekIntegrationContainerTypes { - - private MekIntegrationContainerTypes() { - } - - public static final ContainerTypeDeferredRegister CONTAINER_TYPES = new ContainerTypeDeferredRegister(AvaritiaIntegration.MOD_ID); - - public static final ContainerTypeRegistryObject> NEUTRON_COLLECTOR = CONTAINER_TYPES.register(MekIntegrationBlocks.NEUTRON_COLLECTOR, TileEntityNeutronCollector.class); - public static final ContainerTypeRegistryObject> SINGULARITY_COMPRESSOR = CONTAINER_TYPES.register(MekIntegrationBlocks.SINGULARITY_COMPRESSOR, TileEntitySingularityCompressor.class); - - public static final ContainerTypeRegistryObject>> FACTORY = CONTAINER_TYPES.register("factory", factoryClass(), MekIntegrationFactoryContainer::new); - - @SuppressWarnings({"rawtypes", "unchecked"}) - private static Class> factoryClass() { - return (Class) TileEntityMIFactory.class; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationItems.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationItems.java deleted file mode 100644 index 55beed1d..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationItems.java +++ /dev/null @@ -1,38 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.registries; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import mekanism.api.functions.ConstantPredicates; -import mekanism.common.attachments.containers.ContainerType; -import mekanism.common.attachments.containers.energy.EnergyContainersBuilder; -import mekanism.common.config.MekanismConfig; -import mekanism.common.item.ItemEnergized; -import mekanism.common.registration.impl.ItemDeferredRegister; -import mekanism.common.registration.impl.ItemRegistryObject; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.Item.Properties; -import net.minecraft.world.item.Rarity; - -public class MekIntegrationItems { - - private MekIntegrationItems() { - } - - public static final ItemDeferredRegister ITEMS = new ItemDeferredRegister(AvaritiaIntegration.MOD_ID); - - public static final ItemRegistryObject INFINITY_ENERGY_TABLET = ITEMS.register("infinity_energy_tablet", () -> new ItemEnergized(new Properties().rarity(Rarity.EPIC))) - .addAttachedContainerCapabilities(ContainerType.ENERGY, () -> EnergyContainersBuilder.builder() - .addBasic(ConstantPredicates.alwaysTrue(), ConstantPredicates.alwaysTrue(), MekanismConfig.gear.tabletChargeRate, MekanismConfig.gear.tabletMaxEnergy) - .build(), MekanismConfig.gear - ); - public static final ItemRegistryObject NEUTRON_ENERGY_TABLET = ITEMS.register("neutron_energy_tablet", () -> new ItemEnergized(new Properties().rarity(Rarity.RARE))) - .addAttachedContainerCapabilities(ContainerType.ENERGY, () -> EnergyContainersBuilder.builder() - .addBasic(ConstantPredicates.alwaysTrue(), ConstantPredicates.alwaysTrue(), MekanismConfig.gear.tabletChargeRate, MekanismConfig.gear.tabletMaxEnergy) - .build(), MekanismConfig.gear - ); - public static final ItemRegistryObject INFINITY_CONTROL_CIRCUIT = ITEMS.register("infinity_control_circuit", Rarity.EPIC); - public static final ItemRegistryObject NEUTRON_CONTROL_CIRCUIT = ITEMS.register("neutron_control_circuit", Rarity.EPIC); - public static final ItemRegistryObject ALLOY_INFINITY = ITEMS.register("alloy_infinity", Rarity.EPIC); - public static final ItemRegistryObject ALLOY_NEUTRON = ITEMS.register("alloy_neutron", Rarity.EPIC); - public static final ItemRegistryObject ENRICHED_INFINITY = ITEMS.register("enriched_infinity", Rarity.EPIC); - public static final ItemRegistryObject ENRICHED_NEUTRON = ITEMS.register("enriched_neutron", Rarity.EPIC); -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationRecipeSerializers.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationRecipeSerializers.java deleted file mode 100644 index 436d2187..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationRecipeSerializers.java +++ /dev/null @@ -1,21 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.registries; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.basic.BasicMekCompressorRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.basic.BasicNeutronCollectorRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.serializer.NeutronCollectorRecipeSerializer; -import mekanism.common.recipe.serializer.MekanismRecipeSerializer; -import net.minecraft.core.registries.Registries; -import net.minecraft.world.item.crafting.RecipeSerializer; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; - -public class MekIntegrationRecipeSerializers { - - private MekIntegrationRecipeSerializers() {} - - public static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister.create(Registries.RECIPE_SERIALIZER, AvaritiaIntegration.MOD_ID); - - public static final DeferredHolder, RecipeSerializer> COLLECTOR = RECIPE_SERIALIZERS.register("collector", () -> new NeutronCollectorRecipeSerializer<>(BasicNeutronCollectorRecipe::new)); - public static final DeferredHolder, RecipeSerializer> MEK_COMPRESSOR = RECIPE_SERIALIZERS.register("compressor", () -> MekanismRecipeSerializer.itemToItem(BasicMekCompressorRecipe::new)); -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationTileEntityTypes.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationTileEntityTypes.java deleted file mode 100644 index 9cc8bb21..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/registries/MekIntegrationTileEntityTypes.java +++ /dev/null @@ -1,41 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.registries; - -import com.google.common.collect.HashBasedTable; -import com.google.common.collect.Table; -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityCollectingFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityCompressingFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory.TileEntityMIFactory; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntityNeutronCollector; -import committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine.TileEntitySingularityCompressor; -import committee.nova.mods.avaritia_integration.module.mekanism.common.util.MekIntegrationUtils; -import mekanism.common.registration.impl.TileEntityTypeDeferredRegister; -import mekanism.common.registration.impl.TileEntityTypeRegistryObject; -import mekanism.common.tier.FactoryTier; -import mekanism.common.tile.base.TileEntityMekanism; -import mekanism.common.util.EnumUtils; - -public class MekIntegrationTileEntityTypes { - - private MekIntegrationTileEntityTypes() { - - } - public static final TileEntityTypeDeferredRegister TILE_ENTITY_TYPES = new TileEntityTypeDeferredRegister(AvaritiaIntegration.MOD_ID); - - private static final Table>> FACTORIES = HashBasedTable.create(); - - static { - for (FactoryTier tier : MekIntegrationUtils.getFactoryTier()) { - FACTORIES.put(tier, MekIntegrationFactoryType.NEUTRON_COLLECTING, TILE_ENTITY_TYPES.mekBuilder(MekIntegrationBlocks.getMekIntegrationFactory(tier, MekIntegrationFactoryType.NEUTRON_COLLECTING), (pos, state) -> new TileEntityCollectingFactory(MekIntegrationBlocks.getMekIntegrationFactory(tier, MekIntegrationFactoryType.NEUTRON_COLLECTING), pos, state)).serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build()); - FACTORIES.put(tier, MekIntegrationFactoryType.SINGULARITY_COMPRESSING, TILE_ENTITY_TYPES.mekBuilder(MekIntegrationBlocks.getMekIntegrationFactory(tier, MekIntegrationFactoryType.SINGULARITY_COMPRESSING), (pos, state) -> new TileEntityCompressingFactory(MekIntegrationBlocks.getMekIntegrationFactory(tier, MekIntegrationFactoryType.SINGULARITY_COMPRESSING), pos, state)).serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build()); - } - } - - public static final TileEntityTypeRegistryObject NEUTRON_COLLECTOR = TILE_ENTITY_TYPES.mekBuilder(MekIntegrationBlocks.NEUTRON_COLLECTOR, TileEntityNeutronCollector::new).serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build(); - public static final TileEntityTypeRegistryObject SINGULARITY_COMPRESSOR = TILE_ENTITY_TYPES.mekBuilder(MekIntegrationBlocks.SINGULARITY_COMPRESSOR, TileEntitySingularityCompressor::new).serverTicker(TileEntityMekanism::tickServer).clientTicker(TileEntityMekanism::tickClient).build(); - - public static TileEntityTypeRegistryObject> getFactoryTile(FactoryTier tier, MekIntegrationFactoryType type) { - return FACTORIES.get(tier, type); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityCollectingFactory.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityCollectingFactory.java deleted file mode 100644 index b1a5fa36..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityCollectingFactory.java +++ /dev/null @@ -1,92 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory; - -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.cache.ChemicalToItemCachedRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.MekIntegrationRecipeType; -import mekanism.api.chemical.ChemicalStack; -import mekanism.api.inventory.IInventorySlot; -import mekanism.api.math.MathUtils; -import mekanism.api.recipes.cache.CachedRecipe; -import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; -import mekanism.common.lib.transmitter.TransmissionType; -import mekanism.common.recipe.IMekanismRecipeTypeProvider; -import mekanism.common.recipe.lookup.ISingleRecipeLookupHandler.ChemicalRecipeLookupHandler; -import mekanism.common.recipe.lookup.cache.InputRecipeCache; -import mekanism.common.tile.component.TileComponentEjector; -import mekanism.common.util.InventoryUtils; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Set; - -public class TileEntityCollectingFactory extends TileEntityChemicalToItemMIFactory implements ChemicalRecipeLookupHandler { - - private static final List TRACKED_ERROR_TYPES = List.of( - RecipeError.NOT_ENOUGH_ENERGY, - RecipeError.NOT_ENOUGH_INPUT, - RecipeError.NOT_ENOUGH_OUTPUT_SPACE, - RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT - ); - private static final Set GLOBAL_ERROR_TYPES = Set.of(RecipeError.NOT_ENOUGH_ENERGY); - - public TileEntityCollectingFactory(Holder blockProvider, BlockPos pos, BlockState state) { - super(blockProvider, pos, state, TRACKED_ERROR_TYPES, GLOBAL_ERROR_TYPES); - - ejectorComponent = new TileComponentEjector(this); - ejectorComponent.setOutputData(configComponent, TransmissionType.ITEM); - } - - @Override - protected boolean isCachedRecipeValid(@Nullable CachedRecipe cached, @NotNull ChemicalStack stack) { - return cached != null && cached.getRecipe().getInput().testType(stack); - } - - @Override - protected @Nullable ChemicalStackToItemStackRecipe findRecipe(int process, @NotNull ChemicalStack fallbackInput, @NotNull IInventorySlot outputSlots) { - ItemStack output = outputSlots.getStack(); - return getRecipeType().getInputCache().findTypeBasedRecipe(level, fallbackInput, output, (recipe, input, currentOutput) -> InventoryUtils.areItemsStackable(recipe.getOutput(input), currentOutput)); - } - - @Override - public boolean isChemicalValidForTank(@NotNull ChemicalStack stack) { - return containsRecipe(stack); - } - - @Override - public boolean isValidInputChemical(@NotNull ChemicalStack stack) { - return containsRecipe(stack); - } - - @Override - protected int getNeededInput(ChemicalStackToItemStackRecipe recipe, ChemicalStack inputStack) { - return MathUtils.clampToInt(recipe.getInput().getNeededAmount(inputStack)); - } - - @Override - public @NotNull IMekanismRecipeTypeProvider> getRecipeType() { - return MekIntegrationRecipeType.COLLECTING; - } - - @Override - public @Nullable ChemicalStackToItemStackRecipe getRecipe(int cacheIndex) { - return findFirstRecipe(gasInputHandlers[cacheIndex]); - } - - @Override - public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ChemicalStackToItemStackRecipe recipe, int cacheIndex) { - return ChemicalToItemCachedRecipe.chemicalToItem(recipe, recheckAllRecipeErrors[cacheIndex], gasInputHandlers[cacheIndex], itemOutputHandlers[cacheIndex]) - .setErrorsChanged(errors -> errorTracker.onErrorsChanged(errors, cacheIndex)) - .setCanHolderFunction(this::canFunction) - .setActive(active -> setActiveState(active, cacheIndex)) - .setEnergyRequirements(energyContainer::getEnergyPerTick, energyContainer) - .setRequiredTicks(this::getTicksRequired) - .setOnFinish(this::markForSave) - .setOperatingTicksChanged(operatingTicks -> progress[cacheIndex] = operatingTicks); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityCompressingFactory.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityCompressingFactory.java deleted file mode 100644 index c02b9a11..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityCompressingFactory.java +++ /dev/null @@ -1,96 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.MekIntegrationRecipeType; -import mekanism.api.IContentsListener; -import mekanism.api.chemical.Chemical; -import mekanism.api.chemical.ChemicalStack; -import mekanism.api.chemical.IChemicalTank; -import mekanism.api.inventory.IInventorySlot; -import mekanism.api.math.MathUtils; -import mekanism.api.recipes.ItemStackToItemStackRecipe; -import mekanism.api.recipes.cache.CachedRecipe; -import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; -import mekanism.api.recipes.cache.OneInputCachedRecipe; -import mekanism.common.capabilities.holder.chemical.ChemicalTankHelper; -import mekanism.common.lib.transmitter.TransmissionType; -import mekanism.common.recipe.IMekanismRecipeTypeProvider; -import mekanism.common.recipe.lookup.ISingleRecipeLookupHandler.ItemRecipeLookupHandler; -import mekanism.common.recipe.lookup.cache.InputRecipeCache; -import mekanism.common.tile.component.TileComponentEjector; -import mekanism.common.util.InventoryUtils; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Set; - -public class TileEntityCompressingFactory extends TileEntityItemToItemMIFactory implements ItemRecipeLookupHandler { - - private static final List TRACKED_ERROR_TYPES = List.of( - RecipeError.NOT_ENOUGH_ENERGY, - RecipeError.NOT_ENOUGH_INPUT, - RecipeError.NOT_ENOUGH_OUTPUT_SPACE, - RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT - ); - private static final Set GLOBAL_ERROR_TYPES = Set.of(RecipeError.NOT_ENOUGH_ENERGY); - - public TileEntityCompressingFactory(Holder blockProvider, BlockPos pos, BlockState state) { - super(blockProvider, pos, state, TRACKED_ERROR_TYPES, GLOBAL_ERROR_TYPES); - - ejectorComponent = new TileComponentEjector(this); - ejectorComponent.setOutputData(configComponent, TransmissionType.ITEM); - } - - @Override - protected boolean isCachedRecipeValid(@Nullable CachedRecipe cached, @NotNull ItemStack stack) { - return cached != null && cached.getRecipe().getInput().testType(stack); - } - - @Override - protected @Nullable ItemStackToItemStackRecipe findRecipe(int process, @NotNull ItemStack fallbackInput, @NotNull IInventorySlot outputSlots) { - ItemStack output = outputSlots.getStack(); - return getRecipeType().getInputCache().findTypeBasedRecipe(level, fallbackInput, output, (recipe, input, currentOutput) -> InventoryUtils.areItemsStackable(recipe.getOutput(input), currentOutput)); - } - - @Override - protected int getNeededInput(ItemStackToItemStackRecipe recipe, ItemStack inputStack) { - return MathUtils.clampToInt(recipe.getInput().getNeededAmount(inputStack)); - } - - @Override - public boolean isValidInputItem(@NotNull ItemStack stack) { - return containsRecipe(stack); - } - - @Override - protected void addGasTanks(ChemicalTankHelper builder, IContentsListener listener, IContentsListener updateSortingListener) { - - } - - @Override - public @NotNull IMekanismRecipeTypeProvider> getRecipeType() { - return MekIntegrationRecipeType.MEK_COMPRESSING; - } - - @Override - public @Nullable ItemStackToItemStackRecipe getRecipe(int cacheIndex) { - return findFirstRecipe(itemInputHandlers[cacheIndex]); - } - - @Override - public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ItemStackToItemStackRecipe recipe, int cacheIndex) { - return OneInputCachedRecipe.itemToItem(recipe, recheckAllRecipeErrors[cacheIndex], itemInputHandlers[cacheIndex], itemOutputHandlers[cacheIndex]) - .setErrorsChanged(errors -> errorTracker.onErrorsChanged(errors, cacheIndex)) - .setCanHolderFunction(this::canFunction) - .setActive(active -> setActiveState(active, cacheIndex)) - .setEnergyRequirements(energyContainer::getEnergyPerTick, energyContainer) - .setRequiredTicks(this::getTicksRequired) - .setOnFinish(this::markForSave) - .setOperatingTicksChanged(operatingTicks -> progress[cacheIndex] = operatingTicks); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityItemToItemMIFactory.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityItemToItemMIFactory.java deleted file mode 100644 index 1fc6e201..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/factory/TileEntityItemToItemMIFactory.java +++ /dev/null @@ -1,358 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.tile.factory; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.inventory.slot.MIFactoryInputInventorySlot; -import mekanism.api.Action; -import mekanism.api.IContentsListener; -import mekanism.api.inventory.IInventorySlot; -import mekanism.api.recipes.MekanismRecipe; -import mekanism.api.recipes.cache.CachedRecipe; -import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; -import mekanism.api.recipes.inputs.IInputHandler; -import mekanism.api.recipes.inputs.InputHelper; -import mekanism.api.recipes.outputs.IOutputHandler; -import mekanism.api.recipes.outputs.OutputHelper; -import mekanism.common.CommonWorldTickHandler; -import mekanism.common.capabilities.holder.slot.InventorySlotHelper; -import mekanism.common.integration.computer.ComputerException; -import mekanism.common.integration.computer.annotation.ComputerMethod; -import mekanism.common.inventory.slot.OutputInventorySlot; -import mekanism.common.inventory.warning.WarningTracker.WarningType; -import mekanism.common.lib.inventory.HashedItem; -import mekanism.common.util.MekanismUtils; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.*; -import java.util.function.IntSupplier; - -public abstract class TileEntityItemToItemMIFactory> extends TileEntityMIFactory { - - protected ProcessInfo[] processInfoSlots; - - protected final List inputItemSlots; - - protected TileEntityItemToItemMIFactory(Holder blockProvider, BlockPos pos, BlockState state, List errorTypes, Set globalErrorTypes) { - super(blockProvider, pos, state, errorTypes, globalErrorTypes); - inputItemSlots = new ArrayList<>(); - - for (ProcessInfo info : processInfoSlots) { - inputItemSlots.add(info.inputSlot()); - outputItemSlots.add(info.outputSlot()); - } - - configComponent.setupItemIOConfig(inputItemSlots, outputItemSlots, energySlot, false); - } - - @Override - protected void addSlots(InventorySlotHelper builder, IContentsListener listener, IContentsListener updateSortingListener) { - itemInputHandlers = new IInputHandler[tier.processes]; - itemOutputHandlers = new IOutputHandler[tier.processes]; - processInfoSlots = new ProcessInfo[tier.processes]; - for (int i = 0; i < tier.processes; i++) { - OutputInventorySlot outputSlot = OutputInventorySlot.at(updateSortingListener, getXPos(i), 57); - //Note: As we are an item factory that has comparator's based on items we can just use the monitor as a listener directly - MIFactoryInputInventorySlot inputSlot = MIFactoryInputInventorySlot.create(this, i, outputSlot, recipeCacheLookupMonitors[i], getXPos(i), 13); - int index = i; - builder.addSlot(inputSlot).tracksWarnings(slot -> slot.warning(WarningType.NO_MATCHING_RECIPE, getWarningCheck(RecipeError.NOT_ENOUGH_INPUT, index))); - builder.addSlot(outputSlot).tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE, index))); - itemInputHandlers[i] = InputHelper.getInputHandler(inputSlot, RecipeError.NOT_ENOUGH_INPUT); - itemOutputHandlers[i] = OutputHelper.getOutputHandler(outputSlot, RecipeError.NOT_ENOUGH_OUTPUT_SPACE); - processInfoSlots[i] = new ProcessInfo(i, inputSlot, outputSlot); - } - } - - @Override - protected void needSortingInventory() { - sortInventory(); - } - - /** - * Checks if the cached recipe (or recipe for current factory if the cache is out of date) can produce a specific output. - * - * @param process Which process the cache recipe is. - * @param fallbackInput Used if the cached recipe is null or to validate the cached recipe is not out of date. - * @param outputSlot The output slot for this slot. - * @param updateCache True to make the cached recipe get updated if it is out of date. - * - * @return True if the recipe produces the given output. - */ - public boolean inputProducesOutput(int process, @NotNull ItemStack fallbackInput, @NotNull IInventorySlot outputSlot, boolean updateCache) { - return outputSlot.isEmpty() || getRecipeForInput(process, fallbackInput, outputSlot, updateCache) != null; - } - - protected abstract boolean isCachedRecipeValid(@Nullable CachedRecipe cached, @NotNull ItemStack stack); - - @Nullable - protected RECIPE getRecipeForInput(int process, @NotNull ItemStack fallbackInput, @NotNull IInventorySlot outputSlot, boolean updateCache) { - if (!CommonWorldTickHandler.flushTagAndRecipeCaches) { - //If our recipe caches are valid, grab our cached recipe and see if it is still valid - CachedRecipe cached = getCachedRecipe(process); - if (cached != null && isCachedRecipeValid(cached, fallbackInput)) { - //Our input matches the recipe we have cached for this slot - return cached.getRecipe(); - } - } - //If there is no cached item input, or it doesn't match our fallback then it is an out of date cache, so we ignore the fact that we have a cache - RECIPE foundRecipe = findRecipe(process, fallbackInput, outputSlot); - if (foundRecipe == null) { - //We could not find any valid recipe for the given item that matches the items in the current output slots - return null; - } - if (updateCache) { - //If we want to update the cache, then create a new cache with the recipe we found and update the cache - recipeCacheLookupMonitors[process].updateCachedRecipe(foundRecipe); - } - return foundRecipe; - } - - @Nullable - protected abstract RECIPE findRecipe(int process, @NotNull ItemStack fallbackInput, @NotNull IInventorySlot outputSlots); - - protected abstract int getNeededInput(RECIPE recipe, ItemStack inputStack); - - /** - * Like isItemValidForSlot makes no assumptions about current stored types - */ - public abstract boolean isValidInputItem(@NotNull ItemStack stack); - - @ComputerMethod - ItemStack getInput(int process) throws ComputerException { - validateValidProcess(process); - return processInfoSlots[process].inputSlot().getStack(); - } - - @ComputerMethod - ItemStack getOutput(int process) throws ComputerException { - validateValidProcess(process); - return processInfoSlots[process].outputSlot().getStack(); - } - - private void sortInventory() { - Map processes = new HashMap<>(); - List emptyProcesses = new ArrayList<>(); - for (ProcessInfo processInfo : processInfoSlots) { - IInventorySlot inputSlot = processInfo.inputSlot(); - if (inputSlot.isEmpty()) { - emptyProcesses.add(processInfo); - } else { - ItemStack inputStack = inputSlot.getStack(); - HashedItem item = HashedItem.raw(inputStack); - RecipeProcessInfo recipeProcessInfo = processes.computeIfAbsent(item, i -> new RecipeProcessInfo()); - recipeProcessInfo.processes.add(processInfo); - recipeProcessInfo.totalCount += inputStack.getCount(); - if (recipeProcessInfo.lazyMinPerSlot == null && !CommonWorldTickHandler.flushTagAndRecipeCaches) { - //If we don't have a lazily initialized min per slot calculation set for it yet - // and our cache is not invalid/out of date due to a reload - CachedRecipe cachedRecipe = getCachedRecipe(processInfo.process()); - if (isCachedRecipeValid(cachedRecipe, inputStack)) { - // And our current process has a cached recipe then set the lazily initialized per slot value - // Note: If something goes wrong, and we end up with zero as how much we need as an input - // we just bump the value up to one to make sure we properly handle it - recipeProcessInfo.lazyMinPerSlot = () -> Math.max(1, getNeededInput(cachedRecipe.getRecipe(), inputStack)); - } - } - } - } - if (processes.isEmpty()) { - //If all input slots are empty, just exit - return; - } - for (Map.Entry entry : processes.entrySet()) { - RecipeProcessInfo recipeProcessInfo = entry.getValue(); - if (recipeProcessInfo.lazyMinPerSlot == null) { - //If we don't have a lazy initializer for our minPerSlot setup, that means that there is - // no valid cached recipe for any of the slots of this type currently, so we want to try and - // get the recipe we will have for the first slot, once we end up with more items in the stack - recipeProcessInfo.lazyMinPerSlot = () -> { - //Note: We put all of this logic in the lazy init, so that we don't actually call any of this - // until it is needed. That way if we have no empty slots and all our input slots are filled - // we don't do any extra processing here, and can properly short circuit - HashedItem item = entry.getKey(); - ItemStack largerInput = item.createStack(Math.min(65536, recipeProcessInfo.totalCount)); - ProcessInfo processInfo = recipeProcessInfo.processes.get(0); - //Try getting a recipe for our input with a larger size, and update the cache if we find one - RECIPE recipe = getRecipeForInput(processInfo.process(), largerInput, processInfo.outputSlot(), true); - if (recipe != null) { - return Math.max(1, getNeededInput(recipe, largerInput)); - } - return 1; - }; - } - } - if (!emptyProcesses.isEmpty()) { - //If we have any empty slots, we need to factor them in as valid slots for items to transferred to - addEmptySlotsAsTargets(processes, emptyProcesses); - //Note: Any remaining empty slots are "ignored" as we don't have any - // spare items to distribute to them - } - //Distribute items among the slots - distributeItems(processes); - } - - private void addEmptySlotsAsTargets(Map processes, List emptyProcesses) { - for (Map.Entry entry : processes.entrySet()) { - RecipeProcessInfo recipeProcessInfo = entry.getValue(); - int minPerSlot = recipeProcessInfo.getMinPerSlot(); - int maxSlots = recipeProcessInfo.totalCount / minPerSlot; - if (maxSlots <= 1) { - //If we don't have enough to even fill the input for a slot for a single recipe; skip - continue; - } - //Otherwise, if we have at least enough items for two slots see how many we already have with items in them - int processCount = recipeProcessInfo.processes.size(); - if (maxSlots <= processCount) { - //If we don't have enough extra to fill another slot skip - continue; - } - //Note: This is some arbitrary input stack one of the stacks contained - ItemStack sourceStack = entry.getKey().getInternalStack(); - int emptyToAdd = maxSlots - processCount; - int added = 0; - List toRemove = new ArrayList<>(); - for (ProcessInfo emptyProcess : emptyProcesses) { - if (inputProducesOutput(emptyProcess.process(), sourceStack, emptyProcess.outputSlot(), true)) { - //If the input is valid for the stuff in the empty process' output slot - // then add our empty process to our recipeProcessInfo, and mark - // the empty process as accounted for - recipeProcessInfo.processes.add(emptyProcess); - toRemove.add(emptyProcess); - added++; - if (added >= emptyToAdd) { - //If we added as many as we could based on how much input we have; exit - break; - } - } - } - emptyProcesses.removeAll(toRemove); - if (emptyProcesses.isEmpty()) { - //We accounted for all our empty processes, stop looking at inputs - // for purposes of distributing empty slots among them - break; - } - } - } - - private void distributeItems(Map processes) { - for (Map.Entry entry : processes.entrySet()) { - RecipeProcessInfo recipeProcessInfo = entry.getValue(); - int processCount = recipeProcessInfo.processes.size(); - if (processCount == 1) { - //If there is only one process with the item in it; short-circuit, no balancing is needed - continue; - } - HashedItem item = entry.getKey(); - //Note: This isn't based on any limits the slot may have (but we currently don't have any reduced ones here, so it doesn't matter) - int maxStackSize = 65536; - int numberPerSlot = recipeProcessInfo.totalCount / processCount; - if (numberPerSlot == maxStackSize) { - //If all the slots are already maxed out; short-circuit, no balancing is needed - continue; - } - int remainder = recipeProcessInfo.totalCount % processCount; - int minPerSlot = recipeProcessInfo.getMinPerSlot(); - if (minPerSlot > 1) { - int perSlotRemainder = numberPerSlot % minPerSlot; - if (perSlotRemainder > 0) { - //Reduce the number we distribute per slot by what our excess - // is if we are trying to balance it by the size of the input - // required by the recipe - numberPerSlot -= perSlotRemainder; - // and then add how many items we removed to our remainder - remainder += perSlotRemainder * processCount; - // Note: After this processing the remainder is at most: - // processCount - 1 + processCount * (minPerSlot - 1) = - // processCount - 1 + processCount * minPerSlot - processCount = - // processCount * minPerSlot - 1 - // Which means that reducing the remainder by minPerSlot for each - // slot while we still have a remainder, will make sure - } - if (numberPerSlot + minPerSlot > maxStackSize) { - //If adding how much we want per slot would cause the slot to overflow - // we reduce how much we set per slot to how much there is room for - // Note: we can do this safely because while our remainder may be - // processCount * minPerSlot - 1 (as shown above), if we are in - // this if statement, that means that we really have at most: - // processCount * maxStackSize - 1 items being distributed and - // have: processCount * numberPerSlot + remainder - // which means that our remainder is actually at most: - // processCount * (maxStackSize - numberPerSlot) - 1 - // so we can safely set our per slot distribution to maxStackSize - numberPerSlot - minPerSlot = maxStackSize - numberPerSlot; - } - } - for (int i = 0; i < processCount; i++) { - ProcessInfo processInfo = recipeProcessInfo.processes.get(i); - MIFactoryInputInventorySlot inputSlot = processInfo.inputSlot(); - int sizeForSlot = numberPerSlot; - if (remainder > 0) { - //If we have a remainder, factor it into our slots - if (remainder > minPerSlot) { - //If our remainder is greater than how much we need to fill out the min amount for the slot based - // on the recipe then, to keep it distributed as evenly as possible, increase our size for the slot - // by how much we need, and decrease our remainder by that amount - sizeForSlot += minPerSlot; - remainder -= minPerSlot; - } else { - //Otherwise, add our entire remainder to the size for slot, and mark our remainder as fully used - sizeForSlot += remainder; - remainder = 0; - } - } - if (inputSlot.isEmpty()) { - //Note: sizeForSlot should never be zero here as we would not have added - // the empty slot to this item's distribution grouping if it would not - // end up getting any items; check it just in case though before creating - // a stack for the slot and setting it - if (sizeForSlot > 0) { - //Note: We use setStackUnchecked here, as there is a very small chance that - // the stack is not actually valid for the slot because of a reload causing - // recipes to change. If this is the case, then we want to properly not crash, - // but we would rather not add any extra overhead about revalidating the item - // each time as it can get somewhat expensive. - inputSlot.setStackUnchecked(item.createStack(sizeForSlot)); - } - } else { - //Slot is not currently empty - if (sizeForSlot == 0) { - //If the amount of the item we want to set it to is zero (all got used by earlier stacks, which might - // happen if the recipe requires a stacked input (minPerSlot > 1)), then we need to set the slot to empty - inputSlot.setEmpty(); - } else if (inputSlot.getCount() != sizeForSlot) { - //Otherwise, if our slot doesn't already contain the amount we want it to, - // we need to adjust how much is stored in it, and log an error if it changed - // by a different amount then we expected - //Note: We use setStackSize here rather than setStack to avoid an unnecessary stack copy call - // as copying item stacks can sometimes be rather expensive in a heavily modded environment - MekanismUtils.logMismatchedStackSize(sizeForSlot, inputSlot.setStackSize(sizeForSlot, Action.EXECUTE)); - } - } - } - } - } - - public record ProcessInfo(int process, @NotNull MIFactoryInputInventorySlot inputSlot, @NotNull IInventorySlot outputSlot) { - } - - private static class RecipeProcessInfo { - - private final List processes = new ArrayList<>(); - @Nullable - private IntSupplier lazyMinPerSlot; - private int minPerSlot = 1; - private int totalCount; - - public int getMinPerSlot() { - if (lazyMinPerSlot != null) { - //Get the value lazily - minPerSlot = lazyMinPerSlot.getAsInt(); - lazyMinPerSlot = null; - } - return minPerSlot; - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/machine/TileEntityNeutronCollector.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/machine/TileEntityNeutronCollector.java deleted file mode 100644 index cd682ba1..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/tile/machine/TileEntityNeutronCollector.java +++ /dev/null @@ -1,152 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.tile.machine; - -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.cache.ChemicalToItemCachedRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.api.recipes.chemicals.ChemicalStackToItemStackRecipe; -import committee.nova.mods.avaritia_integration.module.mekanism.common.recipe.MekIntegrationRecipeType; -import committee.nova.mods.avaritia_integration.module.mekanism.common.registries.MekIntegrationBlocks; -import mekanism.api.AutomationType; -import mekanism.api.IContentsListener; -import mekanism.api.RelativeSide; -import mekanism.api.chemical.BasicChemicalTank; -import mekanism.api.chemical.attribute.ChemicalAttributeValidator; -import mekanism.api.chemical.Chemical; -import mekanism.api.chemical.ChemicalStack; -import mekanism.api.chemical.IChemicalTank; -import mekanism.api.chemical.attribute.ChemicalAttributes; -import mekanism.api.functions.ConstantPredicates; -import mekanism.api.radiation.IRadiationManager; -import mekanism.api.recipes.cache.CachedRecipe; -import mekanism.api.recipes.cache.CachedRecipe.OperationTracker.RecipeError; -import mekanism.api.recipes.inputs.IInputHandler; -import mekanism.api.recipes.inputs.InputHelper; -import mekanism.api.recipes.outputs.IOutputHandler; -import mekanism.api.recipes.outputs.OutputHelper; -import mekanism.common.capabilities.energy.MachineEnergyContainer; -import mekanism.common.capabilities.holder.chemical.ChemicalTankHelper; -import mekanism.common.capabilities.holder.chemical.IChemicalTankHolder; -import mekanism.common.capabilities.holder.energy.EnergyContainerHelper; -import mekanism.common.capabilities.holder.energy.IEnergyContainerHolder; -import mekanism.common.capabilities.holder.slot.IInventorySlotHolder; -import mekanism.common.capabilities.holder.slot.InventorySlotHelper; -import mekanism.common.inventory.container.slot.SlotOverlay; -import mekanism.common.inventory.slot.EnergyInventorySlot; -import mekanism.common.inventory.slot.OutputInventorySlot; -import mekanism.common.inventory.slot.chemical.ChemicalInventorySlot; -import mekanism.common.inventory.warning.WarningTracker.WarningType; -import mekanism.common.lib.radiation.RadiationManager; -import mekanism.common.lib.transmitter.TransmissionType; -import mekanism.common.recipe.IMekanismRecipeTypeProvider; -import mekanism.common.recipe.lookup.ISingleRecipeLookupHandler.ChemicalRecipeLookupHandler; -import mekanism.common.recipe.lookup.cache.InputRecipeCache.SingleChemical; -import mekanism.common.registries.MekanismChemicals; -import mekanism.common.tile.component.TileComponentEjector; -import mekanism.common.tile.prefab.TileEntityProgressMachine; -import net.minecraft.core.BlockPos; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public class TileEntityNeutronCollector extends TileEntityProgressMachine implements ChemicalRecipeLookupHandler { - - private static final List TRACKED_ERROR_TYPES = List.of( - RecipeError.NOT_ENOUGH_ENERGY, - RecipeError.NOT_ENOUGH_INPUT, - RecipeError.NOT_ENOUGH_OUTPUT_SPACE, - RecipeError.INPUT_DOESNT_PRODUCE_OUTPUT - ); - - private static final long MAX_GAS = 10_000; - - public IChemicalTank gasTank; - - private final IInputHandler<@NotNull ChemicalStack> inputHandler; - private final IOutputHandler<@NotNull ItemStack> outputHandler; - - private MachineEnergyContainer energyContainer; - - ChemicalInventorySlot gasInputSlot; - OutputInventorySlot outputSlot; - EnergyInventorySlot energySlot; - - public TileEntityNeutronCollector(BlockPos pos, BlockState state) { - super(MekIntegrationBlocks.NEUTRON_COLLECTOR, pos, state, TRACKED_ERROR_TYPES, 200); - configComponent.setupItemIOConfig(gasInputSlot, outputSlot, energySlot); - configComponent.setupIOConfig(TransmissionType.CHEMICAL, gasTank, RelativeSide.RIGHT).setCanEject(false); - configComponent.setupInputConfig(TransmissionType.ENERGY, energyContainer); - - ejectorComponent = new TileComponentEjector(this); - ejectorComponent.setOutputData(configComponent, TransmissionType.ITEM); - - inputHandler = InputHelper.getInputHandler(gasTank, RecipeError.NOT_ENOUGH_INPUT); - outputHandler = OutputHelper.getOutputHandler(outputSlot, RecipeError.NOT_ENOUGH_OUTPUT_SPACE); - } - - @Override - protected @Nullable IChemicalTankHolder getInitialChemicalTanks(IContentsListener listener, IContentsListener recipeCacheListener, IContentsListener recipeCacheUnpauseListener) { - ChemicalTankHelper builder = ChemicalTankHelper.forSideWithConfig(this); - builder.addTank(gasTank = BasicChemicalTank.createModern(MAX_GAS, (type, automationType) -> automationType != AutomationType.EXTERNAL || - (type.isRadioactive() && RadiationManager.isGlobalRadiationEnabled()), ConstantPredicates.alwaysTrueBi(), this::containsRecipe, - ChemicalAttributeValidator.ALWAYS_ALLOW, recipeCacheListener)); - return builder.build(); - } - - @Override - protected @Nullable IEnergyContainerHolder getInitialEnergyContainers(IContentsListener listener, IContentsListener recipeCacheListener, IContentsListener recipeCacheUnpauseListener) { - EnergyContainerHelper builder = EnergyContainerHelper.forSideWithConfig(this); - builder.addContainer(energyContainer = MachineEnergyContainer.input(this, listener)); - return builder.build(); - } - - @Override - protected @Nullable IInventorySlotHolder getInitialInventory(IContentsListener listener, IContentsListener recipeCacheListener, IContentsListener recipeCacheUnpauseListener) { - InventorySlotHelper builder = InventorySlotHelper.forSideWithConfig(this); - builder.addSlot(gasInputSlot = ChemicalInventorySlot.fill(gasTank, listener, 7, 56)); - builder.addSlot(outputSlot = OutputInventorySlot.at(listener, 131, 36)) - .tracksWarnings(slot -> slot.warning(WarningType.NO_SPACE_IN_OUTPUT, getWarningCheck(RecipeError.NOT_ENOUGH_OUTPUT_SPACE))); - builder.addSlot(energySlot = EnergyInventorySlot.fillOrConvert(energyContainer, this::getLevel, listener, 7, 14)); - gasInputSlot.setSlotOverlay(SlotOverlay.PLUS); - return builder.build(); - } - - private boolean canGasInsert(Chemical Chemical) { - return Chemical.equals(MekanismChemicals.SPENT_NUCLEAR_WASTE.get()) || Chemical.equals(MekanismChemicals.POLONIUM.get()) || Chemical.equals(MekanismChemicals.PLUTONIUM.get()) || Chemical.equals(MekanismChemicals.ANTIMATTER.get()); - } - - @Override - protected boolean onUpdateServer() { - boolean sendUpdatePacket = super.onUpdateServer(); - energySlot.fillContainerOrConvert(); - gasInputSlot.fillTank(); - recipeCacheLookupMonitor.updateAndProcess(); - return sendUpdatePacket; - } - - @Override - public @NotNull IMekanismRecipeTypeProvider> getRecipeType() { - return MekIntegrationRecipeType.COLLECTING; - } - - @Override - public @Nullable ChemicalStackToItemStackRecipe getRecipe(int cacheIndex) { - return findFirstRecipe(inputHandler); - } - - @Override - public @NotNull CachedRecipe createNewCachedRecipe(@NotNull ChemicalStackToItemStackRecipe recipe, int cacheIndex) { - return ChemicalToItemCachedRecipe.chemicalToItem(recipe, recheckAllRecipeErrors, inputHandler, outputHandler) - .setErrorsChanged(this::onErrorsChanged) - .setCanHolderFunction(this::canFunction) - .setActive(this::setActive) - .setEnergyRequirements(energyContainer::getEnergyPerTick, energyContainer) - .setRequiredTicks(this::getTicksRequired) - .setOnFinish(this::markForSave) - .setOperatingTicksChanged(this::setOperatingTicks); - } - - public MachineEnergyContainer getEnergyContainer() { - return energyContainer; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/upgrade/ChemicalToItemUpgradeData.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/upgrade/ChemicalToItemUpgradeData.java deleted file mode 100644 index cbf73bf8..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/upgrade/ChemicalToItemUpgradeData.java +++ /dev/null @@ -1,51 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.upgrade; - -import mekanism.api.chemical.IChemicalTank; -import mekanism.api.energy.IEnergyContainer; -import mekanism.api.inventory.IInventorySlot; -import mekanism.common.inventory.slot.EnergyInventorySlot; -import mekanism.common.tile.component.ITileComponent; -import mekanism.common.tile.interfaces.IRedstoneControl; -import mekanism.common.upgrade.IUpgradeData; -import net.minecraft.core.HolderLookup; -import net.minecraft.nbt.CompoundTag; - -import java.util.Collections; -import java.util.List; - -public class ChemicalToItemUpgradeData implements IUpgradeData { - - public final boolean redstone; - public final IRedstoneControl.RedstoneControl controlType; - public final IEnergyContainer energyContainer; - public final int[] progress; - public final boolean sorting; - public final EnergyInventorySlot energySlot; - public final List outputSlots; - public final List inputTanks; - public final CompoundTag components; - - public ChemicalToItemUpgradeData(HolderLookup.Provider provider, boolean redstone, IRedstoneControl.RedstoneControl controlType, - IEnergyContainer energyContainer, int operatingTicks, EnergyInventorySlot energySlot, - IChemicalTank inputTank, IInventorySlot outputSlot, List components) { - this(provider, redstone, controlType, energyContainer, new int[]{operatingTicks}, energySlot, Collections.singletonList(inputTank), - Collections.singletonList(outputSlot), false, components); - } - - public ChemicalToItemUpgradeData(HolderLookup.Provider provider, boolean redstone, IRedstoneControl.RedstoneControl controlType, - IEnergyContainer energyContainer, int[] progress, EnergyInventorySlot energySlot, - List inputTanks, List outputSlots, boolean sorting, List components) { - this.redstone = redstone; - this.controlType = controlType; - this.energyContainer = energyContainer; - this.progress = progress; - this.energySlot = energySlot; - this.outputSlots = outputSlots; - this.inputTanks = inputTanks; - this.sorting = sorting; - this.components = new CompoundTag(); - for (ITileComponent component : components) { - component.write(this.components, provider); - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/util/MekIntegrationEnumUtils.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/util/MekIntegrationEnumUtils.java deleted file mode 100644 index c4410300..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanism/common/util/MekIntegrationEnumUtils.java +++ /dev/null @@ -1,32 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanism.common.util; - -import committee.nova.mods.avaritia_integration.module.mekanism.common.content.blocktype.MekIntegrationFactoryType; -import fr.iglee42.evolvedmekanism.tiers.EMFactoryTier; -import mekanism.common.tier.FactoryTier; -import mekanism.common.util.EnumUtils; -import net.neoforged.fml.ModList; - -public class MekIntegrationEnumUtils { - - private MekIntegrationEnumUtils() { - - } - - /** - * Cached value of {@link MekIntegrationFactoryType#values()}. DO NOT MODIFY THIS LIST. - */ - public static final MekIntegrationFactoryType[] FACTORY_TYPES = MekIntegrationFactoryType.values(); - - /** - * Cached value of {@link EMFactoryTier()}(If you load it). DO NOT MODIFY THIS LIST. - */ - public static FactoryTier[] EM_TIERS; - - static { - // Compatible wit Emek - // 需要判断是否加载模组 - if (ModList.get().isLoaded("evolvedmekanism")) { - EM_TIERS = new FactoryTier[] { EMFactoryTier.OVERCLOCKED, EMFactoryTier.QUANTUM, EMFactoryTier.DENSE, EMFactoryTier.MULTIVERSAL, EMFactoryTier.CREATIVE }; - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/MekanismGeneratorModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/MekanismGeneratorModule.java deleted file mode 100644 index 13dfa3a3..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/MekanismGeneratorModule.java +++ /dev/null @@ -1,73 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator; - -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationBlocks; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationContainerTypes; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationItems; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationBlockEntityTypes; -import mekanism.client.ClientRegistration; -import mekanism.client.ClientRegistrationUtil; -import mekanism.client.model.baked.ExtensionBakedModel.TransformedBakedModel; -import mekanism.client.render.lib.QuadTransformation; -import mekanism.common.inventory.container.tile.MekanismTileContainer; -import mekanism.generators.client.gui.GuiSolarGenerator; -import net.minecraft.core.Holder; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.item.CreativeModeTab.ItemDisplayParameters; -import net.minecraft.world.item.CreativeModeTab.Output; -import net.minecraft.world.item.Item; -import net.neoforged.bus.api.EventPriority; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; -import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent; - -@ModuleEntry(id = MekanismGeneratorModule.MOD_ID, target = @ModMeta(MekanismGeneratorModule.MOD_ID)) -public class MekanismGeneratorModule implements Module { - - public static final String MOD_ID = "mekanismgenerators"; - - @Override - public void init(IEventBus registryBus) { - GenIntegrationItems.ITEMS.register(registryBus); - GenIntegrationBlocks.BLOCKS.register(registryBus); - GenIntegrationContainerTypes.CONTAINER_TYPES.register(registryBus); - GenIntegrationBlockEntityTypes.TILE_ENTITY_TYPES.register(registryBus); - } - - @Override - public void registerClientEvent(IEventBus modBus, IEventBus gameBus) { - modBus.addListener(EventPriority.NORMAL, this::clientSetupEvent); - modBus.addListener(EventPriority.NORMAL, this::registerScreen); - } - - private void clientSetupEvent(FMLClientSetupEvent event) { - ClientRegistration.addCustomModel(GenIntegrationBlocks.NEUTRON_ADVANCED_SOLAR_GENERATOR, (orig, evt) -> new TransformedBakedModel(orig, - QuadTransformation.translate(0, 1, 0))); - ClientRegistration.addCustomModel(GenIntegrationBlocks.INFINITY_ADVANCED_SOLAR_GENERATOR, (orig, evt) -> new TransformedBakedModel(orig, - QuadTransformation.translate(0, 1, 0))); - } - - private void registerScreen(RegisterMenuScreensEvent event) { - ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.INFINITY_SOLAR_GENERATOR, (MekanismTileContainer container, Inventory inv, Component title) -> new GuiSolarGenerator<>(container, inv, title)); - ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.NEUTRON_SOLAR_GENERATOR, (MekanismTileContainer container, Inventory inv, Component title) -> new GuiSolarGenerator<>(container, inv, title)); - ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.INFINITY_ADVANCED_SOLAR_GENERATOR, (MekanismTileContainer container, Inventory inv, Component title) -> new GuiSolarGenerator<>(container, inv, title)); - ClientRegistrationUtil.registerScreen(event, GenIntegrationContainerTypes.NEUTRON_ADVANCED_SOLAR_GENERATOR, (MekanismTileContainer container, Inventory inv, Component title) -> new GuiSolarGenerator<>(container, inv, title)); - } - - @Override - public void collectCreativeTabItems(ItemDisplayParameters parameters, Output output) { - for (Holder itemHolder : GenIntegrationItems.ITEMS.getEntries()) { - output.accept(itemHolder.value()); - } - for (Holder blockHolder : GenIntegrationBlocks.BLOCKS.getSecondaryEntries()) { - output.accept(blockHolder.value()); - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/AdvancedSolarGeneratorBlockEntity.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/AdvancedSolarGeneratorBlockEntity.java deleted file mode 100644 index a96ecb56..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/AdvancedSolarGeneratorBlockEntity.java +++ /dev/null @@ -1,147 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity; - -import mekanism.api.IEvaporationSolar; -import mekanism.api.RelativeSide; -import mekanism.api.math.MathUtils; -import mekanism.common.tile.interfaces.IBoundingBlock; -import mekanism.common.util.MekanismUtils; -import mekanism.generators.common.config.MekanismGeneratorsConfig; -import mekanism.generators.common.tile.TileEntitySolarGenerator; -import net.minecraft.SharedConstants; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.util.Mth; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; - -import java.util.function.LongSupplier; - -public class AdvancedSolarGeneratorBlockEntity extends TileEntitySolarGenerator implements IBoundingBlock, IEvaporationSolar { - - private static final RelativeSide[] ENERGY_SIDES = {RelativeSide.FRONT, RelativeSide.BOTTOM}; - private final SolarCheck[] solarChecks = new SolarCheck[8]; - - protected AdvancedSolarGeneratorBlockEntity(Holder blockProvider, BlockPos pos, BlockState state, @NotNull LongSupplier maxOutput) { - super(blockProvider, pos, state, maxOutput); - } - - @Override - protected RelativeSide[] getEnergySides() { - return ENERGY_SIDES; - } - - @Override - protected long getConfiguredMax() { - return MekanismGeneratorsConfig.generators.advancedSolarGeneration.get(); - } - - @Override - protected void recheckSettings() { - if (level == null) { - return; - } - BlockPos topPos = worldPosition.above(2); - solarCheck = new AdvancedSolarCheck(level, topPos); - float totalPeak = solarCheck.getPeakMultiplier(); - for (int i = 0; i < solarChecks.length; i++) { - if (i < 3) { - solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(-1, 0, i - 1)); - } else if (i == 3) { - solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(0, 0, -1)); - } else if (i == 4) { - solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(0, 0, 1)); - } else { - solarChecks[i] = new AdvancedSolarCheck(level, topPos.offset(1, 0, i - 6)); - } - totalPeak += solarChecks[i].getPeakMultiplier(); - } - updateMaxOutputRaw(MathUtils.clampToLong(getConfiguredMax() * (totalPeak / 9))); - } - - @Override - protected boolean checkCanSeeSun() { - if (solarCheck == null) { - //Note: We assume if solarCheck is null then solarChecks will be filled with null, and if it isn't - // then it won't be as they get initialized at the same time - return false; - } - //Allow attempting to recheck each position, and mark that we can see the sun if at least one position can - solarCheck.recheckCanSeeSun(); - byte count = solarCheck.canSeeSun() ? (byte) 1 : 0; - for (SolarCheck check : solarChecks) { - check.recheckCanSeeSun(); - if (check.canSeeSun()) { - count++; - } - } - //Mark that our solar generator can "see" the sun if at least five of the nine positions - // are able to see the sun - return count > 4; - } - - @Override - public long getProduction() { - if (level == null || solarCheck == null) { - //Note: We assume if solarCheck is null then solarChecks will be filled with null, and if it isn't - // then it won't be as they get initialized at the same time - return 0; - } - float brightness = getBrightnessMultiplier(level); - //Calculate the generation multiplier of all the solar panels together - // any part that can't see the sun will contribute zero to the multiplier, - // and then we take the average across all to see how much to multiply by - float generationMultiplier = solarCheck.getGenerationMultiplier(); - for (SolarCheck check : solarChecks) { - generationMultiplier += check.getGenerationMultiplier(); - } - generationMultiplier /= solarChecks.length + 1; - //Production is a function of the peak possible output in this biome and sun's current brightness - return MathUtils.clampToLong(getConfiguredMax() * (brightness * generationMultiplier)); - } - - private static class AdvancedSolarCheck extends SolarCheck { - - private final int recheckFrequency; - private long lastCheckedSun; - - public AdvancedSolarCheck(Level world, BlockPos pos) { - super(world, pos); - //Recheck between every 10-30 ticks, to not end up checking each position each tick - recheckFrequency = Mth.nextInt(world.random, MekanismUtils.TICKS_PER_HALF_SECOND, MekanismUtils.TICKS_PER_HALF_SECOND + SharedConstants.TICKS_PER_SECOND); - } - - @Override - public void recheckCanSeeSun() { - if (!world.dimensionType().hasSkyLight() || world.getSkyDarken() >= 4) { - //Inline of most of WorldUtils#canSeeSun so that we can exit early if it is not day or there is no skylight - // We start with the basic dimension checks and always run those, as they are simple and quick checks, and - // we want to be able to stop quickly when it gets too dark - canSeeSun = false; - return; - } - long time = world.getGameTime(); - if (time < lastCheckedSun + recheckFrequency) { - //If we have checked for blocks above the solar panel in the past recheckFrequency - // number of ticks, skip checking for now for performance reasons - return; - } - // otherwise, mark that we checked and actually check - lastCheckedSun = time; - if (world.getFluidState(pos).isEmpty()) { - //If the top isn't fluid logged we can just quickly check if the top can see the sun - canSeeSun = world.canSeeSky(pos); - } else { - BlockPos above = pos.above(); - if (world.canSeeSky(above)) { - //If the spot above can see the sun, check to make sure we can see through the block there - BlockState state = world.getBlockState(above); - canSeeSun = !state.liquid() && state.getLightBlock(world, above) <= 0; - } else { - canSeeSun = false; - } - } - } - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/InfinityAdvancedSolarGeneratorBlockEntity.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/InfinityAdvancedSolarGeneratorBlockEntity.java deleted file mode 100644 index 1b3af5e8..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/InfinityAdvancedSolarGeneratorBlockEntity.java +++ /dev/null @@ -1,17 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity; - -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationBlocks; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.state.BlockState; - -public class InfinityAdvancedSolarGeneratorBlockEntity extends AdvancedSolarGeneratorBlockEntity { - - public InfinityAdvancedSolarGeneratorBlockEntity(BlockPos pos, BlockState state) { - super(GenIntegrationBlocks.INFINITY_ADVANCED_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); - } - - @Override - protected long getConfiguredMax() { - return Long.MAX_VALUE; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/InfinitySolarGeneratorBlockEntity.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/InfinitySolarGeneratorBlockEntity.java deleted file mode 100644 index 9808141f..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/InfinitySolarGeneratorBlockEntity.java +++ /dev/null @@ -1,18 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity; - -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationBlocks; -import mekanism.generators.common.tile.TileEntitySolarGenerator; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.state.BlockState; - -public class InfinitySolarGeneratorBlockEntity extends TileEntitySolarGenerator { - - public InfinitySolarGeneratorBlockEntity(BlockPos pos, BlockState state) { - super(GenIntegrationBlocks.INFINITY_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); - } - - @Override - protected long getConfiguredMax() { - return Long.MAX_VALUE; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/NeutronAdvancedSolarGeneratorBlockEntity.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/NeutronAdvancedSolarGeneratorBlockEntity.java deleted file mode 100644 index 00103b0a..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/NeutronAdvancedSolarGeneratorBlockEntity.java +++ /dev/null @@ -1,17 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity; - -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationBlocks; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.state.BlockState; - -public class NeutronAdvancedSolarGeneratorBlockEntity extends AdvancedSolarGeneratorBlockEntity { - - public NeutronAdvancedSolarGeneratorBlockEntity(BlockPos pos, BlockState state) { - super(GenIntegrationBlocks.NEUTRON_ADVANCED_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); - } - - @Override - protected long getConfiguredMax() { - return Long.MAX_VALUE; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/NeutronSolarGeneratorBlockEntity.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/NeutronSolarGeneratorBlockEntity.java deleted file mode 100644 index 942d7f4b..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/blockentity/NeutronSolarGeneratorBlockEntity.java +++ /dev/null @@ -1,18 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity; - -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries.GenIntegrationBlocks; -import mekanism.generators.common.tile.TileEntitySolarGenerator; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.state.BlockState; - -public class NeutronSolarGeneratorBlockEntity extends TileEntitySolarGenerator { - - public NeutronSolarGeneratorBlockEntity(BlockPos pos, BlockState state) { - super(GenIntegrationBlocks.NEUTRON_SOLAR_GENERATOR, pos, state, () -> Long.MAX_VALUE); - } - - @Override - protected long getConfiguredMax() { - return Long.MAX_VALUE; - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlockEntityTypes.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlockEntityTypes.java deleted file mode 100644 index 16b7b37b..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlockEntityTypes.java +++ /dev/null @@ -1,43 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; -import mekanism.common.capabilities.Capabilities; -import mekanism.common.registration.impl.TileEntityTypeDeferredRegister; -import mekanism.common.registration.impl.TileEntityTypeRegistryObject; -import mekanism.common.tile.base.TileEntityMekanism; - -public class GenIntegrationBlockEntityTypes { - - private GenIntegrationBlockEntityTypes() {} - - public static final TileEntityTypeDeferredRegister TILE_ENTITY_TYPES = new TileEntityTypeDeferredRegister(AvaritiaIntegration.MOD_ID); - - public static final TileEntityTypeRegistryObject INFINITY_SOLAR_GENERATOR = TILE_ENTITY_TYPES.mekBuilder(GenIntegrationBlocks.INFINITY_SOLAR_GENERATOR, InfinitySolarGeneratorBlockEntity::new) - .clientTicker(TileEntityMekanism::tickClient) - .serverTicker(TileEntityMekanism::tickServer) - .withSimple(Capabilities.CONFIG_CARD) - .build(); - public static final TileEntityTypeRegistryObject NEUTRON_SOLAR_GENERATOR = TILE_ENTITY_TYPES.mekBuilder(GenIntegrationBlocks.NEUTRON_SOLAR_GENERATOR, NeutronSolarGeneratorBlockEntity::new) - .clientTicker(TileEntityMekanism::tickClient) - .serverTicker(TileEntityMekanism::tickServer) - .withSimple(Capabilities.CONFIG_CARD) - .build(); - public static final TileEntityTypeRegistryObject INFINITY_ADVANCED_SOLAR_GENERATOR = TILE_ENTITY_TYPES - .mekBuilder(GenIntegrationBlocks.INFINITY_ADVANCED_SOLAR_GENERATOR, InfinityAdvancedSolarGeneratorBlockEntity::new) - .clientTicker(TileEntityMekanism::tickClient) - .serverTicker(TileEntityMekanism::tickServer) - .withSimple(Capabilities.CONFIG_CARD) - .withSimple(Capabilities.EVAPORATION_SOLAR) - .build(); - public static final TileEntityTypeRegistryObject NEUTRON_ADVANCED_SOLAR_GENERATOR = TILE_ENTITY_TYPES - .mekBuilder(GenIntegrationBlocks.NEUTRON_ADVANCED_SOLAR_GENERATOR, NeutronAdvancedSolarGeneratorBlockEntity::new) - .clientTicker(TileEntityMekanism::tickClient) - .serverTicker(TileEntityMekanism::tickServer) - .withSimple(Capabilities.CONFIG_CARD) - .withSimple(Capabilities.EVAPORATION_SOLAR) - .build(); -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlocks.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlocks.java deleted file mode 100644 index d45ef823..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationBlocks.java +++ /dev/null @@ -1,39 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; -import mekanism.common.attachments.containers.ContainerType; -import mekanism.common.attachments.containers.item.ItemSlotsBuilder; -import mekanism.common.block.prefab.BlockTile.BlockTileModel; -import mekanism.common.item.block.ItemBlockTooltip; -import mekanism.common.registration.impl.BlockDeferredRegister; -import mekanism.common.registration.impl.BlockRegistryObject; -import mekanism.generators.common.content.blocktype.Generator; -import net.minecraft.world.level.material.MapColor; - -public class GenIntegrationBlocks { - - private GenIntegrationBlocks() { - } - - public static final BlockDeferredRegister BLOCKS = new BlockDeferredRegister(AvaritiaIntegration.MOD_ID); - - public static final BlockRegistryObject>, ItemBlockTooltip>>> INFINITY_SOLAR_GENERATOR = - BLOCKS.registerDetails("infinity_solar_generator", () -> new BlockTileModel<>(GenIntegrationBlockTypes.INFINITY_SOLAR_GENERATOR, properties -> properties.mapColor(MapColor.COLOR_BLUE))) - .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, () -> ItemSlotsBuilder.builder().addEnergy().build())); - - public static final BlockRegistryObject>, ItemBlockTooltip>>> NEUTRON_SOLAR_GENERATOR = - BLOCKS.registerDetails("neutron_solar_generator", () -> new BlockTileModel<>(GenIntegrationBlockTypes.NEUTRON_SOLAR_GENERATOR, properties -> properties.mapColor(MapColor.COLOR_BLUE))) - .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, () -> ItemSlotsBuilder.builder().addEnergy().build())); - - public static final BlockRegistryObject>, ItemBlockTooltip>>> INFINITY_ADVANCED_SOLAR_GENERATOR = - BLOCKS.registerDetails("infinity_advanced_solar_generator", () -> new BlockTileModel<>(GenIntegrationBlockTypes.INFINITY_ADVANCED_SOLAR_GENERATOR, properties -> properties.mapColor(MapColor.COLOR_BLUE))) - .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, () -> ItemSlotsBuilder.builder().addEnergy().build())); - - public static final BlockRegistryObject>, ItemBlockTooltip>>> NEUTRON_ADVANCED_SOLAR_GENERATOR = - BLOCKS.registerDetails("neutron_advanced_solar_generator", () -> new BlockTileModel<>(GenIntegrationBlockTypes.NEUTRON_ADVANCED_SOLAR_GENERATOR, properties -> properties.mapColor(MapColor.COLOR_BLUE))) - .forItemHolder(holder -> holder.addAttachmentOnlyContainers(ContainerType.ITEM, () -> ItemSlotsBuilder.builder().addEnergy().build())); -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationContainerTypes.java b/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationContainerTypes.java deleted file mode 100644 index 833a76d5..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/mekanismgenerator/common/registries/GenIntegrationContainerTypes.java +++ /dev/null @@ -1,22 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.registries; - -import committee.nova.mods.avaritia_integration.AvaritiaIntegration; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinityAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.InfinitySolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronAdvancedSolarGeneratorBlockEntity; -import committee.nova.mods.avaritia_integration.module.mekanismgenerator.common.blockentity.NeutronSolarGeneratorBlockEntity; -import mekanism.common.inventory.container.tile.MekanismTileContainer; -import mekanism.common.registration.impl.ContainerTypeDeferredRegister; -import mekanism.common.registration.impl.ContainerTypeRegistryObject; - -public class GenIntegrationContainerTypes { - - private GenIntegrationContainerTypes() {} - - public static final ContainerTypeDeferredRegister CONTAINER_TYPES = new ContainerTypeDeferredRegister(AvaritiaIntegration.MOD_ID); - - public static final ContainerTypeRegistryObject> INFINITY_SOLAR_GENERATOR = CONTAINER_TYPES.custom("infinity_solar_generator", InfinitySolarGeneratorBlockEntity.class).armorSideBar(-20, 11, 0).build(); - public static final ContainerTypeRegistryObject> NEUTRON_SOLAR_GENERATOR = CONTAINER_TYPES.custom("neutron_solar_generator", NeutronSolarGeneratorBlockEntity.class).armorSideBar(-20, 11, 0).build(); - public static final ContainerTypeRegistryObject> INFINITY_ADVANCED_SOLAR_GENERATOR = CONTAINER_TYPES.custom("infinity_advanced_solar_generator", InfinityAdvancedSolarGeneratorBlockEntity.class).armorSideBar(-20, 11, 0).build(); - public static final ContainerTypeRegistryObject> NEUTRON_ADVANCED_SOLAR_GENERATOR = CONTAINER_TYPES.custom("neutron_advanced_solar_generator", NeutronAdvancedSolarGeneratorBlockEntity.class).armorSideBar(-20, 11, 0).build(); -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/pneumaticcraft/PneumaticCraftModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/pneumaticcraft/PneumaticCraftModule.java deleted file mode 100644 index 12051c67..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/pneumaticcraft/PneumaticCraftModule.java +++ /dev/null @@ -1,23 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.pneumaticcraft; - -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.pneumaticcraft.registry.PneumaticCraftIntegrationItems; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; - -@ModuleEntry(id = PneumaticCraftModule.MOD_ID, target = @ModMeta(PneumaticCraftModule.MOD_ID)) -public final class PneumaticCraftModule implements Module { - public static final String MOD_ID = "pneumaticcraft"; - - @Override - public void init(IEventBus registryBus) { - PneumaticCraftIntegrationItems.REGISTRY.register(registryBus); - } - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - output.accept(PneumaticCraftIntegrationItems.CREATIVE_COMPRESSED_IRON.get()); - } -} diff --git a/src/main/java/committee/nova/mods/avaritia_integration/module/refinedstorage/RefinedStorageModule.java b/src/main/java/committee/nova/mods/avaritia_integration/module/refinedstorage/RefinedStorageModule.java deleted file mode 100644 index f7628016..00000000 --- a/src/main/java/committee/nova/mods/avaritia_integration/module/refinedstorage/RefinedStorageModule.java +++ /dev/null @@ -1,23 +0,0 @@ -package committee.nova.mods.avaritia_integration.module.refinedstorage; - -import committee.nova.mods.avaritia_integration.module.ModMeta; -import committee.nova.mods.avaritia_integration.module.Module; -import committee.nova.mods.avaritia_integration.module.ModuleEntry; -import committee.nova.mods.avaritia_integration.module.refinedstorage.registry.RefinedStorageIntegrationItems; -import net.minecraft.world.item.CreativeModeTab; -import net.neoforged.bus.api.IEventBus; - -@ModuleEntry(id = RefinedStorageModule.MOD_ID, target = @ModMeta(RefinedStorageModule.MOD_ID)) -public final class RefinedStorageModule implements Module { - public static final String MOD_ID = "refinedstorage"; - - @Override - public void init(IEventBus registryBus) { - RefinedStorageIntegrationItems.REGISTRY.register(registryBus); - } - - @Override - public void collectCreativeTabItems(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) { - output.accept(RefinedStorageIntegrationItems.INFINITY_STORAGE_PART.get()); - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/advanced_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/advanced_neutron_collecting_factory.json deleted file mode 100644 index f2da4bae..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/advanced_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/advanced" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/advanced", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/advanced", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/advanced", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/advanced", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/advanced_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/advanced_singularity_compressing_factory.json deleted file mode 100644 index bb29586e..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/advanced_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/advanced" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/advanced", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/advanced", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/advanced", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/advanced", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion.json b/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion.json deleted file mode 100644 index 6fe70eb7..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/botania/asgard_dandelion" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion_floating.json b/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion_floating.json deleted file mode 100644 index 426cb1da..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/asgard_dandelion_floating.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "": { "model": "avaritia_integration:block/botania/asgard_dandelion_floating" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/basic_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/basic_neutron_collecting_factory.json deleted file mode 100644 index 5d486a2d..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/basic_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/basic" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/basic", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/basic", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/basic", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/basic" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/basic", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/basic", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/basic", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/basic_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/basic_singularity_compressing_factory.json deleted file mode 100644 index b5c154e9..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/basic_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/basic" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/basic", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/basic", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/basic", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/basic" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/basic", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/basic", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/basic", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/creative_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/creative_neutron_collecting_factory.json deleted file mode 100644 index 5d2701e9..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/creative_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/creative" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/creative", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/creative", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/creative", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/creative" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/creative", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/creative", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/creative", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/creative_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/creative_singularity_compressing_factory.json deleted file mode 100644 index b041b3a5..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/creative_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/creative" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/creative", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/creative", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/creative", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/creative" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/creative", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/creative", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/creative", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/dense_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/dense_neutron_collecting_factory.json deleted file mode 100644 index 83f0d4f4..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/dense_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/dense" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/dense", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/dense", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/dense", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/dense" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/dense", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/dense", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/dense", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/dense_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/dense_singularity_compressing_factory.json deleted file mode 100644 index 4705adda..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/dense_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/dense" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/dense", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/dense", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/dense", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/dense" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/dense", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/dense", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/dense", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/elite_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/elite_neutron_collecting_factory.json deleted file mode 100644 index 52e86134..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/elite_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/elite" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/elite", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/elite", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/elite", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/elite" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/elite", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/elite", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/elite", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/elite_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/elite_singularity_compressing_factory.json deleted file mode 100644 index 9268b19f..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/elite_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/elite" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/elite", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/elite", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/elite", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/elite" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/elite", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/elite", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/elite", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/fake_bedrock.json b/src/main/resources/assets/avaritia_integration/blockstates/fake_bedrock.json deleted file mode 100644 index 463ef26a..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/fake_bedrock.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "": [ - { - "model": "block/bedrock" - }, - { - "model": "block/bedrock_mirrored" - }, - { - "model": "block/bedrock", - "y": 180 - }, - { - "model": "block/bedrock_mirrored", - "y": 180 - } - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal.json b/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal.json deleted file mode 100644 index eb4af633..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "block/end_portal" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal_frame.json b/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal_frame.json deleted file mode 100644 index 492286bb..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/fake_end_portal_frame.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "eye=false,facing=east": { - "model": "block/end_portal_frame", - "y": 270 - }, - "eye=false,facing=north": { - "model": "block/end_portal_frame", - "y": 180 - }, - "eye=false,facing=south": { - "model": "block/end_portal_frame" - }, - "eye=false,facing=west": { - "model": "block/end_portal_frame", - "y": 90 - }, - "eye=true,facing=east": { - "model": "block/end_portal_frame_filled", - "y": 270 - }, - "eye=true,facing=north": { - "model": "block/end_portal_frame_filled", - "y": 180 - }, - "eye=true,facing=south": { - "model": "block/end_portal_frame_filled" - }, - "eye=true,facing=west": { - "model": "block/end_portal_frame_filled", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/infinity_advanced_solar_generator.json b/src/main/resources/assets/avaritia_integration/blockstates/infinity_advanced_solar_generator.json deleted file mode 100644 index ddf8283f..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/infinity_advanced_solar_generator.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "variants": { - "facing=north": { - "model": "avaritia_integration:block/infinity_advanced_solar_generator" - }, - "facing=south": { - "model": "avaritia_integration:block/infinity_advanced_solar_generator", - "y": 180 - }, - "facing=west": { - "model": "avaritia_integration:block/infinity_advanced_solar_generator", - "y": -90 - }, - "facing=east": { - "model": "avaritia_integration:block/infinity_advanced_solar_generator", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/infinity_mana_pool.json b/src/main/resources/assets/avaritia_integration/blockstates/infinity_mana_pool.json deleted file mode 100644 index ab8a7ccf..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/infinity_mana_pool.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/botania/infinity_mana_pool" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/infinity_potato.json b/src/main/resources/assets/avaritia_integration/blockstates/infinity_potato.json deleted file mode 100644 index bcbc2367..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/infinity_potato.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model":"avaritia_integration:block/botania/infinity_potato" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/infinity_solar_generator.json b/src/main/resources/assets/avaritia_integration/blockstates/infinity_solar_generator.json deleted file mode 100644 index 5eadb2e4..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/infinity_solar_generator.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/infinity_solar_generator" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/molten_blaze_fluid.json b/src/main/resources/assets/avaritia_integration/blockstates/molten_blaze_fluid.json deleted file mode 100644 index 82330e31..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/molten_blaze_fluid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "variants": { "": { "model": "avaritia_integration:block/molten_blaze_fluid" }} -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/molten_crystal_matrix_fluid.json b/src/main/resources/assets/avaritia_integration/blockstates/molten_crystal_matrix_fluid.json deleted file mode 100644 index be28787b..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/molten_crystal_matrix_fluid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "variants": { "": { "model": "avaritia_integration:block/molten_crystal_matrix_fluid" }} -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/molten_infinity_fluid.json b/src/main/resources/assets/avaritia_integration/blockstates/molten_infinity_fluid.json deleted file mode 100644 index a9e5bda0..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/molten_infinity_fluid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "variants": { "": { "model": "tconstruct:block/fluid" }} -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/molten_neutron_fluid.json b/src/main/resources/assets/avaritia_integration/blockstates/molten_neutron_fluid.json deleted file mode 100644 index 3a3397a2..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/molten_neutron_fluid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "variants": { "": { "model": "avaritia_integration:block/molten_neutron_fluid" }} -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/molten_star_fluid.json b/src/main/resources/assets/avaritia_integration/blockstates/molten_star_fluid.json deleted file mode 100644 index 0fd843ec..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/molten_star_fluid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "variants": { "": { "model": "avaritia_integration:block/molten_star_fluid" }} -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/multiversal_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/multiversal_neutron_collecting_factory.json deleted file mode 100644 index b8de75ab..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/multiversal_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/multiversal" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/multiversal", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/multiversal", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/multiversal", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/multiversal", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/multiversal_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/multiversal_singularity_compressing_factory.json deleted file mode 100644 index df8c3c8d..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/multiversal_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/multiversal" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/multiversal", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/multiversal", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/multiversal", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/multiversal", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/neutron_advanced_solar_generator.json b/src/main/resources/assets/avaritia_integration/blockstates/neutron_advanced_solar_generator.json deleted file mode 100644 index 82846638..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/neutron_advanced_solar_generator.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "variants": { - "facing=north": { - "model": "avaritia_integration:block/neutron_advanced_solar_generator" - }, - "facing=south": { - "model": "avaritia_integration:block/neutron_advanced_solar_generator", - "y": 180 - }, - "facing=west": { - "model": "avaritia_integration:block/neutron_advanced_solar_generator", - "y": -90 - }, - "facing=east": { - "model": "avaritia_integration:block/neutron_advanced_solar_generator", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/neutron_collector.json b/src/main/resources/assets/avaritia_integration/blockstates/neutron_collector.json deleted file mode 100644 index ff8c2477..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/neutron_collector.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/neutron_collector" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/neutron_collector", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/neutron_collector", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/neutron_collector", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/neutron_collector_active" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/neutron_collector_active", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/neutron_collector_active", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/neutron_collector_active", - "y": -90 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/neutron_solar_generator.json b/src/main/resources/assets/avaritia_integration/blockstates/neutron_solar_generator.json deleted file mode 100644 index 18f7a650..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/neutron_solar_generator.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/neutron_solar_generator" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/overclocked_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/overclocked_neutron_collecting_factory.json deleted file mode 100644 index 84de8a02..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/overclocked_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/overclocked" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/overclocked", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/overclocked", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/overclocked", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/overclocked", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/overclocked_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/overclocked_singularity_compressing_factory.json deleted file mode 100644 index b3aa5c0b..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/overclocked_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/overclocked" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/overclocked", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/overclocked", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/overclocked", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/overclocked", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/potted_asgard_dandelion.json b/src/main/resources/assets/avaritia_integration/blockstates/potted_asgard_dandelion.json deleted file mode 100644 index ea260525..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/potted_asgard_dandelion.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/botania/potted_asgard_dandelion" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/potted_soarleander.json b/src/main/resources/assets/avaritia_integration/blockstates/potted_soarleander.json deleted file mode 100644 index 25215ed8..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/potted_soarleander.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/botania/potted_soarleander" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/quantum_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/quantum_neutron_collecting_factory.json deleted file mode 100644 index cdcfaef1..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/quantum_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/quantum" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/quantum", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/quantum", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/quantum", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/quantum", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/quantum_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/quantum_singularity_compressing_factory.json deleted file mode 100644 index ed14ef6a..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/quantum_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/quantum" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/quantum", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/quantum", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/quantum", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/quantum", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/singularity_compressor.json b/src/main/resources/assets/avaritia_integration/blockstates/singularity_compressor.json deleted file mode 100644 index 1f9f0d41..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/singularity_compressor.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/singularity_compressor" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/singularity_compressor", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/singularity_compressor", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/singularity_compressor", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/singularity_compressor_active" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/singularity_compressor_active", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/singularity_compressor_active", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/singularity_compressor_active", - "y": -90 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/soarleander.json b/src/main/resources/assets/avaritia_integration/blockstates/soarleander.json deleted file mode 100644 index a20dfb0a..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/soarleander.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/botania/soarleander" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/soarleander_floating.json b/src/main/resources/assets/avaritia_integration/blockstates/soarleander_floating.json deleted file mode 100644 index 336e3820..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/soarleander_floating.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "avaritia_integration:block/botania/soarleander_floating" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/blockstates/ultimate_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/ultimate_neutron_collecting_factory.json deleted file mode 100644 index 85b174c2..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/ultimate_neutron_collecting_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/ultimate" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/ultimate", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/ultimate", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/neutron_collecting/ultimate", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/neutron_collecting/active/ultimate", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/blockstates/ultimate_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/blockstates/ultimate_singularity_compressing_factory.json deleted file mode 100644 index 2ee5a4d5..00000000 --- a/src/main/resources/assets/avaritia_integration/blockstates/ultimate_singularity_compressing_factory.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/ultimate" - }, - "facing=south,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/ultimate", - "y": 180 - }, - "facing=east,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/ultimate", - "y": 90 - }, - "facing=west,active=false": { - "model": "avaritia_integration:block/factory/singularity_compressing/ultimate", - "y": -90 - }, - "facing=north,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate" - }, - "facing=south,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate", - "y": 180 - }, - "facing=east,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate", - "y": 90 - }, - "facing=west,active=true": { - "model": "avaritia_integration:block/factory/singularity_compressing/active/ultimate", - "y": -90 - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/lang/en_us.json b/src/main/resources/assets/avaritia_integration/lang/en_us.json deleted file mode 100644 index 01770ea8..00000000 --- a/src/main/resources/assets/avaritia_integration/lang/en_us.json +++ /dev/null @@ -1,291 +0,0 @@ -{ - "itemGroup.tab.Integration": "Avaritia: Integration", - - "item.avaritia_integration.blaze_cube_bolt": "Blaze Cube Bolt", - "item.avaritia_integration.blaze_cube_dense_plate": "Blaze Cube Dense Plate", - "item.avaritia_integration.blaze_cube_double_plate": "Blaze Cube Double Plate", - "item.avaritia_integration.blaze_cube_dust": "Blaze Cube Dust", - "item.avaritia_integration.blaze_cube_gear": "Blaze Cube Gear", - "item.avaritia_integration.blaze_cube_long_rod": "Blaze Cube Long Rod", - "item.avaritia_integration.blaze_cube_nugget": "Blaze Cube Nugget", - "item.avaritia_integration.blaze_cube_plate": "Blaze Cube Plate", - "item.avaritia_integration.blaze_cube_ring": "Blaze Cube Ring", - "item.avaritia_integration.blaze_cube_rod": "Blaze Cube Rod", - "item.avaritia_integration.blaze_cube_screw": "Blaze Cube Screw", - "item.avaritia_integration.blaze_cube_spring": "Blaze Cube Spring", - "item.avaritia_integration.blaze_cube_wire": "Blaze Cube Wire", - - "item.avaritia_integration.crystal_matrix_bolt": "Crystal Matrix Bolt", - "item.avaritia_integration.crystal_matrix_dense_plate": "Crystal Matrix Dense Plate", - "item.avaritia_integration.crystal_matrix_double_plate": "Crystal Matrix Double Plate", - "item.avaritia_integration.crystal_matrix_dust": "Crystal Matrix Dust", - "item.avaritia_integration.crystal_matrix_gear": "Crystal Matrix Gear", - "item.avaritia_integration.crystal_matrix_long_rod": "Crystal Matrix Long Rod", - "item.avaritia_integration.crystal_matrix_nugget": "Crystal Matrix Nugget", - "item.avaritia_integration.crystal_matrix_plate": "Crystal Matrix Plate", - "item.avaritia_integration.crystal_matrix_ring": "Crystal Matrix Ring", - "item.avaritia_integration.crystal_matrix_rod": "Crystal Matrix Rod", - "item.avaritia_integration.crystal_matrix_screw": "Crystal Matrix Screw", - "item.avaritia_integration.crystal_matrix_spring": "Crystal Matrix Spring", - "item.avaritia_integration.crystal_matrix_wire": "Crystal Matrix Wire", - - "item.avaritia_integration.infinity_bolt": "Infinity Bolt", - "item.avaritia_integration.infinity_dense_plate": "Infinity Dense Plate", - "item.avaritia_integration.infinity_double_plate": "Infinity Double Plate", - "item.avaritia_integration.infinity_dust": "Infinity Dust", - "item.avaritia_integration.infinity_gear": "Infinity Gear", - "item.avaritia_integration.infinity_long_rod": "Infinity Long Rod", - "item.avaritia_integration.infinity_plate": "Infinity Plate", - "item.avaritia_integration.infinity_ring": "Infinity Ring", - "item.avaritia_integration.infinity_rod": "Infinity Rod", - "item.avaritia_integration.infinity_screw": "Infinity Screw", - "item.avaritia_integration.infinity_spring": "Infinity Spring", - "item.avaritia_integration.infinity_wire": "Infinity Wire", - - "item.avaritia_integration.neutron_bolt": "Neutron Bolt", - "item.avaritia_integration.neutron_dense_plate": "Neutron Dense Plate", - "item.avaritia_integration.neutron_double_plate": "Neutron Double Plate", - "item.avaritia_integration.neutron_dust": "Neutron Dust", - "item.avaritia_integration.neutron_long_rod": "Neutron Long Rod", - "item.avaritia_integration.neutron_plate": "Neutron Plate", - "item.avaritia_integration.neutron_ring": "Neutron Ring", - "item.avaritia_integration.neutron_rod": "Neutron Rod", - "item.avaritia_integration.neutron_screw": "Neutron Screw", - "item.avaritia_integration.neutron_spring": "Neutron Spring", - "item.avaritia_integration.neutron_wire": "Neutron Wire", - - "item.avaritia_integration.blood_orb_of_armok": "Blood Orb of Armok", - - "item.avaritia_integration.infinity_capacitor": "Infinity Capacitor", - "item.avaritia_integration.infinity_grinding_ball": "Infinity Grinding Ball", - "item.avaritia_integration.neutron_grinding_ball": "Neutron Grinding Ball", - - "item.avaritia_integration.infinity_energy_tablet": "Infinity Energy Tablet", - "item.avaritia_integration.neutron_energy_tablet": "Neutron Energy Tablet", - "item.avaritia_integration.infinity_control_circuit": "Infinity Control Circuit", - "item.avaritia_integration.neutron_control_circuit": "Neutron Control Circuit", - "item.avaritia_integration.alloy_infinity": "Infinity Alloy", - "item.avaritia_integration.alloy_neutron": "Neutron Alloy", - "item.avaritia_integration.enriched_infinity": "Enriched Infinity", - "item.avaritia_integration.enriched_neutron": "Enriched Neutron", - "item.avaritia_integration.infinity_solar_panel": "Infinity Solar Panel", - "item.avaritia_integration.neutron_solar_panel": "Neutron Solar Panel", - - "block.avaritia_integration.asgard_dandelion": "§cAsgard Dandelion", - "block.avaritia_integration.potted_asgard_dandelion": "§cPotted Asgard Dandelion", - "block.avaritia_integration.soarleander": "§cSoarleander", - "block.avaritia_integration.potted_soarleander": "§cPotted Soarleander", - "block.avaritia_integration.asgard_dandelion_floating": "§cFloating Asgard Dandelion", - "block.avaritia_integration.soarleander_floating": "§cFloating Soarleander", - "block.avaritia_integration.infinity_mana_pool": "Infinity Mana Pool", - "block.avaritia_integration.infinity_potato": "Infinity Tiny Potato", - "item.avaritia_integration.alpha_spark": "Alpha Spark", - "entity.avaritia_integration.alpha_spark": "Alpha Spark", - "tooltip.avaritia_integration.infinity_pool": "Infinity Mana Pool, has infinite capacity", - - "block.avaritia_integration.neutron_collector": "Neutron Collector", - "block.avaritia_integration.basic_neutron_collecting_factory": "Basic Neutron Collecting Factory", - "block.avaritia_integration.advanced_neutron_collecting_factory": "Advanced Neutron Collecting Factory", - "block.avaritia_integration.elite_neutron_collecting_factory": "Elite Neutron Collecting Factory", - "block.avaritia_integration.ultimate_neutron_collecting_factory": "Ultimate Neutron Collecting Factory", - "block.avaritia_integration.overclocked_neutron_collecting_factory": "Overclocked Neutron Collecting Factory", - "block.avaritia_integration.quantum_neutron_collecting_factory": "Quantum Neutron Collecting Factory", - "block.avaritia_integration.dense_neutron_collecting_factory": "Dense Neutron Collecting Factory", - "block.avaritia_integration.multiversal_neutron_collecting_factory": "Multiversal Neutron Collecting Factory", - "block.avaritia_integration.creative_neutron_collecting_factory": "Creative Neutron Collecting Factory", - "block.avaritia_integration.singularity_compressor": "Singularity Compressor", - "block.avaritia_integration.basic_singularity_compressing_factory": "Basic Singularity Compressing Factory", - "block.avaritia_integration.advanced_singularity_compressing_factory": "Advanced Singularity Compressing Factory", - "block.avaritia_integration.elite_singularity_compressing_factory": "Elite Singularity Compressing Factory", - "block.avaritia_integration.ultimate_singularity_compressing_factory": "Ultimate Singularity Compressing Factory", - "block.avaritia_integration.overclocked_singularity_compressing_factory": "Overclocked Singularity Compressing Factory", - "block.avaritia_integration.quantum_singularity_compressing_factory": "Quantum Singularity Compressing Factory", - "block.avaritia_integration.dense_singularity_compressing_factory": "Dense Singularity Compressing Factory", - "block.avaritia_integration.multiversal_singularity_compressing_factory": "Multiversal Singularity Compressing Factory", - "block.avaritia_integration.creative_singularity_compressing_factory": "Creative Singularity Compressing Factory", - "block.avaritia_integration.infinity_solar_generator": "Infinity Solar Generator", - "block.avaritia_integration.neutron_solar_generator": "Neutron SolarGenerator", - "block.avaritia_integration.infinity_advanced_solar_generator": "Infinity Advanced Solar Generator", - "block.avaritia_integration.neutron_advanced_solar_generator": "Neutron Advanced SolarGenerator", - - "item.avaritia_integration.stredgeuniverse": "§cThe §6Strongest §eBlade §2in §bthe §3Universe §1[End of All Things · Boundless Starry Sky]", - "item.avaritia_integration.stredgeuniverse.tooltip1": "§5§o“Liberated here, the mightiest power in the universe“", - "item.avaritia_integration.stredgeuniverse.tooltip2": "§5§o“This is the end for Blade Swords“", - "item.avaritia_integration.stredgeuniverse.tooltip3": "§5§o“Aaaaaah, at the sight of this blade, all I see is fear.“", - "item.avaritia_integration.stredgeuniverse.tooltip4": "§5§o“The boundless sea of stars has been split open! My god, what is this!“", - "item.avaritia_integration.stredgeuniverse.tooltip5": "§5§o“You will never imagine what you will become beneath this blade.“", - "slash_art.avaritia_integration.meteorite_sword": "§cExtreme · §6Meteorite Sword", - "enchantment.level.100": "§cMax", - - "item.avaritia_integration.creative_mechanism": "Creative Mechanism", - "item.avaritia_integration.creative_compound": "Creative Compound", - - "item.avaritia_integration.infinity_me_storage_component": "Infinity ME Storage Component", - "item.avaritia_integration.infinity_me_storage_cell": "Infinity ME Storage Cell", - "item.avaritia_integration.infinity_me_storage_cell_big": "Ultimate Infinity Storage Cell", - - "item.avaritia_integration.creative_augment_base": "Creative Augment Base", - "item.avaritia_integration.creative_integral_components": "Creative Integral Components", - - "item.avaritia_integration.creative_compressed_iron": "Creative Compressed Iron", - - "item.avaritia_integration.infinity_storage_part": "Infinity Storage Part", - - "item.avaritia_integration.heaven_arrow": "AoE Arrow", - "item.avaritia_integration.trace_arrow": "Trace Arrow", - - "tooltip.avaritia_integration.cooldown_amount": "Cooldown Amount", - "tooltip.avaritia_integration.cooldown_time": "Cooldown Time", - "addon.avaritia_integration.neutron": "§eNeutron", - "addon.avaritia_integration.blaze_cube": "§bBlaze Cube", - "addon.avaritia_integration.crystal_matrix": "§bCrystal Matrix", - "addon.avaritia_integration.infinity": "§dInfinity", - "fluid_type.avaritia_integration.void_matter": "Void Matter", - "fluid_type.avaritia_integration.elderly_medulla": "Elderly Medulla", - "block.avaritia_integration.void_matter": "Void Matter", - "block.avaritia_integration.elderly_medulla": "Elderly Medulla", - "item.avaritia_integration.void_matter_bucket": "Void Matter Bucket", - "item.avaritia_integration.elderly_medulla_bucket": "Elderly Medulla Bucket", - "item.avaritia_integration.energy_addon_blaze_cube": "Addon: Energy Tier §bBlaze Cube", - "item.avaritia_integration.energy_addon_crystal_matrix": "Addon: Energy Tier §bCrystal Matrix", - "item.avaritia_integration.energy_addon_neutron": "Addon: Energy Tier §eNeutron", - "item.avaritia_integration.energy_addon_infinity": "Addon: Energy Tier §dInfinity", - - "block.avaritia_integration.molten_blaze_fluid": "Molten Blaze", - "fluid.avaritia_integration.molten_blaze": "Molten Blaze", - "fluid.avaritia_integration.flowing_molten_blaze": "Flowing Molten Blaze", - "item.avaritia_integration.molten_blaze_bucket": "Molten Blaze Bucket", - "fluid.avaritia_integration.molten_blaze.fluid_effect": "The extreme heat of Molten Blaze melts not only blocks, but also enemies", - "block.avaritia_integration.molten_crystal_matrix_fluid": "Molten Crystal Matrix", - "fluid.avaritia_integration.molten_crystal_matrix": "Molten Crystal Matrix", - "fluid.avaritia_integration.flowing_molten_crystal_matrix": "Flowing Molten Crystal Matrix", - "item.avaritia_integration.molten_crystal_matrix_bucket": "Molten Crystal Matrix Bucket", - "fluid.avaritia_integration.molten_crystal_matrix.fluid_effect": "No block can stand in the way of Molten Crystal Matrix", - "block.avaritia_integration.molten_neutron_fluid": "Liquid Neutron", - "fluid.avaritia_integration.molten_neutron": "Liquid Neutron", - "fluid.avaritia_integration.flowing_molten_neutron": "Flowing Liquid Neutron", - "item.avaritia_integration.molten_neutron_bucket": "Liquid Neutron Bucket", - "fluid.avaritia_integration.molten_neutron.fluid_effect": "The immense density of Liquid Neutron brings enemies to a halt", - "block.avaritia_integration.molten_infinity_fluid": "Infinity Vapor", - "fluid.avaritia_integration.molten_infinity": "Infinity Vapor", - "fluid.avaritia_integration.flowing_molten_infinity": "Flowing Infinity Vapor", - "item.avaritia_integration.molten_infinity_bucket": "Infinity Vapor Bucket", - "fluid.avaritia_integration.molten_infinity.fluid_effect": "Infinity Vapor defies countless physical laws, and its damage is no different", - "block.avaritia_integration.molten_star_fluid": "Star Fuel", - "fluid.avaritia_integration.molten_star": "Star Fuel", - "fluid.avaritia_integration.flowing_molten_star": "Flowing Star Fuel", - "item.avaritia_integration.molten_star_bucket": "Star Fuel Bucket", - "fluid.avaritia_integration.molten_star.fluid_effect": "Unstable Star Fuel is prone to exploding and generating flames", - - "chemical.avaritia_integration.infinity": "Infinity", - "chemical.avaritia_integration.neutron": "Neutron", - - "material.avaritia_integration.infinity": "Infinity", - "material.avaritia_integration.infinity.flavor": "The fury of the universe in the palm of your hand", - "material.avaritia_integration.infinity.encyclopedia": "Melee weapons can one-hit kill targets; Mining tools can break Bedrock and End Portals; Grants Fortune X and Looting X", - "material.avaritia_integration.infinity.ranged": "+6.5 Projectile Power; Fires AoE arrow of Longbow of the Heavens when out of arrows (swaps to trace arrow while sneaking)", - "material.avaritia_integration.infinity.armor": "Gains the following effects based on the number of armor pieces with this trait equipped: 1—Immunity to negative effects; 2—Infinite Night Vision, Oxygen, and Hunger; 3—Flight; 4—Invincibility; 5—Speed Boost", - - "material.avaritia_integration.blaze_cube": "Blaze Cube", - "material.avaritia_integration.blaze_cube.flavor": "Blaze Storm", - "material.avaritia_integration.blaze_cube.encyclopedia": "Extends target's burning duration by 15 seconds per level; Automatically smelts dropped items; Drops Wither Skeleton Skulls when killing any Skeleton type", - - "material.avaritia_integration.crystal_matrix": "Crystal Matrix", - "material.avaritia_integration.crystal_matrix.flavor": "This isn't even its final form", - "material.avaritia_integration.crystal_matrix.encyclopedia": "At full durability: 18% chance to negate durability loss, +60% Mining Speed and Projectile Velocity per level; Mining tools can break Bedrock and End Portals", - - "material.avaritia_integration.neutronium": "Neutronium", - "material.avaritia_integration.neutronium.flavor": "The dense heart of a star in convenient ingot form", - "material.avaritia_integration.neutronium.encyclopedia": "+5% Gravity; Chance to generate Neutronium Dust on melee hits, block mining, or projectile impacts—probability equals the percentage of Gravity attribute increased", - - "modifier.avaritia_integration.infinitum": "Infinitum", - "modifier.avaritia_integration.infinitum.flavor": "Stars and tombstones—symbols of eternity", - "modifier.avaritia_integration.infinitum.description": "Ignores most durability loss and regenerates durability quickly; Immune to external damage such as fire; Gains an ability slot", - - "modifier.avaritia_integration.rule_over": "Rule Over", - "modifier.avaritia_integration.rule_over.flavor": "Dominate all creation!", - "modifier.avaritia_integration.rule_over.description": "Melee weapons can one-hit kill targets; Mining tools can break Bedrock and End Portals; Grants Fortune X and Looting X", - - "modifier.avaritia_integration.vault_split": "Vault Split", - "modifier.avaritia_integration.vault_split.flavor": "Rend the heavens!", - "modifier.avaritia_integration.vault_split.description": "Increases Projectile Power; Fires AoE arrow of Longbow of the Heavens when out of arrows (swaps to trace arrows while sneaking)", - - "modifier.avaritia_integration.eternity": "Eternity", - "modifier.avaritia_integration.eternity.flavor": "Immortal and unyielding!", - "modifier.avaritia_integration.eternity.description": "Gains partial effects of the Infinity Armor based on the number of armor pieces with this trait equipped; Unlocks Invincibility with 4 pieces", - - "modifier.avaritia_integration.blaze_crown": "Blaze Crown", - "modifier.avaritia_integration.blaze_crown.flavor": "Beheads skeletons and scorches them black", - "modifier.avaritia_integration.blaze_crown.description": "Greatly extends target's burning duration; Automatically smelts dropped items; Drops Wither Skeleton Skulls when killing any Skeleton type", - - "modifier.avaritia_integration.crystalshine": "Crystalshine", - "modifier.avaritia_integration.crystalshine.flavor": "The shine of crystal lies in its purity", - "modifier.avaritia_integration.crystalshine.description": "At full durability: Increases Mining Speed and Projectile Velocity; Reduces chance of durability loss; Mining tools can break Bedrock and End Portals", - - "modifier.avaritia_integration.condensing": "Condensing", - "modifier.avaritia_integration.condensing.flavor": "As dust settles", - "modifier.avaritia_integration.condensing.description": "Slightly increases gravity; Chance to generate Neutronium Dust on melee hits, block mining, or projectile impacts; Probability equals the percentage of gravity attribute increased", - - "modifier.avaritia_integration.crystaluix": "Crystaluix", - "modifier.avaritia_integration.crystaluix.flavor": "If it absorbs, so do I", - "modifier.avaritia_integration.crystaluix.description": "Absorbs energy from nearby End Crystals to restore health", - - "modifier.avaritia_integration.star_dash": "Star Dash", - "modifier.avaritia_integration.star_dash.flavor": "Shining Star!", - "modifier.avaritia_integration.star_dash.description": "Increases damage on attack and has a chance to explode or fire projectiles; the higher the temperature, the higher the damage and explosion chance, and the lower the chance to fire additional projectiles", - - "modifier.avaritia_integration.superheat": "Superheat", - "modifier.avaritia_integration.superheat.flavor": "Superheated Scorch", - "modifier.avaritia_integration.superheat.description": "Increases damage dealt to burning targets", - - "container.avaritia_integration.neutron_collector": "Neutron Collector", - "container.avaritia_integration.basic_neutron_collecting_factory": "Basic Neutron Collecting Factory", - "container.avaritia_integration.advanced_neutron_collecting_factory": "Advanced Neutron Collecting Factory", - "container.avaritia_integration.elite_neutron_collecting_factory": "Elite Neutron Collecting Factory", - "container.avaritia_integration.ultimate_neutron_collecting_factory": "Ultimate Neutron Collecting Factory", - "container.avaritia_integration.overclocked_neutron_collecting_factory": "Overclocked Neutron Collecting Factory", - "container.avaritia_integration.quantum_neutron_collecting_factory": "Quantum Neutron Collecting Factory", - "container.avaritia_integration.dense_neutron_collecting_factory": "Dense Neutron Collecting Factory", - "container.avaritia_integration.multiversal_neutron_collecting_factory": "Multiversal Neutron Collecting Factory", - "container.avaritia_integration.creative_neutron_collecting_factory": "Creative Neutron Collecting Factory", - "container.avaritia_integration.singularity_compressor": "Singularity Compressor", - "container.avaritia_integration.basic_singularity_compressing_factory": "Basic Singularity Compressing Factory", - "container.avaritia_integration.advanced_singularity_compressing_factory": "Advanced Singularity Compressing Factory", - "container.avaritia_integration.elite_singularity_compressing_factory": "Elite Singularity Compressing Factory", - "container.avaritia_integration.ultimate_singularity_compressing_factory": "Ultimate Singularity Compressing Factory", - "container.avaritia_integration.overclocked_singularity_compressing_factory": "Overclocked Singularity Compressing Factory", - "container.avaritia_integration.quantum_singularity_compressing_factory": "Quantum Singularity Compressing Factory", - "container.avaritia_integration.dense_singularity_compressing_factory": "Dense Singularity Compressing Factory", - "container.avaritia_integration.multiversal_singularity_compressing_factory": "Multiversal Singularity Compressing Factory", - "container.avaritia_integration.creative_singularity_compressing_factory": "Creative Singularity Compressing Factory", - "container.avaritia_integration.infinity_solar_generator": "Infinity Solar Generator", - "container.avaritia_integration.neutron_solar_generator": "Neutron SolarGenerator", - "container.avaritia_integration.infinity_advanced_solar_generator": "Infinity Advanced Solar Generator", - "container.avaritia_integration.neutron_advanced_solar_generator": "Neutron Advanced SolarGenerator", - - "screen.avaritia_integration.module.title": "Avaritia: Integration Modules", - "screen.avaritia_integration.module.warning": "All changes make here need to restart game to take effect", - "screen.avaritia_integration.module.back": "Back", - "screen.avaritia_integration.module.enable": "Enable", - "screen.avaritia_integration.module.disable": "Disable", - "screen.avaritia_integration.message.version_between": "version between %s and %s", - "screen.avaritia_integration.message.version_higher": "version higher than %s", - "screen.avaritia_integration.message.version_lower": "version lower that %s", - "screen.avaritia_integration.message.version_any": "any version", - "screen.avaritia_integration.message.missing_mod": "Require %s of %s, but now it's missing!", - "screen.avaritia_integration.message.version_too_high": "Require %s of %s, but current version %s is too high!", - "screen.avaritia_integration.message.version_too_low": "Require %s of %s, but current version %s is too low!", - "screen.avaritia_integration.state.enabled": "Enabled", - "screen.avaritia_integration.state.disabled": "Disabled Manually", - "screen.avaritia_integration.state.error": "Disabled Automatically (Hover to see errors)", - "module.avaritia_integration.name.ae2": "Applied Energistics 2", - "module.avaritia_integration.name.bloodmagic": "Blood Magic", - "module.avaritia_integration.name.botania": "Botania", - "module.avaritia_integration.name.create": "Create", - "module.avaritia_integration.name.enderio": "Ender IO", - "module.avaritia_integration.name.pneumaticcraft": "PneumaticCraft: Repressurized", - "module.avaritia_integration.name.refinedstorage": "Refined Storage", - "module.avaritia_integration.name.slashblade": "SlashBlade", - "module.avaritia_integration.name.thermal_expansion": "Thermal Expansion", - "module.avaritia_integration.name.tconstruct": "Tinkers' Construct" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/lang/zh_cn.json b/src/main/resources/assets/avaritia_integration/lang/zh_cn.json deleted file mode 100644 index 659f3c4a..00000000 --- a/src/main/resources/assets/avaritia_integration/lang/zh_cn.json +++ /dev/null @@ -1,291 +0,0 @@ -{ - "itemGroup.tab.Integration": "无尽:集成", - - "item.avaritia_integration.blaze_cube_bolt": "炽骨立方螺栓", - "item.avaritia_integration.blaze_cube_dense_plate": "炽骨立方致密板", - "item.avaritia_integration.blaze_cube_double_plate": "炽骨立方双层板", - "item.avaritia_integration.blaze_cube_dust": "炽骨立方粉尘", - "item.avaritia_integration.blaze_cube_gear": "炽骨立方齿轮", - "item.avaritia_integration.blaze_cube_long_rod": "炽骨立方长杆", - "item.avaritia_integration.blaze_cube_nugget": "炽骨立方粒", - "item.avaritia_integration.blaze_cube_plate": "炽骨立方板", - "item.avaritia_integration.blaze_cube_ring": "炽骨立方环", - "item.avaritia_integration.blaze_cube_rod": "炽骨立方杆", - "item.avaritia_integration.blaze_cube_screw": "炽骨立方螺丝", - "item.avaritia_integration.blaze_cube_spring": "炽骨立方弹簧", - "item.avaritia_integration.blaze_cube_wire": "炽骨立方线", - - "item.avaritia_integration.crystal_matrix_bolt": "水晶矩阵螺栓", - "item.avaritia_integration.crystal_matrix_dense_plate": "水晶矩阵致密板", - "item.avaritia_integration.crystal_matrix_double_plate": "水晶矩阵双层板", - "item.avaritia_integration.crystal_matrix_dust": "水晶矩阵粉尘", - "item.avaritia_integration.crystal_matrix_gear": "水晶矩阵齿轮", - "item.avaritia_integration.crystal_matrix_long_rod": "水晶矩阵长杆", - "item.avaritia_integration.crystal_matrix_nugget": "水晶矩阵粒", - "item.avaritia_integration.crystal_matrix_plate": "水晶矩阵板", - "item.avaritia_integration.crystal_matrix_ring": "水晶矩阵环", - "item.avaritia_integration.crystal_matrix_rod": "水晶矩阵杆", - "item.avaritia_integration.crystal_matrix_screw": "水晶矩阵螺丝", - "item.avaritia_integration.crystal_matrix_spring": "水晶矩阵弹簧", - "item.avaritia_integration.crystal_matrix_wire": "水晶矩阵线", - - "item.avaritia_integration.infinity_bolt": "无尽螺栓", - "item.avaritia_integration.infinity_dense_plate": "无尽致密板", - "item.avaritia_integration.infinity_double_plate": "无尽双层板", - "item.avaritia_integration.infinity_dust": "无尽粉尘", - "item.avaritia_integration.infinity_gear": "无尽齿轮", - "item.avaritia_integration.infinity_long_rod": "无尽长杆", - "item.avaritia_integration.infinity_plate": "无尽板", - "item.avaritia_integration.infinity_ring": "无尽环", - "item.avaritia_integration.infinity_rod": "无尽杆", - "item.avaritia_integration.infinity_screw": "无尽螺丝", - "item.avaritia_integration.infinity_spring": "无尽弹簧", - "item.avaritia_integration.infinity_wire": "无尽线", - - "item.avaritia_integration.neutron_bolt": "中子螺栓", - "item.avaritia_integration.neutron_dense_plate": "中子致密板", - "item.avaritia_integration.neutron_double_plate": "中子双层板", - "item.avaritia_integration.neutron_dust": "中子粉尘", - "item.avaritia_integration.neutron_long_rod": "中子长杆", - "item.avaritia_integration.neutron_plate": "中子板", - "item.avaritia_integration.neutron_ring": "中子环", - "item.avaritia_integration.neutron_rod": "中子杆", - "item.avaritia_integration.neutron_screw": "中子螺丝", - "item.avaritia_integration.neutron_spring": "中子弹簧", - "item.avaritia_integration.neutron_wire": "中子线", - - "item.avaritia_integration.blood_orb_of_armok": "阿尔莫克之血宝珠", - - "item.avaritia_integration.infinity_capacitor": "无尽电容", - "item.avaritia_integration.infinity_grinding_ball": "无尽磨珠", - "item.avaritia_integration.neutron_grinding_ball": "中子磨珠", - - "item.avaritia_integration.infinity_energy_tablet": "无尽能量版", - "item.avaritia_integration.neutron_energy_tablet": "中子能量版", - "item.avaritia_integration.infinity_control_circuit": "永恒无尽控制电路", - "item.avaritia_integration.neutron_control_circuit": "中子辐射控制电路", - "item.avaritia_integration.alloy_infinity": "无尽合金", - "item.avaritia_integration.alloy_neutron": "中子合金", - "item.avaritia_integration.enriched_infinity": "富集无尽", - "item.avaritia_integration.enriched_neutron": "富集中子", - "item.avaritia_integration.infinity_solar_panel": "无尽太阳能板", - "item.avaritia_integration.neutron_solar_panel": "中子太阳能板", - - "block.avaritia_integration.asgard_dandelion": "§c阿斯加德蒲公英", - "block.avaritia_integration.potted_asgard_dandelion": "§c盆栽阿斯加德蒲公英", - "block.avaritia_integration.soarleander": "§c索利安德之嗜", - "block.avaritia_integration.potted_soarleander": "§c盆栽索利安德之嗜", - "block.avaritia_integration.asgard_dandelion_floating": "§c浮空阿斯加德蒲公英", - "block.avaritia_integration.soarleander_floating": "§c浮空索利安德之嗜", - "block.avaritia_integration.infinity_mana_pool": "无尽魔力池", - "block.avaritia_integration.infinity_potato": "无尽小土豆", - "item.avaritia_integration.alpha_spark": "阿尔法火花", - "entity.avaritia_integration.alpha_spark": "阿尔法火花", - "tooltip.avaritia_integration.infinity_pool": "无尽模式魔力池,拥有无限魔力容量", - - "block.avaritia_integration.neutron_collector": "中子态素收集器", - "block.avaritia_integration.basic_neutron_collecting_factory": "基础中子态素收集工厂", - "block.avaritia_integration.advanced_neutron_collecting_factory": "高级中子态素收集工厂", - "block.avaritia_integration.elite_neutron_collecting_factory": "精英中子态素收集工厂", - "block.avaritia_integration.ultimate_neutron_collecting_factory": "终极中子态素收集工厂", - "block.avaritia_integration.overclocked_neutron_collecting_factory": "超频中子态素收集工厂", - "block.avaritia_integration.quantum_neutron_collecting_factory": "量子中子态素收集工厂", - "block.avaritia_integration.dense_neutron_collecting_factory": "量子凝态中子态素收集工厂", - "block.avaritia_integration.multiversal_neutron_collecting_factory": "超阈限中子态素收集工厂", - "block.avaritia_integration.creative_neutron_collecting_factory": "创造中子态素收集工厂", - "block.avaritia_integration.singularity_compressor": "奇点压缩机", - "block.avaritia_integration.basic_singularity_compressing_factory": "基础奇点压缩工厂", - "block.avaritia_integration.advanced_singularity_compressing_factory": "高级奇点压缩工厂", - "block.avaritia_integration.elite_singularity_compressing_factory": "精英奇点压缩工厂", - "block.avaritia_integration.ultimate_singularity_compressing_factory": "终极奇点压缩工厂", - "block.avaritia_integration.overclocked_singularity_compressing_factory": "超频奇点压缩工厂", - "block.avaritia_integration.quantum_singularity_compressing_factory": "量子奇点压缩工厂", - "block.avaritia_integration.dense_singularity_compressing_factory": "量子凝态奇点压缩工厂", - "block.avaritia_integration.multiversal_singularity_compressing_factory": "超阈限奇点压缩工厂", - "block.avaritia_integration.creative_singularity_compressing_factory": "创造奇点压缩工厂", - "block.avaritia_integration.infinity_solar_generator": "无尽太阳能发电机", - "block.avaritia_integration.neutron_solar_generator": "中子太阳能发电机", - "block.avaritia_integration.infinity_advanced_solar_generator": "无尽高级太阳能发电机", - "block.avaritia_integration.neutron_advanced_solar_generator": "中子高级太阳能发电机", - - "item.avaritia_integration.stredgeuniverse": "§c宇§6宙§e最§2强§b之§3刃§1「万物终结·无尽星空」", - "item.avaritia_integration.stredgeuniverse.tooltip1": "§5§o“在此解放,宇宙最强之力”", - "item.avaritia_integration.stredgeuniverse.tooltip2": "§5§o“拔刀剑的末日到了”", - "item.avaritia_integration.stredgeuniverse.tooltip3": "§5§o“啊啊啊啊啊,看见这把刀,我就看见了恐惧。”", - "item.avaritia_integration.stredgeuniverse.tooltip4": "§5§o“无尽的星海被划开了!我的天,这是什么!”", - "item.avaritia_integration.stredgeuniverse.tooltip5": "§5§o“你永远无法想象刀刃之下,你会成为什么。”", - "slash_art.avaritia_integration.meteorite_sword": "§c终焉 · §6陨星剑", - "enchantment.level.100": "§c极限", - - "item.avaritia_integration.creative_mechanism": "创世构件", - "item.avaritia_integration.creative_compound": "创世化合物", - - "item.avaritia_integration.infinity_me_storage_component": "无尽ME存储组件", - "item.avaritia_integration.infinity_me_storage_cell": "无尽ME存储元件", - "item.avaritia_integration.infinity_me_storage_cell_big": "极限无尽存储元件", - - "item.avaritia_integration.creative_augment_base": "创造升级模板", - "item.avaritia_integration.creative_integral_components": "创世整合组件", - - "item.avaritia_integration.creative_compressed_iron": "创造压缩铁锭", - - "item.avaritia_integration.infinity_storage_part": "无限存储元件", - - "item.avaritia_integration.heaven_arrow": "范围箭", - "item.avaritia_integration.trace_arrow": "追踪箭", - - "tooltip.avaritia_integration.cooldown_amount": "冷却数量", - "tooltip.avaritia_integration.cooldown_time": "冷却时间", - "addon.avaritia_integration.neutron": "§e中子", - "addon.avaritia_integration.blaze_cube": "§b炽骨立方", - "addon.avaritia_integration.crystal_matrix": "§b水晶矩阵", - "addon.avaritia_integration.infinity": "§d无尽", - "fluid_type.avaritia_integration.void_matter": "虚空物质", - "fluid_type.avaritia_integration.elderly_medulla": "远古髓质", - "block.avaritia_integration.void_matter": "虚空物质", - "block.avaritia_integration.elderly_medulla": "远古髓质", - "item.avaritia_integration.void_matter_bucket": "虚空物质桶", - "item.avaritia_integration.elderly_medulla_bucket": "远古髓质桶", - "item.avaritia_integration.energy_addon_blaze_cube": "插件: 能量 Tier §b炽骨立方", - "item.avaritia_integration.energy_addon_crystal_matrix": "插件: 能量 Tier §b水晶矩阵", - "item.avaritia_integration.energy_addon_neutron": "插件: 能量 Tier §e中子", - "item.avaritia_integration.energy_addon_infinity": "插件: 能量 Tier §d无尽", - - "block.avaritia_integration.molten_blaze_fluid": "熔火之焰", - "fluid.avaritia_integration.molten_blaze": "熔火之焰", - "fluid.avaritia_integration.flowing_molten_blaze": "流动的熔火之焰", - "item.avaritia_integration.molten_blaze_bucket": "熔火之焰桶", - "fluid.avaritia_integration.molten_blaze.fluid_effect": "熔火之焰的高温不仅能熔化方块,还能熔化敌人", - "block.avaritia_integration.molten_crystal_matrix_fluid": "熔融水晶矩阵", - "fluid.avaritia_integration.molten_crystal_matrix": "熔融水晶矩阵", - "fluid.avaritia_integration.flowing_molten_crystal_matrix": "流动的熔融水晶矩阵", - "item.avaritia_integration.molten_crystal_matrix_bucket": "熔融水晶矩阵桶", - "fluid.avaritia_integration.molten_crystal_matrix.fluid_effect": "没有什么方块能拦住熔融水晶矩阵", - "block.avaritia_integration.molten_neutron_fluid": "中子流质", - "fluid.avaritia_integration.molten_neutron": "中子流质", - "fluid.avaritia_integration.flowing_molten_neutron": "流动的中子流质", - "item.avaritia_integration.molten_neutron_bucket": "中子流质桶", - "fluid.avaritia_integration.molten_neutron.fluid_effect": "中子流质巨大的密度能让敌人停下来", - "block.avaritia_integration.molten_infinity_fluid": "升腾无尽", - "fluid.avaritia_integration.molten_infinity": "升腾无尽", - "fluid.avaritia_integration.flowing_molten_infinity": "流动的升腾无尽", - "item.avaritia_integration.molten_infinity_bucket": "升腾无尽桶", - "fluid.avaritia_integration.molten_infinity.fluid_effect": "升腾无尽不符合诸多常理,伤害也是如此", - "block.avaritia_integration.molten_star_fluid": "恒星燃料", - "fluid.avaritia_integration.molten_star": "恒星燃料", - "fluid.avaritia_integration.flowing_molten_star": "流动的恒星燃料", - "item.avaritia_integration.molten_star_bucket": "恒星燃料桶", - "fluid.avaritia_integration.molten_star.fluid_effect": "不稳定的恒星燃料,很容易爆炸并产生火焰", - - "chemical.avaritia_integration.infinity": "永恒无尽", - "chemical.avaritia_integration.neutron": "中子辐照", - - "material.avaritia_integration.infinity": "无尽", - "material.avaritia_integration.infinity.flavor": "汝掌心中者,寰宇之力也", - "material.avaritia_integration.infinity.encyclopedia": "近战武器可以秒杀目标;挖掘工具可以破坏基岩和末地传送门;获得时运X和抢夺X效果", - "material.avaritia_integration.infinity.ranged":"+6.5弹射物力量;没有箭矢时可以射出天堂陨落长弓的范围箭矢(潜行时改为追踪箭矢)", - "material.avaritia_integration.infinity.armor":"根据穿戴的带该特性的盔甲数量获得下列效果:1—免疫负面效果;2—无限夜视、氧气和饥饿值;3—飞行;4—无敌;5—加速", - - "material.avaritia_integration.blaze_cube": "炽骨立方", - "material.avaritia_integration.blaze_cube.flavor": "火焰风暴", - "material.avaritia_integration.blaze_cube.encyclopedia": "每级延长目标15秒着火时间;可自动冶炼掉落物;击杀任意骷髅时掉落凋灵骷髅头颅", - - "material.avaritia_integration.crystal_matrix": "水晶矩阵", - "material.avaritia_integration.crystal_matrix.flavor": "这甚至不是最终形态", - "material.avaritia_integration.crystal_matrix.encyclopedia": "满耐久度时,耐久消耗概率-60%,每级+60%挖掘速度和初速度,;挖掘工具可以破坏基岩和末地传送门", - - "material.avaritia_integration.neutronium": "中子", - "material.avaritia_integration.neutronium.flavor": "致密恒星之心,化为一锭", - "material.avaritia_integration.neutronium.encyclopedia": "+5%重力;攻击命中、挖掘方块或弹射物命中时有概率产生中子素尘埃,概率与自身重力属性提高的百分比相等", - - "modifier.avaritia_integration.infinitum": "永恒", - "modifier.avaritia_integration.infinitum.flavor": "星星和墓碑,是最能象征永恒的东西", - "modifier.avaritia_integration.infinitum.description": "无视大多数耐久消耗,并会快速恢复耐久;在掉落物状态下无敌;获得一个能力槽", - - "modifier.avaritia_integration.rule_over": "支配", - "modifier.avaritia_integration.rule_over.flavor": "支配万物!", - "modifier.avaritia_integration.rule_over.description": "近战武器可以秒杀目标,挖掘工具可以破坏基岩和末地传送门;获得时运X和抢夺X效果", - - "modifier.avaritia_integration.vault_split": "裂穹", - "modifier.avaritia_integration.vault_split.flavor": "撕裂天空!", - "modifier.avaritia_integration.vault_split.description": "增加弹射物力量,没有箭矢时可以射出天堂陨落长弓的范围箭(潜行时改为追踪箭)", - - "modifier.avaritia_integration.eternity": "不朽", - "modifier.avaritia_integration.eternity.flavor": "永垂不朽!", - "modifier.avaritia_integration.eternity.description": "根据穿戴的带该特性的盔甲数量获得无尽盔甲的部分效果,4件时可无敌", - - "modifier.avaritia_integration.blaze_crown": "灼首", - "modifier.avaritia_integration.blaze_crown.flavor": "斩骷髅首级,后烧至焦黑", - "modifier.avaritia_integration.blaze_crown.description": "大幅延长目标着火时间,可自动冶炼掉落物,击杀任意骷髅时掉落凋灵骷髅头颅", - - "modifier.avaritia_integration.crystalshine": "晶耀", - "modifier.avaritia_integration.crystalshine.flavor": "水晶之耀,在于无瑕", - "modifier.avaritia_integration.crystalshine.description": "满耐久度时,提高挖掘速度和初速度,耐久消耗概率降低;挖掘工具可以破坏基岩和末地传送门", - - "modifier.avaritia_integration.condensing": "凝聚", - "modifier.avaritia_integration.condensing.flavor": "尘埃落定", - "modifier.avaritia_integration.condensing.description": "略微升高重力,攻击命中、挖掘方块或弹射物命中时有概率产生中子素尘埃,概率与自身重力属性提高的百分比相等", - - "modifier.avaritia_integration.crystaluix": "晶能", - "modifier.avaritia_integration.crystaluix.flavor": "那好啊,它吸收我也吸收", - "modifier.avaritia_integration.crystaluix.description": "可以吸收附近末地水晶的能量恢复生命值", - - "modifier.avaritia_integration.star_dash": "星绽", - "modifier.avaritia_integration.star_dash.flavor": "闪耀之星!", - "modifier.avaritia_integration.star_dash.description": "攻击时提高伤害并有概率爆炸或发射弹射物;温度越高,伤害和触发爆炸的概率越高,额外发射弹射物的概率越低", - - "modifier.avaritia_integration.superheat": "过热", - "modifier.avaritia_integration.superheat.flavor": "高温灼烧", - "modifier.avaritia_integration.superheat.description": "增加对着火目标造成的伤害", - - "container.avaritia_integration.neutron_collector": "中子态素收集器", - "container.avaritia_integration.basic_neutron_collecting_factory": "基础中子态素收集工厂", - "container.avaritia_integration.advanced_neutron_collecting_factory": "高级中子态素收集工厂", - "container.avaritia_integration.elite_neutron_collecting_factory": "精英中子态素收集工厂", - "container.avaritia_integration.ultimate_neutron_collecting_factory": "终极中子态素收集工厂", - "container.avaritia_integration.overclocked_neutron_collecting_factory": "超频中子态素收集工厂", - "container.avaritia_integration.quantum_neutron_collecting_factory": "量子中子态素收集工厂", - "container.avaritia_integration.dense_neutron_collecting_factory": "量子凝态中子态素收集工厂", - "container.avaritia_integration.multiversal_neutron_collecting_factory": "超阈限中子态素收集工厂", - "container.avaritia_integration.creative_neutron_collecting_factory": "创造中子态素收集工厂", - "container.avaritia_integration.singularity_compressor": "奇点压缩机", - "container.avaritia_integration.basic_singularity_compressing_factory": "基础奇点压缩工厂", - "container.avaritia_integration.advanced_singularity_compressing_factory": "高级奇点压缩工厂", - "container.avaritia_integration.elite_singularity_compressing_factory": "精英奇点压缩工厂", - "container.avaritia_integration.ultimate_singularity_compressing_factory": "终极奇点压缩工厂", - "container.avaritia_integration.overclocked_singularity_compressing_factory": "超频奇点压缩工厂", - "container.avaritia_integration.quantum_singularity_compressing_factory": "量子奇点压缩工厂", - "container.avaritia_integration.dense_singularity_compressing_factory": "量子凝态奇点压缩工厂", - "container.avaritia_integration.multiversal_singularity_compressing_factory": "超阈限奇点压缩工厂", - "container.avaritia_integration.creative_singularity_compressing_factory": "创造奇点压缩工厂", - "container.avaritia_integration.infinity_solar_generator": "无尽太阳能发电机", - "container.avaritia_integration.neutron_solar_generator": "中子太阳能发电机", - "container.avaritia_integration.infinity_advanced_solar_generator": "无尽高级太阳能发电机", - "container.avaritia_integration.neutron_advanced_solar_generator": "中子高级太阳能发电机", - - "screen.avaritia_integration.module.title": "无尽:集成 模块管理", - "screen.avaritia_integration.module.warning": "在这里做出的任何更改均需要重启才能生效", - "screen.avaritia_integration.module.back": "返回", - "screen.avaritia_integration.module.enable": "启用", - "screen.avaritia_integration.module.disable": "禁用", - "screen.avaritia_integration.message.version_between": "在 %s 和 %s 之间版本", - "screen.avaritia_integration.message.version_higher": "高于 %s 版本", - "screen.avaritia_integration.message.version_lower": "低于 %s 版本", - "screen.avaritia_integration.message.version_any": "任意版本", - "screen.avaritia_integration.message.missing_mod": "需要%s的%s,但是目前没有安装!", - "screen.avaritia_integration.message.version_too_high": "需要%s的%s,但是当前版本%s过高!", - "screen.avaritia_integration.message.version_too_low": "需要%s的%s,但是当前版本%s过低!", - "screen.avaritia_integration.state.enabled": "已启用", - "screen.avaritia_integration.state.disabled": "已手动禁用", - "screen.avaritia_integration.state.error": "已自动禁用(鼠标放在此以显示错误)", - "module.avaritia_integration.name.ae2": "应用能源2", - "module.avaritia_integration.name.bloodmagic": "血魔法", - "module.avaritia_integration.name.botania": "植物魔法", - "module.avaritia_integration.name.create": "机械动力", - "module.avaritia_integration.name.enderio": "末影接口", - "module.avaritia_integration.name.pneumaticcraft": "气动工艺", - "module.avaritia_integration.name.refinedstorage": "精致存储", - "module.avaritia_integration.name.slashblade": "拔刀剑", - "module.avaritia_integration.name.thermal_expansion": "热力拓展(热力膨胀)", - "module.avaritia_integration.name.tconstruct": "匠魂" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/mantle/colors.json b/src/main/resources/assets/avaritia_integration/mantle/colors.json deleted file mode 100644 index 084cbb5e..00000000 --- a/src/main/resources/assets/avaritia_integration/mantle/colors.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "modifier.avaritia_integration": - { - "infinitum": "#cccccc", - "rule_over": "#cccccc", - "vault_split": "#cccccc", - "eternity": "#cccccc", - "blaze_crown": "#fdc045", - "crystalshine": "#67bbb6", - "condensing": "#a0a4bf", - "crystaluix": "#67bbb6", - "star_dash": "#5e9ddd", - "superheat": "#fdc045" - }, - "material.avaritia_integration": - { - "infinity": "#cccccc", - "blaze_cube": "#fdc045", - "crystal_matrix":"#67bbb6", - "neutronium": "#a0a4bf" - } -} diff --git a/src/main/resources/assets/avaritia_integration/mantle/fluid_texture/molten_infinity.json b/src/main/resources/assets/avaritia_integration/mantle/fluid_texture/molten_infinity.json deleted file mode 100644 index 92c956fa..00000000 --- a/src/main/resources/assets/avaritia_integration/mantle/fluid_texture/molten_infinity.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "color": "FFFFFFFF", - "flowing": "avaritia_integration:fluid/molten_infinity_flow", - "fog": { - "calculate_color": true, - "end": 2.0, - "shape": "sphere", - "start": 0.25 - }, - "still": "avaritia_integration:fluid/molten_infinity_still" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/advanced_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/block/botania/advanced_solar_generator.json deleted file mode 100644 index 60b63ddb..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/advanced_solar_generator.json +++ /dev/null @@ -1,1466 +0,0 @@ -{ - "credit": "Model by CyanideX", - "textures": { - "0": "mekanismgenerators:block/model/advanced_solar_generator", - "1": "mekanism:block/models/ports", - "2": "mekanism:block/models/ports_led", - "particle": "mekanismgenerators:block/model/advanced_solar_generator" - }, - "render_type": "minecraft:cutout", - "elements": [ - { - "name": "pole", - "from": [ - 6, - -4, - 6 - ], - "to": [ - 10, - 25, - 10 - ], - "faces": { - "north": { - "uv": [ - 11, - 0, - 10, - 7.25 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 10, - 0, - 9, - 7.25 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 12, - 0, - 11, - 7.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 10, - 0, - 9, - 7.25 - ], - "texture": "#0" - } - } - }, - { - "name": "tube1", - "from": [ - 4, - 22, - 2 - ], - "to": [ - 6, - 24, - 14 - ], - "faces": { - "north": { - "uv": [ - 12, - 5.25, - 12.5, - 5.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 15, - 5.25, - 15.5, - 5.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12.5, - 5, - 15, - 5.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 12.5, - 5.5, - 15, - 6 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "tube2", - "from": [ - 10, - 22, - 2 - ], - "to": [ - 12, - 24, - 14 - ], - "faces": { - "north": { - "uv": [ - 12, - 5.25, - 12.5, - 5.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 15, - 5.25, - 15.5, - 5.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12.5, - 5, - 15, - 5.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 12.5, - 5.5, - 15, - 6 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "barrel", - "from": [ - 4, - 25, - 5 - ], - "to": [ - 12, - 31, - 11 - ], - "faces": { - "north": { - "uv": [ - 13.5, - 0, - 15.5, - 1.5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 0, - 13.5, - 1.5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 13.5, - 1.5, - 15.5, - 3 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 1.5, - 13.5, - 3 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 13.5, - 0, - 15.5, - 1.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 13.5, - 1.5, - 15.5, - 3 - ], - "rotation": 180, - "texture": "#0" - } - } - }, - { - "name": "ring1", - "from": [ - 5, - 24, - 4 - ], - "to": [ - 6, - 32, - 12 - ], - "faces": { - "north": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14.25, - 6, - 14.5, - 8 - ], - "texture": "#0" - } - } - }, - { - "name": "ring2", - "from": [ - 10, - 24, - 4 - ], - "to": [ - 11, - 32, - 12 - ], - "faces": { - "north": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14.25, - 6, - 14.5, - 8 - ], - "texture": "#0" - } - } - }, - { - "name": "connector", - "from": [ - 5, - -11, - 1 - ], - "to": [ - 11, - -5, - 4 - ], - "faces": { - "east": { - "uv": [ - 12.75, - 10.5, - 13.5, - 12 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 10.5, - 12.75, - 12 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12, - 8.25, - 13.5, - 9 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 13.5, - 9.75, - 15, - 10.5 - ], - "texture": "#0" - } - } - }, - { - "name": "base_north", - "from": [ - 0, - -16, - 0 - ], - "to": [ - 16, - -14, - 4 - ], - "faces": { - "north": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "north" - }, - "east": { - "uv": [ - 4, - 12, - 4.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "west": { - "uv": [ - 4, - 15, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 12, - 1, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 7.5, - 12, - 8.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_south", - "from": [ - 0, - -16, - 12 - ], - "to": [ - 16, - -14, - 16 - ], - "faces": { - "east": { - "uv": [ - 4, - 15, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "south": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 12, - 4.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 3, - 12, - 4, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 12, - 5.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_east", - "from": [ - 12, - -16, - 4 - ], - "to": [ - 16, - -14, - 12 - ], - "faces": { - "east": { - "uv": [ - 4, - 13, - 4.5, - 15 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "up": { - "uv": [ - 1, - 12, - 3, - 13 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 5.5, - 12, - 7.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_west", - "from": [ - 0, - -16, - 4 - ], - "to": [ - 4, - -14, - 12 - ], - "faces": { - "east": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "west": { - "uv": [ - 4, - 13, - 4.5, - 15 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 1, - 15, - 3, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 5.5, - 15, - 7.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base2", - "from": [ - 3, - -14, - 3 - ], - "to": [ - 13, - -12, - 13 - ], - "faces": { - "north": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 9, - 9, - 11.5, - 11.5 - ], - "texture": "#0" - } - } - }, - { - "name": "base3", - "from": [ - 4, - -12, - 4 - ], - "to": [ - 12, - -4, - 12 - ], - "faces": { - "north": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14, - 3, - 16, - 5 - ], - "texture": "#0" - } - } - }, - { - "name": "port", - "from": [ - 4, - -12, - 0 - ], - "to": [ - 12, - -4, - 1 - ], - "faces": { - "north": { - "uv": [ - 0, - 0, - 8, - 8 - ], - "texture": "#1", - "cullface": "north" - }, - "east": { - "uv": [ - 7, - 0, - 8, - 8 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 0, - 8, - 8, - 16 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 8 - ], - "texture": "#1" - }, - "up": { - "uv": [ - 0, - 0, - 8, - 1 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 7, - 8, - 8 - ], - "texture": "#1" - } - } - }, - { - "name": "port_led", - "from": [ - 4, - -12, - 0 - ], - "to": [ - 12, - -4, - 0 - ], - "faces": { - "north": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#2", - "cullface": "north" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "port_down", - "from": [ - 4, - -16, - 4 - ], - "to": [ - 12, - -16, - 12 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 8, - 8 - ], - "texture": "#1", - "cullface": "down" - } - } - }, - { - "name": "port_down_led", - "from": [ - 4, - -16, - 4 - ], - "to": [ - 12, - -16, - 12 - ], - "faces": { - "down": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#2", - "cullface": "down" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "solar_panel_east", - "from": [ - 14, - 30, - -16 - ], - "to": [ - 32, - 31, - 32 - ], - "faces": { - "north": { - "uv": [ - 0, - 11.75, - 4.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0, - 0.25, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 0, - 4.5, - 0.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 4.25, - 0, - 4.5, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0, - 4.5, - 12 - ], - "rotation": 180, - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 0, - 9, - 12 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_east_base", - "from": [ - 15, - 29, - -15 - ], - "to": [ - 31, - 30, - 31 - ], - "faces": { - "north": { - "uv": [ - 4.75, - 0.25, - 8.75, - 0.5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 4.75, - 0.25, - 5, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 4.75, - 11.5, - 8.75, - 11.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 8.5, - 0.25, - 8.75, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.75, - 0.25, - 8.75, - 11.75 - ], - "rotation": 180, - "texture": "#0" - } - } - }, - { - "name": "solar_panel_east_arm", - "from": [ - 12, - 27, - 7 - ], - "to": [ - 28, - 29, - 9 - ], - "faces": { - "north": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "east": { - "uv": [ - 15.5, - 6, - 16, - 6.5 - ], - "rotation": 270, - "texture": "#0" - }, - "south": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west", - "from": [ - -16, - 30, - -16 - ], - "to": [ - 2, - 31, - 32 - ], - "faces": { - "north": { - "uv": [ - 0, - 11.75, - 4.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0, - 0.25, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 0, - 4.5, - 0.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 4.25, - 0, - 4.5, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0, - 4.5, - 12 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 0, - 9, - 12 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west_base", - "from": [ - -15, - 29, - -15 - ], - "to": [ - 1, - 30, - 31 - ], - "faces": { - "north": { - "uv": [ - 4.75, - 11.5, - 8.75, - 11.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 4.75, - 0.25, - 5, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 4.75, - 0.25, - 8.75, - 0.5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 8.5, - 0.25, - 8.75, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.75, - 0.25, - 8.75, - 11.75 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west_arm", - "from": [ - -12, - 27, - 7 - ], - "to": [ - 4, - 29, - 9 - ], - "faces": { - "north": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "west": { - "uv": [ - 15.5, - 6, - 16, - 6.5 - ], - "rotation": 270, - "texture": "#0" - }, - "up": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "down": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ - 35, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "thirdperson_lefthand": { - "rotation": [ - 35, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 45, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "firstperson_lefthand": { - "rotation": [ - 0, - 225, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "ground": { - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "gui": { - "rotation": [ - 30, - 225, - 0 - ], - "translation": [ - 0, - -4.75, - 0 - ], - "scale": [ - 0.24, - 0.25, - 0.22 - ] - }, - "head": { - "translation": [ - 0, - 14.25, - 0 - ] - }, - "fixed": { - "translation": [ - 0, - -4.75, - -0.5 - ], - "scale": [ - 0.3, - 0.3, - 0.3 - ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion.json b/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion.json deleted file mode 100644 index 5f931ddd..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "botania:block/shapes/cross", - "textures": { - "cross": "avaritia_integration:item/botania/asgard_dandelion" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion_floating.json b/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion_floating.json deleted file mode 100644 index 481b79f4..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/asgard_dandelion_floating.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/block", - "loader": "botania:floating_flower", - "flower": { - "parent": "avaritia_integration:block/botania/asgard_dandelion" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool.json b/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool.json deleted file mode 100644 index f82d2c92..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool.json +++ /dev/null @@ -1,343 +0,0 @@ -{ - "format_version": "1.9.0", - "credit": "Made with Blockbench, made by TedXenon", - "parent": "block/block", - "texture_size": [64, 64], - "textures": { - "0": "avaritia_integration:block/botania/infinity_mana_pool", - "particle": "avaritia_integration:block/botania/infinity_mana_pool" - }, - "elements": [ - { - "name": "east", - "from": [14, 2, 2], - "to": [16, 8, 14], - "faces": { - "east": {"uv": [8.5, 0, 11.5, 1.5], "texture": "#0", "cullface": "east", "tintindex": 0}, - "west": {"uv": [11.5, 1.5, 8.5, 3], "texture": "#0", "tintindex": 0}, - "up": {"uv": [3.5, 3.5, 4, 6.5], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "west", - "from": [0, 2, 2], - "to": [2, 8, 14], - "faces": { - "east": {"uv": [3.5, 1.5, 0.5, 3], "texture": "#0", "tintindex": 0}, - "west": {"uv": [0.5, 0, 3.5, 1.5], "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 3.5, 0.5, 6.5], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "north", - "from": [0, 2, 0], - "to": [16, 8, 2], - "faces": { - "north": {"uv": [12, 0, 16, 1.5], "texture": "#0", "cullface": "north", "tintindex": 0}, - "east": {"uv": [11.5, 0, 12, 1.5], "texture": "#0", "cullface": "east", "tintindex": 0}, - "south": {"uv": [16, 1.5, 12, 3], "texture": "#0", "tintindex": 0}, - "west": {"uv": [0, 0, 0.5, 1.5], "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 3, 4, 3.5], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "south", - "from": [0, 2, 14], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [8, 1.5, 4, 3], "texture": "#0", "tintindex": 0}, - "east": {"uv": [8, 0, 8.5, 1.5], "texture": "#0", "cullface": "east", "tintindex": 0}, - "south": {"uv": [4, 0, 8, 1.5], "texture": "#0", "cullface": "south", "tintindex": 0}, - "west": {"uv": [3.5, 0, 4, 1.5], "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 6.5, 4, 7], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "base", - "from": [0, 0, 0], - "to": [16, 2, 16], - "faces": { - "north": {"uv": [8, 3.5, 4, 3], "texture": "#0", "cullface": "north", "tintindex": 0}, - "east": {"uv": [7.5, 3, 8, 7], "rotation": 90, "texture": "#0", "cullface": "east", "tintindex": 0}, - "south": {"uv": [4, 6.5, 8, 7], "texture": "#0", "cullface": "south", "tintindex": 0}, - "west": {"uv": [4.5, 7, 4, 3], "rotation": 90, "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 3, 4, 7], "texture": "#0", "tintindex": 0}, - "down": {"uv": [4, 7, 8, 3], "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_b", - "from": [6, 2.99, -1], - "to": [10, 8.99, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "east": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "south": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "west": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "texture": "#0"} - } - }, - { - "name": "side_b", - "from": [-1, 2.99, 6], - "to": [1, 8.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "east": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "south": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "west": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "rotation": 270, "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "rotation": 90, "texture": "#0"} - } - }, - { - "name": "side_b", - "from": [6, 2.99, 15], - "to": [10, 8.99, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "east": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "south": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "west": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "rotation": 180, "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "side_b", - "from": [15, 2.99, 6], - "to": [17, 8.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "east": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "south": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "west": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "rotation": 90, "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "rotation": 270, "texture": "#0"} - } - }, - { - "name": "corner", - "from": [7, 2.99, -3.5], - "to": [9, 10.99, -1.5], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "east": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "south": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "west": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "texture": "#0"} - } - }, - { - "name": "corner", - "from": [-3.5, 2.99, 7], - "to": [-1.5, 10.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "east": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "south": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "west": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "rotation": 270, "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "rotation": 90, "texture": "#0"} - } - }, - { - "name": "corner", - "from": [7, 2.99, 17.5], - "to": [9, 10.99, 19.5], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "east": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "south": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "west": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "rotation": 180, "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "corner", - "from": [17.5, 2.99, 7], - "to": [19.5, 10.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "east": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "south": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "west": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "rotation": 90, "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "rotation": 270, "texture": "#0"} - } - }, - { - "name": "base", - "from": [-4, -0.01, 7], - "to": [-2, 1.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "rotation": 270, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "rotation": 90, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [6, -0.01, 15], - "to": [10, 1.99, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "rotation": 180, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "rotation": 180, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "base", - "from": [7, -0.01, 18], - "to": [9, 1.99, 20], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "rotation": 180, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "rotation": 180, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [15, -0.01, 6], - "to": [17, 1.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "rotation": 90, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "rotation": 270, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "base", - "from": [18, -0.01, 7], - "to": [20, 1.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "rotation": 90, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "rotation": 270, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [6, -0.01, -1], - "to": [10, 1.99, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "base", - "from": [7, -0.01, -4], - "to": [9, 1.99, -2], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [-1, -0.01, 6], - "to": [1, 1.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "rotation": 270, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "rotation": 90, "texture": "#0", "cullface": "down", "tintindex": 0} - } - } - ], - "groups": [ - 0, - 1, - 2, - 3, - 4, - { - "name": "side", - "origin": [8, 8, 8], - "color": 0, - "children": [5, 6, 7, 8] - }, - { - "name": "corners", - "origin": [8, 8, 8], - "color": 0, - "children": [ - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [9] - }, - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [10] - }, - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [11] - }, - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [12] - } - ] - }, - { - "name": "tint", - "origin": [8, 0, 8], - "color": 0, - "children": [13, 14, 15, 16, 17, 18, 19, 20] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool_full.json b/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool_full.json deleted file mode 100644 index 1344afa1..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_mana_pool_full.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "format_version": "1.9.0", - "credit": "Made with Blockbench, made by TedXenon", - "parent": "block/block", - "render_type": "translucent", - "texture_size": [64, 64], - "textures": { - "0": "avaritia_integration:block/botania/infinity_mana_pool", - "particle": "avaritia_integration:block/botania/infinity_mana_pool", - "1": "botania:block/mana_water" - }, - "elements": [ - { - "name": "east", - "from": [14, 2, 2], - "to": [16, 8, 14], - "faces": { - "east": {"uv": [8.5, 0, 11.5, 1.5], "texture": "#0", "cullface": "east", "tintindex": 0}, - "west": {"uv": [11.5, 1.5, 8.5, 3], "texture": "#0", "tintindex": 0}, - "up": {"uv": [3.5, 3.5, 4, 6.5], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "west", - "from": [0, 2, 2], - "to": [2, 8, 14], - "faces": { - "east": {"uv": [3.5, 1.5, 0.5, 3], "texture": "#0", "tintindex": 0}, - "west": {"uv": [0.5, 0, 3.5, 1.5], "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 3.5, 0.5, 6.5], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "north", - "from": [0, 2, 0], - "to": [16, 8, 2], - "faces": { - "north": {"uv": [12, 0, 16, 1.5], "texture": "#0", "cullface": "north", "tintindex": 0}, - "east": {"uv": [11.5, 0, 12, 1.5], "texture": "#0", "cullface": "east", "tintindex": 0}, - "south": {"uv": [16, 1.5, 12, 3], "texture": "#0", "tintindex": 0}, - "west": {"uv": [0, 0, 0.5, 1.5], "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 3, 4, 3.5], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "south", - "from": [0, 2, 14], - "to": [16, 8, 16], - "faces": { - "north": {"uv": [8, 1.5, 4, 3], "texture": "#0", "tintindex": 0}, - "east": {"uv": [8, 0, 8.5, 1.5], "texture": "#0", "cullface": "east", "tintindex": 0}, - "south": {"uv": [4, 0, 8, 1.5], "texture": "#0", "cullface": "south", "tintindex": 0}, - "west": {"uv": [3.5, 0, 4, 1.5], "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 6.5, 4, 7], "texture": "#0", "tintindex": 0} - } - }, - { - "name": "base", - "from": [0, 0, 0], - "to": [16, 2, 16], - "faces": { - "north": {"uv": [8, 3.5, 4, 3], "texture": "#0", "cullface": "north", "tintindex": 0}, - "east": {"uv": [7.5, 3, 8, 7], "rotation": 90, "texture": "#0", "cullface": "east", "tintindex": 0}, - "south": {"uv": [4, 6.5, 8, 7], "texture": "#0", "cullface": "south", "tintindex": 0}, - "west": {"uv": [4.5, 7, 4, 3], "rotation": 90, "texture": "#0", "cullface": "west", "tintindex": 0}, - "up": {"uv": [0, 3, 4, 7], "texture": "#0", "tintindex": 0}, - "down": {"uv": [4, 7, 8, 3], "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "mana", - "from": [2, 7, 2], - "to": [14, 7, 14], - "faces": { - "up": {"uv": [2, 2, 14, 14], "texture": "#1"} - } - }, - { - "name": "side_b", - "from": [6, 2.99, -1], - "to": [10, 8.99, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "east": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "south": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "west": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "texture": "#0"} - } - }, - { - "name": "side_b", - "from": [-1, 2.99, 6], - "to": [1, 8.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "east": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "south": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "west": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "rotation": 270, "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "rotation": 90, "texture": "#0"} - } - }, - { - "name": "side_b", - "from": [6, 2.99, 15], - "to": [10, 8.99, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "east": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "south": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "west": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "rotation": 180, "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "side_b", - "from": [15, 2.99, 6], - "to": [17, 8.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [11, 3, 11.5, 4.5], "texture": "#0"}, - "east": {"uv": [10, 3, 11, 4.5], "texture": "#0"}, - "south": {"uv": [11.5, 3, 11, 4.5], "texture": "#0"}, - "west": {"uv": [11.5, 3, 12.5, 4.5], "texture": "#0"}, - "up": {"uv": [10, 4.5, 11, 5], "rotation": 90, "texture": "#0"}, - "down": {"uv": [11, 4.5, 12, 5], "rotation": 270, "texture": "#0"} - } - }, - { - "name": "corner", - "from": [7, 2.99, -3.5], - "to": [9, 10.99, -1.5], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "east": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "south": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "west": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "texture": "#0"} - } - }, - { - "name": "corner", - "from": [-3.5, 2.99, 7], - "to": [-1.5, 10.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "east": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "south": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "west": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "rotation": 270, "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "rotation": 90, "texture": "#0"} - } - }, - { - "name": "corner", - "from": [7, 2.99, 17.5], - "to": [9, 10.99, 19.5], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "east": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "south": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "west": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "rotation": 180, "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "corner", - "from": [17.5, 2.99, 7], - "to": [19.5, 10.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [8.5, 3, 9, 5], "texture": "#0"}, - "east": {"uv": [8, 3, 8.5, 5], "texture": "#0"}, - "south": {"uv": [9.5, 3, 10, 5], "texture": "#0"}, - "west": {"uv": [9, 3, 9.5, 5], "texture": "#0"}, - "up": {"uv": [8.5, 5, 8, 5.5], "rotation": 90, "texture": "#0"}, - "down": {"uv": [8.5, 5, 9, 5.5], "rotation": 270, "texture": "#0"} - } - }, - { - "name": "base", - "from": [-4, -0.01, 7], - "to": [-2, 1.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "rotation": 270, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "rotation": 90, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [6, -0.01, 15], - "to": [10, 1.99, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "rotation": 180, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "rotation": 180, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "base", - "from": [7, -0.01, 18], - "to": [9, 1.99, 20], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "rotation": 180, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "rotation": 180, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [15, -0.01, 6], - "to": [17, 1.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "rotation": 90, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "rotation": 270, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "base", - "from": [18, -0.01, 7], - "to": [20, 1.99, 9], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "rotation": 90, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "rotation": 270, "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [6, -0.01, -1], - "to": [10, 1.99, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "base", - "from": [7, -0.01, -4], - "to": [9, 1.99, -2], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "south": {"uv": [13.5, 3, 14, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [13, 3, 12.5, 3.5], "texture": "#0", "tintindex": 0}, - "up": {"uv": [13, 3, 13.5, 3.5], "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 3.5, 14, 3], "texture": "#0", "cullface": "down", "tintindex": 0} - } - }, - { - "name": "side_a", - "from": [-1, -0.01, 6], - "to": [1, 1.99, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, - "faces": { - "north": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "east": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "south": {"uv": [12.5, 3, 13, 3.5], "texture": "#0", "tintindex": 0}, - "west": {"uv": [12.5, 3.5, 13.5, 4], "texture": "#0", "tintindex": 0}, - "up": {"uv": [12.5, 3.5, 13.5, 4], "rotation": 270, "texture": "#0", "tintindex": 0}, - "down": {"uv": [13.5, 4, 14.5, 3.5], "rotation": 90, "texture": "#0", "cullface": "down", "tintindex": 0} - } - } - ], - "groups": [ - 0, - 1, - 2, - 3, - 4, - 5, - { - "name": "side", - "origin": [8, 8, 8], - "color": 0, - "children": [6, 7, 8, 9] - }, - { - "name": "corners", - "origin": [8, 8, 8], - "color": 0, - "children": [ - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [10] - }, - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [11] - }, - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [12] - }, - { - "name": "corner", - "origin": [8, 8, 8], - "color": 0, - "children": [13] - } - ] - }, - { - "name": "tint", - "origin": [8, 0, 8], - "color": 0, - "children": [14, 15, 16, 17, 18, 19, 20, 21] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_potato.json b/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_potato.json deleted file mode 100644 index ab5fb29f..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/infinity_potato.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "format_version": "1.9.0", - "credit": "Made with Blockbench", - "parent": "block/block", - "texture_size": [32, 32], - "textures": { - "0": "avaritia_integration:block/botania/infinity_potato", - "particle": "avaritia_integration:block/botania/infinity_potato" - }, - "elements": [ - { - "name": "main", - "from": [4, 0, 4], - "to": [12, 12, 12], - "faces": { - "north": {"uv": [4, 4, 8, 10], "texture": "#0"}, - "east": {"uv": [0, 4, 4, 10], "texture": "#0"}, - "south": {"uv": [12, 4, 16, 10], "texture": "#0"}, - "west": {"uv": [8, 4, 12, 10], "texture": "#0"}, - "up": {"uv": [4, 0, 8, 4], "texture": "#0"}, - "down": {"uv": [8, 0, 12, 4], "texture": "#0"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/potted_asgard_dandelion.json b/src/main/resources/assets/avaritia_integration/models/block/botania/potted_asgard_dandelion.json deleted file mode 100644 index 2c9a4ed7..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/potted_asgard_dandelion.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/flower_pot_cross", - "render_type": "minecraft:cutout", - "textures": { - "plant": "avaritia_integration:item/botania/asgard_dandelion" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/potted_soarleander.json b/src/main/resources/assets/avaritia_integration/models/block/botania/potted_soarleander.json deleted file mode 100644 index c86d0ca3..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/potted_soarleander.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/flower_pot_cross", - "render_type": "minecraft:cutout", - "textures": { - "plant": "avaritia_integration:item/botania/soarleander" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander.json b/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander.json deleted file mode 100644 index 4b7ff2d5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "botania:block/shapes/cross", - "textures": { - "cross": "avaritia_integration:item/botania/soarleander" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander_floating.json b/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander_floating.json deleted file mode 100644 index c1f138e2..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/botania/soarleander_floating.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:block/block", - "loader": "botania:floating_flower", - "flower": { - "parent": "avaritia_integration:block/botania/soarleander" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/advanced.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/advanced.json deleted file mode 100644 index 7e24226a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/advanced.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/advanced" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/basic.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/basic.json deleted file mode 100644 index 42fc9642..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/basic.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/basic" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/creative.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/creative.json deleted file mode 100644 index 2a6c4833..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/creative.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/creative" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/dense.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/dense.json deleted file mode 100644 index 69d5b2a5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/dense.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/dense" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/elite.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/elite.json deleted file mode 100644 index 8736b3b5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/elite.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/elite" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/multiversal.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/multiversal.json deleted file mode 100644 index e95dbffd..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/multiversal.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/multiversal" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/overclocked.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/overclocked.json deleted file mode 100644 index f5753111..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/overclocked.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/overclocked" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/quantum.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/quantum.json deleted file mode 100644 index 9d17d3b2..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/quantum.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/quantum" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/ultimate.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/ultimate.json deleted file mode 100644 index c472c86a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/active/ultimate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/ultimate" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/advanced.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/advanced.json deleted file mode 100644 index b14a5124..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/advanced.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/advanced" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/base.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/base.json deleted file mode 100644 index 983d1f1e..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/base.json +++ /dev/null @@ -1,548 +0,0 @@ -{ - "credit": "Made by CyanideX using Blockbench", - "render_type": "minecraft:cutout", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front", - "front": "avaritia_integration:block/factory/neutron_collecting/front", - "back": "mekanism:block/factory/enriching/enriching_factory_back", - "side": "mekanism:block/factory/enriching/enriching_factory_side", - "top": "mekanism:block/factory/enriching/enriching_factory_top", - "bottom": "mekanism:block/factory/enriching/enriching_factory_bottom", - "elements": "mekanism:block/factory/enriching/enriching_factory_elements", - "back_panel": "mekanism:block/factory/factory_front_back", - "ports": "mekanism:block/models/ports", - "ports_led": "mekanism:block/models/ports_led" - }, - "elements": [ - { - "name": "front_panel", - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 4 - ], - "faces": { - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#front", - "cullface": "north" - }, - "east": { - "uv": [ - 4, - 0, - 0, - 16 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#back_panel" - }, - "west": { - "uv": [ - 0, - 0, - 4, - 16 - ], - "texture": "#side", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 12, - 16, - 16 - ], - "rotation": 180, - "texture": "#top", - "cullface": "up" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 4 - ], - "rotation": 180, - "texture": "#bottom", - "cullface": "down" - } - } - }, - { - "name": "port", - "from": [ - 4, - 4, - 14 - ], - "to": [ - 12, - 12, - 16 - ], - "faces": { - "north": { - "uv": [ - 0, - 8, - 8, - 16 - ], - "texture": "#ports" - }, - "east": { - "uv": [ - 7, - 0, - 9, - 8 - ], - "texture": "#ports" - }, - "south": { - "uv": [ - 0, - 8, - 8, - 16 - ], - "texture": "#ports", - "cullface": "south" - }, - "west": { - "uv": [ - 7, - 0, - 9, - 8 - ], - "texture": "#ports" - }, - "up": { - "uv": [ - 0, - 7, - 8, - 9 - ], - "texture": "#ports" - }, - "down": { - "uv": [ - 0, - 7, - 8, - 9 - ], - "texture": "#ports", - "cullface": "south" - } - } - }, - { - "name": "port_led", - "from": [ - 4, - 4, - 14 - ], - "to": [ - 12, - 12, - 16 - ], - "faces": { - "south": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#ports_led", - "cullface": "south" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "core", - "from": [ - 1, - 7, - 4 - ], - "to": [ - 15, - 14, - 14 - ], - "faces": { - "south": { - "uv": [ - 1, - 2, - 15, - 9 - ], - "texture": "#back" - }, - "down": { - "uv": [ - 1, - 2, - 15, - 12 - ], - "texture": "#back" - } - } - }, - { - "name": "middle", - "from": [ - 2, - 4, - 4 - ], - "to": [ - 14, - 7, - 10 - ], - "faces": { - "east": { - "uv": [ - 10, - 9, - 4, - 12 - ], - "texture": "#side" - }, - "south": { - "uv": [ - 2, - 9, - 14, - 12 - ], - "texture": "#back" - }, - "west": { - "uv": [ - 4, - 9, - 10, - 12 - ], - "texture": "#side" - } - } - }, - { - "name": "middle_connector", - "from": [ - 5, - 5, - 10 - ], - "to": [ - 11, - 7, - 14 - ], - "faces": { - "east": { - "uv": [ - 14, - 10, - 10, - 12 - ], - "texture": "#side" - }, - "west": { - "uv": [ - 10, - 10, - 14, - 12 - ], - "texture": "#side" - }, - "down": { - "uv": [ - 6, - 11, - 10, - 12 - ], - "texture": "#back" - } - } - }, - { - "name": "base", - "from": [ - 0, - 0, - 4 - ], - "to": [ - 16, - 4, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 12, - 5, - 16 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 12, - 16, - 16 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 5, - 12, - 16, - 16 - ], - "texture": "#side", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 12 - ], - "rotation": 180, - "texture": "#elements" - }, - "down": { - "uv": [ - 0, - 4, - 16, - 16 - ], - "rotation": 180, - "texture": "#bottom", - "cullface": "down" - } - } - }, - { - "name": "shell_01", - "from": [ - 0, - 14, - 4 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 0, - 4, - 2 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 2 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 0, - 16, - 2 - ], - "texture": "#side", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 12 - ], - "rotation": 180, - "texture": "#top", - "cullface": "up" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 12 - ], - "texture": "#top" - } - } - }, - { - "name": "shell_02", - "from": [ - 0, - 6, - 4 - ], - "to": [ - 2, - 14, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 2, - 4, - 10 - ], - "texture": "#side" - }, - "south": { - "uv": [ - 0, - 2, - 2, - 10 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 2, - 16, - 10 - ], - "texture": "#side", - "cullface": "west" - }, - "down": { - "uv": [ - 0, - 0, - 2, - 12 - ], - "texture": "#top" - } - } - }, - { - "name": "shell_03", - "from": [ - 14, - 6, - 4 - ], - "to": [ - 16, - 14, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 2, - 4, - 10 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 14, - 2, - 16, - 10 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 0, - 16, - 8 - ], - "texture": "#side" - }, - "down": { - "uv": [ - 14, - 0, - 16, - 12 - ], - "texture": "#top" - } - } - } - ] -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/basic.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/basic.json deleted file mode 100644 index b426fcf8..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/basic.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/basic" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/creative.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/creative.json deleted file mode 100644 index b4dc9308..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/creative.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/creative" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/dense.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/dense.json deleted file mode 100644 index bff473e5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/dense.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/dense" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/elite.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/elite.json deleted file mode 100644 index 5f9339c0..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/elite.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/elite" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/multiversal.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/multiversal.json deleted file mode 100644 index b7ce6ebe..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/multiversal.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/multiversal" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/overclocked.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/overclocked.json deleted file mode 100644 index 658677b9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/overclocked.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/overclocked" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/quantum.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/quantum.json deleted file mode 100644 index 15f8e07b..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/quantum.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/quantum" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/ultimate.json b/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/ultimate.json deleted file mode 100644 index 056c0c54..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/neutron_collecting/ultimate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/neutron_collecting/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/neutron_collecting/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/ultimate" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/advanced.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/advanced.json deleted file mode 100644 index b2f5918f..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/advanced.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/advanced" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/basic.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/basic.json deleted file mode 100644 index 5a829eaa..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/basic.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/basic" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/creative.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/creative.json deleted file mode 100644 index fa2e9adc..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/creative.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/creative" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/dense.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/dense.json deleted file mode 100644 index e0a54cb6..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/dense.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/dense" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/elite.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/elite.json deleted file mode 100644 index 5b93ac19..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/elite.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/elite" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/multiversal.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/multiversal.json deleted file mode 100644 index e575351d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/multiversal.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/multiversal" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/overclocked.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/overclocked.json deleted file mode 100644 index 786e1d71..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/overclocked.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/overclocked" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/quantum.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/quantum.json deleted file mode 100644 index f11243b3..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/quantum.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/active/quantum" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/ultimate.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/ultimate.json deleted file mode 100644 index fc3cc4e5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/active/ultimate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/active/ultimate" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/advanced.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/advanced.json deleted file mode 100644 index a32796d1..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/advanced.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/advanced" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/base.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/base.json deleted file mode 100644 index 1bd67862..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/base.json +++ /dev/null @@ -1,548 +0,0 @@ -{ - "credit": "Made by CyanideX using Blockbench", - "render_type": "minecraft:cutout", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front", - "front": "avaritia_integration:block/factory/singularity_compressing/front", - "back": "mekanism:block/factory/enriching/enriching_factory_back", - "side": "mekanism:block/factory/enriching/enriching_factory_side", - "top": "mekanism:block/factory/enriching/enriching_factory_top", - "bottom": "mekanism:block/factory/enriching/enriching_factory_bottom", - "elements": "mekanism:block/factory/enriching/enriching_factory_elements", - "back_panel": "mekanism:block/factory/factory_front_back", - "ports": "mekanism:block/models/ports", - "ports_led": "mekanism:block/models/ports_led" - }, - "elements": [ - { - "name": "front_panel", - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 4 - ], - "faces": { - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#front", - "cullface": "north" - }, - "east": { - "uv": [ - 4, - 0, - 0, - 16 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#back_panel" - }, - "west": { - "uv": [ - 0, - 0, - 4, - 16 - ], - "texture": "#side", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 12, - 16, - 16 - ], - "rotation": 180, - "texture": "#top", - "cullface": "up" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 4 - ], - "rotation": 180, - "texture": "#bottom", - "cullface": "down" - } - } - }, - { - "name": "port", - "from": [ - 4, - 4, - 14 - ], - "to": [ - 12, - 12, - 16 - ], - "faces": { - "north": { - "uv": [ - 0, - 8, - 8, - 16 - ], - "texture": "#ports" - }, - "east": { - "uv": [ - 7, - 0, - 9, - 8 - ], - "texture": "#ports" - }, - "south": { - "uv": [ - 0, - 8, - 8, - 16 - ], - "texture": "#ports", - "cullface": "south" - }, - "west": { - "uv": [ - 7, - 0, - 9, - 8 - ], - "texture": "#ports" - }, - "up": { - "uv": [ - 0, - 7, - 8, - 9 - ], - "texture": "#ports" - }, - "down": { - "uv": [ - 0, - 7, - 8, - 9 - ], - "texture": "#ports", - "cullface": "south" - } - } - }, - { - "name": "port_led", - "from": [ - 4, - 4, - 14 - ], - "to": [ - 12, - 12, - 16 - ], - "faces": { - "south": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#ports_led", - "cullface": "south" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "core", - "from": [ - 1, - 7, - 4 - ], - "to": [ - 15, - 14, - 14 - ], - "faces": { - "south": { - "uv": [ - 1, - 2, - 15, - 9 - ], - "texture": "#back" - }, - "down": { - "uv": [ - 1, - 2, - 15, - 12 - ], - "texture": "#back" - } - } - }, - { - "name": "middle", - "from": [ - 2, - 4, - 4 - ], - "to": [ - 14, - 7, - 10 - ], - "faces": { - "east": { - "uv": [ - 10, - 9, - 4, - 12 - ], - "texture": "#side" - }, - "south": { - "uv": [ - 2, - 9, - 14, - 12 - ], - "texture": "#back" - }, - "west": { - "uv": [ - 4, - 9, - 10, - 12 - ], - "texture": "#side" - } - } - }, - { - "name": "middle_connector", - "from": [ - 5, - 5, - 10 - ], - "to": [ - 11, - 7, - 14 - ], - "faces": { - "east": { - "uv": [ - 14, - 10, - 10, - 12 - ], - "texture": "#side" - }, - "west": { - "uv": [ - 10, - 10, - 14, - 12 - ], - "texture": "#side" - }, - "down": { - "uv": [ - 6, - 11, - 10, - 12 - ], - "texture": "#back" - } - } - }, - { - "name": "base", - "from": [ - 0, - 0, - 4 - ], - "to": [ - 16, - 4, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 12, - 5, - 16 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 12, - 16, - 16 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 5, - 12, - 16, - 16 - ], - "texture": "#side", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 12 - ], - "rotation": 180, - "texture": "#elements" - }, - "down": { - "uv": [ - 0, - 4, - 16, - 16 - ], - "rotation": 180, - "texture": "#bottom", - "cullface": "down" - } - } - }, - { - "name": "shell_01", - "from": [ - 0, - 14, - 4 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 0, - 4, - 2 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 2 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 0, - 16, - 2 - ], - "texture": "#side", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 12 - ], - "rotation": 180, - "texture": "#top", - "cullface": "up" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 12 - ], - "texture": "#top" - } - } - }, - { - "name": "shell_02", - "from": [ - 0, - 6, - 4 - ], - "to": [ - 2, - 14, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 2, - 4, - 10 - ], - "texture": "#side" - }, - "south": { - "uv": [ - 0, - 2, - 2, - 10 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 2, - 16, - 10 - ], - "texture": "#side", - "cullface": "west" - }, - "down": { - "uv": [ - 0, - 0, - 2, - 12 - ], - "texture": "#top" - } - } - }, - { - "name": "shell_03", - "from": [ - 14, - 6, - 4 - ], - "to": [ - 16, - 14, - 16 - ], - "faces": { - "east": { - "uv": [ - 16, - 2, - 4, - 10 - ], - "texture": "#side", - "cullface": "east" - }, - "south": { - "uv": [ - 14, - 2, - 16, - 10 - ], - "texture": "#back", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 0, - 16, - 8 - ], - "texture": "#side" - }, - "down": { - "uv": [ - 14, - 0, - 16, - 12 - ], - "texture": "#top" - } - } - } - ] -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/basic.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/basic.json deleted file mode 100644 index 5ae0a02a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/basic.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/basic" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/creative.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/creative.json deleted file mode 100644 index be873f57..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/creative.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/creative" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/dense.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/dense.json deleted file mode 100644 index a22b203f..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/dense.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/dense" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/elite.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/elite.json deleted file mode 100644 index a4c8082b..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/elite.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/elite" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/multiversal.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/multiversal.json deleted file mode 100644 index 2ce6db27..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/multiversal.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/multiversal" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/overclocked.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/overclocked.json deleted file mode 100644 index d9865161..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/overclocked.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/overclocked" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/quantum.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/quantum.json deleted file mode 100644 index 53e64194..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/quantum.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "evolvedmekanism:block/factory/front_led/quantum" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/ultimate.json b/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/ultimate.json deleted file mode 100644 index a614724b..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/factory/singularity_compressing/ultimate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "loader": "neoforge:composite", - "parent": "block/block", - "textures": { - "particle": "avaritia_integration:block/factory/singularity_compressing/front" - }, - "children": { - "base": { - "parent": "avaritia_integration:block/factory/singularity_compressing/base" - }, - "front_led": { - "parent": "mekanism:block/factory/front_led/ultimate" - } - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/block/infinity_advanced_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/block/infinity_advanced_solar_generator.json deleted file mode 100644 index 15234eb5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/infinity_advanced_solar_generator.json +++ /dev/null @@ -1,1466 +0,0 @@ -{ - "credit": "Model by CyanideX", - "textures": { - "0": "avaritia_integration:block/model/infinity_advanced_solar_generator", - "1": "mekanism:block/models/ports", - "2": "mekanism:block/models/ports_led", - "particle": "avaritia_integration:block/model/infinity_advanced_solar_generator" - }, - "render_type": "minecraft:cutout", - "elements": [ - { - "name": "pole", - "from": [ - 6, - -4, - 6 - ], - "to": [ - 10, - 25, - 10 - ], - "faces": { - "north": { - "uv": [ - 11, - 0, - 10, - 7.25 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 10, - 0, - 9, - 7.25 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 12, - 0, - 11, - 7.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 10, - 0, - 9, - 7.25 - ], - "texture": "#0" - } - } - }, - { - "name": "tube1", - "from": [ - 4, - 22, - 2 - ], - "to": [ - 6, - 24, - 14 - ], - "faces": { - "north": { - "uv": [ - 12, - 5.25, - 12.5, - 5.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 15, - 5.25, - 15.5, - 5.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12.5, - 5, - 15, - 5.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 12.5, - 5.5, - 15, - 6 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "tube2", - "from": [ - 10, - 22, - 2 - ], - "to": [ - 12, - 24, - 14 - ], - "faces": { - "north": { - "uv": [ - 12, - 5.25, - 12.5, - 5.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 15, - 5.25, - 15.5, - 5.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12.5, - 5, - 15, - 5.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 12.5, - 5.5, - 15, - 6 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "barrel", - "from": [ - 4, - 25, - 5 - ], - "to": [ - 12, - 31, - 11 - ], - "faces": { - "north": { - "uv": [ - 13.5, - 0, - 15.5, - 1.5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 0, - 13.5, - 1.5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 13.5, - 1.5, - 15.5, - 3 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 1.5, - 13.5, - 3 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 13.5, - 0, - 15.5, - 1.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 13.5, - 1.5, - 15.5, - 3 - ], - "rotation": 180, - "texture": "#0" - } - } - }, - { - "name": "ring1", - "from": [ - 5, - 24, - 4 - ], - "to": [ - 6, - 32, - 12 - ], - "faces": { - "north": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14.25, - 6, - 14.5, - 8 - ], - "texture": "#0" - } - } - }, - { - "name": "ring2", - "from": [ - 10, - 24, - 4 - ], - "to": [ - 11, - 32, - 12 - ], - "faces": { - "north": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14.25, - 6, - 14.5, - 8 - ], - "texture": "#0" - } - } - }, - { - "name": "connector", - "from": [ - 5, - -11, - 1 - ], - "to": [ - 11, - -5, - 4 - ], - "faces": { - "east": { - "uv": [ - 12.75, - 10.5, - 13.5, - 12 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 10.5, - 12.75, - 12 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12, - 8.25, - 13.5, - 9 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 13.5, - 9.75, - 15, - 10.5 - ], - "texture": "#0" - } - } - }, - { - "name": "base_north", - "from": [ - 0, - -16, - 0 - ], - "to": [ - 16, - -14, - 4 - ], - "faces": { - "north": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "north" - }, - "east": { - "uv": [ - 4, - 12, - 4.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "west": { - "uv": [ - 4, - 15, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 12, - 1, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 7.5, - 12, - 8.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_south", - "from": [ - 0, - -16, - 12 - ], - "to": [ - 16, - -14, - 16 - ], - "faces": { - "east": { - "uv": [ - 4, - 15, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "south": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 12, - 4.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 3, - 12, - 4, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 12, - 5.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_east", - "from": [ - 12, - -16, - 4 - ], - "to": [ - 16, - -14, - 12 - ], - "faces": { - "east": { - "uv": [ - 4, - 13, - 4.5, - 15 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "up": { - "uv": [ - 1, - 12, - 3, - 13 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 5.5, - 12, - 7.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_west", - "from": [ - 0, - -16, - 4 - ], - "to": [ - 4, - -14, - 12 - ], - "faces": { - "east": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "west": { - "uv": [ - 4, - 13, - 4.5, - 15 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 1, - 15, - 3, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 5.5, - 15, - 7.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base2", - "from": [ - 3, - -14, - 3 - ], - "to": [ - 13, - -12, - 13 - ], - "faces": { - "north": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 9, - 9, - 11.5, - 11.5 - ], - "texture": "#0" - } - } - }, - { - "name": "base3", - "from": [ - 4, - -12, - 4 - ], - "to": [ - 12, - -4, - 12 - ], - "faces": { - "north": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14, - 3, - 16, - 5 - ], - "texture": "#0" - } - } - }, - { - "name": "port", - "from": [ - 4, - -12, - 0 - ], - "to": [ - 12, - -4, - 1 - ], - "faces": { - "north": { - "uv": [ - 0, - 0, - 8, - 8 - ], - "texture": "#1", - "cullface": "north" - }, - "east": { - "uv": [ - 7, - 0, - 8, - 8 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 0, - 8, - 8, - 16 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 8 - ], - "texture": "#1" - }, - "up": { - "uv": [ - 0, - 0, - 8, - 1 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 7, - 8, - 8 - ], - "texture": "#1" - } - } - }, - { - "name": "port_led", - "from": [ - 4, - -12, - 0 - ], - "to": [ - 12, - -4, - 0 - ], - "faces": { - "north": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#2", - "cullface": "north" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "port_down", - "from": [ - 4, - -16, - 4 - ], - "to": [ - 12, - -16, - 12 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 8, - 8 - ], - "texture": "#1", - "cullface": "down" - } - } - }, - { - "name": "port_down_led", - "from": [ - 4, - -16, - 4 - ], - "to": [ - 12, - -16, - 12 - ], - "faces": { - "down": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#2", - "cullface": "down" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "solar_panel_east", - "from": [ - 14, - 30, - -16 - ], - "to": [ - 32, - 31, - 32 - ], - "faces": { - "north": { - "uv": [ - 0, - 11.75, - 4.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0, - 0.25, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 0, - 4.5, - 0.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 4.25, - 0, - 4.5, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0, - 4.5, - 12 - ], - "rotation": 180, - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 0, - 9, - 12 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_east_base", - "from": [ - 15, - 29, - -15 - ], - "to": [ - 31, - 30, - 31 - ], - "faces": { - "north": { - "uv": [ - 4.75, - 0.25, - 8.75, - 0.5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 4.75, - 0.25, - 5, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 4.75, - 11.5, - 8.75, - 11.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 8.5, - 0.25, - 8.75, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.75, - 0.25, - 8.75, - 11.75 - ], - "rotation": 180, - "texture": "#0" - } - } - }, - { - "name": "solar_panel_east_arm", - "from": [ - 12, - 27, - 7 - ], - "to": [ - 28, - 29, - 9 - ], - "faces": { - "north": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "east": { - "uv": [ - 15.5, - 6, - 16, - 6.5 - ], - "rotation": 270, - "texture": "#0" - }, - "south": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west", - "from": [ - -16, - 30, - -16 - ], - "to": [ - 2, - 31, - 32 - ], - "faces": { - "north": { - "uv": [ - 0, - 11.75, - 4.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0, - 0.25, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 0, - 4.5, - 0.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 4.25, - 0, - 4.5, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0, - 4.5, - 12 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 0, - 9, - 12 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west_base", - "from": [ - -15, - 29, - -15 - ], - "to": [ - 1, - 30, - 31 - ], - "faces": { - "north": { - "uv": [ - 4.75, - 11.5, - 8.75, - 11.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 4.75, - 0.25, - 5, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 4.75, - 0.25, - 8.75, - 0.5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 8.5, - 0.25, - 8.75, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.75, - 0.25, - 8.75, - 11.75 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west_arm", - "from": [ - -12, - 27, - 7 - ], - "to": [ - 4, - 29, - 9 - ], - "faces": { - "north": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "west": { - "uv": [ - 15.5, - 6, - 16, - 6.5 - ], - "rotation": 270, - "texture": "#0" - }, - "up": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "down": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ - 35, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "thirdperson_lefthand": { - "rotation": [ - 35, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 45, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "firstperson_lefthand": { - "rotation": [ - 0, - 225, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "ground": { - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "gui": { - "rotation": [ - 30, - 225, - 0 - ], - "translation": [ - 0, - -4.75, - 0 - ], - "scale": [ - 0.24, - 0.25, - 0.22 - ] - }, - "head": { - "translation": [ - 0, - 14.25, - 0 - ] - }, - "fixed": { - "translation": [ - 0, - -4.75, - -0.5 - ], - "scale": [ - 0.3, - 0.3, - 0.3 - ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/infinity_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/block/infinity_solar_generator.json deleted file mode 100644 index 77d6a16c..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/infinity_solar_generator.json +++ /dev/null @@ -1,339 +0,0 @@ -{ - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "1": "avaritia_integration:block/model/infinity_solar_generator", - "particle": "avaritia_integration:block/model/infinity_solar_generator" - }, - "elements": [ - { - "name": "solarPanel", - "from": [0.5, 8.5, 0.5], - "to": [15.5, 9.5, 15.5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, - "faces": { - "north": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "north"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "east"}, - "south": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "south"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0.25, 0.25, 3.75, 3.75], "texture": "#1"}, - "down": {"uv": [4, 0, 8, 4], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [3, 2, 3], - "to": [13, 3, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 1, 0]}, - "faces": { - "north": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "east": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "south": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "west": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "up": {"uv": [12.75, 0.75, 15.25, 3.25], "texture": "#1"}, - "down": {"uv": [8.75, 0.75, 11.25, 3.25], "texture": "#1", "cullface": "down"} - } - }, - { - "name": "solarPanelPort", - "from": [1.9, 0.05, 1.9], - "to": [14.1, 2.25, 14.1], - "faces": { - "north": {"uv": [15.5, 7.25, 12.5, 7.5], "texture": "#1"}, - "east": {"uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1"}, - "south": {"uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1"}, - "west": {"uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1"}, - "up": {"uv": [12.5, 4.5, 15.5, 7.5], "texture": "#1"}, - "down": {"uv": [8.5, 0.5, 11.5, 3.5], "texture": "#1", "cullface": "down"} - } - }, - { - "name": "SolarFrame", - "from": [1, 8, 0], - "to": [15, 10, 1], - "faces": { - "north": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 0.5, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 3.5, 0.25], "texture": "#1"}, - "down": {"uv": [0.25, 0, 3.75, 0.25], "texture": "#1"} - } - }, - { - "name": "SolarFrame", - "from": [15, 8, 0], - "to": [16, 10, 16], - "faces": { - "north": {"uv": [0, 0, 0.25, 0.5], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 0.5, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 0.25, 4], "texture": "#1"}, - "down": {"uv": [0, 0, 0.25, 4], "texture": "#1"} - } - }, - { - "name": "SolarFrame", - "from": [0, 8, 0], - "to": [1, 10, 16], - "faces": { - "north": {"uv": [0, 0, 0.25, 0.5], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 0.5, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 0.25, 4], "texture": "#1"}, - "down": {"uv": [0, 0, 0.25, 4], "texture": "#1"} - } - }, - { - "name": "SolarFrame", - "from": [1, 8, 15], - "to": [15, 10, 16], - "faces": { - "north": {"uv": [0, 0, 3.5, 0.25], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 3.75, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 3.5, 0.25], "texture": "#1"}, - "down": {"uv": [0.25, 0, 3.75, 0.25], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [1, 0, 10], - "to": [6, 2, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [5, 1.5, 8]}, - "faces": { - "north": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "east": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "south": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "west": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "up": {"uv": [1.5, 8.5, 0.25, 9.75], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0.25, 8.5, 1.5, 9.75], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 10], - "to": [15, 2, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 1.5, 8]}, - "faces": { - "north": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "east": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "south": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "west": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "up": {"uv": [1.5, 9.75, 0.25, 8.5], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0.25, 9.75, 1.5, 8.5], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 1], - "to": [15, 2, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 1.5, 8]}, - "faces": { - "north": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "east": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "south": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "west": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "up": {"uv": [0.25, 9.75, 1.5, 8.5], "rotation": 90, "texture": "#1"}, - "down": {"uv": [1.5, 9.75, 0.25, 8.5], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 0], - "to": [16, 1, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 0.5, 2.5]}, - "faces": { - "north": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "east": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "south": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "west": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "up": {"uv": [1.75, 12, 0.25, 10.5], "texture": "#1"}, - "down": {"uv": [1.75, 10.5, 0.25, 12], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [0, 0, 0], - "to": [6, 1, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 0.5, 2.5]}, - "faces": { - "north": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "east": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "south": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "west": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "up": {"uv": [0.25, 12, 1.75, 10.5], "texture": "#1"}, - "down": {"uv": [0.25, 10.5, 1.75, 12], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [0, 0, 10], - "to": [6, 1, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 0.5, 13.5]}, - "faces": { - "north": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "east": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "south": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "west": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "up": {"uv": [0.25, 10.5, 1.75, 12], "texture": "#1"}, - "down": {"uv": [0.25, 12, 1.75, 10.5], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 10], - "to": [16, 1, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 0.5, 13.5]}, - "faces": { - "north": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "east": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "south": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "west": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "up": {"uv": [1.75, 10.5, 0.25, 12], "texture": "#1"}, - "down": {"uv": [1.75, 12, 0.25, 10.5], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [1, 0, 1], - "to": [6, 2, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [5, 1.5, 8]}, - "faces": { - "north": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "east": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "south": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "west": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "up": {"uv": [0.25, 8.5, 1.5, 9.75], "rotation": 90, "texture": "#1"}, - "down": {"uv": [1.5, 8.5, 0.25, 9.75], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelRod5", - "from": [2, 2, 2], - "to": [4, 7, 4], - "rotation": {"angle": -45, "axis": "y", "origin": [3, 4, 3]}, - "faces": { - "north": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "east": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "south": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "west": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod6", - "from": [12, 2, 2], - "to": [14, 7, 4], - "rotation": {"angle": 45, "axis": "y", "origin": [13, 4, 3]}, - "faces": { - "north": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "east": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "south": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "west": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod7", - "from": [12, 2, 12], - "to": [14, 7, 14], - "rotation": {"angle": -45, "axis": "y", "origin": [13, 4, 13]}, - "faces": { - "north": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "east": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "south": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "west": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod6", - "from": [2, 2, 12], - "to": [4, 7, 14], - "rotation": {"angle": 45, "axis": "y", "origin": [3, 4, 13]}, - "faces": { - "north": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "east": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "south": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "west": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod5", - "from": [4, 3, 4], - "to": [12, 7, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [4, 7, 11]}, - "faces": { - "north": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"}, - "east": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"}, - "south": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"}, - "west": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"} - } - }, - { - "name": "solarPanelPipeBase", - "from": [5, 3, 5], - "to": [11, 7, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, - "faces": { - "north": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "east": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "south": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "west": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "up": {"uv": [5.5, 6, 7, 7.5], "texture": "#1"} - } - }, - { - "name": "solarPanelBottom", - "from": [1, 7, 1], - "to": [15, 8, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, - "faces": { - "north": {"uv": [0, 4.5, 3.5, 4.75], "texture": "#1"}, - "east": {"uv": [0, 7.75, 3.5, 8], "texture": "#1"}, - "south": {"uv": [0, 4.5, 3.5, 4.75], "texture": "#1"}, - "west": {"uv": [0, 7.75, 3.5, 8], "texture": "#1"}, - "down": {"uv": [0, 4.5, 3.5, 8], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [0, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [0, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "head": { - "translation": [0, 9.5, 0] - }, - "fixed": { - "rotation": [-90, 0, 0], - "translation": [0, 0, -1], - "scale": [0.5, 0.5, 0.5] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/molten_blaze_fluid.json b/src/main/resources/assets/avaritia_integration/models/block/molten_blaze_fluid.json deleted file mode 100644 index add1d005..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/molten_blaze_fluid.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "textures": { "particle": "avaritia_integration:block/molten_blaze_still" } -} - diff --git a/src/main/resources/assets/avaritia_integration/models/block/molten_crystal_matrix_fluid.json b/src/main/resources/assets/avaritia_integration/models/block/molten_crystal_matrix_fluid.json deleted file mode 100644 index 81b52483..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/molten_crystal_matrix_fluid.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "textures": { "particle": "avaritia_integration:block/molten_crystal_matrix_still" } -} - diff --git a/src/main/resources/assets/avaritia_integration/models/block/molten_neutron_fluid.json b/src/main/resources/assets/avaritia_integration/models/block/molten_neutron_fluid.json deleted file mode 100644 index 676303a8..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/molten_neutron_fluid.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "textures": { "particle": "avaritia_integration:block/molten_neutron_still" } -} - diff --git a/src/main/resources/assets/avaritia_integration/models/block/molten_star_fluid.json b/src/main/resources/assets/avaritia_integration/models/block/molten_star_fluid.json deleted file mode 100644 index 2c7a7407..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/molten_star_fluid.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "textures": { "particle": "avaritia_integration:block/molten_star_still" } -} - diff --git a/src/main/resources/assets/avaritia_integration/models/block/neutron_advanced_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/block/neutron_advanced_solar_generator.json deleted file mode 100644 index 7d987ccc..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/neutron_advanced_solar_generator.json +++ /dev/null @@ -1,1466 +0,0 @@ -{ - "credit": "Model by CyanideX", - "textures": { - "0": "avaritia_integration:block/model/neutron_advanced_solar_generator", - "1": "mekanism:block/models/ports", - "2": "mekanism:block/models/ports_led", - "particle": "avaritia_integration:block/model/neutron_advanced_solar_generator" - }, - "render_type": "minecraft:cutout", - "elements": [ - { - "name": "pole", - "from": [ - 6, - -4, - 6 - ], - "to": [ - 10, - 25, - 10 - ], - "faces": { - "north": { - "uv": [ - 11, - 0, - 10, - 7.25 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 10, - 0, - 9, - 7.25 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 12, - 0, - 11, - 7.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 10, - 0, - 9, - 7.25 - ], - "texture": "#0" - } - } - }, - { - "name": "tube1", - "from": [ - 4, - 22, - 2 - ], - "to": [ - 6, - 24, - 14 - ], - "faces": { - "north": { - "uv": [ - 12, - 5.25, - 12.5, - 5.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 15, - 5.25, - 15.5, - 5.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12.5, - 5, - 15, - 5.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 12.5, - 5.5, - 15, - 6 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "tube2", - "from": [ - 10, - 22, - 2 - ], - "to": [ - 12, - 24, - 14 - ], - "faces": { - "north": { - "uv": [ - 12, - 5.25, - 12.5, - 5.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 15, - 5.25, - 15.5, - 5.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12.5, - 5.25, - 15, - 5.75 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12.5, - 5, - 15, - 5.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 12.5, - 5.5, - 15, - 6 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "barrel", - "from": [ - 4, - 25, - 5 - ], - "to": [ - 12, - 31, - 11 - ], - "faces": { - "north": { - "uv": [ - 13.5, - 0, - 15.5, - 1.5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 0, - 13.5, - 1.5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 13.5, - 1.5, - 15.5, - 3 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 1.5, - 13.5, - 3 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 13.5, - 0, - 15.5, - 1.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 13.5, - 1.5, - 15.5, - 3 - ], - "rotation": 180, - "texture": "#0" - } - } - }, - { - "name": "ring1", - "from": [ - 5, - 24, - 4 - ], - "to": [ - 6, - 32, - 12 - ], - "faces": { - "north": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14.25, - 6, - 14.5, - 8 - ], - "texture": "#0" - } - } - }, - { - "name": "ring2", - "from": [ - 10, - 24, - 4 - ], - "to": [ - 11, - 32, - 12 - ], - "faces": { - "north": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 14, - 6, - 14.25, - 8 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 6, - 14, - 8 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14.25, - 6, - 14.5, - 8 - ], - "texture": "#0" - } - } - }, - { - "name": "connector", - "from": [ - 5, - -11, - 1 - ], - "to": [ - 11, - -5, - 4 - ], - "faces": { - "east": { - "uv": [ - 12.75, - 10.5, - 13.5, - 12 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 10.5, - 12.75, - 12 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 12, - 8.25, - 13.5, - 9 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 13.5, - 9.75, - 15, - 10.5 - ], - "texture": "#0" - } - } - }, - { - "name": "base_north", - "from": [ - 0, - -16, - 0 - ], - "to": [ - 16, - -14, - 4 - ], - "faces": { - "north": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "north" - }, - "east": { - "uv": [ - 4, - 12, - 4.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "west": { - "uv": [ - 4, - 15, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 0, - 12, - 1, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 7.5, - 12, - 8.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_south", - "from": [ - 0, - -16, - 12 - ], - "to": [ - 16, - -14, - 16 - ], - "faces": { - "east": { - "uv": [ - 4, - 15, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "south": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "south" - }, - "west": { - "uv": [ - 4, - 12, - 4.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 3, - 12, - 4, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 12, - 5.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_east", - "from": [ - 12, - -16, - 4 - ], - "to": [ - 16, - -14, - 12 - ], - "faces": { - "east": { - "uv": [ - 4, - 13, - 4.5, - 15 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "up": { - "uv": [ - 1, - 12, - 3, - 13 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 5.5, - 12, - 7.5, - 13 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base_west", - "from": [ - 0, - -16, - 4 - ], - "to": [ - 4, - -14, - 12 - ], - "faces": { - "east": { - "uv": [ - 4, - 12, - 4.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "east" - }, - "west": { - "uv": [ - 4, - 13, - 4.5, - 15 - ], - "rotation": 90, - "texture": "#0", - "cullface": "west" - }, - "up": { - "uv": [ - 1, - 15, - 3, - 16 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 5.5, - 15, - 7.5, - 16 - ], - "rotation": 90, - "texture": "#0", - "cullface": "down" - } - } - }, - { - "name": "base2", - "from": [ - 3, - -14, - 3 - ], - "to": [ - 13, - -12, - 13 - ], - "faces": { - "north": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 9, - 11.5, - 11.5, - 12 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 9, - 9, - 11.5, - 11.5 - ], - "texture": "#0" - } - } - }, - { - "name": "base3", - "from": [ - 4, - -12, - 4 - ], - "to": [ - 12, - -4, - 12 - ], - "faces": { - "north": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 12, - 3, - 14, - 5 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 14, - 3, - 16, - 5 - ], - "texture": "#0" - } - } - }, - { - "name": "port", - "from": [ - 4, - -12, - 0 - ], - "to": [ - 12, - -4, - 1 - ], - "faces": { - "north": { - "uv": [ - 0, - 0, - 8, - 8 - ], - "texture": "#1", - "cullface": "north" - }, - "east": { - "uv": [ - 7, - 0, - 8, - 8 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 0, - 8, - 8, - 16 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 8 - ], - "texture": "#1" - }, - "up": { - "uv": [ - 0, - 0, - 8, - 1 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 7, - 8, - 8 - ], - "texture": "#1" - } - } - }, - { - "name": "port_led", - "from": [ - 4, - -12, - 0 - ], - "to": [ - 12, - -4, - 0 - ], - "faces": { - "north": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#2", - "cullface": "north" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "port_down", - "from": [ - 4, - -16, - 4 - ], - "to": [ - 12, - -16, - 12 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 8, - 8 - ], - "texture": "#1", - "cullface": "down" - } - } - }, - { - "name": "port_down_led", - "from": [ - 4, - -16, - 4 - ], - "to": [ - 12, - -16, - 12 - ], - "faces": { - "down": { - "uv": [ - 8, - 8, - 16, - 16 - ], - "texture": "#2", - "cullface": "down" - } - }, - "neoforge_data": { - "block_light": 15, - "sky_light": 15 - } - }, - { - "name": "solar_panel_east", - "from": [ - 14, - 30, - -16 - ], - "to": [ - 32, - 31, - 32 - ], - "faces": { - "north": { - "uv": [ - 0, - 11.75, - 4.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0, - 0.25, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 0, - 4.5, - 0.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 4.25, - 0, - 4.5, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0, - 4.5, - 12 - ], - "rotation": 180, - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 0, - 9, - 12 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_east_base", - "from": [ - 15, - 29, - -15 - ], - "to": [ - 31, - 30, - 31 - ], - "faces": { - "north": { - "uv": [ - 4.75, - 0.25, - 8.75, - 0.5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 4.75, - 0.25, - 5, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 4.75, - 11.5, - 8.75, - 11.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 8.5, - 0.25, - 8.75, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.75, - 0.25, - 8.75, - 11.75 - ], - "rotation": 180, - "texture": "#0" - } - } - }, - { - "name": "solar_panel_east_arm", - "from": [ - 12, - 27, - 7 - ], - "to": [ - 28, - 29, - 9 - ], - "faces": { - "north": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "east": { - "uv": [ - 15.5, - 6, - 16, - 6.5 - ], - "rotation": 270, - "texture": "#0" - }, - "south": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west", - "from": [ - -16, - 30, - -16 - ], - "to": [ - 2, - 31, - 32 - ], - "faces": { - "north": { - "uv": [ - 0, - 11.75, - 4.5, - 12 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0, - 0.25, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 0, - 4.5, - 0.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 4.25, - 0, - 4.5, - 12 - ], - "rotation": 90, - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0, - 4.5, - 12 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 4.5, - 0, - 9, - 12 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west_base", - "from": [ - -15, - 29, - -15 - ], - "to": [ - 1, - 30, - 31 - ], - "faces": { - "north": { - "uv": [ - 4.75, - 11.5, - 8.75, - 11.75 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 4.75, - 0.25, - 5, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 4.75, - 0.25, - 8.75, - 0.5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 8.5, - 0.25, - 8.75, - 11.75 - ], - "rotation": 90, - "texture": "#0" - }, - "down": { - "uv": [ - 4.75, - 0.25, - 8.75, - 11.75 - ], - "texture": "#0" - } - } - }, - { - "name": "solar_panel_west_arm", - "from": [ - -12, - 27, - 7 - ], - "to": [ - 4, - 29, - 9 - ], - "faces": { - "north": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 90, - "texture": "#0" - }, - "south": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "west": { - "uv": [ - 15.5, - 6, - 16, - 6.5 - ], - "rotation": 270, - "texture": "#0" - }, - "up": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - }, - "down": { - "uv": [ - 15.5, - 6.5, - 16, - 10.5 - ], - "rotation": 270, - "texture": "#0" - } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ - 35, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "thirdperson_lefthand": { - "rotation": [ - 35, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 45, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "firstperson_lefthand": { - "rotation": [ - 0, - 225, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "ground": { - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "gui": { - "rotation": [ - 30, - 225, - 0 - ], - "translation": [ - 0, - -4.75, - 0 - ], - "scale": [ - 0.24, - 0.25, - 0.22 - ] - }, - "head": { - "translation": [ - 0, - 14.25, - 0 - ] - }, - "fixed": { - "translation": [ - 0, - -4.75, - -0.5 - ], - "scale": [ - 0.3, - 0.3, - 0.3 - ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/neutron_collector.json b/src/main/resources/assets/avaritia_integration/models/block/neutron_collector.json deleted file mode 100644 index 6506a8c3..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/neutron_collector.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "mekanism:block/machine", - "textures": { - "sides": "mekanism:block/enrichment_chamber/right", - "front": "avaritia_integration:block/neutron_collector/front", - "west": "mekanism:block/enrichment_chamber/right", - "east": "mekanism:block/enrichment_chamber/left", - "south": "mekanism:block/enrichment_chamber/back", - "up": "mekanism:block/enrichment_chamber/top", - "down": "mekanism:block/enrichment_chamber/bottom" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/neutron_collector_active.json b/src/main/resources/assets/avaritia_integration/models/block/neutron_collector_active.json deleted file mode 100644 index 51bf8704..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/neutron_collector_active.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "avaritia_integration:block/neutron_collector", - "textures": { - "front": "avaritia_integration:block/neutron_collector/front_active" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/neutron_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/block/neutron_solar_generator.json deleted file mode 100644 index d55568e6..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/neutron_solar_generator.json +++ /dev/null @@ -1,339 +0,0 @@ -{ - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "1": "avaritia_integration:block/model/neutron_solar_generator", - "particle": "avaritia_integration:block/model/neutron_solar_generator" - }, - "elements": [ - { - "name": "solarPanel", - "from": [0.5, 8.5, 0.5], - "to": [15.5, 9.5, 15.5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, - "faces": { - "north": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "north"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "east"}, - "south": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "south"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0.25, 0.25, 3.75, 3.75], "texture": "#1"}, - "down": {"uv": [4, 0, 8, 4], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [3, 2, 3], - "to": [13, 3, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 1, 0]}, - "faces": { - "north": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "east": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "south": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "west": {"uv": [8.75, 3.25, 11.25, 3.5], "texture": "#1"}, - "up": {"uv": [12.75, 0.75, 15.25, 3.25], "texture": "#1"}, - "down": {"uv": [8.75, 0.75, 11.25, 3.25], "texture": "#1", "cullface": "down"} - } - }, - { - "name": "solarPanelPort", - "from": [1.9, 0.05, 1.9], - "to": [14.1, 2.25, 14.1], - "faces": { - "north": {"uv": [15.5, 7.25, 12.5, 7.5], "texture": "#1"}, - "east": {"uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1"}, - "south": {"uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1"}, - "west": {"uv": [12.5, 7.25, 15.5, 7.5], "texture": "#1"}, - "up": {"uv": [12.5, 4.5, 15.5, 7.5], "texture": "#1"}, - "down": {"uv": [8.5, 0.5, 11.5, 3.5], "texture": "#1", "cullface": "down"} - } - }, - { - "name": "SolarFrame", - "from": [1, 8, 0], - "to": [15, 10, 1], - "faces": { - "north": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 0.5, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 3.5, 0.25], "texture": "#1"}, - "down": {"uv": [0.25, 0, 3.75, 0.25], "texture": "#1"} - } - }, - { - "name": "SolarFrame", - "from": [15, 8, 0], - "to": [16, 10, 16], - "faces": { - "north": {"uv": [0, 0, 0.25, 0.5], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 0.5, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 0.25, 4], "texture": "#1"}, - "down": {"uv": [0, 0, 0.25, 4], "texture": "#1"} - } - }, - { - "name": "SolarFrame", - "from": [0, 8, 0], - "to": [1, 10, 16], - "faces": { - "north": {"uv": [0, 0, 0.25, 0.5], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 0.5, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 0.25, 4], "texture": "#1"}, - "down": {"uv": [0, 0, 0.25, 4], "texture": "#1"} - } - }, - { - "name": "SolarFrame", - "from": [1, 8, 15], - "to": [15, 10, 16], - "faces": { - "north": {"uv": [0, 0, 3.5, 0.25], "texture": "#1"}, - "east": {"uv": [0, 4, 4, 4.5], "texture": "#1"}, - "south": {"uv": [0.25, 4, 3.75, 4.5], "texture": "#1"}, - "west": {"uv": [0, 4, 4, 4.5], "texture": "#1", "cullface": "west"}, - "up": {"uv": [0, 0, 3.5, 0.25], "texture": "#1"}, - "down": {"uv": [0.25, 0, 3.75, 0.25], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [1, 0, 10], - "to": [6, 2, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [5, 1.5, 8]}, - "faces": { - "north": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "east": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "south": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "west": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "up": {"uv": [1.5, 8.5, 0.25, 9.75], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0.25, 8.5, 1.5, 9.75], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 10], - "to": [15, 2, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 1.5, 8]}, - "faces": { - "north": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "east": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "south": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "west": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "up": {"uv": [1.5, 9.75, 0.25, 8.5], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0.25, 9.75, 1.5, 8.5], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 1], - "to": [15, 2, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 1.5, 8]}, - "faces": { - "north": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "east": {"uv": [0.25, 9.75, 0.5, 8.5], "rotation": 90, "texture": "#1"}, - "south": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "west": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "up": {"uv": [0.25, 9.75, 1.5, 8.5], "rotation": 90, "texture": "#1"}, - "down": {"uv": [1.5, 9.75, 0.25, 8.5], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 0], - "to": [16, 1, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 0.5, 2.5]}, - "faces": { - "north": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "east": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "south": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "west": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "up": {"uv": [1.75, 12, 0.25, 10.5], "texture": "#1"}, - "down": {"uv": [1.75, 10.5, 0.25, 12], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [0, 0, 0], - "to": [6, 1, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 0.5, 2.5]}, - "faces": { - "north": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "east": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "south": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "west": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "up": {"uv": [0.25, 12, 1.75, 10.5], "texture": "#1"}, - "down": {"uv": [0.25, 10.5, 1.75, 12], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [0, 0, 10], - "to": [6, 1, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 0.5, 13.5]}, - "faces": { - "north": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "east": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "south": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "west": {"uv": [0.25, 12, 1.75, 11.75], "texture": "#1"}, - "up": {"uv": [0.25, 10.5, 1.75, 12], "texture": "#1"}, - "down": {"uv": [0.25, 12, 1.75, 10.5], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [10, 0, 10], - "to": [16, 1, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 0.5, 13.5]}, - "faces": { - "north": {"uv": [0.25, 10.75, 1.75, 10.5], "texture": "#1"}, - "east": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "south": {"uv": [1.75, 12, 0.25, 11.75], "texture": "#1"}, - "west": {"uv": [1.75, 10.75, 0.25, 10.5], "texture": "#1"}, - "up": {"uv": [1.75, 10.5, 0.25, 12], "texture": "#1"}, - "down": {"uv": [1.75, 12, 0.25, 10.5], "texture": "#1"} - } - }, - { - "name": "solarPanelPort", - "from": [1, 0, 1], - "to": [6, 2, 6], - "rotation": {"angle": 0, "axis": "y", "origin": [5, 1.5, 8]}, - "faces": { - "north": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "east": {"uv": [1.5, 9.75, 1.75, 8.5], "rotation": 90, "texture": "#1"}, - "south": {"uv": [1.5, 8.5, 1.75, 9.75], "rotation": 90, "texture": "#1"}, - "west": {"uv": [0.25, 8.5, 0.5, 9.75], "rotation": 90, "texture": "#1"}, - "up": {"uv": [0.25, 8.5, 1.5, 9.75], "rotation": 90, "texture": "#1"}, - "down": {"uv": [1.5, 8.5, 0.25, 9.75], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "solarPanelRod5", - "from": [2, 2, 2], - "to": [4, 7, 4], - "rotation": {"angle": -45, "axis": "y", "origin": [3, 4, 3]}, - "faces": { - "north": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "east": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "south": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "west": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod6", - "from": [12, 2, 2], - "to": [14, 7, 4], - "rotation": {"angle": 45, "axis": "y", "origin": [13, 4, 3]}, - "faces": { - "north": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "east": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "south": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "west": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod7", - "from": [12, 2, 12], - "to": [14, 7, 14], - "rotation": {"angle": -45, "axis": "y", "origin": [13, 4, 13]}, - "faces": { - "north": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "east": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "south": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"}, - "west": {"uv": [3.5, 4.5, 4, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod6", - "from": [2, 2, 12], - "to": [4, 7, 14], - "rotation": {"angle": 45, "axis": "y", "origin": [3, 4, 13]}, - "faces": { - "north": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "east": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "south": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"}, - "west": {"uv": [4, 4.5, 3.5, 5.75], "texture": "#1"} - } - }, - { - "name": "solarPanelRod5", - "from": [4, 3, 4], - "to": [12, 7, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [4, 7, 11]}, - "faces": { - "north": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"}, - "east": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"}, - "south": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"}, - "west": {"uv": [3.5, 4.5, 5.5, 5.5], "texture": "#1"} - } - }, - { - "name": "solarPanelPipeBase", - "from": [5, 3, 5], - "to": [11, 7, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, - "faces": { - "north": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "east": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "south": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "west": {"uv": [5.5, 6.5, 7, 7.5], "texture": "#1"}, - "up": {"uv": [5.5, 6, 7, 7.5], "texture": "#1"} - } - }, - { - "name": "solarPanelBottom", - "from": [1, 7, 1], - "to": [15, 8, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]}, - "faces": { - "north": {"uv": [0, 4.5, 3.5, 4.75], "texture": "#1"}, - "east": {"uv": [0, 7.75, 3.5, 8], "texture": "#1"}, - "south": {"uv": [0, 4.5, 3.5, 4.75], "texture": "#1"}, - "west": {"uv": [0, 7.75, 3.5, 8], "texture": "#1"}, - "down": {"uv": [0, 4.5, 3.5, 8], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "translation": [0, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 45, 0], - "translation": [0, 2.25, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "head": { - "translation": [0, 9.5, 0] - }, - "fixed": { - "rotation": [-90, 0, 0], - "translation": [0, 0, -1], - "scale": [0.5, 0.5, 0.5] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor.json b/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor.json deleted file mode 100644 index c4367356..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "mekanism:block/machine", - "textures": { - "sides": "mekanism:block/enrichment_chamber/right", - "front": "avaritia_integration:block/singularity_compressor/front", - "west": "mekanism:block/enrichment_chamber/right", - "east": "mekanism:block/enrichment_chamber/left", - "south": "mekanism:block/enrichment_chamber/back", - "up": "mekanism:block/enrichment_chamber/top", - "down": "mekanism:block/enrichment_chamber/bottom" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor_active.json b/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor_active.json deleted file mode 100644 index cf250955..00000000 --- a/src/main/resources/assets/avaritia_integration/models/block/singularity_compressor_active.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "avaritia_integration:block/singularity_compressor", - "textures": { - "front": "avaritia_integration:block/singularity_compressor/front_active" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/advanced_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/advanced_neutron_collecting_factory.json deleted file mode 100644 index 55769106..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/advanced_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/advanced" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/advanced_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/advanced_singularity_compressing_factory.json deleted file mode 100644 index 23e4c754..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/advanced_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/advanced" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/alloy_infinity.json b/src/main/resources/assets/avaritia_integration/models/item/alloy_infinity.json deleted file mode 100644 index 4db5b4e2..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/alloy_infinity.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/alloy_infinity", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/alloy_neutron.json b/src/main/resources/assets/avaritia_integration/models/item/alloy_neutron.json deleted file mode 100644 index a5b3809d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/alloy_neutron.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/alloy_neutron", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/alpha_spark.json b/src/main/resources/assets/avaritia_integration/models/item/alpha_spark.json deleted file mode 100644 index b00be60f..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/alpha_spark.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/botania/alpha_spark" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion.json b/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion.json deleted file mode 100644 index bad27052..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/botania/asgard_dandelion" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion_floating.json b/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion_floating.json deleted file mode 100644 index 5d550acd..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/asgard_dandelion_floating.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/botania/asgard_dandelion_floating" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/basic_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/basic_neutron_collecting_factory.json deleted file mode 100644 index c1f9f371..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/basic_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/basic" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/basic_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/basic_singularity_compressing_factory.json deleted file mode 100644 index fbaf8f04..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/basic_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/basic" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_bolt.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_bolt.json deleted file mode 100644 index 932d3a39..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_bolt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_bolt" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dense_plate.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dense_plate.json deleted file mode 100644 index 07b51b36..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dense_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_dense_plate" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_double_plate.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_double_plate.json deleted file mode 100644 index acfeddab..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_double_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_double_plate" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dust.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dust.json deleted file mode 100644 index 9c749fb5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_dust.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_dust" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_gear.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_gear.json deleted file mode 100644 index 41f5a81c..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_gear.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_gear" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_long_rod.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_long_rod.json deleted file mode 100644 index 41609ab9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_long_rod.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_long_rod" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_nugget.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_nugget.json deleted file mode 100644 index fb55c2ed..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_nugget.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_nugget" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_plate.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_plate.json deleted file mode 100644 index eddc1289..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_plate" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_ring.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_ring.json deleted file mode 100644 index fce10bdf..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_ring.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_ring" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_rod.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_rod.json deleted file mode 100644 index bfecd384..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_rod.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_rod" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_screw.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_screw.json deleted file mode 100644 index 6c9f3ce0..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_screw.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_screw" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_spring.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_spring.json deleted file mode 100644 index 00ba7620..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_spring.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_spring" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_wire.json b/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_wire.json deleted file mode 100644 index 4abe6446..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blaze_cube_wire.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/blaze_cube/blaze_cube_wire" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/blood_orb_of_armok.json b/src/main/resources/assets/avaritia_integration/models/item/blood_orb_of_armok.json deleted file mode 100644 index ba8207ab..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/blood_orb_of_armok.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/blood_orb_of_armok" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/creative_augment_base.json b/src/main/resources/assets/avaritia_integration/models/item/creative_augment_base.json deleted file mode 100644 index 14cd0ffb..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/creative_augment_base.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/creative_augment_base" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/creative_compound.json b/src/main/resources/assets/avaritia_integration/models/item/creative_compound.json deleted file mode 100644 index b61869e9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/creative_compound.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/creative_compound" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/creative_compressed_iron.json b/src/main/resources/assets/avaritia_integration/models/item/creative_compressed_iron.json deleted file mode 100644 index c2a865be..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/creative_compressed_iron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/creative_compressed_iron" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/creative_integral_components.json b/src/main/resources/assets/avaritia_integration/models/item/creative_integral_components.json deleted file mode 100644 index 275e00c3..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/creative_integral_components.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/thermal_expansion/creative_integral_components", - "layer1": "thermal:item/augments/upgrade_augment_3_lights", - "layer2": "thermal:item/augments/upgrade_augment_anim" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/creative_mechanism.json b/src/main/resources/assets/avaritia_integration/models/item/creative_mechanism.json deleted file mode 100644 index d1b0ccad..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/creative_mechanism.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/creative_mechanism" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/creative_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/creative_neutron_collecting_factory.json deleted file mode 100644 index 96ad9dbd..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/creative_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/creative" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/creative_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/creative_singularity_compressing_factory.json deleted file mode 100644 index fee38c19..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/creative_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/creative" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_bolt.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_bolt.json deleted file mode 100644 index 4fd5911f..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_bolt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_bolt" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dense_plate.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dense_plate.json deleted file mode 100644 index d37910ba..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dense_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_dense_plate" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_double_plate.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_double_plate.json deleted file mode 100644 index 852e87a6..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_double_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_double_plate" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dust.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dust.json deleted file mode 100644 index c4ecf92e..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_dust.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_dust" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_gear.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_gear.json deleted file mode 100644 index 1b29f692..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_gear.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_gear" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_long_rod.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_long_rod.json deleted file mode 100644 index b59cc481..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_long_rod.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_long_rod" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_nugget.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_nugget.json deleted file mode 100644 index 867154c7..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_nugget.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_nugget" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_plate.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_plate.json deleted file mode 100644 index 90733a2c..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_plate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_plate" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_ring.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_ring.json deleted file mode 100644 index 2f9761ff..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_ring.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_ring" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_rod.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_rod.json deleted file mode 100644 index 8ece63dd..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_rod.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_rod" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_screw.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_screw.json deleted file mode 100644 index cdcd9f01..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_screw.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_screw" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_spring.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_spring.json deleted file mode 100644 index 7253423e..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_spring.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_spring" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_wire.json b/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_wire.json deleted file mode 100644 index ca3015bc..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/crystal_matrix_wire.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/crystal_matrix/crystal_matrix_wire" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/dense_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/dense_neutron_collecting_factory.json deleted file mode 100644 index 61aabf35..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/dense_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/dense" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/dense_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/dense_singularity_compressing_factory.json deleted file mode 100644 index 0d29bdff..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/dense_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/dense" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_blaze_cube.json b/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_blaze_cube.json deleted file mode 100644 index f05f946d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_blaze_cube.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_blaze_cube" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_crystal_matrix.json b/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_crystal_matrix.json deleted file mode 100644 index b2ca46a4..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_crystal_matrix" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_infinity.json b/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_infinity.json deleted file mode 100644 index 5a3f08b3..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_infinity" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_neutron.json b/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_neutron.json deleted file mode 100644 index db22e95a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/efficiency_addon_neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/efficiency_addon_neutron" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/elderly_medulla_bucket.json b/src/main/resources/assets/avaritia_integration/models/item/elderly_medulla_bucket.json deleted file mode 100644 index 64c67e61..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/elderly_medulla_bucket.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "flip_gas": false, - "fluid": "avaritia_integration:elderly_medulla", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/elite_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/elite_neutron_collecting_factory.json deleted file mode 100644 index 45360063..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/elite_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/elite" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/elite_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/elite_singularity_compressing_factory.json deleted file mode 100644 index 0ab5ea6a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/elite_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/elite" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_blaze_cube.json b/src/main/resources/assets/avaritia_integration/models/item/energy_addon_blaze_cube.json deleted file mode 100644 index 5a47c029..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_blaze_cube.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/ifeu/energy_addon_blaze_cube" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_crystal_matrix.json b/src/main/resources/assets/avaritia_integration/models/item/energy_addon_crystal_matrix.json deleted file mode 100644 index 65b57dee..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/ifeu/energy_addon_crystal_matrix" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_infinity.json b/src/main/resources/assets/avaritia_integration/models/item/energy_addon_infinity.json deleted file mode 100644 index 1809916c..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/ifeu/energy_addon_infinity" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_neutron.json b/src/main/resources/assets/avaritia_integration/models/item/energy_addon_neutron.json deleted file mode 100644 index 226bbf22..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/energy_addon_neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/ifeu/energy_addon_neutron" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/enriched_infinity.json b/src/main/resources/assets/avaritia_integration/models/item/enriched_infinity.json deleted file mode 100644 index 67166bcf..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/enriched_infinity.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/enriched_infinity", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/enriched_neutron.json b/src/main/resources/assets/avaritia_integration/models/item/enriched_neutron.json deleted file mode 100644 index f094b7af..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/enriched_neutron.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/enriched_neutron", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/heaven_arrow.json b/src/main/resources/assets/avaritia_integration/models/item/heaven_arrow.json deleted file mode 100644 index 97529b0c..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/heaven_arrow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "avaritia_integration:item/heaven_arrow" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_advanced_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_advanced_solar_generator.json deleted file mode 100644 index ed5992aa..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_advanced_solar_generator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/infinity_advanced_solar_generator" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_bolt.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_bolt.json deleted file mode 100644 index 9a9fa676..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_bolt.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_bolt", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_capacitor.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_capacitor.json deleted file mode 100644 index cd32f9ca..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_capacitor.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/infinity_capacitor", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_control_circuit.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_control_circuit.json deleted file mode 100644 index 91485ad0..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_control_circuit.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_control_circuit", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_dense_plate.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_dense_plate.json deleted file mode 100644 index 198d001d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_dense_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_dense_plate", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_double_plate.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_double_plate.json deleted file mode 100644 index 123420b6..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_double_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_double_plate", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_dust.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_dust.json deleted file mode 100644 index 39907a61..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_dust.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_dust", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_energy_tablet.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_energy_tablet.json deleted file mode 100644 index c07a5422..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_energy_tablet.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_energy_tablet", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_gear.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_gear.json deleted file mode 100644 index 716a86e1..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_gear.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_gear", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_grinding_ball.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_grinding_ball.json deleted file mode 100644 index 96e0d31d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_grinding_ball.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/infinity_grinding_ball", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_long_rod.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_long_rod.json deleted file mode 100644 index 878c5835..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_long_rod.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_long_rod", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_mana_pool.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_mana_pool.json deleted file mode 100644 index a6ad9518..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_mana_pool.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "parent": "avaritia_integration:block/botania/infinity_mana_pool", - "overrides": [ - { - "model": "avaritia_integration:block/botania/infinity_mana_pool_full", - "predicate": { - "botania:full": 1.0 - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell.json deleted file mode 100644 index aab71317..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/infinity_me_storage_cell", - "layer1": "avaritia_integration:item/items/storage_cell_led" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell_big.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell_big.json deleted file mode 100644 index 76c2be99..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_cell_big.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/infinity_me_storage_cell_big", - "layer1": "ae2:item/storage_cell_led" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_component.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_component.json deleted file mode 100644 index 16c92e20..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_me_storage_component.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/infinity_me_storage_component" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_plate.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_plate.json deleted file mode 100644 index 832b175b..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_plate", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_potato.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_potato.json deleted file mode 100644 index 93ceb2d9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_potato.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/botania/infinity_potato" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_ring.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_ring.json deleted file mode 100644 index fa1c43be..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_ring.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_ring", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_rod.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_rod.json deleted file mode 100644 index 3cdefa04..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_rod.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_rod", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_screw.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_screw.json deleted file mode 100644 index 27f04fe5..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_screw.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_screw", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_generator.json deleted file mode 100644 index 8fcc1a65..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_generator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/infinity_solar_generator" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_panel.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_panel.json deleted file mode 100644 index 3ec6383d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_solar_panel.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_solar_panel", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_spring.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_spring.json deleted file mode 100644 index edbabffb..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_spring.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_spring", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_storage_part.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_storage_part.json deleted file mode 100644 index 708eefd9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_storage_part.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/infinity_storage_part" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/infinity_wire.json b/src/main/resources/assets/avaritia_integration/models/item/infinity_wire.json deleted file mode 100644 index c6b9ecb7..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/infinity_wire.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/infinity/infinity_wire", - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": true - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/molten_blaze_bucket.json b/src/main/resources/assets/avaritia_integration/models/item/molten_blaze_bucket.json deleted file mode 100644 index fcbf1051..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/molten_blaze_bucket.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "flip_gas": false, - "fluid": "avaritia_integration:molten_blaze", - "loader": "neoforge:fluid_container" -} - diff --git a/src/main/resources/assets/avaritia_integration/models/item/molten_crystal_matrix_bucket.json b/src/main/resources/assets/avaritia_integration/models/item/molten_crystal_matrix_bucket.json deleted file mode 100644 index 6a892f0d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/molten_crystal_matrix_bucket.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "flip_gas": false, - "fluid": "avaritia_integration:molten_crystal_matrix", - "loader": "neoforge:fluid_container" -} - diff --git a/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket.json b/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket.json deleted file mode 100644 index 71c5cdfd..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "parent": "avaritia_integration:item/molten_infinity_bucket_base", - "textures": { - "halo": "avaritia:misc/halo" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -16777216, - "size": 10, - "pulse": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket_base.json b/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket_base.json deleted file mode 100644 index 5572b1d6..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/molten_infinity_bucket_base.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "flip_gas": true, - "fluid": "avaritia_integration:molten_infinity", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/molten_neutron_bucket.json b/src/main/resources/assets/avaritia_integration/models/item/molten_neutron_bucket.json deleted file mode 100644 index 1f8cd4bf..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/molten_neutron_bucket.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "flip_gas": false, - "fluid": "avaritia_integration:molten_neutron", - "loader": "neoforge:fluid_container" -} - diff --git a/src/main/resources/assets/avaritia_integration/models/item/molten_star_bucket.json b/src/main/resources/assets/avaritia_integration/models/item/molten_star_bucket.json deleted file mode 100644 index bd507c1f..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/molten_star_bucket.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "flip_gas": false, - "fluid": "avaritia_integration:molten_star", - "loader": "neoforge:fluid_container" -} - diff --git a/src/main/resources/assets/avaritia_integration/models/item/multiversal_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/multiversal_neutron_collecting_factory.json deleted file mode 100644 index d8b28bfd..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/multiversal_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/multiversal" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/multiversal_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/multiversal_singularity_compressing_factory.json deleted file mode 100644 index da456dc2..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/multiversal_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/multiversal" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_advanced_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_advanced_solar_generator.json deleted file mode 100644 index f03b74d9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_advanced_solar_generator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/neutron_advanced_solar_generator" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_bolt.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_bolt.json deleted file mode 100644 index 0e57beb9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_bolt.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_bolt", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_collector.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_collector.json deleted file mode 100644 index 3090073d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_collector.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/neutron_collector" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_control_circuit.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_control_circuit.json deleted file mode 100644 index 6013f680..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_control_circuit.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_control_circuit", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_dense_plate.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_dense_plate.json deleted file mode 100644 index 09222ffc..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_dense_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_dense_plate", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_double_plate.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_double_plate.json deleted file mode 100644 index d01dc512..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_double_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_double_plate", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_dust.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_dust.json deleted file mode 100644 index c43affeb..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_dust.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_dust", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_energy_tablet.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_energy_tablet.json deleted file mode 100644 index 467d2aa0..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_energy_tablet.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_energy_tablet", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_grinding_ball.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_grinding_ball.json deleted file mode 100644 index b98aaff9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_grinding_ball.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/items/neutron_grinding_ball", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_long_rod.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_long_rod.json deleted file mode 100644 index 99a7d418..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_long_rod.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_long_rod", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_plate.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_plate.json deleted file mode 100644 index ea06a2d2..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_plate", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_ring.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_ring.json deleted file mode 100644 index 4c6a809f..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_ring.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_ring", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_rod.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_rod.json deleted file mode 100644 index dd0452ae..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_rod.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_rod", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_screw.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_screw.json deleted file mode 100644 index 2d2c41d8..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_screw.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_screw", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_generator.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_generator.json deleted file mode 100644 index 6e457982..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_generator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/neutron_solar_generator" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_panel.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_panel.json deleted file mode 100644 index b8bef7aa..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_solar_panel.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_solar_panel", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_spring.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_spring.json deleted file mode 100644 index aadc34df..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_spring.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_spring", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/neutron_wire.json b/src/main/resources/assets/avaritia_integration/models/item/neutron_wire.json deleted file mode 100644 index f1feae0a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/neutron_wire.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/neutron/neutron_wire", - "halo": "avaritia:misc/halo_noise" - }, - "loader": "avaritia:halo", - "halo": { - "texture": "#halo", - "color": -1711276033, - "size": 6, - "pulse": false - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/overclocked_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/overclocked_neutron_collecting_factory.json deleted file mode 100644 index 7b96671c..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/overclocked_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/overclocked" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/overclocked_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/overclocked_singularity_compressing_factory.json deleted file mode 100644 index 7a979698..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/overclocked_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/overclocked" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_blaze_cube.json b/src/main/resources/assets/avaritia_integration/models/item/processing_addon_blaze_cube.json deleted file mode 100644 index 3c825b51..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_blaze_cube.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_blaze_cube" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_crystal_matrix.json b/src/main/resources/assets/avaritia_integration/models/item/processing_addon_crystal_matrix.json deleted file mode 100644 index a99f1848..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_crystal_matrix" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_infinity.json b/src/main/resources/assets/avaritia_integration/models/item/processing_addon_infinity.json deleted file mode 100644 index 793c0f1a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_infinity" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_neutron.json b/src/main/resources/assets/avaritia_integration/models/item/processing_addon_neutron.json deleted file mode 100644 index a8a2ce2b..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/processing_addon_neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/processing_addon_neutron" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/quantum_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/quantum_neutron_collecting_factory.json deleted file mode 100644 index 0556e7c6..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/quantum_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/quantum" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/quantum_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/quantum_singularity_compressing_factory.json deleted file mode 100644 index 7b8cc704..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/quantum_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/quantum" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/singularity_compressor.json b/src/main/resources/assets/avaritia_integration/models/item/singularity_compressor.json deleted file mode 100644 index 8e3c1406..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/singularity_compressor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/singularity_compressor" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/soarleander.json b/src/main/resources/assets/avaritia_integration/models/item/soarleander.json deleted file mode 100644 index 849fbc46..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/soarleander.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/botania/soarleander" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/soarleander_floating.json b/src/main/resources/assets/avaritia_integration/models/item/soarleander_floating.json deleted file mode 100644 index 88a99b2d..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/soarleander_floating.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/botania/soarleander_floating" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_blaze_cube.json b/src/main/resources/assets/avaritia_integration/models/item/speed_addon_blaze_cube.json deleted file mode 100644 index 4acaedde..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_blaze_cube.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_blaze_cube" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_crystal_matrix.json b/src/main/resources/assets/avaritia_integration/models/item/speed_addon_crystal_matrix.json deleted file mode 100644 index e0e168ed..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_crystal_matrix" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_infinity.json b/src/main/resources/assets/avaritia_integration/models/item/speed_addon_infinity.json deleted file mode 100644 index d87b913a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_infinity" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_neutron.json b/src/main/resources/assets/avaritia_integration/models/item/speed_addon_neutron.json deleted file mode 100644 index 7e46eaf2..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/speed_addon_neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "avaritia_integration:item/industrialforegoing/speed_addon_neutron" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/models/item/trace_arrow.json b/src/main/resources/assets/avaritia_integration/models/item/trace_arrow.json deleted file mode 100644 index 921a5b8c..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/trace_arrow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "avaritia_integration:item/trace_arrow" - } -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/ultimate_neutron_collecting_factory.json b/src/main/resources/assets/avaritia_integration/models/item/ultimate_neutron_collecting_factory.json deleted file mode 100644 index 2a67d1f9..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/ultimate_neutron_collecting_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/neutron_collecting/ultimate" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/ultimate_singularity_compressing_factory.json b/src/main/resources/assets/avaritia_integration/models/item/ultimate_singularity_compressing_factory.json deleted file mode 100644 index 58746473..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/ultimate_singularity_compressing_factory.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "avaritia_integration:block/factory/singularity_compressing/ultimate" -} diff --git a/src/main/resources/assets/avaritia_integration/models/item/void_matter_bucket.json b/src/main/resources/assets/avaritia_integration/models/item/void_matter_bucket.json deleted file mode 100644 index d1d8a83a..00000000 --- a/src/main/resources/assets/avaritia_integration/models/item/void_matter_bucket.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "neoforge:item/bucket_drip", - "flip_gas": false, - "fluid": "avaritia_integration:void_matter", - "loader": "neoforge:fluid_container" -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/fluids/elderly_medulla_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/fluids/void_matter_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_blaze_still.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_crystal_matrix_still.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png.mcmeta deleted file mode 100644 index 8e55e43b..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 3 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png.mcmeta deleted file mode 100644 index 8e55e43b..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_flow_inverted.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 3 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png.mcmeta deleted file mode 100644 index 8e55e43b..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_infinity_still.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 3 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_neutron_still.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_star_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png.mcmeta deleted file mode 100644 index 0645f48c..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/molten_star_still.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png.mcmeta deleted file mode 100644 index 92619964..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/neutron_collector/front_active.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png.mcmeta deleted file mode 100644 index 92619964..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/block/singularity_compressor/front_active.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png.mcmeta deleted file mode 100644 index b2e2153a..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/infuse_type/infinity.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png.mcmeta deleted file mode 100644 index b2e2153a..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/infuse_type/neutron.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_block.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_bolt.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dense_plate.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_double_plate.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_dust.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_gear.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_long_rod.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_nugget.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_plate.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_ring.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_rod.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_screw.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_spring.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/blaze_cube/blaze_cube_wire.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png.mcmeta deleted file mode 100644 index c989db1f..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/botania/alpha_spark.png.mcmeta +++ /dev/null @@ -1,20 +0,0 @@ -{ - "animation": { - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 6, - 5, - 4, - 3, - 2, - 1, - 0 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/botania/asgard_dandelion.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png.mcmeta deleted file mode 100644 index 12a55c6d..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/crystal_matrix/crystal_matrix.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 32}, - {"index": 1, "time": 32} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/alloy_infinity.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/enriched_infinity.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_bolt.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_control_circuit.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dense_plate.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_double_plate.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_dust.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_energy_tablet.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_gear.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png.mcmeta deleted file mode 100644 index 13a6115f..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ingot.png.mcmeta +++ /dev/null @@ -1,24 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 30, - "frames": [ - {"index": 0, "time": 3}, - {"index": 1, "time": 3}, - {"index": 2, "time": 3}, - {"index": 3, "time": 2}, - {"index": 4, "time": 2}, - 5, - 6, - 7, - 8, - 7, - 6, - 5, - {"index": 4, "time": 2}, - {"index": 3, "time": 2}, - {"index": 2, "time": 3}, - {"index": 1, "time": 3} - ] - } -} diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_long_rod.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_nugget.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_plate.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_ring.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_rod.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_screw.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_spring.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/infinity/infinity_wire.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png.mcmeta deleted file mode 100644 index 732d8ff9..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/items/infinity_grinding_ball.png.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frames": [ - {"index": 0, "time": 16}, - {"index": 1, "time": 16} - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png.mcmeta b/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png.mcmeta deleted file mode 100644 index 8e55e43b..00000000 --- a/src/main/resources/assets/avaritia_integration/textures/item/neutron/neutron_ingot.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 3 - } -} diff --git a/src/main/resources/assets/avaritia_integration/tinkering/materials/blaze_cube.json b/src/main/resources/assets/avaritia_integration/tinkering/materials/blaze_cube.json deleted file mode 100644 index 0b7a775b..00000000 --- a/src/main/resources/assets/avaritia_integration/tinkering/materials/blaze_cube.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "fallbacks": [ - "bone", - "rock" - ], - "color": "CD4418", - "luminosity": 6, - "generator": { - "transformer": { - "type": "tconstruct:recolor_sprite", - "color_mapping": { - "type": "tconstruct:grey_to_color", - "palette": [ - { - "grey": 0, - "color": "FF000000" - }, - { - "grey": 63, - "color": "FFf88131" - }, - { - "grey": 102, - "color": "FFff8838" - }, - { - "grey": 140, - "color": "FFffa938" - }, - { - "grey": 178, - "color": "FFfdc045" - }, - { - "grey": 216, - "color": "FFffeb6b" - }, - { - "grey": 255, - "color": "FFfffca6" - } - ] - } - }, - "supported_stats": [ - "tconstruct:head", - "tconstruct:handle", - "tconstruct:extra", - "tconstruct:repair_kit", - "tconstruct:limb", - "tconstruct:grip" - ], - "ignoreMaterial_stats": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/tinkering/materials/crystal_matrix.json b/src/main/resources/assets/avaritia_integration/tinkering/materials/crystal_matrix.json deleted file mode 100644 index 13dc8974..00000000 --- a/src/main/resources/assets/avaritia_integration/tinkering/materials/crystal_matrix.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "fallbacks": [ - "crystal", - "rock" - ], - "color": "9af3ee", - "luminosity": 7, - "generator": { - "transformer": { - "type": "tconstruct:recolor_sprite", - "color_mapping": { - "type": "tconstruct:grey_to_color", - "palette": [ - { - "grey": 0, - "color": "FF000000" - }, - { - "grey": 63, - "color": "FF1b5c58" - }, - { - "grey": 102, - "color": "FF387f7b" - }, - { - "grey": 140, - "color": "FF59aaa5" - }, - { - "grey": 178, - "color": "FF67bbb6" - }, - { - "grey": 216, - "color": "FF80d8d3" - }, - { - "grey": 255, - "color": "FF9af3ee" - } - ] - } - }, - "supported_stats": [ - "tconstruct:head", - "tconstruct:handle", - "tconstruct:extra", - "tconstruct:repair_kit", - "tconstruct:limb", - "tconstruct:grip" - ], - "ignoreMaterial_stats": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/tinkering/materials/infinity.json b/src/main/resources/assets/avaritia_integration/tinkering/materials/infinity.json deleted file mode 100644 index 27223c1f..00000000 --- a/src/main/resources/assets/avaritia_integration/tinkering/materials/infinity.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "fallbacks": [ - "metal" - ], - "color": "cccccc", - "luminosity": 12, - "generator": { - "transformer": { - "type": "tconstruct:frames", - "frames": [ - { - "type": "tconstruct:grey_to_sprite", - "palette": [ - { - "color": "FF000000", - "grey": 0 - }, - { - "grey": 63, - "path": "avaritia_integration:gen/infinity_dark" - }, - { - "grey": 178, - "path": "avaritia_integration:gen/infinity_medium" - }, - { - "grey": 255, - "path": "avaritia_integration:gen/infinity_light" - } - ] - }, - { - "type": "tconstruct:grey_to_sprite", - "palette": [ - { - "color": "FF000000", - "grey": 0 - }, - { - "color": "FFb9b9b9", - "grey": 63 - }, - { - "color": "FFc5c5c5", - "grey": 102 - }, - { - "color": "FFcccccc", - "grey": 140 - }, - { - "color": "FFe4e4e4", - "grey": 178 - }, - { - "color": "FFf0f0f0", - "grey": 216 - }, - { - "color": "FFffffff", - "grey": 255 - } - ] - } - ], - "meta": "avaritia:block/resource/infinity" - }, - "supported_stats": [ - "tconstruct:head", - "tconstruct:handle", - "tconstruct:extra", - "tconstruct:repair_kit", - "tconstruct:limb", - "tconstruct:grip", - "tconstruct:armor_plating", - "tconstruct:plating_boots", - "tconstruct:plating_leggings", - "tconstruct:plating_chestplate", - "tconstruct:plating_helmet", - "tconstruct:plating_shield", - "tconstruct:maille", - "tconstruct:armor_maille" - ], - "ignoreMaterial_stats": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/avaritia_integration/tinkering/materials/modifier_icons.json b/src/main/resources/assets/avaritia_integration/tinkering/materials/modifier_icons.json deleted file mode 100644 index be41e420..00000000 --- a/src/main/resources/assets/avaritia_integration/tinkering/materials/modifier_icons.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "avaritia_integration:crystaluix": ["avaritia:item/resource/crystal/diamond_lattice", "tconstruct:gui/modifiers/book"], - "avaritia_integration:star_dash": ["avaritia:item/resource/fuel/star_fuel", "tconstruct:gui/modifiers/book"], - "avaritia_integration:superheat": ["avaritia:item/resource/blaze/blaze_cube", "tconstruct:gui/modifiers/book"] -} diff --git a/src/main/resources/assets/avaritia_integration/tinkering/materials/neutronium.json b/src/main/resources/assets/avaritia_integration/tinkering/materials/neutronium.json deleted file mode 100644 index fa0bace6..00000000 --- a/src/main/resources/assets/avaritia_integration/tinkering/materials/neutronium.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "fallbacks": [ - "metal" - ], - "color": "727272", - "luminosity": 1, - "generator": { - "transformer": { - "type": "tconstruct:recolor_sprite", - "color_mapping": { - "type": "tconstruct:grey_to_color", - "palette": [ - { - "grey": 0, - "color": "FF000000" - }, - { - "grey": 63, - "color": "FFbabed9" - }, - { - "grey": 102, - "color": "FFa0a4bf" - }, - { - "grey": 140, - "color": "FF404040" - }, - { - "grey": 178, - "color": "FF2e3030" - }, - { - "grey": 216, - "color": "FF161616" - }, - { - "grey": 255, - "color": "FF080808" - } - ] - } - }, - "supported_stats": [ - "tconstruct:head", - "tconstruct:handle", - "tconstruct:extra", - "tconstruct:repair_kit", - "tconstruct:limb", - "tconstruct:grip" - ], - "ignoreMaterial_stats": false - } -} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/atlases/blocks.json b/src/main/resources/assets/minecraft/atlases/blocks.json deleted file mode 100644 index 3d790a99..00000000 --- a/src/main/resources/assets/minecraft/atlases/blocks.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "sources": [ - { - "type": "minecraft:single", - "resource": "avaritia_integration:infuse_type/infinity" - }, - { - "type": "minecraft:single", - "resource": "avaritia_integration:infuse_type/neutron" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/avaritia_integration.mixins.json b/src/main/resources/avaritia_integration.mixins.json deleted file mode 100644 index 74e7f9a8..00000000 --- a/src/main/resources/avaritia_integration.mixins.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "required": true, - "package": "committee.nova.mods.avaritia_integration.init.mixins", - "compatibilityLevel": "JAVA_17", - "refmap": "avaritia_integration.refmap.json", - "mixins": [ - "MixinMekanismRecipeType" - ], - "injectors": { - "defaultRequire": 1 - }, - "minVersion": "0.8" -} diff --git a/src/main/resources/data/avaritia/tags/items/endless.json b/src/main/resources/data/avaritia/tags/items/endless.json deleted file mode 100644 index 25c08788..00000000 --- a/src/main/resources/data/avaritia/tags/items/endless.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "avaritia_integration:molten_infinity_bucket" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_bedrock.json b/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_bedrock.json deleted file mode 100644 index 0f965ff1..00000000 --- a/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_bedrock.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [{ - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [{ "type": "minecraft:item", "name": "minecraft:bedrock" }], - "conditions": [{ "condition": "minecraft:survives_explosion" }] - }] -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_end_portal_frame.json b/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_end_portal_frame.json deleted file mode 100644 index 07945604..00000000 --- a/src/main/resources/data/avaritia_integration/loot_tables/blocks/fake_end_portal_frame.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [{ - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [{ "type": "minecraft:item", "name": "minecraft:end_portal_frame" }], - "conditions": [{ "condition": "minecraft:survives_explosion" }] - }] -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/ae/disassembly/infinity_me_storage_cell.json b/src/main/resources/data/avaritia_integration/recipe/ae/disassembly/infinity_me_storage_cell.json deleted file mode 100644 index 3809bfbe..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/ae/disassembly/infinity_me_storage_cell.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "ae2:storage_cell_disassembly", - "cell": "avaritia_integration:infinity_me_storage_cell", - "cell_disassembly_items": [ - { - "count": 1, - "id": "ae2:item_cell_housing" - }, - { - "count": 1, - "id": "avaritia_integration:infinity_me_storage_component" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_casting.json b/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_casting.json deleted file mode 100644 index 1a440eb3..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_basin", - "fluid": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 900 - }, - "result": "avaritia:blaze_cube_block", - "cooling_time": 241 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_melting.json deleted file mode 100644 index f4dcd33b..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/block_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:blaze_cube_block" }, - "result": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 900 - }, - "temperature": 1500, - "time": 241 -} diff --git a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_gold.json b/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_gold.json deleted file mode 100644 index 6f30062f..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_gold.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/multi_use/gem" }, - "cast_consumed": false, - "fluid": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 100 - }, - "result": "avaritia:blaze_cube", - "cooling_time": 80 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_sand.json b/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_sand.json deleted file mode 100644 index 71add603..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_cast_sand.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/single_use/gem" }, - "cast_consumed": true, - "fluid": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 100 - }, - "result": "avaritia:blaze_cube", - "cooling_time": 80 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_melting.json deleted file mode 100644 index d37766e7..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/blaze_cube/gem_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:blaze_cube" }, - "result": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 100 - }, - "temperature": 1500, - "time": 80 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_casting.json b/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_casting.json deleted file mode 100644 index e59ca0f9..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_basin", - "fluid": { - "fluid": "avaritia_integration:molten_crystal_matrix", - "amount": 810 - }, - "result": "avaritia:crystal_matrix", - "cooling_time": 312 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_melting.json deleted file mode 100644 index 7aa74ddb..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/block_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:crystal_matrix" }, - "result": { - "fluid": "avaritia_integration:molten_crystal_matrix", - "amount": 810 - }, - "temperature": 2500, - "time": 312 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_gold.json b/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_gold.json deleted file mode 100644 index e30bce3f..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_gold.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/multi_use/ingot" }, - "cast_consumed": false, - "fluid": { - "fluid": "avaritia_integration:molten_crystal_matrix", - "amount": 90 - }, - "result": "avaritia:crystal_matrix_ingot", - "cooling_time": 104 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_sand.json b/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_sand.json deleted file mode 100644 index 7dbde2e9..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_cast_sand.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/single_use/ingot" }, - "cast_consumed": true, - "fluid": { - "fluid": "avaritia_integration:molten_crystal_matrix", - "amount": 90 - }, - "result": "avaritia:crystal_matrix_ingot", - "cooling_time": 104 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_melting.json deleted file mode 100644 index 8e77715b..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/crystal_matrix/ingot_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:crystal_matrix_ingot" }, - "result": { - "fluid": "avaritia_integration:molten_crystal_matrix", - "amount": 90 - }, - "temperature": 2500, - "time": 104 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_casting.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_casting.json deleted file mode 100644 index 36a8f32a..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_basin", - "fluid": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 810 - }, - "result": "avaritia:infinity", - "cooling_time": 741 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_melting.json deleted file mode 100644 index b4092bfa..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/block_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:infinity" }, - "result": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 810 - }, - "temperature": 12000, - "time": 741 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_gold.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_gold.json deleted file mode 100644 index 7795ece1..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_gold.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/multi_use/ingot" }, - "cast_consumed": false, - "fluid": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 90 - }, - "result": "avaritia:infinity_ingot", - "cooling_time": 247 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_sand.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_sand.json deleted file mode 100644 index 1c4295bb..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_cast_sand.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/single_use/ingot" }, - "cast_consumed": true, - "fluid": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 90 - }, - "result": "avaritia:infinity_ingot", - "cooling_time": 247 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_melting.json deleted file mode 100644 index 786f9e21..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/ingot_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:infinity_ingot" }, - "result": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 90 - }, - "temperature": 12000, - "time": 247 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_gold.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_gold.json deleted file mode 100644 index 97fe50b5..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_gold.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/multi_use/nugget" }, - "cast_consumed": false, - "fluid": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 10 - }, - "result": "avaritia:infinity_nugget", - "cooling_time": 82 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_sand.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_sand.json deleted file mode 100644 index 544104f6..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_cast_sand.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/single_use/nugget" }, - "cast_consumed": true, - "fluid": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 10 - }, - "result": "avaritia:infinity_nugget", - "cooling_time": 82 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_melting.json deleted file mode 100644 index 8ff97dfa..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/infinity/nugget_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:infinity_nugget" }, - "result": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 10 - }, - "temperature": 12000, - "time": 82 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_casting.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_casting.json deleted file mode 100644 index 8567c4d5..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_basin", - "fluid": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 810 - }, - "result": "avaritia:neutron", - "cooling_time": 589 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_melting.json deleted file mode 100644 index db461c3c..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/block_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:neutron" }, - "result": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 810 - }, - "temperature": 8000, - "time": 589 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_gold.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_gold.json deleted file mode 100644 index beede7bc..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_gold.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/multi_use/ingot" }, - "cast_consumed": false, - "fluid": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 90 - }, - "result": "avaritia:neutron_ingot", - "cooling_time": 196 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_sand.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_sand.json deleted file mode 100644 index 43dfd6f8..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_cast_sand.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/single_use/ingot" }, - "cast_consumed": true, - "fluid": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 90 - }, - "result": "avaritia:neutron_ingot", - "cooling_time": 196 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_melting.json deleted file mode 100644 index d6a8b5a4..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/ingot_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:neutron_ingot" }, - "result": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 90 - }, - "temperature": 8000, - "time": 196 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_gold.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_gold.json deleted file mode 100644 index a49207c4..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_gold.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/multi_use/nugget" }, - "cast_consumed": false, - "fluid": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 10 - }, - "result": "avaritia:neutron_nugget", - "cooling_time": 65 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_sand.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_sand.json deleted file mode 100644 index f9456464..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_cast_sand.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/single_use/nugget" }, - "cast_consumed": true, - "fluid": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 10 - }, - "result": "avaritia:neutron_nugget", - "cooling_time": 65 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_melting.json deleted file mode 100644 index 1e999a3e..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/neutron/nugget_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:neutron_nugget" }, - "result": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 10 - }, - "temperature": 8000, - "time": 65 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_casting.json b/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_casting.json deleted file mode 100644 index 446f8122..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_basin", - "fluid": { - "fluid": "avaritia_integration:molten_star", - "amount": 900 - }, - "result": "avaritia:star_fuel_block", - "cooling_time": 325 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_melting.json deleted file mode 100644 index 7e9e7f38..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/block_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:star_fuel_block" }, - "result": { - "fluid": "avaritia_integration:molten_star", - "amount": 900 - }, - "temperature": 3000, - "time": 325 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_gold.json b/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_gold.json deleted file mode 100644 index 9fe954b9..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_gold.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/multi_use/gem" }, - "cast_consumed": false, - "fluid": { - "fluid": "avaritia_integration:molten_star", - "amount": 90 - }, - "result": "avaritia:star_fuel", - "cooling_time": 108 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_sand.json b/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_sand.json deleted file mode 100644 index 82c430ce..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/gem_cast_sand.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:casting_table", - "cast": { "tag": "tconstruct:casts/single_use/gem" }, - "cast_consumed": true, - "fluid": { - "fluid": "avaritia_integration:molten_star", - "amount": 90 - }, - "result": "avaritia:star_fuel", - "cooling_time": 108 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/ingot_melting.json b/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/ingot_melting.json deleted file mode 100644 index 313569bf..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/common/star_fuel/ingot_melting.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting", - "ingredient": { "item": "avaritia:star_fuel" }, - "result": { - "fluid": "avaritia_integration:molten_star", - "amount": 100 - }, - "temperature": 3000, - "time": 108 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/fuel/molten_blaze.json b/src/main/resources/data/avaritia_integration/recipe/fuel/molten_blaze.json deleted file mode 100644 index 2910f323..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/fuel/molten_blaze.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting_fuel", - "fluid": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 50 - }, - "duration": 300, - "rate": 30, - "temperature": 3000 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/fuel/molten_star.json b/src/main/resources/data/avaritia_integration/recipe/fuel/molten_star.json deleted file mode 100644 index 2b1ea9c2..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/fuel/molten_star.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:melting_fuel", - "fluid": { - "fluid": "avaritia_integration:molten_star", - "amount": 50 - }, - "duration": 1500, - "rate": 150, - "temperature": 15000 -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/block.json b/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/block.json deleted file mode 100644 index 39227ea8..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:blaze_cube_block" - }, - "value": 9, - "needed": 1, - "material": "avaritia_integration:blaze_cube", - "leftover": { - "item": "avaritia:blaze_cube" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/gem.json b/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/gem.json deleted file mode 100644 index d69d722f..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/gem.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:blaze_cube" - }, - "value": 1, - "needed": 1, - "material": "avaritia_integration:blaze_cube" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/material_casting.json b/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/material_casting.json deleted file mode 100644 index 50e31d4d..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/material_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_fluid", - "fluid": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 100 - }, - "temperature": 1500, - "output": "avaritia_integration:blaze_cube" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/melting.json b/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/melting.json deleted file mode 100644 index cba6a7d2..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/blaze_cube/melting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_melting", - "input": "avaritia_integration:blaze_cube", - "temperature": 1500, - "result": { - "fluid": "avaritia_integration:molten_blaze", - "amount": 100 - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/block.json b/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/block.json deleted file mode 100644 index 7f54e38f..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:crystal_matrix" - }, - "value": 9, - "needed": 1, - "material": "avaritia_integration:crystal_matrix", - "leftover": { - "item": "avaritia:crystal_matrix_ingot" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/ingot.json b/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/ingot.json deleted file mode 100644 index a688ceb2..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/ingot.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:crystal_matrix_ingot" - }, - "value": 1, - "needed": 1, - "material": "avaritia_integration:crystal_matrix" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/material_casting.json b/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/material_casting.json deleted file mode 100644 index 6c9e6acb..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/material_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_fluid", - "fluid": { - "fluid": "avaritia_integration:molten_crystal_matrix", - "amount": 90 - }, - "temperature": 2500, - "output": "avaritia_integration:crystal_matrix" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/melting.json b/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/melting.json deleted file mode 100644 index 4f35771d..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/crystal_matrix/melting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_melting", - "input": "avaritia_integration:crystal_matrix", - "temperature": 2500, - "result": { - "fluid": "avaritia_integration:molten_crystal_matrix", - "amount": 90 - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/block.json b/src/main/resources/data/avaritia_integration/recipe/materials/infinity/block.json deleted file mode 100644 index 62fc6890..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:infinity" - }, - "value": 9, - "needed": 1, - "material": "avaritia_integration:infinity", - "leftover": { - "item": "avaritia:infinity_ingot" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/ingot.json b/src/main/resources/data/avaritia_integration/recipe/materials/infinity/ingot.json deleted file mode 100644 index a6763367..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/ingot.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:infinity_ingot" - }, - "value": 1, - "needed": 1, - "material": "avaritia_integration:infinity" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/material_casting.json b/src/main/resources/data/avaritia_integration/recipe/materials/infinity/material_casting.json deleted file mode 100644 index bc48fc76..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/material_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_fluid", - "fluid": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 90 - }, - "temperature": 12000, - "output": "avaritia_integration:infinity" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/melting.json b/src/main/resources/data/avaritia_integration/recipe/materials/infinity/melting.json deleted file mode 100644 index 44958d27..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/melting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_melting", - "input": "avaritia_integration:infinity", - "temperature": 12000, - "result": { - "fluid": "avaritia_integration:molten_infinity", - "amount": 90 - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/nugget.json b/src/main/resources/data/avaritia_integration/recipe/materials/infinity/nugget.json deleted file mode 100644 index 55d7c005..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/infinity/nugget.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:infinity_nugget" - }, - "value": 1, - "needed": 9, - "material": "avaritia_integration:infinity" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/block.json b/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/block.json deleted file mode 100644 index 47784c16..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/block.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:neutron" - }, - "value": 9, - "needed": 1, - "material": "avaritia_integration:neutronium", - "leftover": { - "item": "avaritia:neutron_ingot" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/ingot.json b/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/ingot.json deleted file mode 100644 index 772952f7..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/ingot.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:neutron_ingot" - }, - "value": 1, - "needed": 1, - "material": "avaritia_integration:neutronium" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/material_casting.json b/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/material_casting.json deleted file mode 100644 index afe473dc..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/material_casting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_fluid", - "fluid": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 90 - }, - "temperature": 8000, - "output": "avaritia_integration:neutronium" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/melting.json b/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/melting.json deleted file mode 100644 index 83105230..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/melting.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material_melting", - "input": "avaritia_integration:neutron", - "temperature": 8000, - "result": { - "fluid": "avaritia_integration:molten_neutron", - "amount": 90 - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/nugget.json b/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/nugget.json deleted file mode 100644 index 8177a528..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/nugget.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:neutron_nugget" - }, - "value": 1, - "needed": 9, - "material": "avaritia_integration:neutronium" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/pile.json b/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/pile.json deleted file mode 100644 index 4b654abf..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/materials/neutronium/pile.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:material", - "ingredient": { - "item": "avaritia:neutron_pile" - }, - "value": 1, - "needed": 81, - "material": "avaritia_integration:neutronium" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/recipe/modifiers/crystaluix.json b/src/main/resources/data/avaritia_integration/recipe/modifiers/crystaluix.json deleted file mode 100644 index 4478fa14..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/modifiers/crystaluix.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:modifier", - "inputs": [ - { - "tag": "forge:gems/diamond" - }, - { - "item": "avaritia:crystal_matrix_ingot" - }, - { - "tag": "forge:gems/diamond" - }, - { - "item": "avaritia:diamond_lattice" - }, - { - "item": "avaritia:diamond_lattice" - } - ], - "tools": { - "tag": "tconstruct:modifiable/armor/worn" - }, - "slots": { - "defense": 1 - }, - "allow_crystal": true, - "result": "avaritia_integration:crystaluix" - -} diff --git a/src/main/resources/data/avaritia_integration/recipe/modifiers/star_dash.json b/src/main/resources/data/avaritia_integration/recipe/modifiers/star_dash.json deleted file mode 100644 index 3b6297d0..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/modifiers/star_dash.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:modifier", - "inputs": [ - { - "item": "avaritia:star_fuel" - }, - { - "item": "avaritia:refined_coal" - }, - { - "item": "avaritia:star_fuel" - }, - { - "item": "avaritia:refined_coal" - }, - { - "item": "avaritia:refined_coal" - } - ], - "tools": { - "tag": "tconstruct:modifiable/melee" - }, - "slots": { - "abilities": 1 - }, - "allow_crystal": true, - "result": "avaritia_integration:star_dash" - -} diff --git a/src/main/resources/data/avaritia_integration/recipe/modifiers/superheat.json b/src/main/resources/data/avaritia_integration/recipe/modifiers/superheat.json deleted file mode 100644 index fcb11143..00000000 --- a/src/main/resources/data/avaritia_integration/recipe/modifiers/superheat.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "conditions": [ - { - "modid": "tconstruct", - "type": "forge:mod_loaded" - } - ], - "type": "tconstruct:modifier", - "inputs": [ - { - "tag": "forge:bones" - }, - { - "item": "avaritia:blaze_cube" - }, - { - "tag": "forge:bones" - }, - { - "tag": "forge:rods/blaze" - }, - { - "tag": "forge:rods/blaze" - } - ], - "tools": { - "tag": "tconstruct:modifiable/ranged" - }, - "slots": { - "abilities": 1 - }, - "allow_crystal": true, - "result": "avaritia_integration:superheat" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_blaze.json b/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_blaze.json deleted file mode 100644 index 24cce801..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_blaze.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "block_effects": [ - { - "type": "tconstruct:melt_block", - "min_amount": 90, - "temperature": 3000 - } - ], - "entity_effects": [ - { - "type": "tconstruct:conditional", - "effect": { - "type": "tconstruct:damage", - "damage": 6.0, - "damage_type": { - "melee": "tconstruct:fluid_fire_melee", - "ranged": "tconstruct:fluid_fire_ranged" - } - }, - "target": { - "type": "mantle:inverted", - "inverted_type": "mantle:fire_immune" - } - }, - { - "type": "tconstruct:fire", - "action": "add", - "time": 10 - } - ], - "fluid": { - "amount": 50, - "tag": "tconstruct:molten_blaze" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_crystal_matrix.json b/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_crystal_matrix.json deleted file mode 100644 index 2f61b6d5..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_crystal_matrix.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "block_effects": [ - { - "type": "tconstruct:break_block", - "hardness": 500.0 - } - ], - "fluid": { - "amount": 10, - "tag": "tconstruct:molten_crystal_matrix" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_infinity.json b/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_infinity.json deleted file mode 100644 index cc0aa490..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_infinity.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "entity_effects": [ - { - "type": "tconstruct:conditional", - "effect": { - "type": "tconstruct:damage", - "damage": 40.0, - "damage_type": { - "melee": "avaritia:infinity", - "ranged": "avaritia:infinity" - } - } - } - ], - "fluid": { - "amount": 10, - "tag": "tconstruct:molten_infinity" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_neutron.json b/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_neutron.json deleted file mode 100644 index 5b46db9a..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_neutron.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "block_effects": [ - { - "type": "tconstruct:mob_effect_cloud", - "effects": [ - { - "effect": "minecraft:slowness", - "level": 4, - "time": 120 - } - ] - } - ], - "entity_effects": [ - { - "type": "tconstruct:mob_effect", - "action": "add", - "effect": "minecraft:slowness", - "level": 4, - "time": 120 - } - ], - "fluid": { - "amount": 10, - "tag": "tconstruct:molten_neutron" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_star.json b/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_star.json deleted file mode 100644 index d55193da..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/fluid_effects/molten_star.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "block_effects": [ - { - "type": "tconstruct:explosion", - "block_interaction": "keep", - "damage": { - "each_level": 0 - }, - "knockback": { - "flat": 0.5 - }, - "place_fire": true, - "radius": { - "each_level": 2.0, - "flat": 2.0 - } - } - ], - "entity_effects": [ - { - "type": "tconstruct:fire", - "action": "add", - "time": 20 - } - ], - "fluid": { - "amount": 50, - "tag": "tconstruct:molten_star" - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/blaze_cube.json b/src/main/resources/data/avaritia_integration/tinkering/materials/definition/blaze_cube.json deleted file mode 100644 index d442c8e8..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/blaze_cube.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "craftable": false, - "tier": 4, - "sortOrder": 12, - "hidden": false -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/crystal_matrix.json b/src/main/resources/data/avaritia_integration/tinkering/materials/definition/crystal_matrix.json deleted file mode 100644 index 4f2c3e79..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "craftable": false, - "tier": 4, - "sortOrder": 11, - "hidden": false -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/infinity.json b/src/main/resources/data/avaritia_integration/tinkering/materials/definition/infinity.json deleted file mode 100644 index fba9e4b2..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "craftable": false, - "tier": 4, - "sortOrder": 22, - "hidden": false -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/neutronium.json b/src/main/resources/data/avaritia_integration/tinkering/materials/definition/neutronium.json deleted file mode 100644 index b38dcf0e..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/definition/neutronium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "craftable": false, - "tier": 4, - "sortOrder": 13, - "hidden": false -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/blaze_cube.json b/src/main/resources/data/avaritia_integration/tinkering/materials/stats/blaze_cube.json deleted file mode 100644 index 3118d11f..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/blaze_cube.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "stats": { - "tconstruct:binding": {}, - "tconstruct:handle": { - "durability": -0.15, - "mining_speed": 0.15, - "melee_speed": 0.25, - "melee_damage": 0.15 - }, - "tconstruct:head": { - "durability": 1350, - "mining_speed": 4.5, - "mining_tier": "minecraft:netherite", - "melee_attack": 6 - }, - "tconstruct:limb": { - "durability": 1350, - "draw_speed": 0.15, - "velocity": 0.35, - "accuracy": -0.2 - }, - "tconstruct:grip": { - "durability": -0.15, - "accuracy": -0.1, - "melee_damage": 6 - } - } -} diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/crystal_matrix.json b/src/main/resources/data/avaritia_integration/tinkering/materials/stats/crystal_matrix.json deleted file mode 100644 index f8585dd8..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/crystal_matrix.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "stats": { - "tconstruct:binding": {}, - "tconstruct:handle": { - "durability": 0.2, - "mining_speed": 0.25, - "melee_speed": 0.1, - "melee_damage": -0.1 - }, - "tconstruct:head": { - "durability": 1450, - "mining_speed": 14, - "mining_tier": "minecraft:netherite", - "melee_attack": 3 - }, - "tconstruct:limb": { - "durability": 1450, - "draw_speed": 0.35, - "velocity": 0.15, - "accuracy": -0.15 - }, - "tconstruct:grip": { - "durability": 0.2, - "accuracy": -0.1, - "melee_damage": 3 - } - } -} diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/infinity.json b/src/main/resources/data/avaritia_integration/tinkering/materials/stats/infinity.json deleted file mode 100644 index 5ee9500d..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/infinity.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "stats": { - "tconstruct:binding": {}, - "tconstruct:maille": {}, - "tconstruct:handle": { - "durability": 5, - "mining_speed": 5, - "melee_speed": 5, - "melee_damage": 5 - }, - "tconstruct:head": { - "durability": 9999, - "mining_speed": 511, - "mining_tier": "minecraft:netherite", - "melee_attack": 255 - }, - "tconstruct:limb": { - "durability": 9999, - "draw_speed": 10, - "velocity": 10, - "accuracy": 1 - }, - "tconstruct:grip": { - "durability": 5, - "accuracy": 1, - "melee_damage": 255 - }, - "tconstruct:plating_boots": { - "armor": 3, - "durability": 9998, - "knockback_resistance": 1 - }, - "tconstruct:plating_chestplate": { - "armor": 8, - "durability": 9998, - "knockback_resistance": 1 - }, - "tconstruct:plating_helmet": { - "armor": 3, - "durability": 9998, - "knockback_resistance": 1 - }, - "tconstruct:plating_leggings": { - "armor": 6, - "durability": 9998, - "knockback_resistance": 1 - }, - "tconstruct:plating_shield": { - "durability": 9998, - "knockback_resistance": 1 - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/neutronium.json b/src/main/resources/data/avaritia_integration/tinkering/materials/stats/neutronium.json deleted file mode 100644 index 35c66aff..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/stats/neutronium.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "stats": { - "tconstruct:binding": {}, - "tconstruct:handle": { - "durability": 0.35, - "mining_speed": 0.15, - "melee_speed": 0.15, - "melee_damage": 0.15 - }, - "tconstruct:head": { - "durability": 1900, - "mining_speed": 6, - "mining_tier": "minecraft:netherite", - "melee_attack": 4.5 - }, - "tconstruct:limb": { - "durability": 1900, - "draw_speed": 0.2, - "velocity": 0.2, - "accuracy": 0.05 - }, - "tconstruct:grip": { - "durability": 0.35, - "accuracy": 0.05, - "melee_damage": 4 - } - } -} diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/blaze_cube.json b/src/main/resources/data/avaritia_integration/tinkering/materials/traits/blaze_cube.json deleted file mode 100644 index 9576b286..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/blaze_cube.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "default": [ - { "name": "avaritia_integration:blaze_crown"} - ] -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/crystal_matrix.json b/src/main/resources/data/avaritia_integration/tinkering/materials/traits/crystal_matrix.json deleted file mode 100644 index 7cb58c92..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/crystal_matrix.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "default": [ - { "name": "avaritia_integration:crystalshine"} - ] -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/infinity.json b/src/main/resources/data/avaritia_integration/tinkering/materials/traits/infinity.json deleted file mode 100644 index d6356776..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/infinity.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "perStat": { - "tconstruct:ranged": [ - { - "name": "avaritia_integration:infinitum" - }, - { - "name": "avaritia_integration:vault_split" - } - ], - "tconstruct:melee_harvest": [ - { - "name": "avaritia_integration:infinitum" - }, - { - "name": "avaritia_integration:rule_over" - } - ], - "tconstruct:armor": [ - { - "name": "avaritia_integration:infinitum" - }, - { - "name": "avaritia_integration:eternity" - } - ], - "tconstruct:plating_shield": [ - { - "name": "avaritia_integration:infinitum" - }, - { - "name": "avaritia_integration:eternity" - } - ] - } -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/neutronium.json b/src/main/resources/data/avaritia_integration/tinkering/materials/traits/neutronium.json deleted file mode 100644 index 92b0ef2f..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/materials/traits/neutronium.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "default": [ - { "name": "avaritia_integration:condensing"} - ] -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/modifiers/condensing.json b/src/main/resources/data/avaritia_integration/tinkering/modifiers/condensing.json deleted file mode 100644 index 5f2cb474..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/modifiers/condensing.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "level_display": "tconstruct:default", - "modules": [ - { - "type": "avaritia_integration:condensing" - }, - { - "type": "tconstruct:attribute", - "attribute": "forge:entity_gravity", - "each_level": 0.05, - "operation": "multiply_total", - "slots": [ - "mainhand", - "offhand" - ], - "tooltip_style": "percent" - } - ], - "tooltip_display": "always" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/modifiers/eternity.json b/src/main/resources/data/avaritia_integration/tinkering/modifiers/eternity.json deleted file mode 100644 index 71160458..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/modifiers/eternity.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "level_display": "tconstruct:no_levels", - "modules": [ - { - "type": "tconstruct:armor_level", - "allow_broken": false, - "held_tag": "tconstruct:modifiable/armor/held", - "key": "avaritia_integration:eternity" - }, - { - "type": "tconstruct:max_armor_attribute", - "allow_broken": false, - "attribute": "tconstruct:generic.bad_effect_duration_multiplier", - "each_level": -1, - "held_tag": "tconstruct:modifiable/held", - "operation": "multiply_base" - } - ], - "tooltip_display": "always" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/modifiers/infinitum.json b/src/main/resources/data/avaritia_integration/tinkering/modifiers/infinitum.json deleted file mode 100644 index 5e2b7c06..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/modifiers/infinitum.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "level_display": "tconstruct:no_levels", - "modules": [ - { - "type": "avaritia_integration:infinitum" - }, - { - "type": "tconstruct:rarity", - "rarity": "cosmic" - }, - { - "type": "tconstruct:volatile_flag", - "flag": "tconstruct:indestructible" - }, - { - "type": "tconstruct:reduce_tool_damage", - "flat": 1.0 - }, - { - "type": "tconstruct:modifier_slot", - "each_level": 1, - "name": "abilities" - } - ], - "tooltip_display": "always" -} diff --git a/src/main/resources/data/avaritia_integration/tinkering/modifiers/rule_over.json b/src/main/resources/data/avaritia_integration/tinkering/modifiers/rule_over.json deleted file mode 100644 index c889025c..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/modifiers/rule_over.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "level_display": "tconstruct:no_levels", - "modules": [ - { - "type": "avaritia_integration:rule_over" - }, - { - "type": "tconstruct:constant_enchantment", - "level": 10, - "name": "minecraft:fortune", - "tool": { - "type": "mantle:tag", - "tag": "tconstruct:modifiable/harvest" - } - }, - { - "type": "tconstruct:weapon_looting", - "level": 10, - "tool": { - "type": "mantle:or", - "predicates": [ - { - "type": "mantle:set", - "items": [ - "minecraft:air" - ] - }, - { - "type": "mantle:tag", - "tag": "tconstruct:modifiable/melee" - } - ] - } - } - ], - "tooltip_display": "always" -} \ No newline at end of file diff --git a/src/main/resources/data/avaritia_integration/tinkering/modifiers/vault_split.json b/src/main/resources/data/avaritia_integration/tinkering/modifiers/vault_split.json deleted file mode 100644 index d8a60666..00000000 --- a/src/main/resources/data/avaritia_integration/tinkering/modifiers/vault_split.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "level_display": "tconstruct:no_levels", - "modules": [ - { - "type": "avaritia_integration:vault_split" - }, - { - "type": "tconstruct:stat_boost", - "flat": 6.5, - "operation": "add", - "stat": "tconstruct:projectile_damage" - } - ], - "priority": 45, - "tooltip_display": "always" -} \ No newline at end of file diff --git a/src/main/resources/data/botania/tags/block/generating_special_flowers.json b/src/main/resources/data/botania/tags/block/generating_special_flowers.json deleted file mode 100644 index 55f74bcd..00000000 --- a/src/main/resources/data/botania/tags/block/generating_special_flowers.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:asgard_dandelion", - "avaritia_integration:soarleander" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/botania/tags/block/special_floating_flowers.json b/src/main/resources/data/botania/tags/block/special_floating_flowers.json deleted file mode 100644 index d700a1fd..00000000 --- a/src/main/resources/data/botania/tags/block/special_floating_flowers.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:asgard_dandelion_floating", - "avaritia_integration:soarleander_floating" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/botania/tags/item/generating_special_flowers.json b/src/main/resources/data/botania/tags/item/generating_special_flowers.json deleted file mode 100644 index 55f74bcd..00000000 --- a/src/main/resources/data/botania/tags/item/generating_special_flowers.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:asgard_dandelion", - "avaritia_integration:soarleander" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/botania/tags/item/special_floating_flowers.json b/src/main/resources/data/botania/tags/item/special_floating_flowers.json deleted file mode 100644 index d700a1fd..00000000 --- a/src/main/resources/data/botania/tags/item/special_floating_flowers.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:asgard_dandelion_floating", - "avaritia_integration:soarleander_floating" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/blocks/storage_blocks.json b/src/main/resources/data/c/tags/blocks/storage_blocks.json deleted file mode 100644 index c2cb6513..00000000 --- a/src/main/resources/data/c/tags/blocks/storage_blocks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "#c:storage_blocks/blaze_cube", - "#c:storage_blocks/crystal_matrix", - "#c:storage_blocks/infinity", - "#c:storage_blocks/neutron", - "#c:storage_blocks/star_fuel" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/blocks/storage_blocks/blaze_cube.json b/src/main/resources/data/c/tags/blocks/storage_blocks/blaze_cube.json deleted file mode 100644 index 6c2d8627..00000000 --- a/src/main/resources/data/c/tags/blocks/storage_blocks/blaze_cube.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:blaze_cube_block" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/blocks/storage_blocks/crystal_matrix.json b/src/main/resources/data/c/tags/blocks/storage_blocks/crystal_matrix.json deleted file mode 100644 index 31d921cc..00000000 --- a/src/main/resources/data/c/tags/blocks/storage_blocks/crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:crystal_matrix" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/blocks/storage_blocks/infinity.json b/src/main/resources/data/c/tags/blocks/storage_blocks/infinity.json deleted file mode 100644 index dee3f5f9..00000000 --- a/src/main/resources/data/c/tags/blocks/storage_blocks/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:infinity" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/blocks/storage_blocks/neutron.json b/src/main/resources/data/c/tags/blocks/storage_blocks/neutron.json deleted file mode 100644 index f07c026f..00000000 --- a/src/main/resources/data/c/tags/blocks/storage_blocks/neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:neutron" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/blocks/storage_blocks/star_fuel.json b/src/main/resources/data/c/tags/blocks/storage_blocks/star_fuel.json deleted file mode 100644 index 286f83b1..00000000 --- a/src/main/resources/data/c/tags/blocks/storage_blocks/star_fuel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:star_fuel_block" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/ingots.json b/src/main/resources/data/c/tags/items/ingots.json deleted file mode 100644 index 8d378d27..00000000 --- a/src/main/resources/data/c/tags/items/ingots.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "#c:ingots/crystal_matrix", - "#c:ingots/infinity", - "#c:ingots/neutron" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/ingots/crystal_matrix.json b/src/main/resources/data/c/tags/items/ingots/crystal_matrix.json deleted file mode 100644 index e4c05ae7..00000000 --- a/src/main/resources/data/c/tags/items/ingots/crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:crystal_matrix_ingot" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/ingots/infinity.json b/src/main/resources/data/c/tags/items/ingots/infinity.json deleted file mode 100644 index e3d3e165..00000000 --- a/src/main/resources/data/c/tags/items/ingots/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:infinity_ingot" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/ingots/neutron.json b/src/main/resources/data/c/tags/items/ingots/neutron.json deleted file mode 100644 index 3159c250..00000000 --- a/src/main/resources/data/c/tags/items/ingots/neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:neutron_ingot" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/nuggets.json b/src/main/resources/data/c/tags/items/nuggets.json deleted file mode 100644 index 9bb54ce1..00000000 --- a/src/main/resources/data/c/tags/items/nuggets.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "#c:nuggets/infinity", - "#c:nuggets/neutron" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/nuggets/infinity.json b/src/main/resources/data/c/tags/items/nuggets/infinity.json deleted file mode 100644 index 45f53609..00000000 --- a/src/main/resources/data/c/tags/items/nuggets/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:infinity_nugget" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/nuggets/neutron.json b/src/main/resources/data/c/tags/items/nuggets/neutron.json deleted file mode 100644 index 52f741c8..00000000 --- a/src/main/resources/data/c/tags/items/nuggets/neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:neutron_nugget" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/storage_blocks.json b/src/main/resources/data/c/tags/items/storage_blocks.json deleted file mode 100644 index c2cb6513..00000000 --- a/src/main/resources/data/c/tags/items/storage_blocks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "#c:storage_blocks/blaze_cube", - "#c:storage_blocks/crystal_matrix", - "#c:storage_blocks/infinity", - "#c:storage_blocks/neutron", - "#c:storage_blocks/star_fuel" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/storage_blocks/blaze_cube.json b/src/main/resources/data/c/tags/items/storage_blocks/blaze_cube.json deleted file mode 100644 index 6c2d8627..00000000 --- a/src/main/resources/data/c/tags/items/storage_blocks/blaze_cube.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:blaze_cube_block" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/storage_blocks/crystal_matrix.json b/src/main/resources/data/c/tags/items/storage_blocks/crystal_matrix.json deleted file mode 100644 index 31d921cc..00000000 --- a/src/main/resources/data/c/tags/items/storage_blocks/crystal_matrix.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:crystal_matrix" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/storage_blocks/infinity.json b/src/main/resources/data/c/tags/items/storage_blocks/infinity.json deleted file mode 100644 index dee3f5f9..00000000 --- a/src/main/resources/data/c/tags/items/storage_blocks/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:infinity" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/storage_blocks/neutron.json b/src/main/resources/data/c/tags/items/storage_blocks/neutron.json deleted file mode 100644 index f07c026f..00000000 --- a/src/main/resources/data/c/tags/items/storage_blocks/neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:neutron" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/storage_blocks/star_fuel.json b/src/main/resources/data/c/tags/items/storage_blocks/star_fuel.json deleted file mode 100644 index 286f83b1..00000000 --- a/src/main/resources/data/c/tags/items/storage_blocks/star_fuel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia:star_fuel_block" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/enderio/data_maps/item/grinding_ball.json b/src/main/resources/data/enderio/data_maps/item/grinding_ball.json deleted file mode 100644 index f4a14f35..00000000 --- a/src/main/resources/data/enderio/data_maps/item/grinding_ball.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "values": { - "avaritia_integration:neutron_grinding_ball": { - "BonusMultiplier": 1.0, - "Durability": 40000, - "OutputMultiplier": 5.0, - "PowerUse": 0.1 - }, - - "avaritia_integration:infinity_grinding_ball": { - "BonusMultiplier": 5.0, - "Durability": 2147483647, - "OutputMultiplier": 5.0, - "PowerUse": 0.01 - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/mekanism/recipe/chemical_conversion/infinity/from_dust.json b/src/main/resources/data/mekanism/recipe/chemical_conversion/infinity/from_dust.json deleted file mode 100644 index 93a6bf0c..00000000 --- a/src/main/resources/data/mekanism/recipe/chemical_conversion/infinity/from_dust.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:chemical_conversion", - "input": { - "ingredient": { - "tag": "c:dusts/infinity" - } - }, - "output": { - "amount": 10, - "infuse_type": "avaritia_integration:infinity" - } -} diff --git a/src/main/resources/data/mekanism/recipe/chemical_conversion/infinity/from_enriched.json b/src/main/resources/data/mekanism/recipe/chemical_conversion/infinity/from_enriched.json deleted file mode 100644 index 180cc0d4..00000000 --- a/src/main/resources/data/mekanism/recipe/chemical_conversion/infinity/from_enriched.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:chemical_conversion", - "input": { - "ingredient": { - "tag": "mekanism:enriched/infinity" - } - }, - "output": { - "amount": 80, - "infuse_type": "avaritia_integration:infinity" - } -} diff --git a/src/main/resources/data/mekanism/recipe/chemical_conversion/neutron/from_dust.json b/src/main/resources/data/mekanism/recipe/chemical_conversion/neutron/from_dust.json deleted file mode 100644 index 823463ae..00000000 --- a/src/main/resources/data/mekanism/recipe/chemical_conversion/neutron/from_dust.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:chemical_conversion", - "input": { - "ingredient": { - "tag": "c:dusts/neutronium" - } - }, - "output": { - "amount": 10, - "infuse_type": "avaritia_integration:neutron" - } -} diff --git a/src/main/resources/data/mekanism/recipe/chemical_conversion/neutron/from_enriched.json b/src/main/resources/data/mekanism/recipe/chemical_conversion/neutron/from_enriched.json deleted file mode 100644 index 872a3920..00000000 --- a/src/main/resources/data/mekanism/recipe/chemical_conversion/neutron/from_enriched.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:chemical_conversion", - "input": { - "ingredient": { - "tag": "mekanism:enriched/neutron" - } - }, - "output": { - "amount": 80, - "infuse_type": "avaritia_integration:neutron" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/ingot_from_plutonium.json b/src/main/resources/data/mekanism/recipe/collector/ingot_from_plutonium.json deleted file mode 100644 index b8b7ad89..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/ingot_from_plutonium.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 1000, - "chemical": "mekanism:plutonium" - }, - "output": { - "id": "avaritia:neutron_ingot" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/ingot_from_polonium.json b/src/main/resources/data/mekanism/recipe/collector/ingot_from_polonium.json deleted file mode 100644 index 98b70a11..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/ingot_from_polonium.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 1000, - "chemical": "mekanism:polonium" - }, - "output": { - "id": "avaritia:neutron_ingot" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/neutron_block.json b/src/main/resources/data/mekanism/recipe/collector/neutron_block.json deleted file mode 100644 index 57da0c34..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/neutron_block.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 1, - "chemical": "mekanism:antimatter" - }, - "output": { - "id": "avaritia:neutron" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/neutron_dust.json b/src/main/resources/data/mekanism/recipe/collector/neutron_dust.json deleted file mode 100644 index c01d87ac..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/neutron_dust.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 2000, - "chemical": "mekanism:nuclear_waste" - }, - "output": { - "id": "avaritia_integration:neutron_dust" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/neutron_nugget.json b/src/main/resources/data/mekanism/recipe/collector/neutron_nugget.json deleted file mode 100644 index 80a201f0..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/neutron_nugget.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 5000, - "chemical": "mekanism:spent_nuclear_waste" - }, - "output": { - "id": "avaritia:neutron_nugget" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/pile_from_deuterium.json b/src/main/resources/data/mekanism/recipe/collector/pile_from_deuterium.json deleted file mode 100644 index bf957cb2..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/pile_from_deuterium.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 10000, - "chemical": "mekanismgenerators:deuterium" - }, - "output": { - "id": "avaritia:neutron_pile" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/pile_from_fusion_fuel.json b/src/main/resources/data/mekanism/recipe/collector/pile_from_fusion_fuel.json deleted file mode 100644 index f4e9d0bb..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/pile_from_fusion_fuel.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 10000, - "chemical": "mekanismgenerators:fusion_fuel" - }, - "output": { - "count": 2, - "id": "avaritia:neutron_pile" - } -} diff --git a/src/main/resources/data/mekanism/recipe/collector/pile_from_tritium.json b/src/main/resources/data/mekanism/recipe/collector/pile_from_tritium.json deleted file mode 100644 index e3d45980..00000000 --- a/src/main/resources/data/mekanism/recipe/collector/pile_from_tritium.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia_integration:collector", - "input": { - "amount": 10000, - "chemical": "mekanismgenerators:tritium" - }, - "output": { - "id": "avaritia:neutron_pile" - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/aluminum.json b/src/main/resources/data/mekanism/recipe/compresser/aluminum.json deleted file mode 100644 index 322fa511..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/aluminum.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "neoforge:not", - "value": { - "type": "neoforge:tag_empty", - "tag": "c:ingots/aluminum" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/aluminum", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:aluminum" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/amethyst_shard.json b/src/main/resources/data/mekanism/recipe/compresser/amethyst_shard.json deleted file mode 100644 index 4a570645..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/amethyst_shard.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:gems/amethyst", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:amethyst_shard" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/blue_ice.json b/src/main/resources/data/mekanism/recipe/compresser/blue_ice.json deleted file mode 100644 index 14781954..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/blue_ice.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "minecraft:blue_ice", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:blue_ice" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/bronze.json b/src/main/resources/data/mekanism/recipe/compresser/bronze.json deleted file mode 100644 index 1a0a2e81..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/bronze.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/bronze" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/bronze", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:bronze" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/coal.json b/src/main/resources/data/mekanism/recipe/compresser/coal.json deleted file mode 100644 index d1b965d2..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/coal.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "minecraft:coal", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:coal" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/copper.json b/src/main/resources/data/mekanism/recipe/compresser/copper.json deleted file mode 100644 index 9383bace..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/copper.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/copper", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:copper" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/diamond.json b/src/main/resources/data/mekanism/recipe/compresser/diamond.json deleted file mode 100644 index 57463bc6..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/diamond.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:gems/diamond", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:diamond" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/electrum.json b/src/main/resources/data/mekanism/recipe/compresser/electrum.json deleted file mode 100644 index 01b6a904..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/electrum.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/electrum" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/electrum", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:electrum" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/emerald.json b/src/main/resources/data/mekanism/recipe/compresser/emerald.json deleted file mode 100644 index 5d1cb503..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/emerald.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:gems/emerald", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:emerald" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/glowstone.json b/src/main/resources/data/mekanism/recipe/compresser/glowstone.json deleted file mode 100644 index 572244dd..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/glowstone.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:dusts/glowstone", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:glowstone" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/gold.json b/src/main/resources/data/mekanism/recipe/compresser/gold.json deleted file mode 100644 index 83aae837..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/gold.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/gold", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:gold" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/invar.json b/src/main/resources/data/mekanism/recipe/compresser/invar.json deleted file mode 100644 index 8e7eef34..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/invar.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/invar" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/invar", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:invar" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/iron.json b/src/main/resources/data/mekanism/recipe/compresser/iron.json deleted file mode 100644 index 666bbc9e..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/iron.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "c:ingots/iron", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:iron" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/lapis_lazuli.json b/src/main/resources/data/mekanism/recipe/compresser/lapis_lazuli.json deleted file mode 100644 index db197774..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/lapis_lazuli.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:gems/lapis", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:lapis_lazuli" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/lead.json b/src/main/resources/data/mekanism/recipe/compresser/lead.json deleted file mode 100644 index 2ab6413c..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/lead.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/lead" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/lead", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:lead" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/netherite.json b/src/main/resources/data/mekanism/recipe/compresser/netherite.json deleted file mode 100644 index ebbe53fe..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/netherite.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/netherite", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:netherite" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/nickel.json b/src/main/resources/data/mekanism/recipe/compresser/nickel.json deleted file mode 100644 index dc22aab9..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/nickel.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/nickel" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/nickel", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:nickel" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/obsidian.json b/src/main/resources/data/mekanism/recipe/compresser/obsidian.json deleted file mode 100644 index d27610e8..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/obsidian.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:obsidian", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:obsidian" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/osmium.json b/src/main/resources/data/mekanism/recipe/compresser/osmium.json deleted file mode 100644 index 9bc55b65..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/osmium.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/osmium" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/osmium", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:osmium" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/platinum.json b/src/main/resources/data/mekanism/recipe/compresser/platinum.json deleted file mode 100644 index 7adbe10f..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/platinum.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/platinum" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/platinum", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:platinum" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/quartz.json b/src/main/resources/data/mekanism/recipe/compresser/quartz.json deleted file mode 100644 index 2eb6d171..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/quartz.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:gems/quartz", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:quartz" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/redstone.json b/src/main/resources/data/mekanism/recipe/compresser/redstone.json deleted file mode 100644 index e2ef42fa..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/redstone.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:dusts/redstone", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:redstone" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/refined_obsidian.json b/src/main/resources/data/mekanism/recipe/compresser/refined_obsidian.json deleted file mode 100644 index 3b270a60..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/refined_obsidian.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/refined_obsidian" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/refined_obsidian", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:refined_obsidian" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/silver.json b/src/main/resources/data/mekanism/recipe/compresser/silver.json deleted file mode 100644 index 845af59e..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/silver.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/silver" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/silver", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:silver" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/steel.json b/src/main/resources/data/mekanism/recipe/compresser/steel.json deleted file mode 100644 index 3b86b09a..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/steel.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/steel" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/steel", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:steel" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/tin.json b/src/main/resources/data/mekanism/recipe/compresser/tin.json deleted file mode 100644 index f8aab776..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/tin.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/tin" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/tin", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:tin" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/compresser/uranium.json b/src/main/resources/data/mekanism/recipe/compresser/uranium.json deleted file mode 100644 index a4f2777d..00000000 --- a/src/main/resources/data/mekanism/recipe/compresser/uranium.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "conditions": [ - { - "type": "c:not", - "value": { - "type": "c:tag_empty", - "tag": "c:ingots/uranium" - } - } - ], - "type": "avaritia_integration:compressor", - "input": { - "ingredient": "#c:ingots/uranium", - "count": 1000 - }, - "output": { - "id": "avaritia:singularity", - "components": { - "avaritia:singularity_id": "avaritia:uranium" - } - } -} diff --git a/src/main/resources/data/mekanism/recipe/control_circuit/infinity.json b/src/main/resources/data/mekanism/recipe/control_circuit/infinity.json deleted file mode 100644 index 8dcc7f19..00000000 --- a/src/main/resources/data/mekanism/recipe/control_circuit/infinity.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia:extreme_smithing", - "addition": [ - { - "tag": "mekanism:alloys/infinity" - }, - { - "item": "avaritia:enhancement_core" - }, - { - "item": "avaritia:infinity_catalyst" - } - ], - "base": { - "item": "avaritia_integration:neutron_control_circuit" - }, - "result": { - "id": "avaritia_integration:infinity_control_circuit" - }, - "template": { - "item": "avaritia:upgrade_smithing_template" - } -} diff --git a/src/main/resources/data/mekanism/recipe/control_circuit/neutron.json b/src/main/resources/data/mekanism/recipe/control_circuit/neutron.json deleted file mode 100644 index f25c8d0c..00000000 --- a/src/main/resources/data/mekanism/recipe/control_circuit/neutron.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia:shaped_table", - "category": "misc", - "key": { - "B": { - "tag": "c:circuits/basic" - }, - "D": { - "tag": "c:circuits/advanced" - }, - "E": { - "tag": "c:circuits/elite" - }, - "U": { - "tag": "c:circuits/ultimate" - }, - "Z": { - "tag": "mekanism:alloys/basic" - }, - "Y": { - "tag": "mekanism:alloys/infused" - }, - "X": { - "tag": "mekanism:alloys/reinforced" - }, - "W": { - "tag": "mekanism:alloys/atomic" - }, - "C": { - "item": "avaritia:neutron_gear" - }, - "A": { - "tag": "mekanism:alloys/neutron" - } - }, - "pattern": [ - " ", - " AAAAAAA ", - " ABBBDDA ", - " ABWWXDA ", - " AUZCXDA ", - " AUZYYEA ", - " AUUEEEA ", - " AAAAAAA ", - " " - ], - "result": { - "count": 4, - "id": "avaritia_integration:neutron_control_circuit" - }, - "show_notification": true, - "tier": 4 -} diff --git a/src/main/resources/data/mekanism/recipe/enriching/enriched/infinity.json b/src/main/resources/data/mekanism/recipe/enriching/enriched/infinity.json deleted file mode 100644 index f0b19745..00000000 --- a/src/main/resources/data/mekanism/recipe/enriching/enriched/infinity.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:enriching", - "input": { - "ingredient": { - "tag": "c:dusts/infinity" - } - }, - "output": { - "id": "avaritia_integration:enriched_infinity" - } -} diff --git a/src/main/resources/data/mekanism/recipe/enriching/enriched/neutron.json b/src/main/resources/data/mekanism/recipe/enriching/enriched/neutron.json deleted file mode 100644 index d27aa40d..00000000 --- a/src/main/resources/data/mekanism/recipe/enriching/enriched/neutron.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:enriching", - "input": { - "ingredient": { - "tag": "c:dusts/neutronium" - } - }, - "output": { - "id": "avaritia_integration:enriched_neutron" - } -} diff --git a/src/main/resources/data/mekanism/recipe/enriching/neutron_ingot.json b/src/main/resources/data/mekanism/recipe/enriching/neutron_ingot.json deleted file mode 100644 index e6483f4e..00000000 --- a/src/main/resources/data/mekanism/recipe/enriching/neutron_ingot.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:enriching", - "input": { - "amount": 4, - "ingredient": { - "item": "avaritia_integration:neutron_dust" - } - }, - "output": { - "id": "avaritia:neutron_ingot" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/advanced/collecting.json b/src/main/resources/data/mekanism/recipe/factory/advanced/collecting.json deleted file mode 100644 index 370d2f4f..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/advanced/collecting.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/infused" - }, - "C": { - "tag": "c:circuits/advanced" - }, - "I": { - "tag": "c:ingots/osmium" - }, - "P": { - "item": "avaritia_integration:basic_neutron_collecting_factory" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:advanced_neutron_collecting_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/advanced/singularity_compressing.json b/src/main/resources/data/mekanism/recipe/factory/advanced/singularity_compressing.json deleted file mode 100644 index f9103c9f..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/advanced/singularity_compressing.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/infused" - }, - "C": { - "tag": "c:circuits/advanced" - }, - "I": { - "tag": "c:ingots/osmium" - }, - "P": { - "item": "avaritia_integration:basic_singularity_compressing_factory" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:advanced_singularity_compressing_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/basic/collecting.json b/src/main/resources/data/mekanism/recipe/factory/basic/collecting.json deleted file mode 100644 index d28d5abb..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/basic/collecting.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/basic" - }, - "C": { - "tag": "c:circuits/basic" - }, - "I": { - "tag": "c:ingots/iron" - }, - "P": { - "item": "avaritia_integration:neutron_collector" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:basic_neutron_collecting_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/basic/singularity_compressing.json b/src/main/resources/data/mekanism/recipe/factory/basic/singularity_compressing.json deleted file mode 100644 index a6646747..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/basic/singularity_compressing.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/basic" - }, - "C": { - "tag": "c:circuits/basic" - }, - "I": { - "tag": "c:ingots/iron" - }, - "P": { - "item": "avaritia_integration:singularity_compressor" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:basic_singularity_compressing_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/elite/collecting.json b/src/main/resources/data/mekanism/recipe/factory/elite/collecting.json deleted file mode 100644 index 62415a02..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/elite/collecting.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/reinforced" - }, - "C": { - "tag": "c:circuits/elite" - }, - "I": { - "tag": "c:ingots/gold" - }, - "P": { - "item": "avaritia_integration:advanced_neutron_collecting_factory" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:elite_neutron_collecting_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/elite/singularity_compressing.json b/src/main/resources/data/mekanism/recipe/factory/elite/singularity_compressing.json deleted file mode 100644 index ebd4043b..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/elite/singularity_compressing.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/reinforced" - }, - "C": { - "tag": "c:circuits/elite" - }, - "I": { - "tag": "c:ingots/gold" - }, - "P": { - "item": "avaritia_integration:advanced_singularity_compressing_factory" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:elite_singularity_compressing_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/ultimate/collecting.json b/src/main/resources/data/mekanism/recipe/factory/ultimate/collecting.json deleted file mode 100644 index ca534339..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/ultimate/collecting.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/atomic" - }, - "C": { - "tag": "c:circuits/ultimate" - }, - "I": { - "tag": "c:gems/diamond" - }, - "P": { - "item": "avaritia_integration:elite_neutron_collecting_factory" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:ultimate_neutron_collecting_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/factory/ultimate/singularity_compressing.json b/src/main/resources/data/mekanism/recipe/factory/ultimate/singularity_compressing.json deleted file mode 100644 index 44025dcc..00000000 --- a/src/main/resources/data/mekanism/recipe/factory/ultimate/singularity_compressing.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:mek_data", - "key": { - "A": { - "tag": "mekanism:alloys/atomic" - }, - "C": { - "tag": "c:circuits/ultimate" - }, - "I": { - "tag": "c:gems/diamond" - }, - "P": { - "item": "avaritia_integration:elite_singularity_compressing_factory" - } - }, - "pattern": [ - "ACA", - "IPI", - "ACA" - ], - "result": { - "id": "avaritia_integration:ultimate_singularity_compressing_factory" - } -} diff --git a/src/main/resources/data/mekanism/recipe/infinity_energy_tablet.json b/src/main/resources/data/mekanism/recipe/infinity_energy_tablet.json deleted file mode 100644 index 87c04422..00000000 --- a/src/main/resources/data/mekanism/recipe/infinity_energy_tablet.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia:extreme_smithing", - "addition": [ - { - "item": "avaritia:infinity_nugget" - }, - { - "item": "avaritia:enhancement_core" - }, - { - "item": "avaritia:infinity_catalyst" - } - ], - "base": { - "item": "avaritia_integration:neutron_energy_tablet" - }, - "result": { - "id": "avaritia_integration:infinity_energy_tablet" - }, - "template": { - "item": "avaritia:upgrade_smithing_template" - } -} diff --git a/src/main/resources/data/mekanism/recipe/metallurgic_infusing/alloy/infinity.json b/src/main/resources/data/mekanism/recipe/metallurgic_infusing/alloy/infinity.json deleted file mode 100644 index 3e140311..00000000 --- a/src/main/resources/data/mekanism/recipe/metallurgic_infusing/alloy/infinity.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:metallurgic_infusing", - "chemicalInput": { - "amount": 40, - "tag": "mekanism:infinity" - }, - "itemInput": { - "ingredient": { - "tag": "mekanism:alloys/neutron" - } - }, - "output": { - "id": "avaritia_integration:alloy_infinity" - } -} diff --git a/src/main/resources/data/mekanism/recipe/metallurgic_infusing/alloy/neutron.json b/src/main/resources/data/mekanism/recipe/metallurgic_infusing/alloy/neutron.json deleted file mode 100644 index fcb4dbe9..00000000 --- a/src/main/resources/data/mekanism/recipe/metallurgic_infusing/alloy/neutron.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "mekanism:metallurgic_infusing", - "chemicalInput": { - "amount": 80, - "tag": "mekanism:neutron" - }, - "itemInput": { - "ingredient": { - "tag": "mekanism:alloys/atomic" - } - }, - "output": { - "id": "avaritia_integration:alloy_neutron" - } -} diff --git a/src/main/resources/data/mekanism/recipe/neutron_collector.json b/src/main/resources/data/mekanism/recipe/neutron_collector.json deleted file mode 100644 index 17174d5d..00000000 --- a/src/main/resources/data/mekanism/recipe/neutron_collector.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "minecraft:crafting_shaped", - "key": { - "B": { - "tag": "c:circuits/ultimate" - }, - "C": { - "item": "avaritia:neutron_collector" - }, - "R": { - "tag": "mekanism:alloys/atomic" - }, - "X": { - "item": "mekanism:steel_casing" - }, - "D": { - "tag": "c:ingots/neutron" - } - }, - "pattern": [ - "RCR", - "BXB", - "RDR" - ], - "result": { - "id": "avaritia_integration:neutron_collector" - } -} diff --git a/src/main/resources/data/mekanism/recipe/neutron_energy_tablet.json b/src/main/resources/data/mekanism/recipe/neutron_energy_tablet.json deleted file mode 100644 index 66af5762..00000000 --- a/src/main/resources/data/mekanism/recipe/neutron_energy_tablet.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "avaritia:shaped_table", - "category": "misc", - "key": { - "N": { - "tag": "c:ingots/neutronium" - }, - "T": { - "item": "mekanism:energy_tablet" - }, - "G": { - "tag": "c:ingots/gold" - }, - "A": { - "tag": "mekanism:alloys/atomic" - } - }, - "pattern": [ - "NNNNTNNNN", - "N GTG N", - "N GTG N", - "A GTG A", - "A GTG A", - "A GTG A", - "N GTG N", - "N GTG N", - "NNNNTNNNN" - ], - "result": { - "id": "avaritia_integration:neutron_energy_tablet" - }, - "show_notification": true, - "tier": 4 -} diff --git a/src/main/resources/data/mekanism/recipe/singularity_compressor.json b/src/main/resources/data/mekanism/recipe/singularity_compressor.json deleted file mode 100644 index bb5a69b1..00000000 --- a/src/main/resources/data/mekanism/recipe/singularity_compressor.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanism" - } - ], - "type": "minecraft:crafting_shaped", - "key": { - "B": { - "tag": "c:circuits/ultimate" - }, - "C": { - "item": "avaritia:neutron_compressor" - }, - "R": { - "tag": "mekanism:alloys/atomic" - }, - "X": { - "item": "mekanism:steel_casing" - }, - "D": { - "tag": "avaritia:singularity" - } - }, - "pattern": [ - "RCR", - "BXB", - "RDR" - ], - "result": { - "id": "avaritia_integration:singularity_compressor" - } -} diff --git a/src/main/resources/data/mekanism/tags/item/alloys.json b/src/main/resources/data/mekanism/tags/item/alloys.json deleted file mode 100644 index 4a8e8b44..00000000 --- a/src/main/resources/data/mekanism/tags/item/alloys.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "#mekanism:alloys/infinity", - "#mekanism:alloys/neutron" - ] -} diff --git a/src/main/resources/data/mekanism/tags/item/alloys/infinity.json b/src/main/resources/data/mekanism/tags/item/alloys/infinity.json deleted file mode 100644 index eee349ec..00000000 --- a/src/main/resources/data/mekanism/tags/item/alloys/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:alloy_infinity" - ] -} diff --git a/src/main/resources/data/mekanism/tags/item/alloys/neutron.json b/src/main/resources/data/mekanism/tags/item/alloys/neutron.json deleted file mode 100644 index cd848cde..00000000 --- a/src/main/resources/data/mekanism/tags/item/alloys/neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:alloy_neutron" - ] -} diff --git a/src/main/resources/data/mekanism/tags/item/enriched.json b/src/main/resources/data/mekanism/tags/item/enriched.json deleted file mode 100644 index 37b99d9e..00000000 --- a/src/main/resources/data/mekanism/tags/item/enriched.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "#mekanism:enriched/infinity", - "#mekanism:enriched/neutron" - ] -} diff --git a/src/main/resources/data/mekanism/tags/item/enriched/infinity.json b/src/main/resources/data/mekanism/tags/item/enriched/infinity.json deleted file mode 100644 index acd85280..00000000 --- a/src/main/resources/data/mekanism/tags/item/enriched/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:enriched_infinity" - ] -} diff --git a/src/main/resources/data/mekanism/tags/item/enriched/neutron.json b/src/main/resources/data/mekanism/tags/item/enriched/neutron.json deleted file mode 100644 index c8ea20ac..00000000 --- a/src/main/resources/data/mekanism/tags/item/enriched/neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:enriched_neutron" - ] -} diff --git a/src/main/resources/data/mekanism/tags/mekanism/chemical/infinity.json b/src/main/resources/data/mekanism/tags/mekanism/chemical/infinity.json deleted file mode 100644 index 0c8aad09..00000000 --- a/src/main/resources/data/mekanism/tags/mekanism/chemical/infinity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:infinity" - ] -} diff --git a/src/main/resources/data/mekanism/tags/mekanism/chemical/neutron.json b/src/main/resources/data/mekanism/tags/mekanism/chemical/neutron.json deleted file mode 100644 index 9e5c3597..00000000 --- a/src/main/resources/data/mekanism/tags/mekanism/chemical/neutron.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:neutron" - ] -} diff --git a/src/main/resources/data/mekanismgenerators/recipe/infinity_advanced_solar_generator.json b/src/main/resources/data/mekanismgenerators/recipe/infinity_advanced_solar_generator.json deleted file mode 100644 index dcb93077..00000000 --- a/src/main/resources/data/mekanismgenerators/recipe/infinity_advanced_solar_generator.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia:extreme_smithing", - "addition": [ - { - "item": "avaritia_integration:infinity_solar_generator" - }, - { - "item": "avaritia:enhancement_core" - }, - { - "item": "avaritia:infinity_catalyst" - } - ], - "base": { - "item": "avaritia_integration:neutron_advanced_solar_generator" - }, - "result": { - "id": "avaritia_integration:infinity_advanced_solar_generator" - }, - "template": { - "item": "avaritia:upgrade_smithing_template" - } -} diff --git a/src/main/resources/data/mekanismgenerators/recipe/infinity_solar_generator.json b/src/main/resources/data/mekanismgenerators/recipe/infinity_solar_generator.json deleted file mode 100644 index 90bbd269..00000000 --- a/src/main/resources/data/mekanismgenerators/recipe/infinity_solar_generator.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia:shaped_table", - "category": "misc", - "key": { - "P": { - "item": "avaritia_integration:infinity_solar_panel" - }, - "A": { - "tag": "mekanism:alloys/infinity" - }, - "D": { - "item": "avaritia:diamond_lattice" - }, - "O": { - "tag": "c:ingots/osmium" - }, - "T": { - "item": "avaritia_integration:infinity_energy_tablet" - } - }, - "pattern": [ - " ", - " ", - " ", - "PPPPPPPPP", - "AAADDDAAA", - "OOOTTTOOO", - " ", - " ", - " " - ], - "result": { - "id": "avaritia_integration:infinity_solar_generator" - }, - "show_notification": true, - "tier": 4 -} diff --git a/src/main/resources/data/mekanismgenerators/recipe/infinity_solar_panel.json b/src/main/resources/data/mekanismgenerators/recipe/infinity_solar_panel.json deleted file mode 100644 index c5acd10c..00000000 --- a/src/main/resources/data/mekanismgenerators/recipe/infinity_solar_panel.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia:shaped_table", - "category": "misc", - "key": { - "G": { - "tag": "c:glass_blocks" - }, - "P": { - "item": "avaritia_integration:neutron_solar_panel" - }, - "I": { - "tag": "mekanism:alloys/infinity" - }, - "O": { - "tag": "c:ingots/osmium" - } - }, - "pattern": [ - " ", - " ", - " ", - "GGGGGGGGG", - "IIIPPPIII", - "OOOOOOOOO", - " ", - " ", - " " - ], - "result": { - "id": "avaritia_integration:infinity_solar_panel" - }, - "show_notification": true, - "tier": 4 -} diff --git a/src/main/resources/data/mekanismgenerators/recipe/neutron_advanced_solar_generator.json b/src/main/resources/data/mekanismgenerators/recipe/neutron_advanced_solar_generator.json deleted file mode 100644 index 8458f67b..00000000 --- a/src/main/resources/data/mekanismgenerators/recipe/neutron_advanced_solar_generator.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia:shaped_table", - "category": "misc", - "key": { - "G": { - "item": "avaritia_integration:neutron_solar_generator" - }, - "A": { - "tag": "mekanism:alloys/neutron" - }, - "D": { - "item": "avaritia:diamond_lattice" - } - }, - "pattern": [ - " ", - " ", - " GGAGG ", - " G A G ", - " A ", - " A ", - " DDDDD ", - " ", - " " - ], - "result": { - "id": "avaritia_integration:neutron_advanced_solar_generator" - }, - "show_notification": true, - "tier": 4 -} diff --git a/src/main/resources/data/mekanismgenerators/recipe/neutron_solar_generator.json b/src/main/resources/data/mekanismgenerators/recipe/neutron_solar_generator.json deleted file mode 100644 index e8b42973..00000000 --- a/src/main/resources/data/mekanismgenerators/recipe/neutron_solar_generator.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia:shaped_table", - "category": "misc", - "key": { - "P": { - "item": "avaritia_integration:neutron_solar_panel" - }, - "A": { - "tag": "mekanism:alloys/neutron" - }, - "D": { - "item": "avaritia:diamond_lattice" - }, - "O": { - "tag": "c:ingots/osmium" - }, - "T": { - "item": "avaritia_integration:neutron_energy_tablet" - } - }, - "pattern": [ - " ", - " ", - " ", - "PPPPPPPPP", - "AAADDDAAA", - "OOOTTTOOO", - " ", - " ", - " " - ], - "result": { - "id": "avaritia_integration:neutron_solar_generator" - }, - "show_notification": true, - "tier": 4 -} diff --git a/src/main/resources/data/mekanismgenerators/recipe/neutron_solar_panel.json b/src/main/resources/data/mekanismgenerators/recipe/neutron_solar_panel.json deleted file mode 100644 index dc1441e1..00000000 --- a/src/main/resources/data/mekanismgenerators/recipe/neutron_solar_panel.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "neoforge:conditions": [ - { - "type": "neoforge:mod_loaded", - "modid": "mekanismgenerators" - } - ], - "type": "avaritia:shaped_table", - "category": "misc", - "key": { - "G": { - "tag": "c:glass_blocks" - }, - "P": { - "item": "mekanismgenerators:solar_panel" - }, - "N": { - "tag": "mekanism:alloys/neutron" - }, - "O": { - "tag": "c:ingots/osmium" - } - }, - "pattern": [ - " ", - " ", - " ", - "GGGGGGGGG", - "NNNPPPNNN", - "OOOOOOOOO", - " ", - " ", - " " - ], - "result": { - "id": "avaritia_integration:neutron_solar_panel" - }, - "show_notification": true, - "tier": 4 -} diff --git a/src/main/resources/data/minecraft/tags/blocks/flower_pots.json b/src/main/resources/data/minecraft/tags/blocks/flower_pots.json deleted file mode 100644 index 9eba4338..00000000 --- a/src/main/resources/data/minecraft/tags/blocks/flower_pots.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "avaritia_integration:potted_asgard_dandelion", - "avaritia_integration:potted_soarleander" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json deleted file mode 100644 index cd2d10d7..00000000 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "replace": false, - "values": [ - { - "id": "avaritia_integration:fake_bedrock", - "required": false - }, - { - "id": "avaritia_integration:fake_end_portal", - "required": false - }, - { - "id": "avaritia_integration:fake_end_portal_frame", - "required": false - }, - { - "id": "avaritia_integration:neutron_collector", - "required": false - }, - { - "id": "avaritia_integration:basic_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:advanced_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:elite_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:ultimate_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:overclocked_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:quantum_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:dense_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:multiversal_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:creative_neutron_collecting_factory", - "required": false - }, - { - "id": "avaritia_integration:singularity_compressor", - "required": false - }, - { - "id": "avaritia_integration:basic_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:advanced_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:elite_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:ultimate_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:overclocked_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:quantum_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:dense_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:multiversal_singularity_compressing_factory", - "required": false - }, - { - "id": "avaritia_integration:creative_singularity_compressing_factory", - "required": false - } - ] -} diff --git a/src/main/resources/data/thermal_expansion/recipe/smithing/creative_integral_components.json b/src/main/resources/data/thermal_expansion/recipe/smithing/creative_integral_components.json deleted file mode 100644 index 12a1421f..00000000 --- a/src/main/resources/data/thermal_expansion/recipe/smithing/creative_integral_components.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:smithing_transform", - "forge:conditions": [ - { - "type": "forge:mod_loaded", - "modid": "thermal_expansion" - } - ], - "addition": { - "item": "thermal:upgrade_augment_3" - }, - "base": { - "item": "avaritia_integration:creative_augment_base" - }, - "result": { - "item": "avaritia_integration:creative_integral_components" - }, - "template": { - "item": "minecraft:netherite_upgrade_smithing_template" - } -} \ No newline at end of file diff --git a/src/main/resources/data/thermal_expansion/recipe/smithing/fluid_tank_creative_augment.json b/src/main/resources/data/thermal_expansion/recipe/smithing/fluid_tank_creative_augment.json deleted file mode 100644 index 103f4846..00000000 --- a/src/main/resources/data/thermal_expansion/recipe/smithing/fluid_tank_creative_augment.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:smithing_transform", - "forge:conditions": [ - { - "type": "forge:mod_loaded", - "modid": "thermal_expansion" - } - ], - "addition": { - "item": "thermal:fluid_tank_augment" - }, - "base": { - "item": "avaritia_integration:creative_augment_base" - }, - "result": { - "item": "thermal:fluid_tank_creative_augment" - }, - "template": { - "item": "minecraft:netherite_upgrade_smithing_template" - } -} \ No newline at end of file diff --git a/src/main/resources/data/thermal_expansion/recipe/smithing/machine_catalyst_creative_augment.json b/src/main/resources/data/thermal_expansion/recipe/smithing/machine_catalyst_creative_augment.json deleted file mode 100644 index aafbf7c0..00000000 --- a/src/main/resources/data/thermal_expansion/recipe/smithing/machine_catalyst_creative_augment.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:smithing_transform", - "forge:conditions": [ - { - "type": "forge:mod_loaded", - "modid": "thermal_expansion" - } - ], - "addition": { - "item": "thermal:machine_catalyst_augment" - }, - "base": { - "item": "avaritia_integration:creative_augment_base" - }, - "result": { - "item": "thermal:machine_catalyst_creative_augment" - }, - "template": { - "item": "minecraft:netherite_upgrade_smithing_template" - } -} \ No newline at end of file diff --git a/src/main/resources/data/thermal_expansion/recipe/smithing/machine_efficiency_creative_augment.json b/src/main/resources/data/thermal_expansion/recipe/smithing/machine_efficiency_creative_augment.json deleted file mode 100644 index 19cc2d2a..00000000 --- a/src/main/resources/data/thermal_expansion/recipe/smithing/machine_efficiency_creative_augment.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:smithing_transform", - "forge:conditions": [ - { - "type": "forge:mod_loaded", - "modid": "thermal_expansion" - } - ], - "addition": { - "item": "thermal:machine_efficiency_augment" - }, - "base": { - "item": "avaritia_integration:creative_augment_base" - }, - "result": { - "item": "thermal:machine_efficiency_creative_augment" - }, - "template": { - "item": "minecraft:netherite_upgrade_smithing_template" - } -} \ No newline at end of file diff --git a/src/main/resources/data/thermal_expansion/recipe/smithing/rf_coil_creative_augment.json b/src/main/resources/data/thermal_expansion/recipe/smithing/rf_coil_creative_augment.json deleted file mode 100644 index 8d02b855..00000000 --- a/src/main/resources/data/thermal_expansion/recipe/smithing/rf_coil_creative_augment.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "minecraft:smithing_transform", - "forge:conditions": [ - { - "type": "forge:mod_loaded", - "modid": "thermal_expansion" - } - ], - "addition": { - "item": "thermal:rf_coil_augment" - }, - "base": { - "item": "avaritia_integration:creative_augment_base" - }, - "result": { - "item": "thermal:rf_coil_creative_augment" - }, - "template": { - "item": "minecraft:netherite_upgrade_smithing_template" - } -} \ No newline at end of file diff --git a/src/main/templates/META-INF/neoforge.mods.toml b/src/main/templates/META-INF/neoforge.mods.toml deleted file mode 100644 index 5ba7c65e..00000000 --- a/src/main/templates/META-INF/neoforge.mods.toml +++ /dev/null @@ -1,79 +0,0 @@ -# This is an example mods.toml file. It contains the data relating to the loading mods. -# There are several mandatory fields (#mandatory), and many more that are optional (#optional). -# The overall format is standard TOML format, v0.5.0. -# Note that there are a couple of TOML lists in this file. -# Find more information on toml format here: https://github.com/toml-lang/toml -# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml -modLoader = "javafml" #mandatory -# A version range to match for said mod loader - for regular FML @Mod it will be the the FML version. This is currently 47. -loaderVersion = "${loader_version_range}" #mandatory -# The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties. -# Review your options at https://choosealicense.com/. All rights reserved is the default copyright stance, and is thus the default here. -license = "${mod_license}" -# A URL to refer people to when problems occur with this mod -#issueTrackerURL="https://change.me.to.your.issue.tracker.example.invalid/" #optional -# A list of mods - how many allowed here is determined by the individual mod loader -[[mods]] #mandatory -# The modid of the mod -modId = "${mod_id}" #mandatory -# The version number of the mod -version = "${mod_version}" #mandatory -# A display name for the mod -displayName = "${mod_name}" #mandatory -# A URL to query for updates for this mod. See the JSON update specification https://docs.neoforge.net/docs/misc/updatechecker/ -#updateJSONURL="https://change.me.example.invalid/updates.json" #optional -# A URL for the "homepage" for this mod, displayed in the mod UI -#displayURL="https://change.me.to.your.mods.homepage.example.invalid/" #optional -# A file name (in the root of the mod JAR) containing a logo for display -#logoFile="avaritia_integration.png" #optional -# A text field displayed in the mod UI -#credits="" #optional -# A text field displayed in the mod UI -authors = "${mod_authors}" #optional - -# The description text for the mod (multi line!) (#mandatory) -description = '''${mod_description}''' - -# The [[mixins]] block allows you to declare your mixin config to FML so that it gets loaded. -[[mixins]] -config = "${mod_id}.mixins.json" - -# The [[accessTransformers]] block allows you to declare where your AT file is. -# If this block is omitted, a fallback attempt will be made to load an AT from META-INF/accesstransformer.cfg -#[[accessTransformers]] -#file="META-INF/accesstransformer.cfg" - -# The coremods config file path is not configurable and is always loaded from META-INF/coremods.json - -# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. -[[dependencies."${mod_id}"]] #optional -# the modid of the dependency -modId = "neoforge" #mandatory -# The type of the dependency. Can be one of "required", "optional", "incompatible" or "discouraged" (case insensitive). -# 'required' requires the mod to exist, 'optional' does not -# 'incompatible' will prevent the game from loading when the mod exists, and 'discouraged' will show a warning -type = "required" #mandatory -# Optional field describing why the dependency is required or why it is incompatible -# reason="..." -# The version range of the dependency -versionRange = "${neo_version_range}" #mandatory -# An ordering relationship for the dependency. -# BEFORE - This mod is loaded BEFORE the dependency -# AFTER - This mod is loaded AFTER the dependency -ordering = "NONE" -# Side this dependency is applied on - BOTH, CLIENT, or SERVER -side = "BOTH" -# Here's another dependency -[[dependencies."${mod_id}"]] -modId = "minecraft" -type = "required" -# This version range declares a minimum of the current minecraft version up to but not including the next major version -versionRange = "${minecraft_version_range}" -ordering = "NONE" -side = "BOTH" - -# Features are specific properties of the game environment, that you may want to declare you require. This example declares -# that your mod requires GL version 3.2 or higher. Other features will be added. They are side aware so declaring this won't -# stop your mod loading on the server for example. -#[features."${mod_id}"] -#openGLVersion="[3.2,)"