diff --git a/build.gradle b/build.gradle index 80474692..15ada7e8 100644 --- a/build.gradle +++ b/build.gradle @@ -42,7 +42,7 @@ minecraft { mcpMappingChannel = 'stable' mcpMappingVersion = '39' - username = 'superhelo' + username = 'test_user' def args = ["-ea:${project.group}"] if (project.use_coremod.toBoolean()) { @@ -122,13 +122,18 @@ dependencies { implementation 'com.cleanroommc:assetmover:2.5' } if (project.use_mixins.toBoolean()) { - implementation 'zone.rong:mixinbooter:7.1' + implementation('zone.rong:mixinbooter:10.2') { + transitive = false + } + annotationProcessor('zone.rong:mixinbooter:10.2') { + transitive = false + } } implementation 'com.cleanroommc:configanytime:3.0' implementation files('libs/CraftTweaker2-MC1120-Mod-JEI-1.12-4.1.20.670-deobf.jar') implementation rfg.deobf("curse.maven:Baubles-227083:2518667") - implementation rfg.deobf("curse.maven:zenutils-401178:5162113-sources-5162114") + implementation rfg.deobf("curse.maven:zenutils-401178:5935733-sources-5935735") implementation rfg.deobf("curse.maven:modtweaker-220954:3488553") implementation rfg.deobf("curse.maven:hammerlib-247401:3611193") implementation rfg.deobf("curse.maven:thaumcraft-223628:2629023") @@ -147,7 +152,7 @@ dependencies { implementation rfg.deobf("vazkii.patchouli:Patchouli:1.0-21.5") implementation rfg.deobf("cofh:RedstoneFlux:1.12-2.0.0.1:universal") implementation rfg.deobf("mcjty.theoneprobe:TheOneProbe-1.12:1.12-1.4.28-17") - implementation rfg.deobf("zone.rong:mixinbooter:4.2") + implementation rfg.deobf("zone.rong:mixinbooter:10.2") implementation rfg.deobf("com.blamejared:MTLib:3.0.5.15") implementation rfg.deobf("mezz.jei:jei_1.12.2:4.16.1.302") implementation rfg.deobf("vazkii.botania:Botania:r1.10-363.148") @@ -160,15 +165,16 @@ dependencies { } if (project.use_mixins.toBoolean()) { + annotationProcessor 'org.ow2.asm:asm-debug-all:5.2' + annotationProcessor 'com.google.guava:guava:32.1.2-jre' + annotationProcessor 'com.google.code.gson:gson:2.8.9' // Change your mixin refmap name here: - String mixin = modUtils.enableMixins('org.spongepowered:mixin:0.8.3', "mixins.${project.archives_base_name}.refmap.json") - api(mixin) { + String mixinBooter = modUtils.enableMixins('zone.rong:mixinbooter:10.2') + // modUtils.enableMixins('zone.rong:mixinbooter:10.2', 'mod_id.mixins.refmap.json') << add refmap name as 2nd arg (optional) + api(mixinBooter) { transitive = false } - annotationProcessor 'org.ow2.asm:asm-debug-all:5.2' - annotationProcessor 'com.google.guava:guava:24.1.1-jre' - annotationProcessor 'com.google.code.gson:gson:2.8.6' - annotationProcessor(mixin) { + annotationProcessor(mixinBooter) { transitive = false } } diff --git a/gradle.properties b/gradle.properties index 0c29a378..bc6a2067 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx3G # Mod Information mod_version=1.4.7 -maven_group=ink.ikx.rt +maven_group=dev.ikx.rt archives_base_name=RandomTweaker # If any properties changes below this line, run `gradlew setupDecompWorkspace` and refresh gradle again to ensure everything is working correctly. # Boilerplate Options @@ -14,4 +14,4 @@ use_assetmover=false use_access_transformer=true # Coremod Arguments include_mod=true -coremod_plugin_class_name=ink.ikx.rt.impl.internal.core.CoreModBoot \ No newline at end of file +coremod_plugin_class_name=dev.ikx.rt.impl.internal.core.CoreModBoot \ No newline at end of file diff --git a/src/main/java/dev/ikx/rt/Constant.java b/src/main/java/dev/ikx/rt/Constant.java new file mode 100644 index 00000000..a7c236bb --- /dev/null +++ b/src/main/java/dev/ikx/rt/Constant.java @@ -0,0 +1,14 @@ +package dev.ikx.rt; + +public class Constant { + public static final String MODID = "randomtweaker"; + public static final String NAME = "RandomTweaker"; + public static final String VERSION = "1.5.0"; + + public static final String DESPENDENCIES = "required-after:crafttweaker;" + + "required-after:mixinbooter@[10.2,);" + + "required-after:zenutils@[1.20,);" + + "required-after:configanytime@[2.0,);" + + "after:contenttweaker;after:thaumcraft"; + +} diff --git a/src/main/java/dev/ikx/rt/Main.java b/src/main/java/dev/ikx/rt/Main.java new file mode 100644 index 00000000..b163172c --- /dev/null +++ b/src/main/java/dev/ikx/rt/Main.java @@ -0,0 +1,51 @@ +package dev.ikx.rt; + +import dev.ikx.rt.api.mods.jei.core.JEIPanel; +import dev.ikx.rt.api.mods.jei.core.JEIRecipe; +import dev.ikx.rt.impl.internal.compact.CompactManager; +import dev.ikx.rt.impl.internal.proxy.IProxy; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.SidedProxy; +import net.minecraftforge.fml.common.event.FMLConstructionEvent; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; + +import java.util.HashSet; +import java.util.Set; + +@Mod( + modid = Constant.MODID, + name = Constant.NAME, + version = Constant.VERSION, + dependencies = Constant.DESPENDENCIES +) +public class Main { + public static final Set JEI_PANEL_SET = new HashSet<>(); + public static final Set JEI_RECIPE_SET = new HashSet<>(); + + @SidedProxy(clientSide = "dev.ikx.rt.impl.internal.proxy.ClientProxy", serverSide = "dev.ikx.rt.impl.internal.proxy.ServerProxy") + public static IProxy proxy; + + @EventHandler + public void onConstruct(FMLConstructionEvent event) { + CompactManager.INSTANCE.registerConstructEvent(event); + } + + @EventHandler + public void onPreInit(FMLPreInitializationEvent event) { + CompactManager.INSTANCE.registerPreInitEvent(event); + } + + @EventHandler + public void onInit(FMLInitializationEvent event) { + CompactManager.INSTANCE.registerInitEvent(event); + } + + @EventHandler + public void onPostInit(FMLPostInitializationEvent event) { + CompactManager.INSTANCE.registerPostInitEvent(event); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/internal/file/IProp.java b/src/main/java/dev/ikx/rt/api/internal/file/IProp.java new file mode 100644 index 00000000..8b601e3d --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/internal/file/IProp.java @@ -0,0 +1,63 @@ +package dev.ikx.rt.api.internal.file; + +import crafttweaker.api.item.IIngredient; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; + +import java.util.List; + +@Deprecated +@ZenClass(IProp.ZEN_CLASS) +public class IProp { + + public static final String ZEN_CLASS = "mods.randomtweaker.file.Prop"; + + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, Props.ZEN_CLASS); + + @ZenMethod + public static void write(String key, String value) { + compact.callVoid(() -> Props.write(key, value)); + } + + @ZenMethod + public static void write(String key, int value) { + compact.callVoid(() -> Props.write(key, value)); + } + + @ZenMethod + public static void write(String key, float value) { + compact.callVoid(() -> Props.write(key, value)); + } + + @ZenMethod + public static void write(String key, double value) { + compact.callVoid(() -> Props.write(key, value)); + } + + @ZenMethod + public static void write(String key, long value) { + compact.callVoid(() -> Props.write(key, value)); + } + + @ZenMethod + public static void write(String key, boolean value) { + compact.callVoid(() -> Props.write(key, value)); + } + + @ZenMethod + public static void write(String key, IIngredient value) { + compact.callVoid(() -> Props.write(key, value)); + } + + @ZenMethod + public static String read(String key) { + return compact.call(() -> Props.read(key)); + } + + @ZenMethod + public static List getAllKeys() { + return compact.call(Props::getAllKeys); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/internal/file/IProp.java b/src/main/java/dev/ikx/rt/api/internal/file/Props.java similarity index 94% rename from src/main/java/ink/ikx/rt/api/internal/file/IProp.java rename to src/main/java/dev/ikx/rt/api/internal/file/Props.java index 33843358..c50f64f2 100644 --- a/src/main/java/ink/ikx/rt/api/internal/file/IProp.java +++ b/src/main/java/dev/ikx/rt/api/internal/file/Props.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.internal.file; +package dev.ikx.rt.api.internal.file; import crafttweaker.api.item.IIngredient; import org.apache.commons.lang3.StringUtils; @@ -13,8 +13,10 @@ import java.util.Properties; import java.util.stream.Collectors; -@ZenClass("mods.randomtweaker.file.IProp") -public abstract class IProp { +@ZenClass(Props.ZEN_CLASS) +public class Props { + + public static final String ZEN_CLASS = "mods.randomtweaker.file.Props"; public static String FILE = getPath(System.getProperty("user.dir"), "rt.properties"); diff --git a/src/main/java/ink/ikx/rt/api/internal/utils/IInputPattern.java b/src/main/java/dev/ikx/rt/api/internal/utils/IInputPattern.java similarity index 91% rename from src/main/java/ink/ikx/rt/api/internal/utils/IInputPattern.java rename to src/main/java/dev/ikx/rt/api/internal/utils/IInputPattern.java index ab49e35d..41de6d49 100644 --- a/src/main/java/ink/ikx/rt/api/internal/utils/IInputPattern.java +++ b/src/main/java/dev/ikx/rt/api/internal/utils/IInputPattern.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.api.internal.utils; +package dev.ikx.rt.api.internal.utils; import crafttweaker.api.item.IIngredient; -import ink.ikx.rt.impl.internal.utils.MCInputPattern; +import dev.ikx.rt.impl.internal.utils.MCInputPattern; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; @@ -9,7 +9,6 @@ import java.util.Map; - @SidedZenRegister @ZenClass("mods.randomtweaker.utils.IInputPattern") public interface IInputPattern { diff --git a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/IAttunementAltar.java b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/AttunementAltar.java similarity index 89% rename from src/main/java/ink/ikx/rt/api/mods/astralsorcery/IAttunementAltar.java rename to src/main/java/dev/ikx/rt/api/mods/astralsorcery/AttunementAltar.java index c6194d7b..75f48de9 100644 --- a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/IAttunementAltar.java +++ b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/AttunementAltar.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.astralsorcery; +package dev.ikx.rt.api.mods.astralsorcery; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; @@ -7,8 +7,8 @@ import crafttweaker.api.item.IItemStack; import hellfirepvp.astralsorcery.common.constellation.ConstellationRegistry; import hellfirepvp.astralsorcery.common.constellation.IConstellation; -import ink.ikx.rt.impl.internal.config.RTConfig; -import ink.ikx.rt.impl.mods.astralsorcery.CustomAttunementRecipe; +import dev.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.mods.astralsorcery.CustomAttunementRecipe; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; @@ -16,7 +16,7 @@ @SidedZenRegister(modDeps = "astralsorcery") @ZenClass("mods.randomtweaker.astralsorcery.AttunementAltar") -public abstract class IAttunementAltar { +public class AttunementAltar { @ZenMethod public static void addRecipe(IIngredient input, IItemStack output, String constellationString) { @@ -66,8 +66,8 @@ public void apply() { @Override public String describe() { return "Add attunement recipe " + - ingredient.toString() + (constellationString != null ? ", constellation : " + constellationString : "") - + " -> " + output.toString(); + ingredient.toString() + (constellationString != null ? ", constellation : " + constellationString : "") + + " -> " + output.toString(); } @Override diff --git a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/IPlayerExpansionAs.java b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/IPlayerExpansionAs.java similarity index 97% rename from src/main/java/ink/ikx/rt/api/mods/astralsorcery/IPlayerExpansionAs.java rename to src/main/java/dev/ikx/rt/api/mods/astralsorcery/IPlayerExpansionAs.java index 91b30c2d..a7f0baa1 100644 --- a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/IPlayerExpansionAs.java +++ b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/IPlayerExpansionAs.java @@ -1,25 +1,25 @@ -package ink.ikx.rt.api.mods.astralsorcery; +package dev.ikx.rt.api.mods.astralsorcery; import crafttweaker.CraftTweakerAPI; -import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.player.IPlayer; import hellfirepvp.astralsorcery.common.constellation.IMajorConstellation; import hellfirepvp.astralsorcery.common.data.research.ResearchManager; - -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.MathHelper; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenExpansion; import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import java.util.List; @SidedZenRegister(modDeps = "astralsorcery") @ZenExpansion("crafttweaker.player.IPlayer") @ZenClass("mods.randomtweaker.astralsorcery.IPlayer") -public abstract class IPlayerExpansionAs { +public class IPlayerExpansionAs { @ZenMethod public static float getPerkPercentToNextLevel(IPlayer player) { diff --git a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTAttunementRecipeCompleteEvent.java b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTAttunementRecipeCompleteEvent.java similarity index 90% rename from src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTAttunementRecipeCompleteEvent.java rename to src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTAttunementRecipeCompleteEvent.java index ab23061e..46b76076 100644 --- a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTAttunementRecipeCompleteEvent.java +++ b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTAttunementRecipeCompleteEvent.java @@ -1,6 +1,5 @@ -package ink.ikx.rt.api.mods.astralsorcery.event; +package dev.ikx.rt.api.mods.astralsorcery.event; -import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.entity.IEntity; import crafttweaker.api.entity.IEntityItem; import crafttweaker.api.event.IEntityEvent; @@ -8,19 +7,20 @@ import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IWorld; -import ink.ikx.rt.impl.mods.astralsorcery.event.AttunementRecipeCompleteEvent; - -import java.util.List; +import dev.ikx.rt.impl.mods.astralsorcery.event.AttunementRecipeCompleteEvent; import net.minecraft.item.ItemStack; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenGetter; import stanhebben.zenscript.annotations.ZenMethod; import stanhebben.zenscript.annotations.ZenSetter; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import java.util.List; @SidedZenRegister(modDeps = "astralsorcery") @ZenClass("mods.randomtweaker.astralsorcery.AttunementRecipeCompleteEvent") -public abstract class CTAttunementRecipeCompleteEvent implements IEventCancelable, IEntityEvent { +public class CTAttunementRecipeCompleteEvent implements IEventCancelable, IEntityEvent { private final AttunementRecipeCompleteEvent event; @@ -67,7 +67,7 @@ public IEntity getEntity() { @ZenGetter("itemEntity") @ZenMethod - public IEntityItem getItemEntity(){ + public IEntityItem getItemEntity() { return CraftTweakerMC.getIEntityItem(this.event.getInputEntity()); } diff --git a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTAttunementStartEvent.java b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTAttunementStartEvent.java similarity index 85% rename from src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTAttunementStartEvent.java rename to src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTAttunementStartEvent.java index 0eccc459..167d76ef 100644 --- a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTAttunementStartEvent.java +++ b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTAttunementStartEvent.java @@ -1,11 +1,11 @@ -package ink.ikx.rt.api.mods.astralsorcery.event; +package dev.ikx.rt.api.mods.astralsorcery.event; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.entity.IEntity; import crafttweaker.api.event.IEntityEvent; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IWorld; -import ink.ikx.rt.impl.mods.astralsorcery.event.AttunementStartEvent; +import dev.ikx.rt.impl.mods.astralsorcery.event.AttunementStartEvent; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenGetter; @@ -14,7 +14,7 @@ @SidedZenRegister(modDeps = "astralsorcery") @ZenClass("mods.randomtweaker.astralsorcery.AttunementStartEvent") -public abstract class CTAttunementStartEvent implements IEntityEvent { +public class CTAttunementStartEvent implements IEntityEvent { private final AttunementStartEvent event; diff --git a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTEventManagerAS.java b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTEventManagerAS.java similarity index 87% rename from src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTEventManagerAS.java rename to src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTEventManagerAS.java index f5438066..d31f1317 100644 --- a/src/main/java/ink/ikx/rt/api/mods/astralsorcery/event/CTEventManagerAS.java +++ b/src/main/java/dev/ikx/rt/api/mods/astralsorcery/event/CTEventManagerAS.java @@ -1,13 +1,13 @@ -package ink.ikx.rt.api.mods.astralsorcery.event; +package dev.ikx.rt.api.mods.astralsorcery.event; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.event.IEventHandle; import crafttweaker.api.event.IEventManager; import crafttweaker.util.EventList; import crafttweaker.util.IEventHandler; -import ink.ikx.rt.impl.mods.astralsorcery.event.AbstractClassImplement; -import ink.ikx.rt.impl.mods.astralsorcery.event.AttunementRecipeCompleteEvent; -import ink.ikx.rt.impl.mods.astralsorcery.event.AttunementStartEvent; +import dev.ikx.rt.impl.mods.astralsorcery.event.AbstractClassImplement; +import dev.ikx.rt.impl.mods.astralsorcery.event.AttunementRecipeCompleteEvent; +import dev.ikx.rt.impl.mods.astralsorcery.event.AttunementStartEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import stanhebben.zenscript.annotations.ZenClass; @@ -16,9 +16,9 @@ @SidedZenRegister(modDeps = "astralsorcery") -@ZenClass("mods.randomtweaker.astralsorcery.IEventManager") @ZenExpansion("crafttweaker.events.IEventManager") -public abstract class CTEventManagerAS { +@ZenClass("mods.randomtweaker.astralsorcery.IEventManager") +public class CTEventManagerAS { private static final EventList attunementCompleteEventList = new EventList<>(); private static final EventList attunementStartEventList = new EventList<>(); diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/IManaItemHandler.java b/src/main/java/dev/ikx/rt/api/mods/botania/CTManaItemHandler.java similarity index 90% rename from src/main/java/ink/ikx/rt/api/mods/botania/IManaItemHandler.java rename to src/main/java/dev/ikx/rt/api/mods/botania/CTManaItemHandler.java index f27f48ab..d975a4ab 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/IManaItemHandler.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/CTManaItemHandler.java @@ -1,21 +1,21 @@ -package ink.ikx.rt.api.mods.botania; +package dev.ikx.rt.api.mods.botania; -import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.player.IPlayer; - import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; import vazkii.botania.api.mana.ManaItemHandler; +import youyihj.zenutils.api.zenscript.SidedZenRegister; import java.util.HashMap; import java.util.Map; - @SidedZenRegister(modDeps = "botania") -@ZenClass("mods.randomtweaker.botania.IManaItemHandler") -public abstract class IManaItemHandler { +@ZenClass(CTManaItemHandler.ZEN_CLASS) +public class CTManaItemHandler { + + public static final String ZEN_CLASS = "mods.randomtweaker.botania.ManaItemHandler"; @ZenMethod public static IItemStack[] getManaItems(IPlayer player) { @@ -27,7 +27,7 @@ public static Map getManaBaubles(IPlayer player) { Map toReturn = new HashMap<>(); ManaItemHandler.getManaBaubles(CraftTweakerMC.getPlayer(player)).forEach(( - (slot, stack) -> toReturn.put(slot, CraftTweakerMC.getIItemStack(stack)) + (slot, stack) -> toReturn.put(slot, CraftTweakerMC.getIItemStack(stack)) )); return toReturn; diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/ICocoon.java b/src/main/java/dev/ikx/rt/api/mods/botania/ICocoon.java similarity index 76% rename from src/main/java/ink/ikx/rt/api/mods/botania/ICocoon.java rename to src/main/java/dev/ikx/rt/api/mods/botania/ICocoon.java index 464bbf30..dd8b11c4 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/ICocoon.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/ICocoon.java @@ -1,26 +1,22 @@ -package ink.ikx.rt.api.mods.botania; +package dev.ikx.rt.api.mods.botania; import com.google.common.collect.Maps; import crafttweaker.CraftTweakerAPI; import crafttweaker.api.entity.IEntityDefinition; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.botania.function.DynamicSpawnTable; -import ink.ikx.rt.api.mods.botania.function.ICocoonTileEntity; -import ink.ikx.rt.impl.mods.botania.cocoon.MCCocoon; +import dev.ikx.rt.api.mods.botania.function.DynamicSpawnTable; +import dev.ikx.rt.api.mods.botania.function.ICocoonTileEntity; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; +import dev.ikx.rt.impl.mods.botania.cocoon.MCCocoon; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.registry.EntityEntry; -import stanhebben.zenscript.annotations.NotNull; -import stanhebben.zenscript.annotations.Optional; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenGetter; -import stanhebben.zenscript.annotations.ZenMethod; +import stanhebben.zenscript.annotations.*; import youyihj.zenutils.api.zenscript.SidedZenRegister; -import java.util.Map; import javax.annotation.Nullable; +import java.util.Map; @SidedZenRegister(modDeps = "botania") @ZenClass("mods.randomtweaker.botania.ICocoon") @@ -35,7 +31,7 @@ static ICocoon registerSpawn(@NotNull String name, IItemStack stack, Map cocoon.match(stack)).findFirst().orElse(null); + return BotaniaManager.INSTANCE.getCocoonsSpawnMap() + .values() + .stream() + .filter(cocoon -> cocoon.match(stack)) + .findFirst() + .orElse(null); } static Map convertToEntityEntry(Map originalMap) { diff --git a/src/main/java/dev/ikx/rt/api/mods/botania/IManaItemHandler.java b/src/main/java/dev/ikx/rt/api/mods/botania/IManaItemHandler.java new file mode 100644 index 00000000..268a0d6c --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/botania/IManaItemHandler.java @@ -0,0 +1,65 @@ +package dev.ikx.rt.api.mods.botania; + +import crafttweaker.api.item.IItemStack; +import crafttweaker.api.player.IPlayer; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import java.util.Map; + +@Deprecated +@SidedZenRegister(modDeps = "botania") +@ZenClass(IManaItemHandler.ZEN_CLASS) +public abstract class IManaItemHandler { + + public static final String ZEN_CLASS = "mods.randomtweaker.botania.IManaItemHandler"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, CTManaItemHandler.ZEN_CLASS); + + @ZenMethod + public static IItemStack[] getManaItems(IPlayer player) { + return compact.call(() -> CTManaItemHandler.getManaItems(player)); + } + + @ZenMethod + public static Map getManaBaubles(IPlayer player) { + return compact.call(() -> CTManaItemHandler.getManaBaubles(player)); + } + + @ZenMethod + public static int requestMana(IItemStack stack, IPlayer player, int manaToGet, boolean remove) { + return compact.call(() -> CTManaItemHandler.requestMana(stack, player, manaToGet, remove)); + } + + @ZenMethod + public static boolean requestManaExact(IItemStack stack, IPlayer player, int manaToGet, boolean remove) { + return compact.call(() -> CTManaItemHandler.requestManaExact(stack, player, manaToGet, remove)); + } + + @ZenMethod + public static int requestManaForTool(IItemStack stack, IPlayer player, int manaToGet, boolean remove) { + return compact.call(() -> CTManaItemHandler.requestManaForTool(stack, player, manaToGet, remove)); + } + + @ZenMethod + public static boolean requestManaExactForTool(IItemStack stack, IPlayer player, int manaToGet, boolean remove) { + return compact.call(() -> CTManaItemHandler.requestManaExactForTool(stack, player, manaToGet, remove)); + } + + @ZenMethod + public static int dispatchMana(IItemStack stack, IPlayer player, int manaToSend, boolean add) { + return compact.call(() -> CTManaItemHandler.dispatchMana(stack, player, manaToSend, add)); + } + + @ZenMethod + public static boolean dispatchManaExact(IItemStack stack, IPlayer player, int manaToSend, boolean add) { + return compact.call(() -> CTManaItemHandler.dispatchManaExact(stack, player, manaToSend, add)); + } + + @ZenMethod + public static float getFullDiscountForTools(IPlayer player, IItemStack tool) { + return compact.call(() -> CTManaItemHandler.getFullDiscountForTools(player, tool)); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/ITileAlfPortal.java b/src/main/java/dev/ikx/rt/api/mods/botania/ITileAlfPortal.java similarity index 97% rename from src/main/java/ink/ikx/rt/api/mods/botania/ITileAlfPortal.java rename to src/main/java/dev/ikx/rt/api/mods/botania/ITileAlfPortal.java index bfd04061..b6a57909 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/ITileAlfPortal.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/ITileAlfPortal.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.botania; +package dev.ikx.rt.api.mods.botania; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.data.IData; diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTAlfPortalDroppedEvent.java b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTAlfPortalDroppedEvent.java similarity index 86% rename from src/main/java/ink/ikx/rt/api/mods/botania/event/CTAlfPortalDroppedEvent.java rename to src/main/java/dev/ikx/rt/api/mods/botania/event/CTAlfPortalDroppedEvent.java index 828ae476..383273df 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTAlfPortalDroppedEvent.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTAlfPortalDroppedEvent.java @@ -1,12 +1,12 @@ -package ink.ikx.rt.api.mods.botania.event; +package dev.ikx.rt.api.mods.botania.event; import crafttweaker.api.entity.IEntityItem; import crafttweaker.api.event.IEventCancelable; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.botania.ITileAlfPortal; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import ink.ikx.rt.impl.mods.botania.event.AlfPortalDroppedEvent; +import dev.ikx.rt.api.mods.botania.ITileAlfPortal; +import dev.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.impl.mods.botania.event.AlfPortalDroppedEvent; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenGetter; import stanhebben.zenscript.annotations.ZenMethod; @@ -19,7 +19,7 @@ @SidedZenRegister(modDeps = "botania") @ZenClass("mods.randomtweaker.botania.AlfPortalDroppedEvent") -public abstract class CTAlfPortalDroppedEvent implements IEventCancelable { +public class CTAlfPortalDroppedEvent implements IEventCancelable { private final AlfPortalDroppedEvent event; diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTElvenTradeEvent.java b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTElvenTradeEvent.java similarity index 87% rename from src/main/java/ink/ikx/rt/api/mods/botania/event/CTElvenTradeEvent.java rename to src/main/java/dev/ikx/rt/api/mods/botania/event/CTElvenTradeEvent.java index 58e11796..feeea678 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTElvenTradeEvent.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTElvenTradeEvent.java @@ -1,11 +1,11 @@ -package ink.ikx.rt.api.mods.botania.event; +package dev.ikx.rt.api.mods.botania.event; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.event.IEventCancelable; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.botania.ITileAlfPortal; -import ink.ikx.rt.impl.mods.botania.event.ElvenTradeEvent; +import dev.ikx.rt.api.mods.botania.ITileAlfPortal; +import dev.ikx.rt.impl.mods.botania.event.ElvenTradeEvent; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenGetter; @@ -18,7 +18,7 @@ @SidedZenRegister(modDeps = "botania") @ZenClass("mods.randomtweaker.botania.ElvenTradeEvent") -public abstract class CTElvenTradeEvent implements IEventCancelable { +public class CTElvenTradeEvent implements IEventCancelable { private final ElvenTradeEvent event; diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTEventManager.java b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTEventManager.java similarity index 87% rename from src/main/java/ink/ikx/rt/api/mods/botania/event/CTEventManager.java rename to src/main/java/dev/ikx/rt/api/mods/botania/event/CTEventManager.java index ceb54050..398473f4 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTEventManager.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTEventManager.java @@ -1,14 +1,14 @@ -package ink.ikx.rt.api.mods.botania.event; +package dev.ikx.rt.api.mods.botania.event; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.event.IEventHandle; import crafttweaker.api.event.IEventManager; import crafttweaker.util.EventList; import crafttweaker.util.IEventHandler; -import ink.ikx.rt.impl.mods.botania.event.AbstractClassImplement; -import ink.ikx.rt.impl.mods.botania.event.AlfPortalDroppedEvent; -import ink.ikx.rt.impl.mods.botania.event.ElvenTradeEvent; -import ink.ikx.rt.impl.mods.botania.event.PoolTradeEvent; +import dev.ikx.rt.impl.mods.botania.event.AbstractClassImplement; +import dev.ikx.rt.impl.mods.botania.event.AlfPortalDroppedEvent; +import dev.ikx.rt.impl.mods.botania.event.ElvenTradeEvent; +import dev.ikx.rt.impl.mods.botania.event.PoolTradeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import stanhebben.zenscript.annotations.ZenClass; @@ -19,7 +19,7 @@ @SidedZenRegister(modDeps = "botania") @ZenClass("mods.randomtweaker.botania.IEventManager") @ZenExpansion("crafttweaker.events.IEventManager") -public abstract class CTEventManager { +public class CTEventManager { private static final EventList poolTradeEventList = new EventList<>(); private static final EventList elvenTradeEventList = new EventList<>(); diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTPoolTradeEvent.java b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTPoolTradeEvent.java similarity index 93% rename from src/main/java/ink/ikx/rt/api/mods/botania/event/CTPoolTradeEvent.java rename to src/main/java/dev/ikx/rt/api/mods/botania/event/CTPoolTradeEvent.java index a1180316..387fb54f 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/event/CTPoolTradeEvent.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/event/CTPoolTradeEvent.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.botania.event; +package dev.ikx.rt.api.mods.botania.event; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.entity.IEntityItem; @@ -7,7 +7,7 @@ import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; import crafttweaker.api.world.IWorld; -import ink.ikx.rt.impl.mods.botania.event.PoolTradeEvent; +import dev.ikx.rt.impl.mods.botania.event.PoolTradeEvent; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenGetter; @@ -17,7 +17,7 @@ @SidedZenRegister(modDeps = "botania") @ZenClass("mods.randomtweaker.botania.PoolTradeEvent") -public abstract class CTPoolTradeEvent implements IEventCancelable { +public class CTPoolTradeEvent implements IEventCancelable { private final PoolTradeEvent event; diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/function/DynamicSpawnTable.java b/src/main/java/dev/ikx/rt/api/mods/botania/function/DynamicSpawnTable.java similarity index 90% rename from src/main/java/ink/ikx/rt/api/mods/botania/function/DynamicSpawnTable.java rename to src/main/java/dev/ikx/rt/api/mods/botania/function/DynamicSpawnTable.java index 72366a20..297b07c2 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/function/DynamicSpawnTable.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/function/DynamicSpawnTable.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.botania.function; +package dev.ikx.rt.api.mods.botania.function; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.item.IItemStack; diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/function/ICocoonTileEntity.java b/src/main/java/dev/ikx/rt/api/mods/botania/function/ICocoonTileEntity.java similarity index 93% rename from src/main/java/ink/ikx/rt/api/mods/botania/function/ICocoonTileEntity.java rename to src/main/java/dev/ikx/rt/api/mods/botania/function/ICocoonTileEntity.java index 57a82a69..ba5c1481 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/function/ICocoonTileEntity.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/function/ICocoonTileEntity.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.botania.function; +package dev.ikx.rt.api.mods.botania.function; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.data.IData; diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/render/IBotaniaFXHelper.java b/src/main/java/dev/ikx/rt/api/mods/botania/render/BotaniaFXHelper.java similarity index 91% rename from src/main/java/ink/ikx/rt/api/mods/botania/render/IBotaniaFXHelper.java rename to src/main/java/dev/ikx/rt/api/mods/botania/render/BotaniaFXHelper.java index eb35677a..55394810 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/render/IBotaniaFXHelper.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/render/BotaniaFXHelper.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.botania.render; +package dev.ikx.rt.api.mods.botania.render; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; @@ -7,9 +7,10 @@ @SidedZenRegister(modDeps = "botania") -@ZenClass("mods.randomtweaker.botania.IBotaniaFXHelper") -public abstract class IBotaniaFXHelper { +@ZenClass(BotaniaFXHelper.ZEN_CLASS) +public class BotaniaFXHelper { + public static final String ZEN_CLASS = "mods.randomtweaker.botania.BotaniaFXHelper"; @ZenMethod public static void setWispFXDistanceLimit(boolean limit) { Botania.proxy.setWispFXDistanceLimit(limit); diff --git a/src/main/java/dev/ikx/rt/api/mods/botania/render/IBotaniaFXHelper.java b/src/main/java/dev/ikx/rt/api/mods/botania/render/IBotaniaFXHelper.java new file mode 100644 index 00000000..08991dd8 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/botania/render/IBotaniaFXHelper.java @@ -0,0 +1,71 @@ +package dev.ikx.rt.api.mods.botania.render; + +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +@Deprecated +@SidedZenRegister(modDeps = "botania") +@ZenClass(IBotaniaFXHelper.ZEN_CLASS) +public class IBotaniaFXHelper { + + public static final String ZEN_CLASS = "mods.randomtweaker.botania.IBotaniaFXHelper"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, BotaniaFXHelper.ZEN_CLASS); + + @ZenMethod + public static void setWispFXDistanceLimit(boolean limit) { + compact.callVoid(() -> BotaniaFXHelper.setWispFXDistanceLimit(limit)); + } + + @ZenMethod + public static void setWispFXDepthTest(boolean depth) { + compact.callVoid(() -> BotaniaFXHelper.setWispFXDepthTest(depth)); + } + + @ZenMethod + public static void setSparkleFXNoClip(boolean noclip) { + compact.callVoid(() -> BotaniaFXHelper.setSparkleFXNoClip(noclip)); + } + + @ZenMethod + public static void setSparkleFXCorrupt(boolean corrupt) { + compact.callVoid(() -> BotaniaFXHelper.setSparkleFXCorrupt(corrupt)); + } + + @ZenMethod + public static void sparkleFX(double x, double y, double z, float r, float g, float b, float size, int m) { + compact.callVoid(() -> BotaniaFXHelper.sparkleFX(x, y, z, r, g, b, size, m)); + } + + @ZenMethod + public static void sparkleFX(double x, double y, double z, float r, float g, float b, float size, int m, boolean fake) { + compact.callVoid(() -> BotaniaFXHelper.sparkleFX(x, y, z, r, g, b, size, m, fake)); + } + + @ZenMethod + public static void wispFX(double x, double y, double z, float r, float g, float b, float size) { + compact.callVoid(() -> BotaniaFXHelper.wispFX(x, y, z, r, g, b, size)); + } + + @ZenMethod + public static void wispFX(double x, double y, double z, float r, float g, float b, float size, float gravity) { + compact.callVoid(() -> BotaniaFXHelper.wispFX(x, y, z, r, g, b, size, gravity)); + } + + @ZenMethod + public static void wispFX(double x, double y, double z, float r, float g, float b, float size, float gravity, float maxAgeMul) { + compact.callVoid(() -> BotaniaFXHelper.wispFX(x, y, z, r, g, b, size, gravity, maxAgeMul)); + } + + @ZenMethod + public static void wispFX(double x, double y, double z, float r, float g, float b, float size, float motionX, float motionY, float motionZ) { + compact.callVoid(() -> BotaniaFXHelper.wispFX(x, y, z, r, g, b, size, motionX, motionY, motionZ)); + } + + @ZenMethod + public static void wispFX(double x, double y, double z, float r, float g, float b, float size, float motionX, float motionY, float motionZ, float maxAgeMul) { + compact.callVoid(() -> BotaniaFXHelper.wispFX(x, y, z, r, g, b, size, motionX, motionY, motionZ, maxAgeMul)); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/subtile/IHydroangeas.java b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/Hydroangeas.java similarity index 67% rename from src/main/java/ink/ikx/rt/api/mods/botania/subtile/IHydroangeas.java rename to src/main/java/dev/ikx/rt/api/mods/botania/subtile/Hydroangeas.java index ebd22a3b..2ff95010 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/subtile/IHydroangeas.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/Hydroangeas.java @@ -1,24 +1,29 @@ -package ink.ikx.rt.api.mods.botania.subtile; +package dev.ikx.rt.api.mods.botania.subtile; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import crafttweaker.api.item.IIngredient; import crafttweaker.api.item.IItemStack; import crafttweaker.api.liquid.ILiquidStack; import crafttweaker.mods.jei.JEI; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import ink.ikx.rt.impl.mods.botania.module.SubTileHydroangeasManager; +import crafttweaker.mods.jei.actions.DescribeAction; +import dev.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.impl.mods.botania.module.SubTileHydroangeasManager; import net.minecraft.client.resources.I18n; import stanhebben.zenscript.annotations.Optional; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.reload.Reloadable; +import youyihj.zenutils.api.util.ReflectionInvoked; +import youyihj.zenutils.api.zenscript.SidedZenRegister; +import java.util.Collections; import java.util.Objects; @SidedZenRegister(modDeps = "botania") -@ZenClass("mods.randomtweaker.botania.IHydroangeas") -public abstract class IHydroangeas { +@ZenClass(Hydroangeas.ZEN_CLASS) +public class Hydroangeas { + + public static final String ZEN_CLASS = "mods.randomtweaker.botania.Hydroangeas"; @ZenMethod public static void addManaRecipe(ILiquidStack inputFluid, int mana) { @@ -27,16 +32,16 @@ public static void addManaRecipe(ILiquidStack inputFluid, int mana) { @ZenMethod public static void addManaRecipe(ILiquidStack inputFluid, int mana, ILiquidStack liquidCatalyst, double factor) { - CraftTweakerAPI.apply(new ActionAddManaRecipe(mana, factor, inputFluid, liquidCatalyst)); + CraftTweakerAPI.apply(new Hydroangeas.ActionAddManaRecipe(mana, factor, inputFluid, liquidCatalyst)); } @ZenMethod public static void setBlockBelowFactor(IItemStack block, @Optional(valueDouble = 2.0D) double factor) { - CraftTweakerAPI.apply(new ActionBlockBelowFactor(block, factor)); + CraftTweakerAPI.apply(new Hydroangeas.ActionBlockBelowFactor(block, factor)); } + @Reloadable public static class ActionAddManaRecipe implements IAction { - int mana; double factor; ILiquidStack inputFluid; @@ -49,6 +54,14 @@ public ActionAddManaRecipe(int mana, double factor, ILiquidStack inputFluid, ILi this.liquidCatalyst = liquidCatalyst; } + + @ReflectionInvoked + public void undo() { + SubTileHydroangeasManager.handlerList.removeIf(handler -> + inputFluid.matches(handler.liquidConsume) && handler.manaGen == mana && + factor == handler.fluidFactor && liquidCatalyst.matches(handler.liquidCatalyst)); + } + @Override public void apply() { SubTileHydroangeasManager.handlerList.add(new SubTileHydroangeasManager.HydroangeasHandler(inputFluid, mana, liquidCatalyst, factor)); @@ -61,26 +74,34 @@ public String describe() { return "Adding IHydroangeas Recipes for input -> " + inputFluid.toCommandString() + " : " + mana + ", liquidCatalyst -> " + liquidCatalyst.toCommandString() + ":" + factor; } - } + @Reloadable public static class ActionBlockBelowFactor implements IAction { - private final double factor; private final IItemStack block; + private IAction _instance; + + public ActionBlockBelowFactor(IItemStack block, double factor) { this.block = block; this.factor = factor; } + @ReflectionInvoked + public void undo() { + JEI.DESCRIPTIONS.remove(_instance); + } + @Override public void apply() { SubTileHydroangeasManager.setBlockBelowFactor(block, factor); String desc = I18n.format("text.randomtweaker.hydroangeas_factorblock_description"); String s_factor = I18n.format("text.randomtweaker.factor") + factor; - String[] str = {desc, s_factor}; - JEI.addDescription((IIngredient) block, str); + DescribeAction describeAction = new DescribeAction(Collections.singletonList(block), new String[]{desc, s_factor}, block.toCommandString()); + _instance = describeAction; + JEI.DESCRIPTIONS.add(describeAction); } @Override @@ -97,7 +118,6 @@ public boolean validate() { public String describeInvalid() { return "The IItemStack is not ItemBlock"; } - } } diff --git a/src/main/java/dev/ikx/rt/api/mods/botania/subtile/IHydroangeas.java b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/IHydroangeas.java new file mode 100644 index 00000000..a1fa1e4b --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/IHydroangeas.java @@ -0,0 +1,34 @@ +package dev.ikx.rt.api.mods.botania.subtile; + +import crafttweaker.api.item.IItemStack; +import crafttweaker.api.liquid.ILiquidStack; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.Optional; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +@Deprecated +@SidedZenRegister(modDeps = "botania") +@ZenClass(IHydroangeas.ZEN_CLASS) +public class IHydroangeas { + + public static final String ZEN_CLASS = "mods.randomtweaker.botania.IHydroangeas"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, Hydroangeas.ZEN_CLASS); + + @ZenMethod + public static void addManaRecipe(ILiquidStack inputFluid, int mana) { + compact.callVoid(() -> Hydroangeas.addManaRecipe(inputFluid, mana)); + } + + @ZenMethod + public static void addManaRecipe(ILiquidStack inputFluid, int mana, ILiquidStack liquidCatalyst, double factor) { + compact.callVoid(() -> Hydroangeas.addManaRecipe(inputFluid, mana, liquidCatalyst, factor)); + } + + @ZenMethod + public static void setBlockBelowFactor(IItemStack block, @Optional(valueDouble = 2.0D) double factor) { + compact.callVoid(() -> Hydroangeas.setBlockBelowFactor(block, factor)); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/botania/subtile/IOrechid.java b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/IOrechid.java new file mode 100644 index 00000000..ba861152 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/IOrechid.java @@ -0,0 +1,38 @@ +package dev.ikx.rt.api.mods.botania.subtile; + +import crafttweaker.api.item.IItemStack; +import crafttweaker.api.oredict.IOreDictEntry; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +@Deprecated +@SidedZenRegister(modDeps = "botania") +@ZenClass(IOrechid.ZEN_CLASS) +public abstract class IOrechid { + + public static final String ZEN_CLASS = "mods.randomtweaker.botania.IOrechid"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, Orechid.ZEN_CLASS); + + @ZenMethod + public static void addOreRecipe(IItemStack block, IOreDictEntry ore, int weight) { + compact.callVoid(() -> Orechid.addOreRecipe(block, ore, weight)); + } + + @ZenMethod + public static void delOreRecipe(IItemStack block) { + compact.callVoid(() -> Orechid.delOreRecipe(block)); + } + + @ZenMethod + public static void delOreRecipe(IItemStack block, IOreDictEntry ore) { + compact.callVoid(() -> Orechid.delOreRecipe(block, ore)); + } + + @ZenMethod + public static IOreDictEntry[] getOreRecipes(IItemStack block) { + return compact.call(() -> Orechid.getOreRecipes(block)); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/botania/subtile/IOrechid.java b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/Orechid.java similarity index 80% rename from src/main/java/ink/ikx/rt/api/mods/botania/subtile/IOrechid.java rename to src/main/java/dev/ikx/rt/api/mods/botania/subtile/Orechid.java index 38e94e35..0e91f956 100644 --- a/src/main/java/ink/ikx/rt/api/mods/botania/subtile/IOrechid.java +++ b/src/main/java/dev/ikx/rt/api/mods/botania/subtile/Orechid.java @@ -1,22 +1,27 @@ -package ink.ikx.rt.api.mods.botania.subtile; +package dev.ikx.rt.api.mods.botania.subtile; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; -import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.item.IItemStack; import crafttweaker.api.oredict.IOreDictEntry; import crafttweaker.mc1120.brackets.BracketHandlerOre; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import ink.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; +import dev.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.reload.Reloadable; +import youyihj.zenutils.api.util.ReflectionInvoked; +import youyihj.zenutils.api.zenscript.SidedZenRegister; import java.util.Arrays; +import java.util.List; import java.util.Objects; @SidedZenRegister(modDeps = "botania") -@ZenClass("mods.randomtweaker.botania.IOrechid") -public abstract class IOrechid { +@ZenClass(Orechid.ZEN_CLASS) +public class Orechid { + + public static final String ZEN_CLASS = "mods.randomtweaker.botania.Orechid"; @ZenMethod public static void addOreRecipe(IItemStack block, IOreDictEntry ore, int weight) { @@ -43,6 +48,7 @@ public static IOreDictEntry[] getOreRecipes(IItemStack block) { .toArray(IOreDictEntry[]::new); } + @Reloadable private static class ActionAddOrechidRecipe implements IAction { private final int weight; @@ -55,6 +61,11 @@ public ActionAddOrechidRecipe(IItemStack block, IOreDictEntry ore, int weight) { this.weight = weight; } + @ReflectionInvoked + public void undo() { + SubTileOrechidManager.delOre(InternalUtils.getStateFromStack(block), ore.getName()); + } + @Override public void apply() { SubTileOrechidManager.addOreWeight(InternalUtils.getStateFromStack(block), ore.getName(), weight); @@ -77,20 +88,29 @@ public String describeInvalid() { } + + @Reloadable private static class ActionRemoveOrechidRecipe implements IAction { private final IItemStack block; private final IOreDictEntry ore; private String describe; + private List _weights; + public ActionRemoveOrechidRecipe(IItemStack block, IOreDictEntry ore) { this.ore = ore; this.block = block; } + @ReflectionInvoked + public void undo() { + _weights.forEach(weight -> SubTileOrechidManager.addOreWeight(InternalUtils.getStateFromStack(block), ore.getName(), weight)); + } + @Override public void apply() { - SubTileOrechidManager.delOre(InternalUtils.getStateFromStack(block), ore.getName()); + _weights = SubTileOrechidManager.delOre(InternalUtils.getStateFromStack(block), ore.getName()); } @Override diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactory.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactory.java new file mode 100644 index 00000000..33c4e3f7 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactory.java @@ -0,0 +1,40 @@ +package dev.ikx.rt.api.mods.contenttweaker; + +import dev.ikx.rt.api.mods.contenttweaker.potion.CTPotionRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.potion.CTPotionTypeRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.potion.IPotionRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.potion.IPotionTypeRepresentation; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenExpansion; +import stanhebben.zenscript.annotations.ZenMethodStatic; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + + +@SidedZenRegister(modDeps = "contenttweaker") +@ZenExpansion("mods.contenttweaker.VanillaFactory") +@ZenClass("mods.randomtweaker.cote.VanillaFactoryExpansion") +public class ExpandVanillaFactory { + + @Deprecated + @ZenMethodStatic + public static IPotionRepresentation createPotion(String unlocalizedName, int color) { + return new IPotionRepresentation(color, unlocalizedName); + } + + @Deprecated + @ZenMethodStatic + public static IPotionTypeRepresentation createPotionType(String unlocalizedName, IPotionRepresentation potion) { + return new IPotionTypeRepresentation(unlocalizedName, potion); + } + + @ZenMethodStatic + public static CTPotionRepresentation createMcPotion(String unlocalizedName, int color) { + return new CTPotionRepresentation(color, unlocalizedName); + } + + @ZenMethodStatic + public static CTPotionTypeRepresentation createMcPotionType(String unlocalizedName, CTPotionRepresentation potion) { + return new CTPotionTypeRepresentation(unlocalizedName, potion); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithBotania.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithBotania.java new file mode 100644 index 00000000..3f89724f --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithBotania.java @@ -0,0 +1,45 @@ +package dev.ikx.rt.api.mods.contenttweaker; + +import dev.ikx.rt.api.mods.contenttweaker.mana.bauble.CTManaBaubleRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.mana.item.CTManaItemRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.mana.item.tool.CTUsageManaItemRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.functional.CTSubTileEntityFunctionalRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.generating.CTSubTileEntityGeneratingRepresentation; +import stanhebben.zenscript.annotations.Optional; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenExpansion; +import stanhebben.zenscript.annotations.ZenMethodStatic; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + + +@SidedZenRegister(modDeps = {"botania", "contenttweaker"}) +@ZenExpansion("mods.contenttweaker.VanillaFactory") +@ZenClass("mods.randomtweaker.cote.VanillaFactoryExpansionWithBotania") +public class ExpandVanillaFactoryWithBotania { + + @ZenMethodStatic + public static CTManaItemRepresentation createManaItem(String unlocalizedName, @Optional(valueLong = 500000) int maxMana) { + return new CTManaItemRepresentation(unlocalizedName, maxMana); + } + + @ZenMethodStatic + public static CTUsageManaItemRepresentation createManaUsingItem(String unlocalizedName, @Optional(valueLong = 500000) int maxMana) { + return new CTUsageManaItemRepresentation(unlocalizedName, maxMana); + } + + @ZenMethodStatic + public static CTManaBaubleRepresentation createManaBauble(String unlocalizedName, String baubleType, @Optional(valueLong = 500000) int maxMana) { + return new CTManaBaubleRepresentation(unlocalizedName, maxMana, baubleType); + } + + @ZenMethodStatic + public static CTSubTileEntityGeneratingRepresentation createSubTileGenerating(String unlocalizedName, @Optional int color) { + return new CTSubTileEntityGeneratingRepresentation(color, unlocalizedName); + } + + @ZenMethodStatic + public static CTSubTileEntityFunctionalRepresentation createSubTileFunctional(String unlocalizedName, @Optional int color) { + return new CTSubTileEntityFunctionalRepresentation(color, unlocalizedName); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithThaumcraft.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithThaumcraft.java similarity index 53% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithThaumcraft.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithThaumcraft.java index 3a173b8b..587f5fb6 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithThaumcraft.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithThaumcraft.java @@ -1,22 +1,20 @@ -package ink.ikx.rt.api.mods.contenttweaker; - -import ink.ikx.rt.api.mods.contenttweaker.aspect.IAspectRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.aspect.MCAspectRepresentation; -import youyihj.zenutils.api.zenscript.SidedZenRegister; +package dev.ikx.rt.api.mods.contenttweaker; +import dev.ikx.rt.api.mods.contenttweaker.aspect.CTAspectRepresentation; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenExpansion; import stanhebben.zenscript.annotations.ZenMethodStatic; +import youyihj.zenutils.api.zenscript.SidedZenRegister; @SidedZenRegister(modDeps = {"thaumcraft", "contenttweaker"}) @ZenExpansion("mods.contenttweaker.VanillaFactory") @ZenClass("mods.randomtweaker.cote.VanillaFactoryExpansionWithThaumcraft") -public abstract class ExpandVanillaFactoryWithThaumcraft { +public class ExpandVanillaFactoryWithThaumcraft { @ZenMethodStatic - public static IAspectRepresentation createAspect(String tag, int color) { - return new MCAspectRepresentation(tag, color); + public static CTAspectRepresentation createAspect(String tag, int color) { + return new CTAspectRepresentation(tag, color); } } diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/aspect/IAspectRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/aspect/CTAspectRepresentation.java similarity index 72% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/aspect/IAspectRepresentation.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/aspect/CTAspectRepresentation.java index fd8fec79..d26f34ba 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/aspect/IAspectRepresentation.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/aspect/CTAspectRepresentation.java @@ -1,19 +1,21 @@ -package ink.ikx.rt.api.mods.contenttweaker.aspect; +package dev.ikx.rt.api.mods.contenttweaker.aspect; import crafttweaker.CraftTweakerAPI; -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -import java.util.Arrays; -import java.util.Objects; +import net.minecraft.util.ResourceLocation; +import org.apache.logging.log4j.LogManager; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; import stanhebben.zenscript.annotations.ZenProperty; import thaumcraft.api.aspects.Aspect; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import java.util.Arrays; +import java.util.Objects; @SidedZenRegister(modDeps = {"thaumcraft", "contenttweaker"}) @ZenClass("mods.randomtweaker.cote.Aspect") -public abstract class IAspectRepresentation { +public class CTAspectRepresentation { @ZenProperty public int color; @@ -28,6 +30,12 @@ public abstract class IAspectRepresentation { @ZenProperty public String chatcolor; + public CTAspectRepresentation(String tag, int color) { + this.setTag(tag); + this.setColor(color); + this.setImage("contenttweaker:textures/aspects/" + tag.toLowerCase() + ".png"); + } + public Aspect[] asAspects() { if (Objects.nonNull(components) && components.length != 0) { if (components.length != 2) { @@ -90,6 +98,13 @@ public void setChatColor(String chatcolor) { } @ZenMethod - public abstract void register(); + public void register() { + try { + Aspect aspect = new Aspect(this.tag, this.color, this.asAspects(), new ResourceLocation(this.image), this.blend); + aspect.setChatcolor(this.chatcolor); + } catch (IllegalArgumentException e) { + LogManager.getLogger("RandomTweaker").error("Registering {} aspect failed", this.tag); + } + } } diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/IPotionIsReady.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/IPotionIsReady.java similarity index 85% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/IPotionIsReady.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/IPotionIsReady.java index a8ebce56..08d85af4 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/IPotionIsReady.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/IPotionIsReady.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function; +package dev.ikx.rt.api.mods.contenttweaker.function; import youyihj.zenutils.api.zenscript.SidedZenRegister; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/IPotionPerformEffect.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/IPotionPerformEffect.java similarity index 87% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/IPotionPerformEffect.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/IPotionPerformEffect.java index 73a11b10..a15c9001 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/IPotionPerformEffect.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/IPotionPerformEffect.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function; +package dev.ikx.rt.api.mods.contenttweaker.function; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.entity.IEntityLivingBase; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunction.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunction.java similarity index 88% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunction.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunction.java index 82e2a5d0..97a98863 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunction.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunction.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.entity.IEntityLivingBase; import crafttweaker.api.item.IItemStack; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunctionWithReturn.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunctionWithReturn.java similarity index 88% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunctionWithReturn.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunctionWithReturn.java index 19119dfb..50fb25cf 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunctionWithReturn.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleFunctionWithReturn.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.entity.IEntityLivingBase; import crafttweaker.api.item.IItemStack; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleRender.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleRender.java similarity index 88% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleRender.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleRender.java index e9509fac..8f2c1190 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleRender.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IBaubleRender.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.item.IItemStack; import crafttweaker.api.player.IPlayer; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IGetBaubleType.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IGetBaubleType.java similarity index 85% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IGetBaubleType.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IGetBaubleType.java index ef88c635..f330565a 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IGetBaubleType.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IGetBaubleType.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.item.IItemStack; import stanhebben.zenscript.annotations.ZenClass; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IGetEntityLifeSpan.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IGetEntityLifeSpan.java similarity index 87% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IGetEntityLifeSpan.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IGetEntityLifeSpan.java index e8f5943c..a12605e9 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IGetEntityLifeSpan.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IGetEntityLifeSpan.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.item.IItemStack; import crafttweaker.api.world.IWorld; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithItem.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithItem.java similarity index 86% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithItem.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithItem.java index 5cc75351..d044d9cd 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithItem.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithItem.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.item.IItemStack; import stanhebben.zenscript.annotations.ZenClass; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithPool.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithPool.java similarity index 89% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithPool.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithPool.java index 5e66b71b..6986a4b7 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithPool.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IManaWithPool.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.item.IItemStack; import crafttweaker.api.world.IBlockPos; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IisUsesMana.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IisUsesMana.java similarity index 86% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IisUsesMana.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IisUsesMana.java index 076ea618..13dd76c7 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/mana/IisUsesMana.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/mana/IisUsesMana.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.mana; +package dev.ikx.rt.api.mods.contenttweaker.function.mana; import crafttweaker.api.item.IItemStack; import stanhebben.zenscript.annotations.ZenClass; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockActivated.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockActivated.java similarity index 93% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockActivated.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockActivated.java index 3df4b704..9c3c0477 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockActivated.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockActivated.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.IBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockstate.ICTBlockState; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockAdded.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockAdded.java similarity index 90% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockAdded.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockAdded.java index 0eee0354..15cb8b1a 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockAdded.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockAdded.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.IBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockstate.ICTBlockState; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockHarvested.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockHarvested.java similarity index 91% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockHarvested.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockHarvested.java index 9cf9bef5..a5105e5a 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockHarvested.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockHarvested.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.IBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockstate.ICTBlockState; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockPlacedBy.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockPlacedBy.java similarity index 92% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockPlacedBy.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockPlacedBy.java index 100cdcfb..7a72dd8e 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/BlockPlacedBy.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/BlockPlacedBy.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.IBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockstate.ICTBlockState; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/CanGeneratePassively.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/CanGeneratePassively.java similarity index 88% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/CanGeneratePassively.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/CanGeneratePassively.java index 51e0bb30..62477521 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/CanGeneratePassively.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/CanGeneratePassively.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.IBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.world.IWorld; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/CanSelect.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/CanSelect.java similarity index 90% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/CanSelect.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/CanSelect.java index 24a15e34..71048468 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/CanSelect.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/CanSelect.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.IBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.entity.player.ICTPlayer; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/PopulateDropStackNBTs.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/PopulateDropStackNBTs.java similarity index 85% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/PopulateDropStackNBTs.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/PopulateDropStackNBTs.java index 3ea70e1f..c47c09b8 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/PopulateDropStackNBTs.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/PopulateDropStackNBTs.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import crafttweaker.api.item.IItemStack; import youyihj.zenutils.api.zenscript.SidedZenRegister; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/Update.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/Update.java similarity index 79% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/Update.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/Update.java index d12a4bed..fe39d717 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/function/subtile/Update.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/function/subtile/Update.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.api.mods.contenttweaker.function.subtile; +package dev.ikx.rt.api.mods.contenttweaker.function.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.IBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.world.IWorld; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; +import dev.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; import youyihj.zenutils.api.zenscript.SidedZenRegister; import stanhebben.zenscript.annotations.ZenClass; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaBauble.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaBauble.java similarity index 93% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaBauble.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaBauble.java index 3b1aea40..10ce603b 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaBauble.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaBauble.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.mana; +package dev.ikx.rt.api.mods.contenttweaker.mana; import crafttweaker.api.entity.IEntityLivingBase; import crafttweaker.api.item.IItemStack; diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaHelper.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaHelper.java similarity index 89% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaHelper.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaHelper.java index e6248c23..c2177162 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaHelper.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaHelper.java @@ -1,19 +1,19 @@ -package ink.ikx.rt.api.mods.contenttweaker.mana; +package dev.ikx.rt.api.mods.contenttweaker.mana; import baubles.api.IBauble; import crafttweaker.api.item.IItemStack; import crafttweaker.api.item.IMutableItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.impl.mods.contenttweaker.mana.bauble.MCManaBauble; -import ink.ikx.rt.impl.mods.contenttweaker.mana.item.MCManaItem; -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -import javax.annotation.Nullable; +import dev.ikx.rt.impl.mods.contenttweaker.mana.bauble.MCManaBauble; +import dev.ikx.rt.impl.mods.contenttweaker.mana.item.MCManaItem; import net.minecraft.item.Item; import stanhebben.zenscript.annotations.ZenCaster; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenExpansion; import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import javax.annotation.Nullable; /** * @author superhelo @@ -22,7 +22,7 @@ @SidedZenRegister(modDeps = {"contenttweaker", "botania"}) @ZenExpansion("crafttweaker.item.IItemStack") @ZenClass("mods.randomtweaker.botania.IItemStack") -public abstract class IManaHelper { +public class IManaHelper { @ZenMethod public static boolean isIManaItem(IItemStack stack) { diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaItem.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaItem.java similarity index 96% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaItem.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaItem.java index 8b4d5ad9..57d20f0f 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/IManaItem.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/IManaItem.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.mana; +package dev.ikx.rt.api.mods.contenttweaker.mana; import crafttweaker.api.item.IItemStack; import crafttweaker.api.world.IBlockPos; diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/bauble/CTManaBaubleRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/bauble/CTManaBaubleRepresentation.java new file mode 100644 index 00000000..932994d7 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/bauble/CTManaBaubleRepresentation.java @@ -0,0 +1,74 @@ +package dev.ikx.rt.api.mods.contenttweaker.mana.bauble; + +import com.teamacronymcoders.base.registrysystem.ItemRegistry; +import com.teamacronymcoders.contenttweaker.ContentTweaker; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleFunction; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleFunctionWithReturn; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IGetBaubleType; +import dev.ikx.rt.api.mods.contenttweaker.mana.item.CTManaItemRepresentation; +import dev.ikx.rt.impl.mods.contenttweaker.bauble.CTManaBaubleContent; +import dev.ikx.rt.impl.mods.contenttweaker.bauble.CTManaTrinketContent; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import stanhebben.zenscript.annotations.ZenProperty; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +/** + * @author superhelo + */ + +@SidedZenRegister(modDeps = {"contenttweaker", "botania"}) +@ZenClass("mods.randomtweaker.cote.ManaBauble") +public class CTManaBaubleRepresentation extends CTManaItemRepresentation { + + @ZenProperty + public String baubleType; + @ZenProperty + public IBaubleFunction onWornTick; + @ZenProperty + public IBaubleFunction onEquipped; + @ZenProperty + public IBaubleFunction onUnequipped; + @ZenProperty + public IGetBaubleType getBaubleType; + @ZenProperty + public IBaubleRender onPlayerBaubleRender; + @ZenProperty + public IBaubleFunctionWithReturn canEquip; + @ZenProperty + public IBaubleFunctionWithReturn canUnEquip; + @ZenProperty + public IBaubleFunctionWithReturn willAutoSync; + + public CTManaBaubleRepresentation(String unlocalizedName, int maxMana, String baubleType) { + super(unlocalizedName, maxMana); + this.setMaxStackSize(1); + this.setBaubleType(baubleType); + } + + @ZenMethod + public String getBaubleType() { + return baubleType; + } + + @ZenMethod + public void setBaubleType(String baubleType) { + this.baubleType = baubleType; + } + + @Override + public String getTypeName() { + return "ManaBauble"; + } + + @Override + public void register() { + if (baubleType.equals("TRINKET")) { + ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new CTManaTrinketContent(this)); + } else { + ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new CTManaBaubleContent(this)); + } + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/item/IManaItemRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/item/CTManaItemRepresentation.java similarity index 79% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/item/IManaItemRepresentation.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/item/CTManaItemRepresentation.java index 33723b1c..c4c37197 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/item/IManaItemRepresentation.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/item/CTManaItemRepresentation.java @@ -1,9 +1,12 @@ -package ink.ikx.rt.api.mods.contenttweaker.mana.item; +package dev.ikx.rt.api.mods.contenttweaker.mana.item; +import com.teamacronymcoders.base.registrysystem.ItemRegistry; +import com.teamacronymcoders.contenttweaker.ContentTweaker; import com.teamacronymcoders.contenttweaker.modules.vanilla.items.ItemRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IGetEntityLifeSpan; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IManaWithItem; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IManaWithPool; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IGetEntityLifeSpan; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IManaWithItem; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IManaWithPool; +import dev.ikx.rt.impl.mods.contenttweaker.item.CTManaItemContent; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; import stanhebben.zenscript.annotations.ZenProperty; @@ -14,7 +17,7 @@ */ @SidedZenRegister(modDeps = {"contenttweaker", "botania"}) @ZenClass("mods.randomtweaker.cote.ManaItem") -public abstract class IManaItemRepresentation extends ItemRepresentation { +public class CTManaItemRepresentation extends ItemRepresentation { @ZenProperty public boolean hasFull; @@ -37,6 +40,12 @@ public abstract class IManaItemRepresentation extends ItemRepresentation { @ZenProperty public IGetEntityLifeSpan entityLifeSpan; + public CTManaItemRepresentation(String unlocalizedName, int maxMana) { + this.setUnlocalizedName(unlocalizedName); + this.setMaxMana(maxMana); + this.setMaxStackSize(1); + } + @ZenMethod public IManaWithPool getCanExportManaToPool() { return canExportManaToPool; @@ -133,6 +142,8 @@ public String getTypeName() { } @Override - public abstract void register(); + public void register() { + ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new CTManaItemContent(this)); + } } diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/item/tool/CTUsageManaItemRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/item/tool/CTUsageManaItemRepresentation.java new file mode 100644 index 00000000..0910f3af --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/mana/item/tool/CTUsageManaItemRepresentation.java @@ -0,0 +1,48 @@ +package dev.ikx.rt.api.mods.contenttweaker.mana.item.tool; + +import com.teamacronymcoders.base.registrysystem.ItemRegistry; +import com.teamacronymcoders.contenttweaker.ContentTweaker; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IisUsesMana; +import dev.ikx.rt.api.mods.contenttweaker.mana.item.CTManaItemRepresentation; +import dev.ikx.rt.impl.mods.contenttweaker.item.CTUsageManaItemContent; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import stanhebben.zenscript.annotations.ZenProperty; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +/** + * @author superhelo + */ +@SidedZenRegister(modDeps = {"contenttweaker", "botania"}) +@ZenClass("mods.randomtweaker.cote.ManaUsingItem") +public class CTUsageManaItemRepresentation extends CTManaItemRepresentation { + + @ZenProperty + public IisUsesMana usesMana; + + public CTUsageManaItemRepresentation(String unlocalizedName, int maxMana) { + super(unlocalizedName, maxMana); + this.setMaxStackSize(1); + } + + @ZenMethod + public IisUsesMana getUsesMana() { + return usesMana; + } + + @ZenMethod + public void setUsesMana(IisUsesMana usesMana) { + this.usesMana = usesMana; + } + + @Override + public String getTypeName() { + return "ManaUsingItem"; + } + + @Override + public void register() { + ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new CTUsageManaItemContent(this)); + } + +} \ No newline at end of file diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/CTPotionRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/CTPotionRepresentation.java new file mode 100644 index 00000000..42549081 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/CTPotionRepresentation.java @@ -0,0 +1,62 @@ +package dev.ikx.rt.api.mods.contenttweaker.potion; + +import crafttweaker.CraftTweakerAPI; +import dev.ikx.rt.api.mods.contenttweaker.function.IPotionIsReady; +import dev.ikx.rt.api.mods.contenttweaker.function.IPotionPerformEffect; +import dev.ikx.rt.impl.mods.contenttweaker.potion.PotionRegisterEvent; +import dev.ikx.rt.impl.mods.contenttweaker.potion.MCPotionContent; +import net.minecraft.potion.Potion; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import stanhebben.zenscript.annotations.ZenProperty; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import java.text.MessageFormat; + +@SidedZenRegister(modDeps = "contenttweaker") +@ZenClass(CTPotionRepresentation.ZEN_CLASS) +public class CTPotionRepresentation { + + public static final String ZEN_CLASS = "mods.randomtweaker.cote.Potion"; + + public final int liquidColor; + public final String unlocalizedName; + + @ZenProperty + public boolean instant; + @ZenProperty + public boolean badEffectIn; + @ZenProperty + public boolean beneficial = true; + @ZenProperty + public boolean shouldRender = true; + @ZenProperty + public boolean shouldRenderHUD = true; + @ZenProperty + public IPotionIsReady isReady = null; + @ZenProperty + public IPotionPerformEffect performEffect; + @ZenProperty + public IPotionPerformEffect affectEntity; + + public CTPotionRepresentation(int liquidColor, String unlocalizedName) { + this.liquidColor = liquidColor; + this.unlocalizedName = unlocalizedName; + } + + @ZenMethod + public void register() { + if (!PotionRegisterEvent.POTION_MAP.containsKey(unlocalizedName)) { + PotionRegisterEvent.POTION_MAP.put(unlocalizedName, new MCPotionContent(this)); + } else { + CraftTweakerAPI.getLogger().logError(MessageFormat.format( + "All Potion must be unique. Key: contenttweaker:{0} is not.", unlocalizedName) + , new UnsupportedOperationException()); + } + } + + public Potion getInternal() { + return PotionRegisterEvent.POTION_MAP.get(unlocalizedName); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/CTPotionTypeRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/CTPotionTypeRepresentation.java new file mode 100644 index 00000000..a8692ce5 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/CTPotionTypeRepresentation.java @@ -0,0 +1,58 @@ +package dev.ikx.rt.api.mods.contenttweaker.potion; + +import com.teamacronymcoders.contenttweaker.ContentTweaker; +import crafttweaker.CraftTweakerAPI; +import dev.ikx.rt.impl.mods.contenttweaker.potion.PotionRegisterEvent; +import net.minecraft.potion.PotionEffect; +import net.minecraft.potion.PotionType; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import stanhebben.zenscript.annotations.ZenProperty; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import java.text.MessageFormat; + + +@SidedZenRegister(modDeps = "contenttweaker") +@ZenClass(CTPotionTypeRepresentation.ZEN_CLASS) +public class CTPotionTypeRepresentation { + + public static final String ZEN_CLASS = "mods.randomtweaker.cote.PotionType"; + + public String unlocalizedName; + public CTPotionRepresentation potion; + + @ZenProperty + public int duration = 3600; + @ZenProperty + public int amplifier = 0; + + public CTPotionTypeRepresentation(String unlocalizedName, CTPotionRepresentation potion) { + this.unlocalizedName = unlocalizedName; + this.potion = potion; + } + + @ZenMethod + public void register() { + if (potion.instant) + duration = 0; + + PotionType potionType = new PotionType( + ContentTweaker.MOD_ID + "." + unlocalizedName, + new PotionEffect(potion.getInternal(), duration, amplifier) + ).setRegistryName(ContentTweaker.MOD_ID, unlocalizedName); + + if (!PotionRegisterEvent.POTION_TYPE_MAP.containsKey(unlocalizedName)) { + PotionRegisterEvent.POTION_TYPE_MAP.put(unlocalizedName, potionType); + } else { + CraftTweakerAPI.getLogger().logError( + MessageFormat.format( + "All PotionTypes must be unique. Key: contenttweaker:{0} is not.", + unlocalizedName + ), + new UnsupportedOperationException() + ); + } + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/IPotionRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/IPotionRepresentation.java new file mode 100644 index 00000000..d6f3d9de --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/IPotionRepresentation.java @@ -0,0 +1,116 @@ +package dev.ikx.rt.api.mods.contenttweaker.potion; + +import dev.ikx.rt.api.mods.contenttweaker.function.IPotionIsReady; +import dev.ikx.rt.api.mods.contenttweaker.function.IPotionPerformEffect; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import net.minecraft.potion.Potion; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenGetter; +import stanhebben.zenscript.annotations.ZenMethod; +import stanhebben.zenscript.annotations.ZenSetter; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +@Deprecated +@SidedZenRegister(modDeps = "contenttweaker") +@ZenClass(IPotionRepresentation.ZEN_CLASS) +public class IPotionRepresentation { + + public static final String ZEN_CLASS = "mods.randomtweaker.cote.IPotion"; + public static final DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, CTPotionRepresentation.ZEN_CLASS); + + public final CTPotionRepresentation ctPotion; + + public IPotionRepresentation(int liquidColor, String unlocalizedName) { + this.ctPotion = new CTPotionRepresentation(liquidColor, unlocalizedName); + } + + @ZenGetter("instant") + public boolean isInstant() { + return compact.call(() -> this.ctPotion.instant); + } + + @ZenSetter("instant") + public void setInstant(boolean instant) { + compact.callVoid(() -> this.ctPotion.instant = instant); + } + + @ZenGetter("badEffectIn") + public boolean isBadEffectIn() { + return compact.call(() -> this.ctPotion.badEffectIn); + } + + @ZenSetter("badEffectIn") + public void setBadEffectIn(boolean badEffectIn) { + compact.callVoid(() -> this.ctPotion.badEffectIn = badEffectIn); + } + + @ZenGetter("beneficial") + public boolean isBeneficial() { + return compact.call(() -> this.ctPotion.beneficial); + } + + @ZenSetter("beneficial") + public void setBeneficial(boolean beneficial) { + compact.callVoid(() -> this.ctPotion.beneficial = beneficial); + } + + @ZenGetter("shouldRender") + public boolean isShouldRender() { + return compact.call(() -> this.ctPotion.shouldRender); + } + + @ZenSetter("shouldRender") + public void setShouldRender(boolean shouldRender) { + compact.callVoid(() -> this.ctPotion.shouldRender = shouldRender); + } + + @ZenGetter("shouldRenderHUD") + public boolean isShouldRenderHUD() { + return compact.call(() -> this.ctPotion.shouldRenderHUD); + } + + @ZenSetter("shouldRenderHUD") + public void setShouldRenderHUD(boolean shouldRenderHUD) { + compact.callVoid(() -> this.ctPotion.shouldRenderHUD = shouldRenderHUD); + } + + @ZenGetter("isReady") + public IPotionIsReady getIsReady() { + return compact.call(() -> this.ctPotion.isReady); + } + + @ZenSetter("isReady") + public void setIsReady(IPotionIsReady isReady) { + compact.callVoid(() -> this.ctPotion.isReady = isReady); + } + + @ZenGetter("performEffect") + public IPotionPerformEffect getPerformEffect() { + return compact.call(() -> this.ctPotion.performEffect); + } + + @ZenSetter("performEffect") + public void setPerformEffect(IPotionPerformEffect performEffect) { + compact.callVoid(() -> this.ctPotion.performEffect = performEffect); + } + + @ZenGetter("affectEntity") + public IPotionPerformEffect getAffectEntity() { + return compact.call(() -> this.ctPotion.affectEntity); + } + + @ZenSetter("affectEntity") + public void setAffectEntity(IPotionPerformEffect affectEntity) { + compact.callVoid(() -> this.ctPotion.affectEntity = affectEntity); + } + + @ZenMethod + public void register() { + compact.callVoid(this.ctPotion::register, "For compatibility reasons, please use the `createMcPotion` method in version 1.5.x"); + } + + public Potion getInternal() { + return compact.call(this.ctPotion::getInternal); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/IPotionTypeRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/IPotionTypeRepresentation.java new file mode 100644 index 00000000..b98472a3 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/potion/IPotionTypeRepresentation.java @@ -0,0 +1,50 @@ +package dev.ikx.rt.api.mods.contenttweaker.potion; + +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenGetter; +import stanhebben.zenscript.annotations.ZenMethod; +import stanhebben.zenscript.annotations.ZenSetter; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + + +@Deprecated +@SidedZenRegister(modDeps = "contenttweaker") +@ZenClass(IPotionTypeRepresentation.ZEN_CLASS) +public class IPotionTypeRepresentation { + + public static final String ZEN_CLASS = "mods.randomtweaker.cote.IPotionType"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, CTPotionRepresentation.ZEN_CLASS); + + public CTPotionTypeRepresentation ctPotionType; + + public IPotionTypeRepresentation(String unlocalizedName, IPotionRepresentation potion) { + this.ctPotionType = new CTPotionTypeRepresentation(unlocalizedName, potion.ctPotion); + } + + @ZenGetter("duration") + public int getDuration() { + return compact.call(() -> ctPotionType.duration); + } + + @ZenSetter("duration") + public void setDuration(int duration) { + compact.callVoid(() -> ctPotionType.duration = duration); + } + + @ZenGetter("amplifier") + public int getAmplifier() { + return compact.call(() -> ctPotionType.amplifier); + } + + @ZenSetter("amplifier") + public void setAmplifier(int amplifier) { + compact.callVoid(() -> ctPotionType.amplifier = amplifier); + } + + @ZenMethod + public void register() { + compact.callVoid(() -> ctPotionType.register(), "For compatibility reasons, please use the `createMcPotionType` method in version 1.5.x"); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/render/IBaubleRenderHelper.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/render/BaubleRenderHelper.java similarity index 87% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/render/IBaubleRenderHelper.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/render/BaubleRenderHelper.java index d904f817..2c775e91 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/render/IBaubleRenderHelper.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/render/BaubleRenderHelper.java @@ -1,21 +1,22 @@ -package ink.ikx.rt.api.mods.contenttweaker.render; +package dev.ikx.rt.api.mods.contenttweaker.render; import crafttweaker.api.item.IItemStack; import crafttweaker.api.player.IPlayer; -import ink.ikx.rt.Main; -import youyihj.zenutils.api.zenscript.SidedZenRegister; - +import dev.ikx.rt.Main; import stanhebben.zenscript.annotations.Optional; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; /** * @author superhelo */ @SidedZenRegister(modDeps = {"contenttweaker", "botania"}) -@ZenClass("mods.randomtweaker.render.IBaubleRenderHelper") -public abstract class IBaubleRenderHelper { +@ZenClass(BaubleRenderHelper.ZEN_CLASS) +public class BaubleRenderHelper { + + public static final String ZEN_CLASS = "mods.randomtweaker.render.BaubleRenderHelper"; @ZenMethod public static void bindTexture(String resourceLocation) { diff --git a/src/main/java/dev/ikx/rt/api/mods/contenttweaker/render/IBaubleRenderHelper.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/render/IBaubleRenderHelper.java new file mode 100644 index 00000000..a3edbfaa --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/render/IBaubleRenderHelper.java @@ -0,0 +1,73 @@ +package dev.ikx.rt.api.mods.contenttweaker.render; + +import crafttweaker.api.item.IItemStack; +import crafttweaker.api.player.IPlayer; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.Optional; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +/** + * @author superhelo + */ + +@Deprecated +@SidedZenRegister(modDeps = {"contenttweaker", "botania"}) +@ZenClass(IBaubleRenderHelper.ZEN_CLASS) +public class IBaubleRenderHelper { + + public static final String ZEN_CLASS = "mods.randomtweaker.render.IBaubleRenderHelper"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, BaubleRenderHelper.ZEN_CLASS); + + @ZenMethod + public static void bindTexture(String resourceLocation) { + compact.callVoid(() -> BaubleRenderHelper.bindTexture(resourceLocation)); + } + + @ZenMethod + public static void renderItem(IItemStack renderStack, @Optional(value = "NONE") String transformType) { + compact.callVoid(() -> BaubleRenderHelper.renderItem(renderStack, transformType)); + } + + @ZenMethod + public static void rotateIfSneaking(IPlayer player) { + compact.callVoid(() -> BaubleRenderHelper.rotateIfSneaking(player)); + } + + @ZenMethod + public static void translateToHeadLevel(IPlayer player) { + compact.callVoid(() -> BaubleRenderHelper.translateToHeadLevel(player)); + } + + @ZenMethod + public static void translateToFace() { + compact.callVoid(BaubleRenderHelper::translateToFace); + } + + @ZenMethod + public static void defaultTransforms() { + compact.callVoid(BaubleRenderHelper::defaultTransforms); + } + + @ZenMethod + public static void scale(double x, double y, double z) { + compact.callVoid(() -> BaubleRenderHelper.scale(x, y, z)); + } + + @ZenMethod + public static void rotate(float angle, float x, float y, float z) { + compact.callVoid(() -> BaubleRenderHelper.rotate(angle, x, y, z)); + } + + @ZenMethod + public static void translate(double x, double y, double z) { + compact.callVoid(() -> BaubleRenderHelper.translate(x, y, z)); + } + + @ZenMethod + public static void translateToChest() { + compact.callVoid(BaubleRenderHelper::translateToChest); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/CTSubTileEntityRepresentation.java similarity index 65% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityRepresentation.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/CTSubTileEntityRepresentation.java index 310d1b50..4cbd47eb 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityRepresentation.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/CTSubTileEntityRepresentation.java @@ -1,9 +1,8 @@ -package ink.ikx.rt.api.mods.contenttweaker.subtile; +package dev.ikx.rt.api.mods.contenttweaker.subtile; import crafttweaker.CraftTweakerAPI; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.contenttweaker.function.subtile.*; -import org.apache.commons.lang3.tuple.Pair; +import dev.ikx.rt.api.mods.contenttweaker.function.subtile.*; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; import stanhebben.zenscript.annotations.ZenProperty; @@ -13,7 +12,7 @@ @SidedZenRegister(modDeps = {"contenttweaker", "botania"}) @ZenClass("mods.randomtweaker.cote.ISubTileEntity") -public abstract class ISubTileEntityRepresentation { +public class CTSubTileEntityRepresentation { @ZenProperty public int color; @@ -40,36 +39,33 @@ public abstract class ISubTileEntityRepresentation { @ZenProperty public BlockActivated onBlockActivated; - protected ISubTileEntityRepresentation(int color, String unlocalizedName) { + protected CTSubTileEntityRepresentation(int color, String unlocalizedName) { this.color = color; this.unlocalizedName = unlocalizedName; } @ZenMethod - public void register(String typeName, boolean hasMini) { - if (Main.SUB_TILE_GENERATING_MAP.containsKey(unlocalizedName)) { + public void register(BotaniaManager.SubtileEntityType typeName, boolean hasMini) { + if (BotaniaManager.INSTANCE.getSubTileEntityMap().containsKey(unlocalizedName)) { CraftTweakerAPI.logError("All SubTileEntity must be unique. Key: contenttweaker:" + unlocalizedName + " is not.", new UnsupportedOperationException()); } else { - if (typeName.equals("functional")) { - Main.SUB_TILE_GENERATING_MAP.put(unlocalizedName, Pair.of(typeName, this)); - if (hasMini) - registerMini(this); - } else { - Main.SUB_TILE_GENERATING_MAP.put(unlocalizedName, Pair.of(typeName, this)); - } + if (typeName == BotaniaManager.SubtileEntityType.FUNCTIONAL && hasMini) + registerMini(this); BotaniaAPI.subtilesForCreativeMenu.add(unlocalizedName); + BotaniaManager.INSTANCE.registerSubtileEntity(unlocalizedName, typeName, this); } } - protected void registerMini(ISubTileEntityRepresentation subtile) { - Main.SUB_TILE_GENERATING_MAP.put(unlocalizedName + "Chibi", Pair.of("functional", this)); + protected void registerMini(CTSubTileEntityRepresentation subtile) { + BotaniaManager.INSTANCE.registerSubtileEntity(unlocalizedName + "Chibi", BotaniaManager.SubtileEntityType.FUNCTIONAL, subtile); + BotaniaAPI.subtilesForCreativeMenu.add(unlocalizedName + "Chibi"); BotaniaAPI.miniFlowers.put(unlocalizedName, unlocalizedName + "Chibi"); RecipeMiniFlower recipe = new RecipeMiniFlower(unlocalizedName + "Chibi", unlocalizedName, 2500); - BotaniaAPI.manaInfusionRecipes.add(recipe); BotaniaAPI.miniFlowerRecipes.add(recipe); + BotaniaAPI.manaInfusionRecipes.add(recipe); } } diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ExpandWorldForSubTile.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/ExpandWorldForSubTile.java similarity index 91% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ExpandWorldForSubTile.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/ExpandWorldForSubTile.java index 305cbd5f..b7125bcc 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ExpandWorldForSubTile.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/ExpandWorldForSubTile.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.contenttweaker.subtile; +package dev.ikx.rt.api.mods.contenttweaker.subtile; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; @@ -14,7 +14,7 @@ @SidedZenRegister(modDeps = {"contenttweaker", "botania"}) @ZenExpansion("crafttweaker.world.IWorld") -public abstract class ExpandWorldForSubTile { +public class ExpandWorldForSubTile { @ZenMethod public static ISubTileEntityInGame getSubTileEntityInGame(IWorld world, IBlockPos pos) { diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityInGame.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityInGame.java similarity index 78% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityInGame.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityInGame.java index 903b2ebc..24cb0099 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityInGame.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/ISubTileEntityInGame.java @@ -1,12 +1,10 @@ -package ink.ikx.rt.api.mods.contenttweaker.subtile; +package dev.ikx.rt.api.mods.contenttweaker.subtile; import crafttweaker.api.data.IData; import crafttweaker.api.world.IBlockPos; -import crafttweaker.mc1120.data.NBTConverter; -import ink.ikx.rt.api.internal.utils.ITileData; +import youyihj.zenutils.api.cotx.tile.TileData; import youyihj.zenutils.api.zenscript.SidedZenRegister; -import net.minecraft.nbt.NBTTagCompound; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenGetter; import stanhebben.zenscript.annotations.ZenMethod; @@ -28,14 +26,13 @@ public interface ISubTileEntityInGame { @ZenMethod @ZenGetter("data") default IData getCustomData() { - return this.getITileData().getData(); + return this.getTileData().getData(); } @ZenMethod @ZenSetter("data") default void setCustomData(IData data) { - ITileData.checkDataMap(data); - this.getITileData().readFromNBT((NBTTagCompound) NBTConverter.from(data)); + this.getTileData().setData(data); } @ZenMethod @@ -73,7 +70,7 @@ default void updateCustomData(IData data) { @ZenMethod IBlockPos getBindingForCrT(); - ITileData getITileData(); + TileData getTileData(); Object getInstance(); diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/functional/ISubTileEntityFunctionalRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/functional/CTSubTileEntityFunctionalRepresentation.java similarity index 53% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/functional/ISubTileEntityFunctionalRepresentation.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/functional/CTSubTileEntityFunctionalRepresentation.java index e1841b13..beeb45fd 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/functional/ISubTileEntityFunctionalRepresentation.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/functional/CTSubTileEntityFunctionalRepresentation.java @@ -1,6 +1,7 @@ -package ink.ikx.rt.api.mods.contenttweaker.subtile.functional; +package dev.ikx.rt.api.mods.contenttweaker.subtile.functional; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; import stanhebben.zenscript.annotations.ZenProperty; @@ -8,16 +9,16 @@ @SidedZenRegister(modDeps = {"contenttweaker", "botania"}) @ZenClass("mods.randomtweaker.cote.ISubTileEntityFunctional") -public abstract class ISubTileEntityFunctionalRepresentation extends ISubTileEntityRepresentation { +public class CTSubTileEntityFunctionalRepresentation extends CTSubTileEntityRepresentation { - private static final String TYPE_NAME = "functional"; + private static final BotaniaManager.SubtileEntityType TYPE_NAME = BotaniaManager.SubtileEntityType.FUNCTIONAL; @ZenProperty public boolean hasMini; @ZenProperty public int miniRange = 1; - protected ISubTileEntityFunctionalRepresentation(int color, String unlocalizedName) { + public CTSubTileEntityFunctionalRepresentation(int color, String unlocalizedName) { super(color, unlocalizedName); } diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/generating/ISubTileEntityGeneratingRepresentation.java b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/generating/CTSubTileEntityGeneratingRepresentation.java similarity index 58% rename from src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/generating/ISubTileEntityGeneratingRepresentation.java rename to src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/generating/CTSubTileEntityGeneratingRepresentation.java index 9efe12f3..b16db543 100644 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/subtile/generating/ISubTileEntityGeneratingRepresentation.java +++ b/src/main/java/dev/ikx/rt/api/mods/contenttweaker/subtile/generating/CTSubTileEntityGeneratingRepresentation.java @@ -1,8 +1,9 @@ -package ink.ikx.rt.api.mods.contenttweaker.subtile.generating; +package dev.ikx.rt.api.mods.contenttweaker.subtile.generating; -import ink.ikx.rt.api.mods.contenttweaker.function.subtile.CanGeneratePassively; -import ink.ikx.rt.api.mods.contenttweaker.function.subtile.PopulateDropStackNBTs; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.function.subtile.CanGeneratePassively; +import dev.ikx.rt.api.mods.contenttweaker.function.subtile.PopulateDropStackNBTs; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; import stanhebben.zenscript.annotations.ZenProperty; @@ -10,9 +11,9 @@ @SidedZenRegister(modDeps = {"contenttweaker", "botania"}) @ZenClass("mods.randomtweaker.cote.ISubTileEntityGenerating") -public abstract class ISubTileEntityGeneratingRepresentation extends ISubTileEntityRepresentation { +public class CTSubTileEntityGeneratingRepresentation extends CTSubTileEntityRepresentation { - private static final String TYPE_NAME = "generating"; + private static final BotaniaManager.SubtileEntityType TYPE_NAME = BotaniaManager.SubtileEntityType.GENERATING; @ZenProperty public boolean passiveFlower; @@ -27,7 +28,7 @@ public abstract class ISubTileEntityGeneratingRepresentation extends ISubTileEnt @ZenProperty public CanGeneratePassively canGeneratePassively; - protected ISubTileEntityGeneratingRepresentation(int color, String unlocalizedName) { + public CTSubTileEntityGeneratingRepresentation(int color, String unlocalizedName) { super(color, unlocalizedName); } diff --git a/src/main/java/ink/ikx/rt/api/mods/draconicevolution/IDraconicEvolutionFXHelper.java b/src/main/java/dev/ikx/rt/api/mods/draconicevolution/DraconicEvolutionFXHelper.java similarity index 81% rename from src/main/java/ink/ikx/rt/api/mods/draconicevolution/IDraconicEvolutionFXHelper.java rename to src/main/java/dev/ikx/rt/api/mods/draconicevolution/DraconicEvolutionFXHelper.java index a8a1f415..2fb8f27b 100644 --- a/src/main/java/ink/ikx/rt/api/mods/draconicevolution/IDraconicEvolutionFXHelper.java +++ b/src/main/java/dev/ikx/rt/api/mods/draconicevolution/DraconicEvolutionFXHelper.java @@ -1,22 +1,19 @@ -package ink.ikx.rt.api.mods.draconicevolution; +package dev.ikx.rt.api.mods.draconicevolution; import com.brandon3055.brandonscore.client.particle.BCEffectHandler; import com.brandon3055.brandonscore.lib.Vec3D; import crafttweaker.CraftTweakerAPI; -import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IVector3d; - import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; - -/** - * @author youyihj - */ +import youyihj.zenutils.api.zenscript.SidedZenRegister; @SidedZenRegister(modDeps = "draconicevolution") -@ZenClass("mods.randomtweaker.draconicevolution.IDraconicEvolutionFXHelper") -public class IDraconicEvolutionFXHelper { +@ZenClass(DraconicEvolutionFXHelper.ZEN_CLASS) +public class DraconicEvolutionFXHelper { + public static final String ZEN_CLASS = "mods.randomtweaker.draconicevolution.DraconicEvolutionFXHelper"; + @ZenMethod public static void spawnFX(int particleID, IVector3d pos, IVector3d speed, double viewRange, int... args) { Vec3D posA = new Vec3D(pos.getX(), pos.getY(), pos.getZ()); @@ -28,4 +25,5 @@ public static void spawnFX(int particleID, IVector3d pos, IVector3d speed, doubl public static void spawnFX(int particleID, IVector3d pos, IVector3d speed, int... args) { spawnFX(particleID, pos, speed, 32, args); } + } diff --git a/src/main/java/dev/ikx/rt/api/mods/draconicevolution/IDraconicEvolutionFXHelper.java b/src/main/java/dev/ikx/rt/api/mods/draconicevolution/IDraconicEvolutionFXHelper.java new file mode 100644 index 00000000..e2108d38 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/draconicevolution/IDraconicEvolutionFXHelper.java @@ -0,0 +1,31 @@ +package dev.ikx.rt.api.mods.draconicevolution; + +import crafttweaker.api.world.IVector3d; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +/** + * @author youyihj + */ + +@Deprecated +@SidedZenRegister(modDeps = "draconicevolution") +@ZenClass(IDraconicEvolutionFXHelper.ZEN_CLASS) +public class IDraconicEvolutionFXHelper { + + public static final String ZEN_CLASS = "mods.randomtweaker.draconicevolution.IDraconicEvolutionFXHelper"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, DraconicEvolutionFXHelper.ZEN_CLASS); + + @ZenMethod + public static void spawnFX(int particleID, IVector3d pos, IVector3d speed, double viewRange, int... args) { + compact.callVoid(() -> DraconicEvolutionFXHelper.spawnFX(particleID, pos, speed, viewRange, args)); + } + + @ZenMethod + public static void spawnFX(int particleID, IVector3d pos, IVector3d speed, int... args) { + compact.callVoid(() -> DraconicEvolutionFXHelper.spawnFX(particleID, pos, speed, args)); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/ftbultimine/IPlayerExpansionFTBU.java b/src/main/java/dev/ikx/rt/api/mods/ftbultimine/IPlayerExpansionFTBU.java similarity index 81% rename from src/main/java/ink/ikx/rt/api/mods/ftbultimine/IPlayerExpansionFTBU.java rename to src/main/java/dev/ikx/rt/api/mods/ftbultimine/IPlayerExpansionFTBU.java index a6e6234f..2f390671 100644 --- a/src/main/java/ink/ikx/rt/api/mods/ftbultimine/IPlayerExpansionFTBU.java +++ b/src/main/java/dev/ikx/rt/api/mods/ftbultimine/IPlayerExpansionFTBU.java @@ -1,13 +1,13 @@ -package ink.ikx.rt.api.mods.ftbultimine; +package dev.ikx.rt.api.mods.ftbultimine; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.player.IPlayer; -import ink.ikx.rt.impl.internal.capability.CapabilityRegistryHandler; -import ink.ikx.rt.impl.internal.capability.CapabilityRegistryHandler.FTBUltimineTag; -import ink.ikx.rt.impl.internal.network.NetworkManager; +import dev.ikx.rt.impl.mods.ftbultimine.capability.CapabilityRegistryHandler; +import dev.ikx.rt.impl.mods.ftbultimine.capability.CapabilityRegistryHandler.FTBUltimineTag; +import dev.ikx.rt.impl.mods.ftbultimine.network.NetworkManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -22,7 +22,7 @@ @SidedZenRegister(modDeps = "ftbultimine") @ZenExpansion("crafttweaker.player.IPlayer") @ZenClass("mods.randomtweaker.ftbultimine.IPlayer") -public abstract class IPlayerExpansionFTBU { +public class IPlayerExpansionFTBU { public static String langKey = null; @@ -30,12 +30,11 @@ public abstract class IPlayerExpansionFTBU { public static void setAllowFTBUltimine(IPlayer player, boolean flag) { EntityPlayer mcPlayer = CraftTweakerMC.getPlayer(player); if (!(mcPlayer instanceof EntityPlayerMP)) { - CraftTweakerAPI.logError("The IPlayer object is not an EntityPlayerMP object."); + CraftTweakerAPI.logError("The IPlayer instance is not an EntityPlayerMP instance."); return; } FTBUltimineTag capability = mcPlayer.getCapability(CapabilityRegistryHandler.FTB_ULTIMINE_CAPABILITY, null); Objects.requireNonNull(capability).setAllow(flag); - NetworkManager.FTBUltimineTag.sendClientCustomPacket(mcPlayer); // send to client } @@ -43,7 +42,7 @@ public static void setAllowFTBUltimine(IPlayer player, boolean flag) { public static boolean isAllowFTBUltimine(IPlayer player) { EntityPlayer mcPlayer = CraftTweakerMC.getPlayer(player); if (!(mcPlayer instanceof EntityPlayerMP)) { - CraftTweakerAPI.logError("The IPlayer object is not an EntityPlayerMP object."); + CraftTweakerAPI.logError("The IPlayer instance is not an EntityPlayerMP instance."); return false; } FTBUltimineTag capability = mcPlayer.getCapability(CapabilityRegistryHandler.FTB_ULTIMINE_CAPABILITY, null); diff --git a/src/main/java/dev/ikx/rt/api/mods/jei/IJeiUtilsWithBotania.java b/src/main/java/dev/ikx/rt/api/mods/jei/IJeiUtilsWithBotania.java new file mode 100644 index 00000000..0fe1718c --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/jei/IJeiUtilsWithBotania.java @@ -0,0 +1,24 @@ +package dev.ikx.rt.api.mods.jei; + +import dev.ikx.rt.api.mods.jei.elements.JEIElements; +import stanhebben.zenscript.annotations.Optional; +import stanhebben.zenscript.annotations.ZenExpansion; +import stanhebben.zenscript.annotations.ZenMethodStatic; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + + +@SidedZenRegister(modDeps = {"jei", "botania"}) +@ZenExpansion("mods.randomtweaker.jei.JEIUtils") +public class IJeiUtilsWithBotania { + + @ZenMethodStatic + public static JEIElements.JEIElementManaBar createJEIManaBarElement(int x, int y, int mana, @Optional int mode) { + return new JEIElements.JEIElementManaBar(x, y, mode, mana); + } + + @ZenMethodStatic + public static JEIElements.JEIElementManaBar createJEIManaBarElement(String elementName, int x, int y, int mana, @Optional int mode) { + return new JEIElements.JEIElementManaBar(elementName, x, y, mode, mana); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/jei/JEIExpansion.java b/src/main/java/dev/ikx/rt/api/mods/jei/JEIExpansion.java new file mode 100644 index 00000000..23b9c638 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/jei/JEIExpansion.java @@ -0,0 +1,47 @@ +package dev.ikx.rt.api.mods.jei; + +import crafttweaker.CraftTweakerAPI; +import crafttweaker.api.item.IItemStack; +import crafttweaker.api.minecraft.CraftTweakerMC; +import dev.ikx.rt.impl.mods.jei.JEIPlugin; +import youyihj.zenutils.api.zenscript.SidedZenRegister; +import dev.ikx.rt.api.mods.jei.core.JEIPanel; +import dev.ikx.rt.api.mods.jei.core.JEIRecipe; +import net.minecraft.item.ItemStack; + +import dev.ikx.rt.impl.mods.jei.impl.core.MCJeiPanel; +import dev.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; +import stanhebben.zenscript.annotations.ZenExpansion; +import stanhebben.zenscript.annotations.ZenMethodStatic; + +import java.util.Objects; + +@SidedZenRegister(modDeps = "jei") +@ZenExpansion("mods.jei.JEI") +public class JEIExpansion { + + @ZenMethodStatic + public static JEIPanel createJEI(String uid, String title) { + return new MCJeiPanel(uid, title); + } + + @ZenMethodStatic + public static JEIRecipe createJEIRecipe(String uid) { + return new MCJeiRecipe(uid); + } + + @Deprecated + @ZenMethodStatic + public static void addItemNBTSubtype(IItemStack stack) { + createItemNBTSubtype(stack); + CraftTweakerAPI.logWarning("Please use `createItemNBTSubtype` instead of `addItemNBTSubtype`, it will be removed in the version 1.6."); + } + + @ZenMethodStatic + public static void createItemNBTSubtype(IItemStack stack) { + ItemStack mcStack = CraftTweakerMC.getItemStack(stack); + Objects.requireNonNull(mcStack.getItem()); + JEIPlugin.subtypesToRegister.add(mcStack.getItem()); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/jei/JEIUtils.java b/src/main/java/dev/ikx/rt/api/mods/jei/JEIUtils.java new file mode 100644 index 00000000..453eb141 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/jei/JEIUtils.java @@ -0,0 +1,125 @@ +package dev.ikx.rt.api.mods.jei; + +import dev.ikx.rt.api.mods.jei.core.JEIBackground; +import dev.ikx.rt.api.mods.jei.elements.JEIElements; +import dev.ikx.rt.api.mods.jei.slots.JEISlotItem; +import dev.ikx.rt.api.mods.jei.slots.JEISlotLiquid; +import stanhebben.zenscript.annotations.Optional; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + + +@SidedZenRegister(modDeps = "jei") +@ZenClass("mods.randomtweaker.jei.JEIUtils") +public class JEIUtils { + + @ZenMethod + public static JEIBackground createBackground(int width, int height) { + return new JEIBackground(width, height); + } + + @ZenMethod + public static JEIBackground createBackground(int u, int v, int width, int height, String resourceName) { + return new JEIBackground(u, v, width, height, resourceName); + } + + //------------------------------------------------------------------------------------------- + + @ZenMethod + public static JEISlotLiquid createLiquidSlot(int x, int y, int width, int height, int capacityMb, boolean showCapacity, + boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { + return new JEISlotLiquid(x, y, isInput, hasBase, width, height, capacityMb, showCapacity); + } + + @ZenMethod + public static JEISlotLiquid createLiquidSlot(int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { + return createLiquidSlot(x, y, 16, 16, 1000, false, isInput, hasBase); + } + + @ZenMethod + public static JEISlotItem createItemSlot(int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { + return new JEISlotItem(x, y, isInput, hasBase); + } + + @ZenMethod + public static JEISlotLiquid createLiquidSlot(String slotName, int x, int y, int width, int height, int capacityMb, boolean showCapacity, + boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { + return new JEISlotLiquid(slotName, x, y, isInput, hasBase, width, height, capacityMb, showCapacity); + } + + @ZenMethod + public static JEISlotLiquid createLiquidSlot(String slotName, int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { + return createLiquidSlot(slotName, x, y, 16, 16, 1000, false, isInput, hasBase); + } + + @ZenMethod + public static JEISlotItem createItemSlot(String slotName, int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { + return new JEISlotItem(slotName, x, y, isInput, hasBase); + } + + //------------------------------------------------------------------------------------------- + + @ZenMethod + public static JEIElements.JEIElementItemInput createItemInputElement(int x, int y) { + return new JEIElements.JEIElementItemInput(x, y); + } + + @ZenMethod + public static JEIElements.JEIElementItemOutput createItemOutputElement(int x, int y) { + return new JEIElements.JEIElementItemOutput(x, y); + } + + @ZenMethod + public static JEIElements.JEIElementLiquid createLiquidElement(int x, int y, int width, int height) { + return new JEIElements.JEIElementLiquid(x, y, width, height); + } + + @ZenMethod + public static JEIElements.JEIElementFontInfo createFontInfoElement(String info, int x, int y, int color, @Optional int width, @Optional int height) { + return new JEIElements.JEIElementFontInfo(x, y, width, height, color, info); + } + + @ZenMethod + public static JEIElements.JEIElementArrow createArrowElement(int x, int y, int direction) { + return new JEIElements.JEIElementArrow(x, y, direction); + } + + @ZenMethod + public static JEIElements.JEIElementImage createImageElement(int x, int y, int width, int height, int u, int v, + String texture, int textureWidth, int textureHeight) { + return new JEIElements.JEIElementImage(u, v, x, y, width, height, texture, textureWidth, textureHeight); + } + + @ZenMethod + public static JEIElements.JEIElementItemInput createItemInputElement(String elementName, int x, int y) { + return new JEIElements.JEIElementItemInput(elementName, x, y); + } + + @ZenMethod + public static JEIElements.JEIElementItemOutput createItemOutputElement(String elementName, int x, int y) { + return new JEIElements.JEIElementItemOutput(elementName, x, y); + } + + @ZenMethod + public static JEIElements.JEIElementLiquid createLiquidElement(String elementName, int x, int y, int width, int height) { + return new JEIElements.JEIElementLiquid(elementName, x, y, width, height); + } + + @ZenMethod + public static JEIElements.JEIElementFontInfo createFontInfoElement(String elementName, String info, int x, int y, int color, @Optional int width, @Optional int height) { + return new JEIElements.JEIElementFontInfo(elementName, x, y, width, height, color, info); + } + + @ZenMethod + public static JEIElements.JEIElementArrow createArrowElement(String elementName, int x, int y, int direction) { + return new JEIElements.JEIElementArrow(elementName, x, y, direction); + } + + @ZenMethod + public static JEIElements.JEIElementImage createImageElement(String elementName, int x, int y, int width, int height, int u, int v, + String texture, int textureWidth, int textureHeight) { + return new JEIElements.JEIElementImage(elementName, u, v, x, y, width, height, texture, textureWidth, textureHeight); + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiBackground.java b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIBackground.java similarity index 69% rename from src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiBackground.java rename to src/main/java/dev/ikx/rt/api/mods/jei/core/JEIBackground.java index abc9c7bd..2f6db127 100644 --- a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiBackground.java +++ b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIBackground.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.jei.core; +package dev.ikx.rt.api.mods.jei.core; import youyihj.zenutils.api.zenscript.SidedZenRegister; @@ -7,8 +7,8 @@ @SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiBackground") -public abstract class IJeiBackground { +@ZenClass("mods.randomtweaker.jei.JEIBackground") +public class JEIBackground { @ZenProperty public int u; @@ -25,7 +25,7 @@ public abstract class IJeiBackground { @ZenProperty public String resourceName; - protected IJeiBackground(int u, int v, int width, int height, String resourceName) { + public JEIBackground(int u, int v, int width, int height, String resourceName) { this.u = u; this.v = v; this.width = width; @@ -33,7 +33,7 @@ protected IJeiBackground(int u, int v, int width, int height, String resourceNam this.resourceName = resourceName; } - protected IJeiBackground(int width, int height) { + public JEIBackground(int width, int height) { this.width = width; this.height = height; } diff --git a/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIPanel.java b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIPanel.java new file mode 100644 index 00000000..8651120d --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIPanel.java @@ -0,0 +1,62 @@ +package dev.ikx.rt.api.mods.jei.core; + +import youyihj.zenutils.api.zenscript.SidedZenRegister; +import crafttweaker.api.item.IItemStack; +import dev.ikx.rt.api.mods.jei.elements.JEIElement; +import dev.ikx.rt.api.mods.jei.slots.JEISlot; + +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; + + +@SidedZenRegister(modDeps = "jei") +@ZenClass("mods.randomtweaker.jei.JEIPanel") +public interface JEIPanel { + + @ZenMethod + JEIPanel setModid(String modid); + + @ZenMethod + JEIPanel setIcon(IItemStack icon); + + @ZenMethod + JEIPanel addSlot(JEISlot slot); + + @ZenMethod + JEIPanel setSlots(JEISlot[] slots); + + @ZenMethod + JEIPanel onTooltip(JEITooltip tooltip); + + @ZenMethod + JEIPanel addElement(JEIElement elements); + + @ZenMethod + JEIPanel setElements(JEIElement[] elements); + + @ZenMethod + JEIPanel addRecipeCatalyst(IItemStack stack); + + @ZenMethod + JEIPanel setRecipeCatalysts(IItemStack[] stacks); + + @ZenMethod + JEIPanel setBackground(JEIBackground background); + + @ZenMethod + JEISlot[] getJeiSlots(); + + @ZenMethod + JEISlot getJeiSlot(String slotName); + + @ZenMethod + JEIElement[] getJeiElements(); + + @ZenMethod + JEIElement getJeiElement(String elementName); + + @ZenMethod + void register(); + + void registerDirect(); +} diff --git a/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIRecipe.java b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIRecipe.java new file mode 100644 index 00000000..67933202 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEIRecipe.java @@ -0,0 +1,43 @@ +package dev.ikx.rt.api.mods.jei.core; + +import youyihj.zenutils.api.zenscript.SidedZenRegister; +import crafttweaker.api.item.IIngredient; +import dev.ikx.rt.api.mods.jei.elements.JEIElement; + +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; + + +@SidedZenRegister(modDeps = "jei") +@ZenClass("mods.randomtweaker.jei.JEIRecipe") +public interface JEIRecipe { + + @ZenMethod + JEIRecipe setInputs(IIngredient[] inputs); + + @ZenMethod + JEIRecipe setOutputs(IIngredient[] outputs); + + @ZenMethod + JEIRecipe setElements(JEIElement[] elements); + + @ZenMethod + JEIRecipe addInput(IIngredient input); + + @ZenMethod + JEIRecipe addOutput(IIngredient output); + + @ZenMethod + JEIRecipe addElement(JEIElement element); + + @ZenMethod + JEIRecipe onJEITooltip(JEITooltip tooltip); + + @ZenMethod + void build(); + + void buildDirect(); + + String getUid(); + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiTooltip.java b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEITooltip.java similarity index 64% rename from src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiTooltip.java rename to src/main/java/dev/ikx/rt/api/mods/jei/core/JEITooltip.java index a65cb458..9d7ea730 100644 --- a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiTooltip.java +++ b/src/main/java/dev/ikx/rt/api/mods/jei/core/JEITooltip.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.jei.core; +package dev.ikx.rt.api.mods.jei.core; import youyihj.zenutils.api.zenscript.SidedZenRegister; @@ -7,8 +7,8 @@ @SidedZenRegister(modDeps = "jei") @FunctionalInterface -@ZenClass("mods.randomtweaker.jei.IJeiTooltip") -public interface IJeiTooltip { +@ZenClass("mods.randomtweaker.jei.JEITooltip") +public interface JEITooltip { String[] action(int mouseX, int mouseY); diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/elements/IJeiElement.java b/src/main/java/dev/ikx/rt/api/mods/jei/elements/JEIElement.java similarity index 73% rename from src/main/java/ink/ikx/rt/api/mods/jei/elements/IJeiElement.java rename to src/main/java/dev/ikx/rt/api/mods/jei/elements/JEIElement.java index 4273e93e..b671d63f 100644 --- a/src/main/java/ink/ikx/rt/api/mods/jei/elements/IJeiElement.java +++ b/src/main/java/dev/ikx/rt/api/mods/jei/elements/JEIElement.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.jei.elements; +package dev.ikx.rt.api.mods.jei.elements; import youyihj.zenutils.api.zenscript.SidedZenRegister; @@ -10,8 +10,8 @@ @SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiElement") -public abstract class IJeiElement { +@ZenClass("mods.randomtweaker.jei.JEIElement") +public abstract class JEIElement { @ZenProperty public int u; @@ -34,14 +34,14 @@ public abstract class IJeiElement { @ZenProperty public String elementName; - protected IJeiElement(int x, int y, int width, int height) { + protected JEIElement(int x, int y, int width, int height) { this.x = x; this.y = y; this.width = width; this.height = height; } - protected IJeiElement(int u, int v, int x, int y, int width, int height) { + protected JEIElement(int u, int v, int x, int y, int width, int height) { this.u = u; this.v = v; this.x = x; @@ -50,7 +50,7 @@ protected IJeiElement(int u, int v, int x, int y, int width, int height) { this.height = height; } - protected IJeiElement(String elementName, int x, int y, int width, int height) { + protected JEIElement(String elementName, int x, int y, int width, int height) { this.elementName = elementName; this.x = x; @@ -59,7 +59,7 @@ protected IJeiElement(String elementName, int x, int y, int width, int height) { this.height = height; } - protected IJeiElement(String elementName, int u, int v, int x, int y, int width, int height) { + protected JEIElement(String elementName, int u, int v, int x, int y, int width, int height) { this.elementName = elementName; this.u = u; diff --git a/src/main/java/dev/ikx/rt/api/mods/jei/elements/JEIElements.java b/src/main/java/dev/ikx/rt/api/mods/jei/elements/JEIElements.java new file mode 100644 index 00000000..6ce00e6a --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/jei/elements/JEIElements.java @@ -0,0 +1,254 @@ +package dev.ikx.rt.api.mods.jei.elements; + +import crafttweaker.CraftTweakerAPI; +import dev.ikx.rt.impl.mods.jei.JEIPlugin; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.util.ResourceLocation; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenProperty; +import vazkii.botania.client.core.handler.HUDHandler; +import vazkii.botania.common.block.tile.mana.TilePool; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +public class JEIElements { + + @SidedZenRegister(modDeps = "jei") + @ZenClass("mods.randomtweaker.jei.JEIElementItemInput") + public static class JEIElementItemInput extends JEIElement { + + public JEIElementItemInput(int x, int y) { + super(x, y, 18, 18); + } + + public JEIElementItemInput(String elementName, int x, int y) { + super(elementName, x, y, 18, 18); + } + + @Override + public void render(Minecraft minecraft) { + minecraft.getTextureManager().bindTexture(new ResourceLocation(JEIPlugin.DEFAULT_TEXTURE)); + Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, width, height, 256, 256); + } + } + + + @SidedZenRegister(modDeps = "jei") + @ZenClass("mods.randomtweaker.jei.JEIElementItemOutput") + public static class JEIElementItemOutput extends JEIElement { + + public JEIElementItemOutput(int x, int y) { + super(80, 0, x, y, 27, 27); + } + + public JEIElementItemOutput(String elementName, int x, int y) { + super(elementName, 80, 0, x, y, 27, 27); + } + + @Override + public void render(Minecraft minecraft) { + minecraft.getTextureManager().bindTexture(new ResourceLocation(JEIPlugin.DEFAULT_TEXTURE)); + Gui.drawModalRectWithCustomSizedTexture(x - 4, y - 4, u, v, width, height, 256, 256); + } + + } + + + @SidedZenRegister(modDeps = "jei") + @ZenClass("mods.randomtweaker.jei.JEIElementLiquid") + public static class JEIElementLiquid extends JEIElement { + + public JEIElementLiquid(int x, int y, int width, int height) { + super(x, y, width, height); + } + + public JEIElementLiquid(String elementName, int x, int y, int width, int height) { + super(elementName, x, y, width, height); + } + + @Override + public void render(Minecraft minecraft) { + minecraft.getTextureManager().bindTexture(new ResourceLocation(JEIPlugin.DEFAULT_TEXTURE)); + if (width == 16 && height == 16) { + render(18, 0); + } else if (width == 34 && height == 16) { + render(0, 18); + } else if (width == 16 && height == 34) { + render(0, 36); + } + } + + private void render(int u, int v) { + Gui.drawModalRectWithCustomSizedTexture(x - 1, y - 1, u, v, width + 2, height + 2, 256, 256); + } + + } + + + @SidedZenRegister(modDeps = "jei") + @ZenClass("mods.randomtweaker.jei.IJEIElementArrow") + public static class JEIElementArrow extends JEIElement { + + @ZenProperty + public int direction; + + public JEIElementArrow(int x, int y, int direction) { + super(x, y, 0, 0); + this.direction = direction; + } + + public JEIElementArrow(String elementName, int x, int y, int direction) { + super(elementName, x, y, 0, 0); + this.direction = direction; + } + + @Override + public void render(Minecraft minecraft) { + minecraft.getTextureManager().bindTexture(new ResourceLocation(JEIPlugin.DEFAULT_TEXTURE)); + switch (direction) { + case 0: + render(36, 0, 22, 15); + break; + case 1: + render(36, 16, 22, 15); + break; + case 2: + render(64, 0, 15, 22); + break; + case 3: + render(64, 32, 15, 22); + break; + default: + CraftTweakerAPI.getLogger().logError("The direction isn't exist."); + break; + } + } + + private void render(int u, int v, int width, int height) { + Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, width, height, 256, 256); + } + + } + + + @SidedZenRegister(modDeps = "jei") + @ZenClass("mods.randomtweaker.jei.IJEIElementFontInfo") + public static class JEIElementFontInfo extends JEIElement { + + @ZenProperty + public int color; + + @ZenProperty + public String info; + + public JEIElementFontInfo(int x, int y, int width, int height, int color, String info) { + super(x, y, width, height); + this.info = info; + this.color = color; + } + + public JEIElementFontInfo(String elementName, int x, int y, int width, int height, int color, String info) { + super(elementName, x, y, width, height); + this.info = info; + this.color = color; + } + + @Override + public void render(Minecraft minecraft) { + FontRenderer fontRenderer = minecraft.fontRenderer; + fontRenderer.drawString(this.info, this.x, this.y, this.color); + } + } + + + @SidedZenRegister(modDeps = {"jei", "botania"}) + @ZenClass("mods.randomtweaker.jei.JEIElementManaBar") + public static class JEIElementManaBar extends JEIElement { + + @ZenProperty + public int mode; + + @ZenProperty + public int mana; + + private int multiplesLog = 0; + private int manaMax = TilePool.MAX_MANA_DILLUTED; + + public JEIElementManaBar(int x, int y, int mode, int mana) { + super(x, y, 0, 0); + this.mode = mode; + this.mana = mana; + } + + public JEIElementManaBar(String elementName, int x, int y, int mode, int mana) { + super(elementName, x, y, 0, 0); + this.mode = mode; + this.mana = mana; + } + + + @Override + public void render(Minecraft minecraft) { + handlerMode(mode); + HUDHandler.renderManaBar(x, y, 0x0000FF, 0.75F, mana, manaMax); + String sign = "x"; + if (multiplesLog < 0) + sign = "/"; + if (multiplesLog != 0) + minecraft.fontRenderer.drawString(sign + Math.pow(10, Math.abs(multiplesLog)), x + 103, y - 2, 0x8B8B8B); + } + + private void handlerMode(int mode) { + if (mode == 1) { + for (; mana > manaMax; manaMax *= 10) + multiplesLog += 1; + for (; (manaMax / mana > 50); manaMax /= 10) + multiplesLog -= 1; + } else { + manaMax = TilePool.MAX_MANA / 10; + multiplesLog = 0; + } + } + + } + + + @SidedZenRegister(modDeps = "jei") + @ZenClass("mods.randomtweaker.jei.JEIElementImage") + public static class JEIElementImage extends JEIElement { + + @ZenProperty + public String texture; + + @ZenProperty + public int textureHeight; + + @ZenProperty + public int textureWidth; + + public JEIElementImage(int u, int v, int x, int y, int width, int height, + String texture, int textureWidth, int textureHeight) { + super(u, v, x, y, width, height); + this.texture = texture; + this.textureWidth = textureWidth; + this.textureHeight = textureHeight; + } + + public JEIElementImage(String elementName, int u, int v, int x, int y, int width, int height, + String texture, int textureWidth, int textureHeight) { + super(elementName, u, v, x, y, width, height); + this.texture = texture; + this.textureWidth = textureWidth; + this.textureHeight = textureHeight; + } + + @Override + public void render(Minecraft minecraft) { + minecraft.getTextureManager().bindTexture(new ResourceLocation(texture)); + Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, width, height, textureWidth, textureHeight); + } + + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlot.java b/src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlot.java similarity index 75% rename from src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlot.java rename to src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlot.java index 23d90021..40f5ac7f 100644 --- a/src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlot.java +++ b/src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlot.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.jei.slots; +package dev.ikx.rt.api.mods.jei.slots; import youyihj.zenutils.api.zenscript.SidedZenRegister; @@ -10,8 +10,8 @@ @SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiSlot") -public abstract class IJeiSlot { +@ZenClass("mods.randomtweaker.jei.JEISlot") +public abstract class JEISlot { @ZenProperty public int x; @@ -28,14 +28,14 @@ public abstract class IJeiSlot { @ZenProperty public String slotName; - protected IJeiSlot(int x, int y, boolean isInput, boolean hasBase) { + protected JEISlot(int x, int y, boolean isInput, boolean hasBase) { this.x = x; this.y = y; this.isInput = isInput; this.hasBase = hasBase; } - protected IJeiSlot(String slotName, int x, int y, boolean isInput, boolean hasBase) { + protected JEISlot(String slotName, int x, int y, boolean isInput, boolean hasBase) { this.slotName = slotName; this.x = x; diff --git a/src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlotItem.java b/src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlotItem.java new file mode 100644 index 00000000..a35a545a --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlotItem.java @@ -0,0 +1,32 @@ +package dev.ikx.rt.api.mods.jei.slots; + +import dev.ikx.rt.api.mods.jei.JEIUtils; +import net.minecraft.client.Minecraft; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import stanhebben.zenscript.annotations.ZenClass; + + +@SidedZenRegister(modDeps = "jei") +@ZenClass("mods.randomtweaker.jei.JEISlotItem") +public class JEISlotItem extends JEISlot { + + public JEISlotItem(int x, int y, boolean isInput, boolean hasBase) { + super(x, y, isInput, hasBase); + } + + public JEISlotItem(String slotName, int x, int y, boolean isInput, boolean hasBase) { + super(slotName, x, y, isInput, hasBase); + } + + @Override + public void render(Minecraft minecraft) { + if (!hasBase) return; + if (isInput) { + JEIUtils.createItemInputElement(x, y).render(minecraft); + } else { + JEIUtils.createItemOutputElement(x, y).render(minecraft); + } + } + +} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlotLiquid.java b/src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlotLiquid.java similarity index 50% rename from src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlotLiquid.java rename to src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlotLiquid.java index f8ceb7e6..f8ddb662 100644 --- a/src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlotLiquid.java +++ b/src/main/java/dev/ikx/rt/api/mods/jei/slots/JEISlotLiquid.java @@ -1,5 +1,7 @@ -package ink.ikx.rt.api.mods.jei.slots; +package dev.ikx.rt.api.mods.jei.slots; +import dev.ikx.rt.api.mods.jei.JEIUtils; +import net.minecraft.client.Minecraft; import youyihj.zenutils.api.zenscript.SidedZenRegister; import stanhebben.zenscript.annotations.ZenClass; @@ -7,8 +9,8 @@ @SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiSlotLiquid") -public abstract class IJeiSlotLiquid extends IJeiSlot { +@ZenClass("mods.randomtweaker.jei.JEISlotLiquid") +public class JEISlotLiquid extends JEISlot { @ZenProperty public int width; @@ -22,8 +24,8 @@ public abstract class IJeiSlotLiquid extends IJeiSlot { @ZenProperty public boolean showCapacity; - protected IJeiSlotLiquid(int x, int y, boolean isInput, boolean hasBase, int width, - int height, int capacityMb, boolean showCapacity) { + public JEISlotLiquid(int x, int y, boolean isInput, boolean hasBase, int width, + int height, int capacityMb, boolean showCapacity) { super(x, y, isInput, hasBase); this.width = width; this.height = height; @@ -31,8 +33,8 @@ protected IJeiSlotLiquid(int x, int y, boolean isInput, boolean hasBase, int wid this.showCapacity = showCapacity; } - protected IJeiSlotLiquid(String slotName, int x, int y, boolean isInput, boolean hasBase, int width, - int height, int capacityMb, boolean showCapacity) { + public JEISlotLiquid(String slotName, int x, int y, boolean isInput, boolean hasBase, int width, + int height, int capacityMb, boolean showCapacity) { super(slotName, x, y, isInput, hasBase); this.width = width; @@ -40,4 +42,11 @@ protected IJeiSlotLiquid(String slotName, int x, int y, boolean isInput, boolean this.capacityMb = capacityMb; this.showCapacity = showCapacity; } + + @Override + public void render(Minecraft minecraft) { + if (!hasBase) return; + JEIUtils.createLiquidElement(x, y, width, height).render(minecraft); + } + } diff --git a/src/main/java/ink/ikx/rt/api/mods/modtweaker/ExpandCTAspect.java b/src/main/java/dev/ikx/rt/api/mods/modtweaker/ExpandCTAspect.java similarity index 88% rename from src/main/java/ink/ikx/rt/api/mods/modtweaker/ExpandCTAspect.java rename to src/main/java/dev/ikx/rt/api/mods/modtweaker/ExpandCTAspect.java index 101cf1d2..5822a117 100644 --- a/src/main/java/ink/ikx/rt/api/mods/modtweaker/ExpandCTAspect.java +++ b/src/main/java/dev/ikx/rt/api/mods/modtweaker/ExpandCTAspect.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.api.mods.modtweaker; +package dev.ikx.rt.api.mods.modtweaker; import com.blamejared.compat.thaumcraft.handlers.aspects.CTAspect; -import ink.ikx.rt.api.mods.thaumcraft.IAspect; +import dev.ikx.rt.api.mods.thaumcraft.IAspect; import youyihj.zenutils.api.zenscript.SidedZenRegister; import stanhebben.zenscript.annotations.ZenCaster; diff --git a/src/main/java/ink/ikx/rt/impl/mods/naturesaura/MCAuraChunk.java b/src/main/java/dev/ikx/rt/api/mods/naturesaura/CTAuraChunk.java similarity index 56% rename from src/main/java/ink/ikx/rt/impl/mods/naturesaura/MCAuraChunk.java rename to src/main/java/dev/ikx/rt/api/mods/naturesaura/CTAuraChunk.java index d5447da0..06caa8b3 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/naturesaura/MCAuraChunk.java +++ b/src/main/java/dev/ikx/rt/api/mods/naturesaura/CTAuraChunk.java @@ -1,42 +1,47 @@ -package ink.ikx.rt.impl.mods.naturesaura; +package dev.ikx.rt.api.mods.naturesaura; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; import crafttweaker.api.world.IWorld; -import ink.ikx.rt.api.mods.naturesaura.IAuraChunk; +import de.ellpeck.naturesaura.api.aura.chunk.IAuraChunk; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; -public class MCAuraChunk implements IAuraChunk { +@ZenClass(CTAuraChunk.ZEN_CLASS) +@SidedZenRegister(modDeps = "naturesaura") +public class CTAuraChunk { - private final de.ellpeck.naturesaura.api.aura.chunk.IAuraChunk auraChunk; + public static final String ZEN_CLASS = "mods.randomtweaker.naturesaura.AuraChunk"; - public MCAuraChunk(IWorld world, IBlockPos pos) { - this.auraChunk = de.ellpeck.naturesaura.api.aura.chunk.IAuraChunk.getAuraChunk( - CraftTweakerMC.getWorld(world), CraftTweakerMC.getBlockPos(pos)); + private final IAuraChunk auraChunk; + + public CTAuraChunk(IWorld world, IBlockPos pos) { + this.auraChunk = IAuraChunk.getAuraChunk(CraftTweakerMC.getWorld(world), CraftTweakerMC.getBlockPos(pos)); } - @Override + @ZenMethod public int drainAura(IBlockPos pos, int amount) { return auraChunk.drainAura(CraftTweakerMC.getBlockPos(pos), amount); } - @Override + @ZenMethod public int drainAura(IBlockPos pos, int amount, boolean aimForZero, boolean simulate) { return auraChunk.drainAura(CraftTweakerMC.getBlockPos(pos), amount, aimForZero, simulate); } - @Override + @ZenMethod public int storeAura(IBlockPos pos, int amount) { return auraChunk.storeAura(CraftTweakerMC.getBlockPos(pos), amount); } - @Override + @ZenMethod public int storeAura(IBlockPos pos, int amount, boolean aimForZero, boolean simulate) { return auraChunk.storeAura(CraftTweakerMC.getBlockPos(pos), amount, aimForZero, simulate); } - @Override + @ZenMethod public int getDrainSpot(IBlockPos pos) { return auraChunk.getDrainSpot(CraftTweakerMC.getBlockPos(pos)); } - } diff --git a/src/main/java/ink/ikx/rt/api/mods/naturesaura/IAuraChunk.java b/src/main/java/dev/ikx/rt/api/mods/naturesaura/IAuraChunk.java similarity index 93% rename from src/main/java/ink/ikx/rt/api/mods/naturesaura/IAuraChunk.java rename to src/main/java/dev/ikx/rt/api/mods/naturesaura/IAuraChunk.java index 338b7de9..577ab80f 100644 --- a/src/main/java/ink/ikx/rt/api/mods/naturesaura/IAuraChunk.java +++ b/src/main/java/dev/ikx/rt/api/mods/naturesaura/IAuraChunk.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.naturesaura; +package dev.ikx.rt.api.mods.naturesaura; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.world.IBlockPos; @@ -7,6 +7,7 @@ import stanhebben.zenscript.annotations.ZenMethod; +@Deprecated @SidedZenRegister(modDeps = "naturesaura") @ZenClass("mods.randomtweaker.naturesaura.IAuraChunk") public interface IAuraChunk { diff --git a/src/main/java/ink/ikx/rt/api/mods/naturesaura/IWorldExpansionNa.java b/src/main/java/dev/ikx/rt/api/mods/naturesaura/IWorldExpansionNa.java similarity index 88% rename from src/main/java/ink/ikx/rt/api/mods/naturesaura/IWorldExpansionNa.java rename to src/main/java/dev/ikx/rt/api/mods/naturesaura/IWorldExpansionNa.java index 6f2a271d..3b2fd1ce 100644 --- a/src/main/java/ink/ikx/rt/api/mods/naturesaura/IWorldExpansionNa.java +++ b/src/main/java/dev/ikx/rt/api/mods/naturesaura/IWorldExpansionNa.java @@ -1,26 +1,31 @@ -package ink.ikx.rt.api.mods.naturesaura; +package dev.ikx.rt.api.mods.naturesaura; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; import crafttweaker.api.world.IWorld; -import ink.ikx.rt.impl.mods.naturesaura.MCAuraChunk; +import dev.ikx.rt.impl.mods.naturesaura.MCAuraChunk; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenExpansion; import stanhebben.zenscript.annotations.ZenMethod; - @SidedZenRegister(modDeps = "naturesaura") @ZenExpansion("crafttweaker.world.IWorld") @ZenClass("mods.randomtweaker.naturesaura.IWorld") -public abstract class IWorldExpansionNa { +public class IWorldExpansionNa { @ZenMethod + @Deprecated public static IAuraChunk getAuraChunk(IWorld world, IBlockPos pos) { return new MCAuraChunk(world, pos); } + @ZenMethod + public static CTAuraChunk getAuraChunkInGame(IWorld world, IBlockPos pos) { + return new CTAuraChunk(world, pos); + } + @ZenMethod public static IBlockPos getHighestSpot(IWorld world, IBlockPos pos, int radius, IBlockPos defaultSpot) { return CraftTweakerMC.getIBlockPos(de.ellpeck.naturesaura.api.aura.chunk.IAuraChunk.getHighestSpot( diff --git a/src/main/java/ink/ikx/rt/api/mods/tconstruct/IBook.java b/src/main/java/dev/ikx/rt/api/mods/tconstruct/Book.java similarity index 70% rename from src/main/java/ink/ikx/rt/api/mods/tconstruct/IBook.java rename to src/main/java/dev/ikx/rt/api/mods/tconstruct/Book.java index 2a2784a2..de0400e9 100644 --- a/src/main/java/ink/ikx/rt/api/mods/tconstruct/IBook.java +++ b/src/main/java/dev/ikx/rt/api/mods/tconstruct/Book.java @@ -1,14 +1,15 @@ -package ink.ikx.rt.api.mods.tconstruct; +package dev.ikx.rt.api.mods.tconstruct; import com.google.common.base.Preconditions; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.Main; -import ink.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.internal.config.RTConfig; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.reload.Reloadable; +import youyihj.zenutils.api.util.ReflectionInvoked; import youyihj.zenutils.api.zenscript.SidedZenRegister; /** @@ -19,8 +20,10 @@ */ @SidedZenRegister(modDeps = "tconstruct") -@ZenClass("mods.randomtweaker.tconstruct.IBook") -public abstract class IBook { +@ZenClass(Book.ZEN_CLASS) +public class Book { + + public static final String ZEN_CLASS = "mods.randomtweaker.tconstruct.Book"; @ZenMethod public static void addHiddenMaterial(String material) { @@ -44,6 +47,7 @@ private static void checkConfig() { Preconditions.checkArgument(RTConfig.Tconstruct.iconModification, "Please change Tconstruct iconModification config to true."); } + @Reloadable public static class AddHiddenMaterialAction implements IAction { private final String material; @@ -52,9 +56,14 @@ public AddHiddenMaterialAction(String material) { this.material = material; } + @ReflectionInvoked + public void undo() { + TConstructManager.INSTANCE.getHiddenMaterialList().remove(this.material); + } + @Override public void apply() { - Main.HIDDEN_MATERIAL_LIST.add(this.material); + TConstructManager.INSTANCE.getHiddenMaterialList().add(this.material); } @Override @@ -64,7 +73,7 @@ public String describe() { @Override public boolean validate() { - return RTConfig.Tconstruct.iconModification && !Main.HIDDEN_MATERIAL_LIST.contains(this.material); + return RTConfig.Tconstruct.iconModification && !TConstructManager.INSTANCE.getHiddenMaterialList().contains(this.material); } @Override @@ -76,6 +85,7 @@ public String describeInvalid() { } } + @Reloadable public static class ChangeMaterialItem implements IAction { private final String material; @@ -86,9 +96,14 @@ public ChangeMaterialItem(String material, IItemStack item) { this.item = item; } + @ReflectionInvoked + public void undo() { + TConstructManager.INSTANCE.unregisterShowItem(this.material, CraftTweakerMC.getItemStack(this.item)); + } + @Override public void apply() { - Main.MATERIAL_SHOW_ITEM_MAP.put(this.material, CraftTweakerMC.getItemStack(this.item)); + TConstructManager.INSTANCE.registerShowItem(this.material, CraftTweakerMC.getItemStack(this.item)); } @Override @@ -98,7 +113,8 @@ public String describe() { @Override public boolean validate() { - return RTConfig.Tconstruct.iconModification && !Main.MATERIAL_SHOW_ITEM_MAP.containsKey(this.material); + return RTConfig.Tconstruct.iconModification && + !TConstructManager.INSTANCE.getMaterialShowItemMap().containsKey(this.material); } @Override @@ -108,8 +124,10 @@ public String describeInvalid() { } return "Material " + this.material + " is already changed"; } + } + @Reloadable public static class SetMaterialPriority implements IAction { private final String material; @@ -120,9 +138,15 @@ public SetMaterialPriority(String material, int priority) { this.priority = priority; } + + @ReflectionInvoked + public void undo() { + TConstructManager.INSTANCE.unregisterPriority(this.material, this.priority); + } + @Override public void apply() { - Main.MATERIAL_PRIORITY_MAP.put(this.material, this.priority); + TConstructManager.INSTANCE.registerPriority(this.material, this.priority); } @Override @@ -132,7 +156,8 @@ public String describe() { @Override public boolean validate() { - return RTConfig.Tconstruct.iconModification && !Main.MATERIAL_PRIORITY_MAP.containsKey(this.material); + return RTConfig.Tconstruct.iconModification && + !TConstructManager.INSTANCE.getMaterialPriorityMap().containsKey(this.material); } @Override diff --git a/src/main/java/dev/ikx/rt/api/mods/tconstruct/IBook.java b/src/main/java/dev/ikx/rt/api/mods/tconstruct/IBook.java new file mode 100644 index 00000000..067ac121 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/tconstruct/IBook.java @@ -0,0 +1,39 @@ +package dev.ikx.rt.api.mods.tconstruct; + +import crafttweaker.api.item.IItemStack; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +/** + * Created by IntelliJ IDEA. + *

+ * @Author : wdcftgg + * @create 2023/10/3 19:06 + */ + +@SidedZenRegister(modDeps = "tconstruct") +@ZenClass(IBook.ZEN_CLASS) +@Deprecated +public class IBook { + + public static final String ZEN_CLASS = "mods.randomtweaker.tconstruct.IBook"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, Book.ZEN_CLASS); + + @ZenMethod + public static void addHiddenMaterial(String material) { + compact.callVoid(() -> Book.addHiddenMaterial(material)); + } + + @ZenMethod + public static void changeMaterialItem(String material, IItemStack item) { + compact.callVoid(() -> Book.changeMaterialItem(material, item)); + } + + @ZenMethod + public static void setMaterialPriority(String material, int priority) { + compact.callVoid(() -> Book.setMaterialPriority(material, priority)); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/tconstruct/TConstructManager.java b/src/main/java/dev/ikx/rt/api/mods/tconstruct/TConstructManager.java new file mode 100644 index 00000000..06776245 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/tconstruct/TConstructManager.java @@ -0,0 +1,45 @@ +package dev.ikx.rt.api.mods.tconstruct; + +import com.google.common.collect.Lists; +import net.minecraft.item.ItemStack; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TConstructManager { + + public static TConstructManager INSTANCE = new TConstructManager(); + + private final List hiddenMaterialList = Lists.newArrayList(); + private final Map materialPriorityMap = new HashMap<>(); + private final Map materialShowItemMap = new HashMap<>(); + + public List getHiddenMaterialList() { + return hiddenMaterialList; + } + + public void registerPriority(String material, int priority) { + materialPriorityMap.put(material, priority); + } + + public void unregisterPriority(String material, int priority) { + materialPriorityMap.remove(material, priority); + } + + public Map getMaterialPriorityMap() { + return materialPriorityMap; + } + + public void registerShowItem(String material, ItemStack item) { + materialShowItemMap.put(material, item); + } + + public void unregisterShowItem(String material, ItemStack item) { + materialShowItemMap.remove(material, item); + } + + public Map getMaterialShowItemMap() { + return materialShowItemMap; + } +} diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/IAspect.java b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/IAspect.java similarity index 92% rename from src/main/java/ink/ikx/rt/api/mods/thaumcraft/IAspect.java rename to src/main/java/dev/ikx/rt/api/mods/thaumcraft/IAspect.java index 43c0a171..3cae4524 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/IAspect.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/IAspect.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.api.mods.thaumcraft; +package dev.ikx.rt.api.mods.thaumcraft; import crafttweaker.CraftTweakerAPI; import youyihj.zenutils.api.zenscript.SidedZenRegister; -import ink.ikx.rt.impl.mods.thaumcraft.MCAspect; +import dev.ikx.rt.impl.mods.thaumcraft.MCAspect; import org.apache.commons.lang3.StringUtils; import stanhebben.zenscript.annotations.*; import thaumcraft.api.aspects.Aspect; @@ -12,7 +12,6 @@ @SidedZenRegister(modDeps = "thaumcraft") @ZenClass("mods.randomtweaker.thaumcraft.IAspect") public interface IAspect { - static IAspect of(Aspect aspect) { return new MCAspect(aspect); } diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/IAspectList.java b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/IAspectList.java similarity index 94% rename from src/main/java/ink/ikx/rt/api/mods/thaumcraft/IAspectList.java rename to src/main/java/dev/ikx/rt/api/mods/thaumcraft/IAspectList.java index 52a77ad1..43819a10 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/IAspectList.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/IAspectList.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.api.mods.thaumcraft; +package dev.ikx.rt.api.mods.thaumcraft; import youyihj.zenutils.api.zenscript.SidedZenRegister; -import ink.ikx.rt.impl.mods.thaumcraft.MCAspectList; +import dev.ikx.rt.impl.mods.thaumcraft.MCAspectList; import stanhebben.zenscript.annotations.*; import thaumcraft.api.aspects.AspectList; @@ -11,7 +11,6 @@ @ZenClass("mods.randomtweaker.thaumcraft.IAspectList") @IterableSimple("mods.randomtweaker.thaumcraft.IAspect") public interface IAspectList extends Iterable { - static IAspectList of(AspectList list) { return new MCAspectList(list); } diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspect.java b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspect.java similarity index 90% rename from src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspect.java rename to src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspect.java index a8014f27..b1828bd3 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspect.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspect.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.api.mods.thaumcraft.expand; +package dev.ikx.rt.api.mods.thaumcraft.expand; import com.blamejared.compat.thaumcraft.handlers.aspects.CTAspect; import com.blamejared.compat.thaumcraft.handlers.aspects.CTAspectStack; -import ink.ikx.rt.api.mods.thaumcraft.IAspect; +import dev.ikx.rt.api.mods.thaumcraft.IAspect; import youyihj.zenutils.api.zenscript.SidedZenRegister; import stanhebben.zenscript.annotations.ZenCaster; diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspectList.java b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspectList.java similarity index 93% rename from src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspectList.java rename to src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspectList.java index f486a653..b6246788 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspectList.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIAspectList.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.api.mods.thaumcraft.expand; +package dev.ikx.rt.api.mods.thaumcraft.expand; import com.blamejared.compat.thaumcraft.handlers.aspects.CTAspectStack; -import ink.ikx.rt.api.mods.thaumcraft.IAspectList; +import dev.ikx.rt.api.mods.thaumcraft.IAspectList; import youyihj.zenutils.api.zenscript.SidedZenRegister; import stanhebben.zenscript.annotations.ZenClass; diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIEntity.java b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIEntity.java similarity index 90% rename from src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIEntity.java rename to src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIEntity.java index e46e37be..737ef97e 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIEntity.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIEntity.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.api.mods.thaumcraft.expand; +package dev.ikx.rt.api.mods.thaumcraft.expand; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.entity.IEntity; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.thaumcraft.IAspectList; +import dev.ikx.rt.api.mods.thaumcraft.IAspectList; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenExpansion; diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIItemStack.java b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIItemStack.java similarity index 88% rename from src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIItemStack.java rename to src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIItemStack.java index 2d4ed1b9..7296fc67 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIItemStack.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIItemStack.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.api.mods.thaumcraft.expand; +package dev.ikx.rt.api.mods.thaumcraft.expand; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.thaumcraft.IAspectList; +import dev.ikx.rt.api.mods.thaumcraft.IAspectList; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenExpansion; diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIPlayer.java b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIPlayer.java similarity index 97% rename from src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIPlayer.java rename to src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIPlayer.java index 574cd12d..fbaa68ae 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumcraft/expand/ExpandIPlayer.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumcraft/expand/ExpandIPlayer.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.mods.thaumcraft.expand; +package dev.ikx.rt.api.mods.thaumcraft.expand; import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.minecraft.CraftTweakerMC; @@ -20,7 +20,6 @@ import java.util.Objects; - @SidedZenRegister(modDeps = "thaumcraft") @ZenExpansion("crafttweaker.player.IPlayer") @ZenClass("mods.randomtweaker.thaumcraft.IPlayer") diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumicadditions/IFluxConcentrator.java b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/FluxConcentrator.java similarity index 89% rename from src/main/java/ink/ikx/rt/api/mods/thaumicadditions/IFluxConcentrator.java rename to src/main/java/dev/ikx/rt/api/mods/thaumicadditions/FluxConcentrator.java index f31d56ce..712f6923 100644 --- a/src/main/java/ink/ikx/rt/api/mods/thaumicadditions/IFluxConcentrator.java +++ b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/FluxConcentrator.java @@ -1,26 +1,27 @@ -package ink.ikx.rt.api.mods.thaumicadditions; +package dev.ikx.rt.api.mods.thaumicadditions; import com.google.common.collect.Maps; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; -import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.api.block.IBlockState; import crafttweaker.api.item.IIngredient; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.impl.internal.utils.InternalUtils; - +import dev.ikx.rt.impl.internal.utils.InternalUtils; import org.zeith.thaumicadditions.api.RecipesFluxConcentrator; import stanhebben.zenscript.annotations.Optional; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; import java.util.Map; @SidedZenRegister(modDeps = "thaumadditions") -@ZenClass("mods.randomtweaker.thaumadditions.IFluxConcentrator") -public abstract class IFluxConcentrator { +@ZenClass(FluxConcentrator.ZEN_CLASS) +public class FluxConcentrator { + + public static final String ZEN_CLASS = "mods.randomtweaker.thaumadditions.FluxConcentrator"; public static final Map LATE_REMOVES = Maps.newHashMap(); @@ -51,7 +52,7 @@ public static void removeRecipes(IItemStack output, @Optional boolean isRemoveAl } else if (!output.isItemBlock()) { CraftTweakerAPI.logError("input is not a block!"); } else { - IFluxConcentrator.removeRecipes(CraftTweakerMC.getBlockState(InternalUtils.getStateFromStack(output)), isRemoveAll); + FluxConcentrator.removeRecipes(CraftTweakerMC.getBlockState(InternalUtils.getStateFromStack(output)), isRemoveAll); } } @@ -64,6 +65,7 @@ public static void removeRecipes(IBlockState output, @Optional boolean isRemoveA } } + // Reloading this recipe would be very hack, so we don't support it! public static class AddRecipeAction implements IAction { private final IBlockState output; @@ -119,7 +121,7 @@ public RemoveRecipeAction(IBlockState output, boolean isRemoveAll) { @Override public void apply() { - IFluxConcentrator.LATE_REMOVES.put(output, isRemoveAll); + FluxConcentrator.LATE_REMOVES.put(output, isRemoveAll); } @Override diff --git a/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/IEdibleAspect.java b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/IEdibleAspect.java new file mode 100644 index 00000000..1db3f42e --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/IEdibleAspect.java @@ -0,0 +1,45 @@ +package dev.ikx.rt.api.mods.thaumicadditions; + +import crafttweaker.api.item.IItemStack; +import dev.ikx.rt.api.mods.thaumcraft.IAspect; +import dev.ikx.rt.api.mods.thaumcraft.IAspectList; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + + +@Deprecated +@SidedZenRegister(modDeps = "thaumadditions") +@ZenClass(IEdibleAspect.ZEN_CLASS) +public abstract class IEdibleAspect { + + public static final String ZEN_CLASS = "mods.randomtweaker.thaumadditions.IEdibleAspect"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, MCEdibleAspect.ZEN_CLASS); + + @ZenMethod + public static void addEatCall(IAspect aspect, MCEdibleAspect.EatFunction function) { + compact.callVoid(() -> MCEdibleAspect.addEatCall(aspect, function)); + } + + @ZenMethod + public static void addAdvancedEatCall(IAspect aspect, MCEdibleAspect.EatFunctionWithEntity function) { + compact.callVoid(() -> MCEdibleAspect.addAdvancedEatCall(aspect, function)); + } + + @ZenMethod + public static void removeEatCall(IAspect aspect) { + compact.callVoid(() -> MCEdibleAspect.removeEatCall(aspect)); + } + + @ZenMethod + public static IItemStack applyToFoodStack(IItemStack stack, IAspectList aspects) { + return compact.call(() -> MCEdibleAspect.applyToFoodStack(stack, aspects)); + } + + @ZenMethod + public static IAspectList getSalt(IItemStack stack) { + return compact.call(() -> MCEdibleAspect.getSalt(stack)); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/IFluxConcentrator.java b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/IFluxConcentrator.java new file mode 100644 index 00000000..bf79ff31 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/IFluxConcentrator.java @@ -0,0 +1,41 @@ +package dev.ikx.rt.api.mods.thaumicadditions; + +import crafttweaker.api.block.IBlockState; +import crafttweaker.api.item.IIngredient; +import crafttweaker.api.item.IItemStack; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; +import stanhebben.zenscript.annotations.Optional; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + + +@Deprecated +@SidedZenRegister(modDeps = "thaumadditions") +@ZenClass(IFluxConcentrator.ZEN_CLASS) +public abstract class IFluxConcentrator { + + public static final String ZEN_CLASS = "mods.randomtweaker.thaumadditions.IFluxConcentrator"; + public static DeprecatedCompact compact = new DeprecatedCompact(ZEN_CLASS, FluxConcentrator.ZEN_CLASS); + + @ZenMethod + public static void addRecipes(IIngredient input, IItemStack output) { + compact.callVoid(() -> FluxConcentrator.addRecipes(input, output)); + } + + @ZenMethod + public static void addRecipes(IBlockState input, IBlockState output) { + compact.callVoid(() -> FluxConcentrator.addRecipes(input, output)); + } + + @ZenMethod + public static void removeRecipes(IItemStack output, @Optional boolean isRemoveAll) { + compact.callVoid(() -> FluxConcentrator.removeRecipes(output, isRemoveAll)); + } + + @ZenMethod + public static void removeRecipes(IBlockState output, @Optional boolean isRemoveAll) { + compact.callVoid(() -> FluxConcentrator.removeRecipes(output, isRemoveAll)); + } + +} diff --git a/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/MCEdibleAspect.java b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/MCEdibleAspect.java new file mode 100644 index 00000000..a3ed9dc0 --- /dev/null +++ b/src/main/java/dev/ikx/rt/api/mods/thaumicadditions/MCEdibleAspect.java @@ -0,0 +1,160 @@ +package dev.ikx.rt.api.mods.thaumicadditions; + +import crafttweaker.CraftTweakerAPI; +import crafttweaker.IAction; +import crafttweaker.api.entity.IEntityLivingBase; +import crafttweaker.api.item.IItemStack; +import crafttweaker.api.minecraft.CraftTweakerMC; +import crafttweaker.api.potions.IPotionEffect; +import dev.ikx.rt.api.mods.thaumcraft.IAspect; +import dev.ikx.rt.api.mods.thaumcraft.IAspectList; +import net.minecraft.entity.EntityLivingBase; +import org.zeith.thaumicadditions.api.EdibleAspect; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; +import youyihj.zenutils.api.reload.Reloadable; +import youyihj.zenutils.api.util.ReflectionInvoked; +import youyihj.zenutils.api.zenscript.SidedZenRegister; + +import java.util.function.BiFunction; + +@Deprecated +@SidedZenRegister(modDeps = "thaumadditions") +@ZenClass(MCEdibleAspect.ZEN_CLASS) +public class MCEdibleAspect { + + public static final String ZEN_CLASS = "mods.randomtweaker.thaumadditions.EdibleAspect"; + + @ZenMethod + public static void addEatCall(IAspect aspect, EatFunction function) { + CraftTweakerAPI.apply(new AddEatCall(aspect, function)); + } + + @ZenMethod + public static void addAdvancedEatCall(IAspect aspect, EatFunctionWithEntity function) { + CraftTweakerAPI.apply(new AddAdvancedEatCall(aspect, function)); + } + + @ZenMethod + public static void removeEatCall(IAspect aspect) { + CraftTweakerAPI.apply(new RemoveEatCall(aspect)); + } + + @ZenMethod + public static IItemStack applyToFoodStack(IItemStack stack, IAspectList aspects) { + return CraftTweakerMC.getIItemStack(EdibleAspect.applyToFoodStack(CraftTweakerMC.getItemStack(stack), aspects.getInternal())); + } + + @ZenMethod + public static IAspectList getSalt(IItemStack stack) { + return IAspectList.of(EdibleAspect.getSalt(CraftTweakerMC.getItemStack(stack))); + } + + private static void RemoveIf(IAspect aspect) { + EdibleAspect.EAT_FUNCTIONS.entrySet().removeIf(entry -> entry.getKey().getTag().equals(aspect.getInternal().getTag())); + } + + @Reloadable + public static class AddEatCall implements IAction { + + private final IAspect aspect; + private final EatFunction function; + + public AddEatCall(IAspect aspect, EatFunction function) { + this.aspect = aspect; + this.function = function; + } + + @ReflectionInvoked + public void undo() { + MCEdibleAspect.RemoveIf(this.aspect); + } + + @Override + public void apply() { + EdibleAspect.addEatCall(this.aspect.getInternal(), (entity, count) -> { + entity.addPotionEffect(CraftTweakerMC.getPotionEffect(function.apply(count))); + return true; + }); + } + + @Override + public String describe() { + return "Adding EatCall -> " + this.aspect.getName(); + } + + } + + @Reloadable + public static class AddAdvancedEatCall implements IAction { + + private final IAspect aspect; + private final EatFunctionWithEntity function; + + public AddAdvancedEatCall(IAspect aspect, EatFunctionWithEntity function) { + this.aspect = aspect; + this.function = function; + } + + @ReflectionInvoked + public void undo() { + MCEdibleAspect.RemoveIf(this.aspect); + } + + @Override + public void apply() { + EdibleAspect.addEatCall(this.aspect.getInternal(), (entity, count) -> function.apply(CraftTweakerMC.getIEntityLivingBase(entity), count)); + } + + @Override + public String describe() { + return "Adding EatCall -> " + this.aspect.getName(); + } + } + + @Reloadable + public static class RemoveEatCall implements IAction { + + private final IAspect aspect; + + private BiFunction _function; + + public RemoveEatCall(IAspect aspect) { + this.aspect = aspect; + } + + @ReflectionInvoked + public void undo() { + EdibleAspect.addEatCall(this.aspect.getInternal(), _function); + } + + @Override + public void apply() { + EdibleAspect.EAT_FUNCTIONS.entrySet().removeIf(entry -> { + boolean equals = entry.getKey().getTag().equals(aspect.getInternal().getTag()); + if (equals) this._function = entry.getValue(); + return equals; + }); + } + + @Override + public String describe() { + return "Removing EatCall -> " + aspect.getName(); + } + } + + @SidedZenRegister(modDeps = "thaumadditions") + @ZenClass("mods.randomtweaker.thaumadditions.EatFunction") + @FunctionalInterface + public interface EatFunction { + IPotionEffect apply(int count); + } + + + @SidedZenRegister(modDeps = "thaumadditions") + @ZenClass("mods.randomtweaker.thaumadditions.EatFunctionWithEntity") + @FunctionalInterface + public interface EatFunctionWithEntity { + boolean apply(IEntityLivingBase entity, int count); + } +} diff --git a/src/main/java/ink/ikx/rt/api/vanilla/CTEventHandler.java b/src/main/java/dev/ikx/rt/api/vanilla/event/CTEventHandler.java similarity index 89% rename from src/main/java/ink/ikx/rt/api/vanilla/CTEventHandler.java rename to src/main/java/dev/ikx/rt/api/vanilla/event/CTEventHandler.java index 01b63edf..085223be 100644 --- a/src/main/java/ink/ikx/rt/api/vanilla/CTEventHandler.java +++ b/src/main/java/dev/ikx/rt/api/vanilla/event/CTEventHandler.java @@ -1,11 +1,12 @@ -package ink.ikx.rt.api.vanilla; +package dev.ikx.rt.api.vanilla.event; import com.google.common.collect.Multimap; import crafttweaker.api.event.IEventHandle; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.util.EventList; import crafttweaker.util.IEventHandler; -import ink.ikx.rt.impl.vanilla.ItemAttributeModificationEvent; +import dev.ikx.rt.api.vanilla.item.IItemAttributeModificationEvent; +import dev.ikx.rt.impl.vanilla.item.ItemAttributeModificationEvent; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; diff --git a/src/main/java/ink/ikx/rt/api/vanilla/AttributeModificationListeners.java b/src/main/java/dev/ikx/rt/api/vanilla/item/AttributeModificationListeners.java similarity index 95% rename from src/main/java/ink/ikx/rt/api/vanilla/AttributeModificationListeners.java rename to src/main/java/dev/ikx/rt/api/vanilla/item/AttributeModificationListeners.java index bc15f8f4..71339aef 100644 --- a/src/main/java/ink/ikx/rt/api/vanilla/AttributeModificationListeners.java +++ b/src/main/java/dev/ikx/rt/api/vanilla/item/AttributeModificationListeners.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.vanilla; +package dev.ikx.rt.api.vanilla.item; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; @@ -6,7 +6,8 @@ import crafttweaker.api.entity.attribute.IEntityAttributeModifier; import crafttweaker.api.item.IIngredient; import crafttweaker.util.IEventHandler; -import ink.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.api.vanilla.event.CTEventHandler; +import dev.ikx.rt.impl.internal.config.RTConfig; import stanhebben.zenscript.annotations.Optional; import stanhebben.zenscript.annotations.ZenExpansion; import stanhebben.zenscript.annotations.ZenMethod; diff --git a/src/main/java/ink/ikx/rt/api/vanilla/IItemAttributeModificationEvent.java b/src/main/java/dev/ikx/rt/api/vanilla/item/IItemAttributeModificationEvent.java similarity index 96% rename from src/main/java/ink/ikx/rt/api/vanilla/IItemAttributeModificationEvent.java rename to src/main/java/dev/ikx/rt/api/vanilla/item/IItemAttributeModificationEvent.java index b324d5a4..69de9b11 100644 --- a/src/main/java/ink/ikx/rt/api/vanilla/IItemAttributeModificationEvent.java +++ b/src/main/java/dev/ikx/rt/api/vanilla/item/IItemAttributeModificationEvent.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.vanilla; +package dev.ikx.rt.api.vanilla.item; import crafttweaker.api.entity.IEntityEquipmentSlot; import crafttweaker.api.entity.attribute.IEntityAttributeModifier; diff --git a/src/main/java/ink/ikx/rt/api/internal/item/IItemStackExpansion.java b/src/main/java/dev/ikx/rt/api/vanilla/item/IItemStackExpansion.java similarity index 89% rename from src/main/java/ink/ikx/rt/api/internal/item/IItemStackExpansion.java rename to src/main/java/dev/ikx/rt/api/vanilla/item/IItemStackExpansion.java index 1546a1d1..e95c008e 100644 --- a/src/main/java/ink/ikx/rt/api/internal/item/IItemStackExpansion.java +++ b/src/main/java/dev/ikx/rt/api/vanilla/item/IItemStackExpansion.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.internal.item; +package dev.ikx.rt.api.vanilla.item; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; @@ -10,16 +10,14 @@ import java.util.Objects; - @SidedZenRegister @ZenExpansion("crafttweaker.item.IItemStack") @ZenClass("mods.randomtweaker.vanilla.IItemStack") -public abstract class IItemStackExpansion { +public class IItemStackExpansion { @ZenMethod public static int getTagSize(IItemStack stack) { ItemStack mcStack = CraftTweakerMC.getItemStack(stack); - return Objects.nonNull(mcStack.getTagCompound()) ? mcStack.getTagCompound().getKeySet().size() : 0; } diff --git a/src/main/java/ink/ikx/rt/api/internal/world/IBlockPosExpansion.java b/src/main/java/dev/ikx/rt/api/vanilla/world/IBlockPosExpansion.java similarity index 96% rename from src/main/java/ink/ikx/rt/api/internal/world/IBlockPosExpansion.java rename to src/main/java/dev/ikx/rt/api/vanilla/world/IBlockPosExpansion.java index e630b85d..630b3e7b 100644 --- a/src/main/java/ink/ikx/rt/api/internal/world/IBlockPosExpansion.java +++ b/src/main/java/dev/ikx/rt/api/vanilla/world/IBlockPosExpansion.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.api.internal.world; +package dev.ikx.rt.api.vanilla.world; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; @@ -16,7 +16,7 @@ @SidedZenRegister @ZenExpansion("crafttweaker.world.IBlockPos") @ZenClass("mods.randomtweaker.vanilla.IBlockPos") -public abstract class IBlockPosExpansion { +public class IBlockPosExpansion { @ZenMethodStatic public static IBlockPos[] getAllInBox(IBlockPos from, IBlockPos to) { diff --git a/src/main/java/ink/ikx/rt/classTransforms/RandomTweakerClassTransformer.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/RandomTweakerClassTransformer.java similarity index 90% rename from src/main/java/ink/ikx/rt/classTransforms/RandomTweakerClassTransformer.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/RandomTweakerClassTransformer.java index 45e49faf..708f29dc 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/RandomTweakerClassTransformer.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/RandomTweakerClassTransformer.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.classTransforms; +package dev.ikx.rt.impl.internal.clazz; -import ink.ikx.rt.classTransforms.mods.astralsorcery.ASMTileAttunementAltar; -import ink.ikx.rt.classTransforms.mods.tconstruct.ASMAbstractMaterialSectionTransformer; -import ink.ikx.rt.classTransforms.vanilla.ASMItemStack; -import ink.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.internal.clazz.mods.astralsorcery.ASMTileAttunementAltar; +import dev.ikx.rt.impl.internal.clazz.mods.tconstruct.ASMAbstractMaterialSectionTransformer; +import dev.ikx.rt.impl.internal.clazz.vanilla.ASMItemStack; +import dev.ikx.rt.impl.internal.config.RTConfig; import net.minecraft.launchwrapper.IClassTransformer; import net.minecraftforge.fml.relauncher.FMLLaunchHandler; import org.apache.commons.io.FileUtils; @@ -53,7 +53,7 @@ protected static byte[] tryGetAsmResult( @Override public byte[] transform(String name, String transformedName, byte[] basicClass) { - if (transformedName.startsWith("ink.ikx.rt")) + if (transformedName.startsWith("dev.ikx.rt")) return basicClass; if (RTConfig.Astralsorcery.attunementModification && "hellfirepvp.astralsorcery.common.tile.TileAttunementAltar".equals(transformedName)) { LOGGER.info("transforming class {} ({})", transformedName, name); diff --git a/src/main/java/ink/ikx/rt/classTransforms/RandomTweakerClassWriter.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/RandomTweakerClassWriter.java similarity index 96% rename from src/main/java/ink/ikx/rt/classTransforms/RandomTweakerClassWriter.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/RandomTweakerClassWriter.java index 67ccaff8..edde11de 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/RandomTweakerClassWriter.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/RandomTweakerClassWriter.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.classTransforms; +package dev.ikx.rt.impl.internal.clazz; import net.minecraft.launchwrapper.Launch; import org.objectweb.asm.ClassWriter; diff --git a/src/main/java/ink/ikx/rt/classTransforms/mods/astralsorcery/ASMTileAttunementAltar.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/astralsorcery/ASMTileAttunementAltar.java similarity index 99% rename from src/main/java/ink/ikx/rt/classTransforms/mods/astralsorcery/ASMTileAttunementAltar.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/mods/astralsorcery/ASMTileAttunementAltar.java index 674fc2ed..a9595f1c 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/mods/astralsorcery/ASMTileAttunementAltar.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/astralsorcery/ASMTileAttunementAltar.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.classTransforms.mods.astralsorcery; +package dev.ikx.rt.impl.internal.clazz.mods.astralsorcery; import org.objectweb.asm.ClassVisitor; @@ -8,7 +8,7 @@ import static org.objectweb.asm.Opcodes.*; public class ASMTileAttunementAltar extends ClassVisitor { - public static final String reflectionMethods = "ink/ikx/rt/classTransforms/mods/astralsorcery/AttunementAltarMethodReflections"; + public static final String reflectionMethods = "dev/ikx/rt/impl/internal/clazz/mods/astralsorcery/AttunementAltarMethodReflections"; public ASMTileAttunementAltar(int api) { super(api); @@ -296,11 +296,11 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc, } break; case INVOKESPECIAL: - if( + if ( owner.equals("hellfirepvp/astralsorcery/common/tile/TileAttunementAltar") && name.equals("setAttunementState") && desc.equals("(ILnet/minecraft/entity/Entity;)V") - ){ + ) { isCraftFinishFlag1 = true; } break; diff --git a/src/main/java/ink/ikx/rt/classTransforms/mods/astralsorcery/AttunementAltarMethodReflections.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/astralsorcery/AttunementAltarMethodReflections.java similarity index 95% rename from src/main/java/ink/ikx/rt/classTransforms/mods/astralsorcery/AttunementAltarMethodReflections.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/mods/astralsorcery/AttunementAltarMethodReflections.java index 14ae1927..599fab65 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/mods/astralsorcery/AttunementAltarMethodReflections.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/astralsorcery/AttunementAltarMethodReflections.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.classTransforms.mods.astralsorcery; +package dev.ikx.rt.impl.internal.clazz.mods.astralsorcery; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; @@ -8,10 +8,10 @@ import hellfirepvp.astralsorcery.common.item.crystal.CrystalPropertyItem; import hellfirepvp.astralsorcery.common.item.crystal.base.ItemRockCrystalBase; import hellfirepvp.astralsorcery.common.item.crystal.base.ItemTunedCrystalBase; -import ink.ikx.rt.impl.internal.config.RTConfig; -import ink.ikx.rt.impl.mods.astralsorcery.CustomAttunementRecipe; -import ink.ikx.rt.impl.mods.astralsorcery.event.AttunementRecipeCompleteEvent; -import ink.ikx.rt.impl.mods.astralsorcery.event.AttunementStartEvent; +import dev.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.mods.astralsorcery.CustomAttunementRecipe; +import dev.ikx.rt.impl.mods.astralsorcery.event.AttunementRecipeCompleteEvent; +import dev.ikx.rt.impl.mods.astralsorcery.event.AttunementStartEvent; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; diff --git a/src/main/java/ink/ikx/rt/classTransforms/mods/tconstruct/ASMAbstractMaterialSectionTransformer.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/tconstruct/ASMAbstractMaterialSectionTransformer.java similarity index 80% rename from src/main/java/ink/ikx/rt/classTransforms/mods/tconstruct/ASMAbstractMaterialSectionTransformer.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/mods/tconstruct/ASMAbstractMaterialSectionTransformer.java index cab34e4e..cb57a741 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/mods/tconstruct/ASMAbstractMaterialSectionTransformer.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/tconstruct/ASMAbstractMaterialSectionTransformer.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.classTransforms.mods.tconstruct; +package dev.ikx.rt.impl.internal.clazz.mods.tconstruct; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.Label; @@ -68,7 +68,7 @@ public void visitVarInsn(int opcode, int var) { if (this.foundMaterialList && opcode == ALOAD && var == this.materialListIndex) { if (++this.materialListLoadIndex == 2) { super.visitVarInsn(ALOAD, this.materialListIndex); - super.visitMethodInsn(INVOKESTATIC, "ink/ikx/rt/classTransforms/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "sortMaterialList", "(Ljava/util/List;)Ljava/util/List;", false); + super.visitMethodInsn(INVOKESTATIC, "dev/ikx/rt/impl/internal/clazz/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "sortMaterialList", "(Ljava/util/List;)Ljava/util/List;", false); super.visitVarInsn(ASTORE, this.materialListIndex); this.foundMaterialList = false; } @@ -95,11 +95,11 @@ public void visitLabel(Label label) { if (this.foundIcon) { this.foundIcon = false; super.visitVarInsn(ALOAD, this.materialIndex); - super.visitMethodInsn(INVOKESTATIC, "ink/ikx/rt/classTransforms/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "isMaterialInShowItemMap", "(Lslimeknights/tconstruct/library/materials/Material;)Z", false); + super.visitMethodInsn(INVOKESTATIC, "dev/ikx/rt/impl/internal/clazz/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "isMaterialInShowItemMap", "(Lslimeknights/tconstruct/library/materials/Material;)Z", false); Label elseLabel = new Label(); super.visitJumpInsn(IFEQ, elseLabel); super.visitVarInsn(ALOAD, this.materialIndex); - super.visitMethodInsn(INVOKESTATIC, "ink/ikx/rt/classTransforms/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "createElementItem", "(Lslimeknights/tconstruct/library/materials/Material;)Lslimeknights/mantle/client/gui/book/element/ElementItem;", false); + super.visitMethodInsn(INVOKESTATIC, "dev/ikx/rt/impl/internal/clazz/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "createElementItem", "(Lslimeknights/tconstruct/library/materials/Material;)Lslimeknights/mantle/client/gui/book/element/ElementItem;", false); super.visitVarInsn(ASTORE, this.iconIndex); super.visitLabel(elseLabel); } @@ -113,7 +113,7 @@ public void visitLabel(Label label) { if (this.foundMaterial) { this.foundMaterial = false; super.visitVarInsn(ALOAD, this.materialIndex); - super.visitMethodInsn(INVOKESTATIC, "ink/ikx/rt/classTransforms/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "isMaterialInHiddenItems", "(Lslimeknights/tconstruct/library/materials/Material;)Z", false); + super.visitMethodInsn(INVOKESTATIC, "dev/ikx/rt/impl/internal/clazz/mods/tconstruct/AbstractMaterialSectionTransformerHooks", "isMaterialInHiddenItems", "(Lslimeknights/tconstruct/library/materials/Material;)Z", false); Label label1 = new Label(); super.visitJumpInsn(IFEQ, label1); super.visitJumpInsn(GOTO, this.loopLabel); diff --git a/src/main/java/ink/ikx/rt/classTransforms/mods/tconstruct/AbstractMaterialSectionTransformerHooks.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/tconstruct/AbstractMaterialSectionTransformerHooks.java similarity index 53% rename from src/main/java/ink/ikx/rt/classTransforms/mods/tconstruct/AbstractMaterialSectionTransformerHooks.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/mods/tconstruct/AbstractMaterialSectionTransformerHooks.java index d231299f..11e384f8 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/mods/tconstruct/AbstractMaterialSectionTransformerHooks.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/mods/tconstruct/AbstractMaterialSectionTransformerHooks.java @@ -1,8 +1,7 @@ -package ink.ikx.rt.classTransforms.mods.tconstruct; +package dev.ikx.rt.impl.internal.clazz.mods.tconstruct; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.Main; -import ink.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.api.mods.tconstruct.TConstructManager; import net.minecraft.item.ItemStack; import org.apache.logging.log4j.LogManager; import slimeknights.mantle.client.gui.book.element.ElementItem; @@ -16,24 +15,24 @@ public class AbstractMaterialSectionTransformerHooks { public static boolean isMaterialInHiddenItems(Material material) { - return Main.HIDDEN_MATERIAL_LIST.contains(material.getIdentifier()); + return TConstructManager.INSTANCE.getHiddenMaterialList().contains(material.getIdentifier()); } public static boolean isMaterialInShowItemMap(Material material) { - return Main.MATERIAL_SHOW_ITEM_MAP.containsKey(material.getIdentifier()); + return TConstructManager.INSTANCE.getMaterialShowItemMap().containsKey(material.getIdentifier()); } public static ElementItem createElementItem(Material material) { - ItemStack stack = Main.MATERIAL_SHOW_ITEM_MAP.get(material.getIdentifier()); + ItemStack stack = TConstructManager.INSTANCE.getMaterialShowItemMap().get(material.getIdentifier()); LogManager.getLogger() - .info("Create ElementItem for " + material.getIdentifier() + "->" + CraftTweakerMC.getIItemStack(stack).toString()); + .info("Create ElementItem for {}->{}", material.getIdentifier(), CraftTweakerMC.getIItemStack(stack).toString()); return new ElementItem(0, 0, 1.0F, stack); } public static List sortMaterialList(List materialList) { return materialList.stream() - .sorted(Comparator.comparing(m -> Main.MATERIAL_PRIORITY_MAP.getOrDefault(m.getIdentifier(), 0))) - .collect(Collectors.toList()); + .sorted(Comparator.comparing(m -> TConstructManager.INSTANCE.getMaterialPriorityMap().getOrDefault(m.getIdentifier(), 0))) + .collect(Collectors.toList()); } diff --git a/src/main/java/ink/ikx/rt/classTransforms/vanilla/ASMItemStack.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/vanilla/ASMItemStack.java similarity index 96% rename from src/main/java/ink/ikx/rt/classTransforms/vanilla/ASMItemStack.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/vanilla/ASMItemStack.java index a803a498..d685e3dd 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/vanilla/ASMItemStack.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/vanilla/ASMItemStack.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.classTransforms.vanilla; +package dev.ikx.rt.impl.internal.clazz.vanilla; import net.minecraftforge.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper; import org.objectweb.asm.ClassVisitor; @@ -79,7 +79,7 @@ public void visitVarInsn(int opcode, int var) { super.visitVarInsn(ALOAD, 1); super.visitVarInsn(ALOAD, 2); super.visitMethodInsn(INVOKESTATIC, - "ink/ikx/rt/classTransforms/vanilla/ItemStackHook", + "dev/ikx/rt/impl/internal/clazz/vanilla/ItemStackHook", "fireAttributeModificationEvent", "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/EntityEquipmentSlot;Lcom/google/common/collect/Multimap;)V", false); diff --git a/src/main/java/ink/ikx/rt/classTransforms/vanilla/ItemStackHook.java b/src/main/java/dev/ikx/rt/impl/internal/clazz/vanilla/ItemStackHook.java similarity index 72% rename from src/main/java/ink/ikx/rt/classTransforms/vanilla/ItemStackHook.java rename to src/main/java/dev/ikx/rt/impl/internal/clazz/vanilla/ItemStackHook.java index 3f55717b..5504ac50 100644 --- a/src/main/java/ink/ikx/rt/classTransforms/vanilla/ItemStackHook.java +++ b/src/main/java/dev/ikx/rt/impl/internal/clazz/vanilla/ItemStackHook.java @@ -1,9 +1,7 @@ -package ink.ikx.rt.classTransforms.vanilla; +package dev.ikx.rt.impl.internal.clazz.vanilla; import com.google.common.collect.Multimap; -import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.vanilla.CTEventHandler; -import ink.ikx.rt.impl.vanilla.ItemAttributeModificationEvent; +import dev.ikx.rt.api.vanilla.event.CTEventHandler; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/CompactManager.java b/src/main/java/dev/ikx/rt/impl/internal/compact/CompactManager.java new file mode 100644 index 00000000..1ebe3515 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/CompactManager.java @@ -0,0 +1,49 @@ +package dev.ikx.rt.impl.internal.compact; + +import com.google.common.collect.Lists; +import dev.ikx.rt.impl.internal.compact.mods.*; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.event.FMLConstructionEvent; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; + +import java.util.List; +import java.util.function.Consumer; + +public class CompactManager { + + public static final CompactManager INSTANCE = new CompactManager(); + + public List modCompactEvents = Lists.newArrayList( + new AstralSorceryCompactEvent(), + new BotaniaCompactEvent(), + new CraftTweakerCompactEvent(), + new ContentTweakerCompactEvent(), + new FTBUltimineCompactEvent(), + new ThaumcraftCompactEvent(), + new ThaumcraftCompactEvent.ThaumadditionsCompactEvent() + ); + + private void registerEvent(Consumer consumer) { + this.modCompactEvents.stream() + .filter(compact -> Loader.isModLoaded(compact.modid())) + .forEach(consumer); + } + + public void registerConstructEvent(FMLConstructionEvent event) { + this.registerEvent(compact -> compact.onConstruct(event)); + } + + public void registerPreInitEvent(FMLPreInitializationEvent event) { + this.registerEvent(compact -> compact.onPreInit(event)); + } + + public void registerPostInitEvent(FMLPostInitializationEvent event) { + this.registerEvent(compact -> compact.onPostInit(event)); + } + + public void registerInitEvent(FMLInitializationEvent event) { + this.registerEvent(compact -> compact.onInit(event)); + } +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/ICompactEvent.java b/src/main/java/dev/ikx/rt/impl/internal/compact/ICompactEvent.java new file mode 100644 index 00000000..6b2142c0 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/ICompactEvent.java @@ -0,0 +1,24 @@ +package dev.ikx.rt.impl.internal.compact; + +import net.minecraftforge.fml.common.event.FMLConstructionEvent; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; + +public interface ICompactEvent { + + String modid(); + + default void onConstruct(FMLConstructionEvent event) { + } + + default void onPreInit(FMLPreInitializationEvent event) { + } + + default void onInit(FMLInitializationEvent event) { + } + + default void onPostInit(FMLPostInitializationEvent event) { + } + +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/mods/AstralSorceryCompactEvent.java b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/AstralSorceryCompactEvent.java new file mode 100644 index 00000000..43db68f4 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/AstralSorceryCompactEvent.java @@ -0,0 +1,26 @@ +package dev.ikx.rt.impl.internal.compact.mods; + +import dev.ikx.rt.api.mods.astralsorcery.event.CTEventManagerAS; +import dev.ikx.rt.impl.internal.compact.ICompactEvent; +import dev.ikx.rt.impl.mods.jei.JEIAttunements; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.event.FMLConstructionEvent; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; + +public class AstralSorceryCompactEvent implements ICompactEvent { + @Override + public String modid() { + return "astralsorcery"; + } + + @Override + public void onConstruct(FMLConstructionEvent event) { + MinecraftForge.EVENT_BUS.register(CTEventManagerAS.Handler.class); + } + + @Override + public void onInit(FMLInitializationEvent event) { + if (Loader.isModLoaded("jei")) JEIAttunements.init(); + } +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/mods/BotaniaCompactEvent.java b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/BotaniaCompactEvent.java new file mode 100644 index 00000000..934dbecf --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/BotaniaCompactEvent.java @@ -0,0 +1,79 @@ +package dev.ikx.rt.impl.internal.compact.mods; + +import com.google.common.collect.BiMap; +import crafttweaker.mods.jei.JEI; +import dev.ikx.rt.api.mods.botania.event.CTEventManager; +import dev.ikx.rt.impl.internal.compact.ICompactEvent; +import dev.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; +import dev.ikx.rt.impl.mods.botania.subtile.SubTileHydroangeasModified; +import dev.ikx.rt.impl.mods.botania.subtile.SubTileOrechidModified; +import dev.ikx.rt.impl.mods.botania.event.CustomBotaniaEvent; +import dev.ikx.rt.impl.mods.jei.JEIHydroangeas; +import dev.ikx.rt.impl.mods.jei.JEIOrechid; +import net.minecraft.init.Blocks; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.event.FMLConstructionEvent; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import vazkii.botania.api.BotaniaAPI; +import vazkii.botania.api.subtile.SubTileEntity; +import vazkii.botania.common.lib.LibBlockNames; + +import java.lang.reflect.Field; +import java.util.Objects; + +public class BotaniaCompactEvent implements ICompactEvent { + @Override + public String modid() { + return "botania"; + } + + @Override + public void onConstruct(FMLConstructionEvent event) { + MinecraftForge.EVENT_BUS.register(CTEventManager.Handler.class); + if (Loader.isModLoaded("contenttweaker")) { + MinecraftForge.EVENT_BUS.register(CustomBotaniaEvent.class); + } + } + + @Override + public void onPreInit(FMLPreInitializationEvent event) { + if (RTConfig.Botania.OrechidHasDefault) { + SubTileOrechidManager.oreWeights.put(Objects.requireNonNull(Blocks.STONE).getDefaultState(), BotaniaAPI.oreWeights); + } + } + + @Override + public void onInit(FMLInitializationEvent event) { + this.registryFlowerModified(); + } + + @SuppressWarnings({"unchecked", "CallToPrintStackTrace"}) + private void registryFlowerModified() { + final BiMap> subTiles; + try { + Field field = BotaniaAPI.class.getDeclaredField("subTiles"); + field.setAccessible(true); + subTiles = (BiMap>) field.get(null); + if (Objects.nonNull(subTiles)) { + if (RTConfig.Botania.OrechidModified) { + if (Loader.isModLoaded("jei")) { + JEIOrechid.init(); + JEI.hideCategory("botania.orechid"); + } + subTiles.forcePut(LibBlockNames.SUBTILE_ORECHID, SubTileOrechidModified.class); + } + if (RTConfig.Botania.HydroangeasModified) { + if (Loader.isModLoaded("jei")) { + JEIHydroangeas.init(); + } + subTiles.forcePut(LibBlockNames.SUBTILE_HYDROANGEAS, SubTileHydroangeasModified.class); + } + } + } catch (IllegalAccessException | NoSuchFieldException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/mods/ContentTweakerCompactEvent.java b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/ContentTweakerCompactEvent.java new file mode 100644 index 00000000..e6f13879 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/ContentTweakerCompactEvent.java @@ -0,0 +1,18 @@ +package dev.ikx.rt.impl.internal.compact.mods; + +import dev.ikx.rt.impl.internal.compact.ICompactEvent; +import dev.ikx.rt.impl.mods.contenttweaker.potion.PotionRegisterEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.event.FMLConstructionEvent; + +public class ContentTweakerCompactEvent implements ICompactEvent { + @Override + public String modid() { + return "contenttweaker"; + } + + @Override + public void onConstruct(FMLConstructionEvent event) { + MinecraftForge.EVENT_BUS.register(PotionRegisterEvent.class); + } +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/mods/CraftTweakerCompactEvent.java b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/CraftTweakerCompactEvent.java new file mode 100644 index 00000000..53ea7961 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/CraftTweakerCompactEvent.java @@ -0,0 +1,25 @@ +package dev.ikx.rt.impl.internal.compact.mods; + +import crafttweaker.mc1120.commands.CTChatCommand; +import dev.ikx.rt.impl.internal.compact.ICompactEvent; +import dev.ikx.rt.impl.mods.crafttweaker.CraftTweakerExtension; +import dev.ikx.rt.impl.mods.crafttweaker.command.AttributeCommand; +import net.minecraftforge.fml.common.event.FMLConstructionEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; + +public class CraftTweakerCompactEvent implements ICompactEvent { + @Override + public String modid() { + return "crafttweaker"; + } + + @Override + public void onConstruct(FMLConstructionEvent event) { + CraftTweakerExtension.registerAllClass(); + } + + @Override + public void onPostInit(FMLPostInitializationEvent event) { + CTChatCommand.registerCommand(new AttributeCommand()); + } +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/mods/DeprecatedCompact.java b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/DeprecatedCompact.java new file mode 100644 index 00000000..9ad7bd35 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/DeprecatedCompact.java @@ -0,0 +1,40 @@ +package dev.ikx.rt.impl.internal.compact.mods; + +import crafttweaker.CraftTweakerAPI; + +import java.util.function.Supplier; + +public class DeprecatedCompact { + + private final String clazz; + + private final String replacementClass; + + private boolean triggered = false; + + public DeprecatedCompact(String clazz, String replacementClass) { + this.clazz = clazz; + this.replacementClass = replacementClass; + } + + public T call(Supplier supplier) { + return this.call(supplier, "`" + clazz + "` is deprecated, it will be removed in 1.6, please use `" + replacementClass + "` instead."); + } + + public T call(Supplier supplier, String message) { + triggered = true; + T result = supplier.get(); + if (!triggered) CraftTweakerAPI.logWarning("[RandomTweaker] " + message); + return result; + } + + public void callVoid(Runnable runnable) { + this.callVoid(runnable, "`" + clazz + "` is deprecated, it will be removed in 1.6, please use `" + replacementClass + "` instead."); + } + + public void callVoid(Runnable runnable, String message) { + triggered = true; + runnable.run(); + if (!triggered) CraftTweakerAPI.logWarning("[RandomTweaker] " + message); + } +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/mods/FTBUltimineCompactEvent.java b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/FTBUltimineCompactEvent.java new file mode 100644 index 00000000..efc14235 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/FTBUltimineCompactEvent.java @@ -0,0 +1,30 @@ +package dev.ikx.rt.impl.internal.compact.mods; + +import dev.ikx.rt.impl.internal.compact.ICompactEvent; +import dev.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.mods.ftbultimine.capability.CapabilityRegistryHandler; +import dev.ikx.rt.impl.mods.ftbultimine.event.FTBUltimineEvent; +import dev.ikx.rt.impl.mods.ftbultimine.network.NetworkManager; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; + +public class FTBUltimineCompactEvent implements ICompactEvent { + @Override + public String modid() { + return "ftbultimine"; + } + + @Override + public void onPreInit(FMLPreInitializationEvent event) { + if (FTBUltimineCompactEvent.isOpenFTBUltimineControl()) { + NetworkManager.registerFTBUltimineTag(); + CapabilityRegistryHandler.registerFTBUltimineTag(); + MinecraftForge.EVENT_BUS.register(FTBUltimineEvent.class); + } + } + + public static boolean isOpenFTBUltimineControl() { + return RTConfig.FTBUltimine.AllowCrTControl; + } + +} diff --git a/src/main/java/dev/ikx/rt/impl/internal/compact/mods/ThaumcraftCompactEvent.java b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/ThaumcraftCompactEvent.java new file mode 100644 index 00000000..88acf0fe --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/compact/mods/ThaumcraftCompactEvent.java @@ -0,0 +1,86 @@ +package dev.ikx.rt.impl.internal.compact.mods; + +import com.google.common.collect.Lists; +import com.zeitheron.hammercore.utils.OnetimeCaller; +import crafttweaker.CraftTweakerAPI; +import crafttweaker.api.block.IBlockState; +import crafttweaker.api.minecraft.CraftTweakerMC; +import dev.ikx.rt.api.mods.thaumicadditions.FluxConcentrator; +import dev.ikx.rt.impl.internal.compact.ICompactEvent; +import dev.ikx.rt.impl.mods.thaumcraft.DreamJournalEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import org.zeith.thaumicadditions.api.RecipesFluxConcentrator; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class ThaumcraftCompactEvent implements ICompactEvent { + @Override + public String modid() { + return "thaumcraft"; + } + + @Override + public void onPreInit(FMLPreInitializationEvent event) { + MinecraftForge.EVENT_BUS.register(DreamJournalEvent.class); + } + + @Override + public void onPostInit(FMLPostInitializationEvent event) { + CraftTweakerAPI.tweaker.loadScript(false, "thaumcraft"); + } + + public static class ThaumadditionsCompactEvent implements ICompactEvent { + @Override + public String modid() { + return "thaumadditions"; + } + + @Override + public void onPostInit(FMLPostInitializationEvent event) { + if (!FluxConcentrator.LATE_REMOVES.isEmpty()) OnetimeCaller.of(this::removeRecipeLate).call(); + } + + @SuppressWarnings({"rawtypes", "unchecked", "CallToPrintStackTrace"}) + private void removeRecipeLate() { + for (Map.Entry entry : FluxConcentrator.LATE_REMOVES.entrySet()) { + Boolean isRemoveAll = entry.getValue(); + IBlockState lateRemove = entry.getKey(); + List toRemoveForPassInBlocks = Lists.newArrayList(); + + try { + Field field = RecipesFluxConcentrator.class.getDeclaredField("HANDLERS"); + field.setAccessible(true); + Map handlers = + (Map) field.get(RecipesFluxConcentrator.class); + handlers.entrySet().removeIf(next -> { + boolean toReturn = false; + + if (isRemoveAll && next.getValue().getOutState().getBlock().equals(CraftTweakerMC.getBlockState(lateRemove).getBlock())) { + toReturn = true; + toRemoveForPassInBlocks.add(next.getKey()); + } else if (next.getValue().getOutState().equals(CraftTweakerMC.getBlockState(lateRemove))) { + toReturn = true; + toRemoveForPassInBlocks.add(next.getKey()); + } + + return toReturn; + }); + + Field field1 = RecipesFluxConcentrator.class.getDeclaredField("PASS_IN_BLOCKS"); + field1.setAccessible(true); + Set passInBlocks = (Set) field1.get(RecipesFluxConcentrator.class); + for (net.minecraft.block.state.IBlockState toRemoveForPassInBlock : toRemoveForPassInBlocks) { + passInBlocks.remove(CraftTweakerMC.getBlockState(toRemoveForPassInBlock)); + } + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/ink/ikx/rt/impl/internal/config/RTConfig.java b/src/main/java/dev/ikx/rt/impl/internal/config/RTConfig.java similarity index 96% rename from src/main/java/ink/ikx/rt/impl/internal/config/RTConfig.java rename to src/main/java/dev/ikx/rt/impl/internal/config/RTConfig.java index 1f6a227c..81d5115e 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/config/RTConfig.java +++ b/src/main/java/dev/ikx/rt/impl/internal/config/RTConfig.java @@ -1,12 +1,12 @@ -package ink.ikx.rt.impl.internal.config; +package dev.ikx.rt.impl.internal.config; import com.cleanroommc.configanytime.ConfigAnytime; -import ink.ikx.rt.Main; +import dev.ikx.rt.Constant; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.Config.Comment; import net.minecraftforge.common.config.Config.RequiresMcRestart; -@Config(modid = Main.MODID, name = Main.MODID) +@Config(modid = Constant.MODID, name = Constant.MODID) public class RTConfig { public static final Botania Botania = new Botania(); diff --git a/src/main/java/ink/ikx/rt/impl/internal/core/CoreModBoot.java b/src/main/java/dev/ikx/rt/impl/internal/core/CoreModBoot.java similarity index 86% rename from src/main/java/ink/ikx/rt/impl/internal/core/CoreModBoot.java rename to src/main/java/dev/ikx/rt/impl/internal/core/CoreModBoot.java index 56af8c44..972d5c3d 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/core/CoreModBoot.java +++ b/src/main/java/dev/ikx/rt/impl/internal/core/CoreModBoot.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.internal.core; +package dev.ikx.rt.impl.internal.core; import net.minecraftforge.common.ForgeVersion; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; @@ -15,7 +15,7 @@ public class CoreModBoot implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { return new String[]{ - "ink.ikx.rt.classTransforms.RandomTweakerClassTransformer" + "dev.ikx.rt.impl.internal.clazz.RandomTweakerClassTransformer" }; } diff --git a/src/main/java/ink/ikx/rt/impl/internal/core/MixinInit.java b/src/main/java/dev/ikx/rt/impl/internal/core/MixinInit.java similarity index 88% rename from src/main/java/ink/ikx/rt/impl/internal/core/MixinInit.java rename to src/main/java/dev/ikx/rt/impl/internal/core/MixinInit.java index ae1fd714..d45974c1 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/core/MixinInit.java +++ b/src/main/java/dev/ikx/rt/impl/internal/core/MixinInit.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.internal.core; +package dev.ikx.rt.impl.internal.core; import zone.rong.mixinbooter.ILateMixinLoader; diff --git a/src/main/java/ink/ikx/rt/impl/internal/event/BaseEvent.java b/src/main/java/dev/ikx/rt/impl/internal/event/BaseEvent.java similarity index 85% rename from src/main/java/ink/ikx/rt/impl/internal/event/BaseEvent.java rename to src/main/java/dev/ikx/rt/impl/internal/event/BaseEvent.java index 8a0fc80a..0133efc8 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/event/BaseEvent.java +++ b/src/main/java/dev/ikx/rt/impl/internal/event/BaseEvent.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.internal.event; +package dev.ikx.rt.impl.internal.event; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.Event; diff --git a/src/main/java/ink/ikx/rt/impl/internal/event/EventHandler.java b/src/main/java/dev/ikx/rt/impl/internal/event/EventHandler.java similarity index 70% rename from src/main/java/ink/ikx/rt/impl/internal/event/EventHandler.java rename to src/main/java/dev/ikx/rt/impl/internal/event/EventHandler.java index 9b2d28c4..7f845e48 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/event/EventHandler.java +++ b/src/main/java/dev/ikx/rt/impl/internal/event/EventHandler.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.impl.internal.event; +package dev.ikx.rt.impl.internal.event; -import ink.ikx.rt.Main; +import dev.ikx.rt.Constant; import net.minecraftforge.common.config.Config; import net.minecraftforge.common.config.ConfigManager; import net.minecraftforge.fml.client.event.ConfigChangedEvent; @@ -12,8 +12,8 @@ public class EventHandler { @SubscribeEvent public static void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) { - if (event.getModID().equals(Main.MODID)) { - ConfigManager.sync(Main.MODID, Config.Type.INSTANCE); + if (event.getModID().equals(Constant.MODID)) { + ConfigManager.sync(Constant.MODID, Config.Type.INSTANCE); } } diff --git a/src/main/java/ink/ikx/rt/mixins/botania/MixinBlockCocoon.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBlockCocoon.java similarity index 95% rename from src/main/java/ink/ikx/rt/mixins/botania/MixinBlockCocoon.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBlockCocoon.java index 1c1996e0..0614948c 100644 --- a/src/main/java/ink/ikx/rt/mixins/botania/MixinBlockCocoon.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBlockCocoon.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.mixins.botania; +package dev.ikx.rt.impl.internal.mixins.botania; -import ink.ikx.rt.impl.mods.botania.cocoon.IMixinTileCocoon; +import dev.ikx.rt.impl.mods.botania.cocoon.IMixinTileCocoon; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; diff --git a/src/main/java/ink/ikx/rt/mixins/botania/MixinBlockSpecialFlower.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBlockSpecialFlower.java similarity index 94% rename from src/main/java/ink/ikx/rt/mixins/botania/MixinBlockSpecialFlower.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBlockSpecialFlower.java index 47cb6190..3a953340 100644 --- a/src/main/java/ink/ikx/rt/mixins/botania/MixinBlockSpecialFlower.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBlockSpecialFlower.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.mixins.botania; +package dev.ikx.rt.impl.internal.mixins.botania; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; +import dev.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; import net.minecraft.block.state.IBlockState; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/ink/ikx/rt/mixins/botania/MixinBotaniaAPI.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBotaniaAPI.java similarity index 75% rename from src/main/java/ink/ikx/rt/mixins/botania/MixinBotaniaAPI.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBotaniaAPI.java index d2edfb80..d404de0d 100644 --- a/src/main/java/ink/ikx/rt/mixins/botania/MixinBotaniaAPI.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinBotaniaAPI.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.mixins.botania; +package dev.ikx.rt.impl.internal.mixins.botania; -import ink.ikx.rt.Main; -import ink.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityFunctionalContent; -import ink.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityGeneratingContent; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; +import dev.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityFunctionalContent; +import dev.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityGeneratingContent; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; import org.spongepowered.asm.mixin.injection.At; @@ -24,7 +24,7 @@ public abstract class MixinBotaniaAPI { @Inject(method = "getSignatureForName", at = @At(value = "HEAD"), cancellable = true) private static void injectGetSignatureForName(String name, CallbackInfoReturnable cir) { - if (Main.SUB_TILE_GENERATING_MAP.containsKey(name)) { + if (BotaniaManager.INSTANCE.getSubTileEntityMap().containsKey(name)) { if (!customSubTileSignatures.containsKey(name)) customSubTileSignatures.put(name, new BasicSignature(name)); cir.setReturnValue(customSubTileSignatures.get(name)); @@ -33,8 +33,8 @@ private static void injectGetSignatureForName(String name, CallbackInfoReturnabl @Inject(method = "getSubTileMapping", at = @At(value = "HEAD"), cancellable = true) private static void injectGetSubTileMapping(String key, CallbackInfoReturnable> cir) { - if (Main.SUB_TILE_GENERATING_MAP.containsKey(key)) { - if (Main.SUB_TILE_GENERATING_MAP.get(key).getKey().equals("generating")) { + if (BotaniaManager.INSTANCE.getSubTileEntityMap().containsKey(key)) { + if (BotaniaManager.INSTANCE.getSubTileEntityMap().get(key).getKey() == BotaniaManager.SubtileEntityType.GENERATING) { cir.setReturnValue(MCSubTileEntityGeneratingContent.class); } else { cir.setReturnValue(MCSubTileEntityFunctionalContent.class); diff --git a/src/main/java/ink/ikx/rt/mixins/botania/MixinTileAlfPortal.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileAlfPortal.java similarity index 95% rename from src/main/java/ink/ikx/rt/mixins/botania/MixinTileAlfPortal.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileAlfPortal.java index a9e8529e..cdbcdce4 100644 --- a/src/main/java/ink/ikx/rt/mixins/botania/MixinTileAlfPortal.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileAlfPortal.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.mixins.botania; +package dev.ikx.rt.impl.internal.mixins.botania; import crafttweaker.CraftTweakerAPI; import crafttweaker.api.data.DataMap; @@ -8,11 +8,11 @@ import crafttweaker.api.world.IBlockPos; import crafttweaker.api.world.IWorld; import crafttweaker.mc1120.data.NBTConverter; -import ink.ikx.rt.api.mods.botania.ITileAlfPortal; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import ink.ikx.rt.impl.internal.utils.ItemStackList; -import ink.ikx.rt.impl.mods.botania.event.AlfPortalDroppedEvent; -import ink.ikx.rt.impl.mods.botania.event.ElvenTradeEvent; +import dev.ikx.rt.api.mods.botania.ITileAlfPortal; +import dev.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.impl.internal.utils.ItemStackList; +import dev.ikx.rt.impl.mods.botania.event.AlfPortalDroppedEvent; +import dev.ikx.rt.impl.mods.botania.event.ElvenTradeEvent; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; diff --git a/src/main/java/ink/ikx/rt/mixins/botania/MixinTileCocoon.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileCocoon.java similarity index 96% rename from src/main/java/ink/ikx/rt/mixins/botania/MixinTileCocoon.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileCocoon.java index bdfc7532..a6f55ada 100644 --- a/src/main/java/ink/ikx/rt/mixins/botania/MixinTileCocoon.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileCocoon.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.mixins.botania; +package dev.ikx.rt.impl.internal.mixins.botania; import crafttweaker.CraftTweakerAPI; import crafttweaker.api.data.DataMap; @@ -7,9 +7,9 @@ import crafttweaker.api.world.IBlockPos; import crafttweaker.api.world.IWorld; import crafttweaker.mc1120.data.NBTConverter; -import ink.ikx.rt.api.mods.botania.ICocoon; -import ink.ikx.rt.api.mods.botania.function.ICocoonTileEntity; -import ink.ikx.rt.impl.mods.botania.cocoon.IMixinTileCocoon; +import dev.ikx.rt.api.mods.botania.ICocoon; +import dev.ikx.rt.api.mods.botania.function.ICocoonTileEntity; +import dev.ikx.rt.impl.mods.botania.cocoon.IMixinTileCocoon; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityLiving; diff --git a/src/main/java/ink/ikx/rt/mixins/botania/MixinTilePool.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTilePool.java similarity index 95% rename from src/main/java/ink/ikx/rt/mixins/botania/MixinTilePool.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTilePool.java index b9e5df73..bddfff72 100644 --- a/src/main/java/ink/ikx/rt/mixins/botania/MixinTilePool.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTilePool.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.mixins.botania; +package dev.ikx.rt.impl.internal.mixins.botania; -import ink.ikx.rt.impl.mods.botania.event.PoolTradeEvent; +import dev.ikx.rt.impl.mods.botania.event.PoolTradeEvent; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/ink/ikx/rt/mixins/botania/MixinTileSpecialFlower.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileSpecialFlower.java similarity index 78% rename from src/main/java/ink/ikx/rt/mixins/botania/MixinTileSpecialFlower.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileSpecialFlower.java index d273cd1d..1a7d3f0f 100644 --- a/src/main/java/ink/ikx/rt/mixins/botania/MixinTileSpecialFlower.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/botania/MixinTileSpecialFlower.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.mixins.botania; +package dev.ikx.rt.impl.internal.mixins.botania; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityFunctionalContent; -import ink.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityGeneratingContent; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; +import dev.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityFunctionalContent; +import dev.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityGeneratingContent; import net.minecraft.nbt.NBTTagCompound; import org.apache.commons.lang3.tuple.Pair; import org.spongepowered.asm.mixin.Final; @@ -43,10 +43,10 @@ public abstract class MixinTileSpecialFlower extends TileMod { @Inject(method = "provideSubTile", at = @At(value = "HEAD"), cancellable = true) protected void injectProvideSubTile(String name, CallbackInfo ci) { - for (Map.Entry> entry : Main.SUB_TILE_GENERATING_MAP.entrySet()) { + for (Map.Entry> entry : BotaniaManager.INSTANCE.getSubTileEntityMap().entrySet()) { if (entry.getKey().equals(name)) { subTileName = name; - if (entry.getValue().getKey().equals("generating")) { + if (entry.getValue().getKey() == BotaniaManager.SubtileEntityType.GENERATING) { setSubTile(new MCSubTileEntityGeneratingContent(entry.getValue().getValue())); } else { setSubTile(new MCSubTileEntityFunctionalContent(entry.getValue().getValue())); @@ -67,7 +67,7 @@ public void readPacketNBT(NBTTagCompound cmp, CallbackInfo ci) { if (subTile == null || !BotaniaAPI.getSubTileStringMapping(subTile.getClass()).equals(subTileName)) provideSubTile(subTileName); } catch (NullPointerException e) { - if (!Main.SUB_TILE_GENERATING_MAP.containsKey(subTileName)) + if (!BotaniaManager.INSTANCE.getSubTileEntityMap().containsKey(subTileName)) provideSubTile(subTileName); } diff --git a/src/main/java/ink/ikx/rt/mixins/ftbultimine/MixinFTBUltimine.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/ftbultimine/MixinFTBUltimine.java similarity index 81% rename from src/main/java/ink/ikx/rt/mixins/ftbultimine/MixinFTBUltimine.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/ftbultimine/MixinFTBUltimine.java index 9c68f203..73e75dd6 100644 --- a/src/main/java/ink/ikx/rt/mixins/ftbultimine/MixinFTBUltimine.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/ftbultimine/MixinFTBUltimine.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.mixins.ftbultimine; +package dev.ikx.rt.impl.internal.mixins.ftbultimine; import com.feed_the_beast.mods.ftbultimine.FTBUltimine; -import ink.ikx.rt.api.mods.ftbultimine.IPlayerExpansionFTBU; -import ink.ikx.rt.impl.internal.capability.CapabilityRegistryHandler; -import ink.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.api.mods.ftbultimine.IPlayerExpansionFTBU; +import dev.ikx.rt.impl.internal.compact.mods.FTBUltimineCompactEvent; +import dev.ikx.rt.impl.mods.ftbultimine.capability.CapabilityRegistryHandler; import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.translation.I18n; import net.minecraftforge.event.world.BlockEvent; @@ -29,7 +29,7 @@ public abstract class MixinFTBUltimine { ), cancellable = true) public void injectBlockBroken(BlockEvent.BreakEvent event, CallbackInfo ci) { - if (InternalUtils.isOpenFTBUltimineControl() && event.getPlayer() != null) { + if (FTBUltimineCompactEvent.isOpenFTBUltimineControl() && event.getPlayer() != null) { CapabilityRegistryHandler.FTBUltimineTag capability = event.getPlayer().getCapability(CapabilityRegistryHandler.FTB_ULTIMINE_CAPABILITY, null); if (!Objects.requireNonNull(capability).isAllow()) { if (IPlayerExpansionFTBU.langKey != null) { diff --git a/src/main/java/dev/ikx/rt/impl/internal/mixins/ftbultimine/MixinFTBUltimineClient.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/ftbultimine/MixinFTBUltimineClient.java new file mode 100644 index 00000000..07888bee --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/ftbultimine/MixinFTBUltimineClient.java @@ -0,0 +1,39 @@ +package dev.ikx.rt.impl.internal.mixins.ftbultimine; + +import com.feed_the_beast.mods.ftbultimine.client.FTBUltimineClient; +import dev.ikx.rt.impl.internal.compact.mods.FTBUltimineCompactEvent; +import dev.ikx.rt.impl.mods.ftbultimine.capability.CapabilityRegistryHandler; +import net.minecraft.client.Minecraft; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +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.Objects; + +@Mixin(value = FTBUltimineClient.class, remap = false) +public abstract class MixinFTBUltimineClient { + + @Unique + private void randomTweaker$decouplingMethod(CallbackInfo ci) { + if (FTBUltimineCompactEvent.isOpenFTBUltimineControl()) { + CapabilityRegistryHandler.FTBUltimineTag capability = Minecraft.getMinecraft().player.getCapability(CapabilityRegistryHandler.FTB_ULTIMINE_CAPABILITY, null); + if (!Objects.requireNonNull(capability).isAllow()) { + ci.cancel(); + } + } + } + + @Inject(method = "info", at = @At("HEAD"), cancellable = true) + public void injectInfo(RenderGameOverlayEvent.Text event, CallbackInfo ci) { + randomTweaker$decouplingMethod(ci); + } + + @Inject(method = "renderGameOverlay", at = @At("HEAD"), cancellable = true) + public void injectRenderGameOverlay(RenderGameOverlayEvent.Post list, CallbackInfo ci) { + randomTweaker$decouplingMethod(ci); + } + +} diff --git a/src/main/java/ink/ikx/rt/mixins/tconstruct/MixinContentMaterial.java b/src/main/java/dev/ikx/rt/impl/internal/mixins/tconstruct/MixinContentMaterial.java similarity index 78% rename from src/main/java/ink/ikx/rt/mixins/tconstruct/MixinContentMaterial.java rename to src/main/java/dev/ikx/rt/impl/internal/mixins/tconstruct/MixinContentMaterial.java index 364898d3..a83acaa4 100644 --- a/src/main/java/ink/ikx/rt/mixins/tconstruct/MixinContentMaterial.java +++ b/src/main/java/dev/ikx/rt/impl/internal/mixins/tconstruct/MixinContentMaterial.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.mixins.tconstruct; +package dev.ikx.rt.impl.internal.mixins.tconstruct; -import ink.ikx.rt.Main; -import ink.ikx.rt.classTransforms.mods.tconstruct.AbstractMaterialSectionTransformerHooks; -import ink.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.api.mods.tconstruct.TConstructManager; +import dev.ikx.rt.impl.internal.clazz.mods.tconstruct.AbstractMaterialSectionTransformerHooks; +import dev.ikx.rt.impl.internal.config.RTConfig; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -29,7 +29,7 @@ public class MixinContentMaterial { private void injectAddDisplayItems(ArrayList list, int x, CallbackInfo ci, List displayTools) { if (RTConfig.Tconstruct.iconModification && AbstractMaterialSectionTransformerHooks.isMaterialInShowItemMap(material)) { displayTools.remove(0); - displayTools.add(new ElementTinkerItem(Main.MATERIAL_SHOW_ITEM_MAP.get(material.getIdentifier()))); + displayTools.add(new ElementTinkerItem(TConstructManager.INSTANCE.getMaterialShowItemMap().get(material.getIdentifier()))); } } diff --git a/src/main/java/ink/ikx/rt/impl/internal/proxy/ClientProxy.java b/src/main/java/dev/ikx/rt/impl/internal/proxy/ClientProxy.java similarity index 95% rename from src/main/java/ink/ikx/rt/impl/internal/proxy/ClientProxy.java rename to src/main/java/dev/ikx/rt/impl/internal/proxy/ClientProxy.java index b9ca8b54..020572ed 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/proxy/ClientProxy.java +++ b/src/main/java/dev/ikx/rt/impl/internal/proxy/ClientProxy.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.impl.internal.proxy; +package dev.ikx.rt.impl.internal.proxy; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.player.IPlayer; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.block.model.ItemCameraTransforms; diff --git a/src/main/java/ink/ikx/rt/impl/internal/proxy/IProxy.java b/src/main/java/dev/ikx/rt/impl/internal/proxy/IProxy.java similarity index 87% rename from src/main/java/ink/ikx/rt/impl/internal/proxy/IProxy.java rename to src/main/java/dev/ikx/rt/impl/internal/proxy/IProxy.java index 056f5049..20786574 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/proxy/IProxy.java +++ b/src/main/java/dev/ikx/rt/impl/internal/proxy/IProxy.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.impl.internal.proxy; +package dev.ikx.rt.impl.internal.proxy; import crafttweaker.api.item.IItemStack; import crafttweaker.api.player.IPlayer; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; /** * @author superhelo diff --git a/src/main/java/ink/ikx/rt/impl/internal/proxy/ServerProxy.java b/src/main/java/dev/ikx/rt/impl/internal/proxy/ServerProxy.java similarity index 91% rename from src/main/java/ink/ikx/rt/impl/internal/proxy/ServerProxy.java rename to src/main/java/dev/ikx/rt/impl/internal/proxy/ServerProxy.java index a7f6a78f..b39a657c 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/proxy/ServerProxy.java +++ b/src/main/java/dev/ikx/rt/impl/internal/proxy/ServerProxy.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.impl.internal.proxy; +package dev.ikx.rt.impl.internal.proxy; import crafttweaker.api.item.IItemStack; import crafttweaker.api.player.IPlayer; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; +import dev.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; /** * @author superhelo diff --git a/src/main/java/ink/ikx/rt/impl/internal/utils/InternalUtils.java b/src/main/java/dev/ikx/rt/impl/internal/utils/InternalUtils.java similarity index 72% rename from src/main/java/ink/ikx/rt/impl/internal/utils/InternalUtils.java rename to src/main/java/dev/ikx/rt/impl/internal/utils/InternalUtils.java index c1b7fc34..974a4ddc 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/utils/InternalUtils.java +++ b/src/main/java/dev/ikx/rt/impl/internal/utils/InternalUtils.java @@ -1,21 +1,15 @@ -package ink.ikx.rt.impl.internal.utils; +package dev.ikx.rt.impl.internal.utils; import crafttweaker.api.item.IItemStack; import crafttweaker.api.liquid.ILiquidStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.impl.internal.capability.CapabilityRegistryHandler; -import ink.ikx.rt.impl.internal.config.RTConfig; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.common.Loader; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.util.Collection; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; public class InternalUtils { @@ -69,17 +63,5 @@ public static boolean collIsNotEmpty(Collection coll) { return !coll.isEmpty(); } - public static boolean isOpenFTBUltimineControl() { - return Loader.isModLoaded("ftbultimine") && RTConfig.FTBUltimine.AllowCrTControl; - } - - public static void decouplingMethod(CallbackInfo ci) { - if (InternalUtils.isOpenFTBUltimineControl()) { - CapabilityRegistryHandler.FTBUltimineTag capability = Minecraft.getMinecraft().player.getCapability(CapabilityRegistryHandler.FTB_ULTIMINE_CAPABILITY, null); - if (!Objects.requireNonNull(capability).isAllow()) { - ci.cancel(); - } - } - } } diff --git a/src/main/java/ink/ikx/rt/impl/internal/utils/ItemStackList.java b/src/main/java/dev/ikx/rt/impl/internal/utils/ItemStackList.java similarity index 97% rename from src/main/java/ink/ikx/rt/impl/internal/utils/ItemStackList.java rename to src/main/java/dev/ikx/rt/impl/internal/utils/ItemStackList.java index 0151e1c4..0b0d1b04 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/utils/ItemStackList.java +++ b/src/main/java/dev/ikx/rt/impl/internal/utils/ItemStackList.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.internal.utils; +package dev.ikx.rt.impl.internal.utils; import net.minecraft.item.ItemStack; diff --git a/src/main/java/ink/ikx/rt/impl/internal/utils/MCInputPattern.java b/src/main/java/dev/ikx/rt/impl/internal/utils/MCInputPattern.java similarity index 96% rename from src/main/java/ink/ikx/rt/impl/internal/utils/MCInputPattern.java rename to src/main/java/dev/ikx/rt/impl/internal/utils/MCInputPattern.java index cd49a08a..244ff780 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/utils/MCInputPattern.java +++ b/src/main/java/dev/ikx/rt/impl/internal/utils/MCInputPattern.java @@ -1,10 +1,10 @@ -package ink.ikx.rt.impl.internal.utils; +package dev.ikx.rt.impl.internal.utils; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import crafttweaker.CraftTweakerAPI; import crafttweaker.api.item.IIngredient; -import ink.ikx.rt.api.internal.utils.IInputPattern; +import dev.ikx.rt.api.internal.utils.IInputPattern; import java.text.MessageFormat; import java.util.List; import java.util.Map; diff --git a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/CustomAttunementRecipe.java b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/CustomAttunementRecipe.java similarity index 96% rename from src/main/java/ink/ikx/rt/impl/mods/astralsorcery/CustomAttunementRecipe.java rename to src/main/java/dev/ikx/rt/impl/mods/astralsorcery/CustomAttunementRecipe.java index 6b5749e1..922f8c7e 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/CustomAttunementRecipe.java +++ b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/CustomAttunementRecipe.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.astralsorcery; +package dev.ikx.rt.impl.mods.astralsorcery; import crafttweaker.api.item.IIngredient; import crafttweaker.api.item.IItemStack; diff --git a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AbstractClassImplement.java b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AbstractClassImplement.java similarity index 73% rename from src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AbstractClassImplement.java rename to src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AbstractClassImplement.java index bf41a518..8722949a 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AbstractClassImplement.java +++ b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AbstractClassImplement.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.impl.mods.astralsorcery.event; +package dev.ikx.rt.impl.mods.astralsorcery.event; -import ink.ikx.rt.api.mods.astralsorcery.event.CTAttunementRecipeCompleteEvent; -import ink.ikx.rt.api.mods.astralsorcery.event.CTAttunementStartEvent; +import dev.ikx.rt.api.mods.astralsorcery.event.CTAttunementRecipeCompleteEvent; +import dev.ikx.rt.api.mods.astralsorcery.event.CTAttunementStartEvent; public class AbstractClassImplement { diff --git a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AttunementRecipeCompleteEvent.java b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AttunementRecipeCompleteEvent.java similarity index 94% rename from src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AttunementRecipeCompleteEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AttunementRecipeCompleteEvent.java index 7e385692..2c9c80a9 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AttunementRecipeCompleteEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AttunementRecipeCompleteEvent.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.impl.mods.astralsorcery.event; +package dev.ikx.rt.impl.mods.astralsorcery.event; import hellfirepvp.astralsorcery.common.constellation.IConstellation; -import ink.ikx.rt.impl.internal.event.BaseEvent; +import dev.ikx.rt.impl.internal.event.BaseEvent; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.world.World; diff --git a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AttunementStartEvent.java b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AttunementStartEvent.java similarity index 90% rename from src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AttunementStartEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AttunementStartEvent.java index 58b54beb..725a5384 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/astralsorcery/event/AttunementStartEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/astralsorcery/event/AttunementStartEvent.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.impl.mods.astralsorcery.event; +package dev.ikx.rt.impl.mods.astralsorcery.event; import hellfirepvp.astralsorcery.common.constellation.IConstellation; -import ink.ikx.rt.impl.internal.event.BaseEvent; +import dev.ikx.rt.impl.internal.event.BaseEvent; import net.minecraft.entity.Entity; import net.minecraft.world.World; import net.minecraftforge.fml.common.eventhandler.Cancelable; diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/cocoon/IMixinTileCocoon.java b/src/main/java/dev/ikx/rt/impl/mods/botania/cocoon/IMixinTileCocoon.java similarity index 90% rename from src/main/java/ink/ikx/rt/impl/mods/botania/cocoon/IMixinTileCocoon.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/cocoon/IMixinTileCocoon.java index 1d9f270f..23aaea32 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/cocoon/IMixinTileCocoon.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/cocoon/IMixinTileCocoon.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.botania.cocoon; +package dev.ikx.rt.impl.mods.botania.cocoon; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/cocoon/MCCocoon.java b/src/main/java/dev/ikx/rt/impl/mods/botania/cocoon/MCCocoon.java similarity index 52% rename from src/main/java/ink/ikx/rt/impl/mods/botania/cocoon/MCCocoon.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/cocoon/MCCocoon.java index aff03754..1da52b9c 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/cocoon/MCCocoon.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/cocoon/MCCocoon.java @@ -1,64 +1,63 @@ -package ink.ikx.rt.impl.mods.botania.cocoon; +package dev.ikx.rt.impl.mods.botania.cocoon; import crafttweaker.CraftTweakerAPI; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.botania.ICocoon; -import ink.ikx.rt.api.mods.botania.function.DynamicSpawnTable; -import ink.ikx.rt.api.mods.botania.function.ICocoonTileEntity; -import ink.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.api.mods.botania.ICocoon; +import dev.ikx.rt.api.mods.botania.function.DynamicSpawnTable; +import dev.ikx.rt.api.mods.botania.function.ICocoonTileEntity; +import dev.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.registry.EntityEntry; -import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import java.util.Map; public class MCCocoon implements ICocoon { private final String name; private final ItemStack giveStack; private final Map spawnTab; - private final DynamicSpawnTable dynamicSpawn; + private final DynamicSpawnTable dynamicSpawn; - private MCCocoon(String name, ItemStack giveStack, Map spawnTab, DynamicSpawnTable dynamicSpawn) { + private MCCocoon(String name, ItemStack giveStack, Map spawnTab, DynamicSpawnTable dynamicSpawn) { this.name = name; this.spawnTab = spawnTab; this.giveStack = giveStack; - this.dynamicSpawn = dynamicSpawn; + this.dynamicSpawn = dynamicSpawn; } - public static ICocoon create(@Nonnull String name, ItemStack giveStack, @Nonnull Map spawnTab) { - return create(name, giveStack, spawnTab, (stack, player, tile) -> name); + public static ICocoon create(@Nonnull String name, ItemStack giveStack, @Nonnull Map spawnTab) { + return create(name, giveStack, spawnTab, (stack, player, tile) -> name); } public static ICocoon create(@Nonnull String name, @Nonnull ItemStack giveStack, @Nonnull Map spawnTab, DynamicSpawnTable dynamicSpawn) { - if (check(name, spawnTab)) { - if (dynamicSpawn == null) { - dynamicSpawn = (stack, player, tile) -> name; - } - return new MCCocoon(name, giveStack, spawnTab, dynamicSpawn); + if (check(name, spawnTab)) { + if (dynamicSpawn == null) { + dynamicSpawn = (stack, player, tile) -> name; + } + return new MCCocoon(name, giveStack, spawnTab, dynamicSpawn); } - return null; + return null; } - private static boolean check(String name, Map spawnTab) { - - if (Main.CUSTOM_COCOONS_SPAWN.containsKey(name)) { - CraftTweakerAPI.logError("The name must be unique!"); + private static boolean check(String name, Map spawnTab) { + if (BotaniaManager.INSTANCE.getCocoonsSpawnMap().containsKey(name)) { + CraftTweakerAPI.logError("The name must be unique!"); return false; } for (EntityEntry entity : spawnTab.keySet()) { - if (entity == null) { + if (entity == null) { CraftTweakerAPI.logError("The entity cannot be null!", new IllegalArgumentException()); return false; } - if (spawnTab.get(entity) <= 0.0f) { - CraftTweakerAPI.logError("Probability less than 0!", new IllegalArgumentException()); - return false; - } + if (spawnTab.get(entity) <= 0.0f) { + CraftTweakerAPI.logError("Probability less than 0!", new IllegalArgumentException()); + return false; + } } return true; @@ -89,11 +88,11 @@ public boolean match(ItemStack stack) { @Override public String getDynamicResult(ItemStack stack, EntityPlayer player, ICocoonTileEntity tile) { - return this.dynamicSpawn.call( - CraftTweakerMC.getIItemStack(stack), - CraftTweakerMC.getIPlayer(player), - tile - ); + return this.dynamicSpawn.call( + CraftTweakerMC.getIItemStack(stack), + CraftTweakerMC.getIPlayer(player), + tile + ); } @Override diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/event/AbstractClassImplement.java b/src/main/java/dev/ikx/rt/impl/mods/botania/event/AbstractClassImplement.java similarity index 72% rename from src/main/java/ink/ikx/rt/impl/mods/botania/event/AbstractClassImplement.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/event/AbstractClassImplement.java index f5dc6d70..5090a81f 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/event/AbstractClassImplement.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/event/AbstractClassImplement.java @@ -1,33 +1,27 @@ -package ink.ikx.rt.impl.mods.botania.event; +package dev.ikx.rt.impl.mods.botania.event; -import ink.ikx.rt.api.mods.botania.event.CTAlfPortalDroppedEvent; -import ink.ikx.rt.api.mods.botania.event.CTElvenTradeEvent; -import ink.ikx.rt.api.mods.botania.event.CTPoolTradeEvent; +import dev.ikx.rt.api.mods.botania.event.CTAlfPortalDroppedEvent; +import dev.ikx.rt.api.mods.botania.event.CTElvenTradeEvent; +import dev.ikx.rt.api.mods.botania.event.CTPoolTradeEvent; public class AbstractClassImplement { public static class CTElvenTradeEventImpl extends CTElvenTradeEvent { - public CTElvenTradeEventImpl(ElvenTradeEvent event) { super(event); } - } public static class CTAlfPortalDroppedEventImpl extends CTAlfPortalDroppedEvent { - public CTAlfPortalDroppedEventImpl(AlfPortalDroppedEvent event) { super(event); } - } public static class CTPoolTradeEventImpl extends CTPoolTradeEvent { - public CTPoolTradeEventImpl(PoolTradeEvent event) { super(event); } - } } diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/event/AlfPortalDroppedEvent.java b/src/main/java/dev/ikx/rt/impl/mods/botania/event/AlfPortalDroppedEvent.java similarity index 88% rename from src/main/java/ink/ikx/rt/impl/mods/botania/event/AlfPortalDroppedEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/event/AlfPortalDroppedEvent.java index 757510db..5de621a5 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/event/AlfPortalDroppedEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/event/AlfPortalDroppedEvent.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.impl.mods.botania.event; +package dev.ikx.rt.impl.mods.botania.event; -import ink.ikx.rt.api.mods.botania.ITileAlfPortal; -import ink.ikx.rt.impl.internal.event.BaseEvent; +import dev.ikx.rt.api.mods.botania.ITileAlfPortal; +import dev.ikx.rt.impl.internal.event.BaseEvent; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.eventhandler.Cancelable; diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/MCBotaniaContentEvent.java b/src/main/java/dev/ikx/rt/impl/mods/botania/event/CustomBotaniaEvent.java similarity index 82% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/MCBotaniaContentEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/event/CustomBotaniaEvent.java index 7e97be52..43f345f7 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/MCBotaniaContentEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/event/CustomBotaniaEvent.java @@ -1,12 +1,12 @@ -package ink.ikx.rt.impl.mods.contenttweaker; +package dev.ikx.rt.impl.mods.botania.event; import baubles.api.BaublesApi; import com.teamacronymcoders.contenttweaker.ContentTweaker; import crafttweaker.CraftTweakerAPI; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.internal.file.IProp; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.mana.bauble.MCManaBaubleContent; +import dev.ikx.rt.api.internal.file.Props; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; +import dev.ikx.rt.impl.mods.contenttweaker.bauble.CTManaBaubleContent; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -22,7 +22,7 @@ import java.io.IOException; import java.util.Map; -public class MCBotaniaContentEvent { +public class CustomBotaniaEvent { public static String FLOWER_BLOCK_STATE = "{\n" + " \"forge_marker\": 1,\n" @@ -45,7 +45,7 @@ public class MCBotaniaContentEvent { @SubscribeEvent public static void onModelRegistry(ModelRegistryEvent event) { - for (Map.Entry> entry : Main.SUB_TILE_GENERATING_MAP.entrySet()) { + for (Map.Entry> entry : BotaniaManager.INSTANCE.getSubTileEntityMap().entrySet()) { createFlowerBlockState(entry.getKey()); BotaniaAPIClient.registerSubtileModel(entry.getKey(), new ModelResourceLocation(ContentTweaker.MOD_ID + ":" + entry.getKey())); } @@ -60,8 +60,8 @@ public static void onDeath(LivingDeathEvent evt) { IItemHandler inv = BaublesApi.getBaublesHandler((EntityPlayer) evt.getEntityLiving()); for (int i = 0; i < inv.getSlots(); i++) { ItemStack stack = inv.getStackInSlot(i); - if (!stack.isEmpty() && stack.getItem() instanceof MCManaBaubleContent) { - ((MCManaBaubleContent) stack.getItem()).onUnequipped(stack, evt.getEntityLiving()); + if (!stack.isEmpty() && stack.getItem() instanceof CTManaBaubleContent) { + ((CTManaBaubleContent) stack.getItem()).onUnequipped(stack, evt.getEntityLiving()); } } } @@ -69,7 +69,7 @@ public static void onDeath(LivingDeathEvent evt) { private static void createFlowerBlockState(String name) { String nameL = name.toLowerCase(); - String path = IProp.getPath(System.getProperty("user.dir"), "resources", "contenttweaker", "blockstates", nameL + ".json"); + String path = Props.getPath(System.getProperty("user.dir"), "resources", "contenttweaker", "blockstates", nameL + ".json"); File file = new File(path); if (!file.exists()) { if (nameL.contains("chibi")) { diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/event/ElvenTradeEvent.java b/src/main/java/dev/ikx/rt/impl/mods/botania/event/ElvenTradeEvent.java similarity index 83% rename from src/main/java/ink/ikx/rt/impl/mods/botania/event/ElvenTradeEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/event/ElvenTradeEvent.java index bc14f388..39a61f38 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/event/ElvenTradeEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/event/ElvenTradeEvent.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.impl.mods.botania.event; +package dev.ikx.rt.impl.mods.botania.event; -import ink.ikx.rt.api.mods.botania.ITileAlfPortal; -import ink.ikx.rt.impl.internal.event.BaseEvent; -import ink.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.api.mods.botania.ITileAlfPortal; +import dev.ikx.rt.impl.internal.event.BaseEvent; +import dev.ikx.rt.impl.internal.utils.InternalUtils; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.eventhandler.Cancelable; diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/event/PoolTradeEvent.java b/src/main/java/dev/ikx/rt/impl/mods/botania/event/PoolTradeEvent.java similarity index 95% rename from src/main/java/ink/ikx/rt/impl/mods/botania/event/PoolTradeEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/event/PoolTradeEvent.java index 2bb4f74a..b643bb81 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/event/PoolTradeEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/event/PoolTradeEvent.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.impl.mods.botania.event; +package dev.ikx.rt.impl.mods.botania.event; -import ink.ikx.rt.impl.internal.event.BaseEvent; +import dev.ikx.rt.impl.internal.event.BaseEvent; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/dev/ikx/rt/impl/mods/botania/module/BotaniaManager.java b/src/main/java/dev/ikx/rt/impl/mods/botania/module/BotaniaManager.java new file mode 100644 index 00000000..56dfafdf --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/module/BotaniaManager.java @@ -0,0 +1,48 @@ +package dev.ikx.rt.impl.mods.botania.module; + +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import com.google.common.collect.Maps; +import dev.ikx.rt.api.mods.botania.ICocoon; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.Map; + +public class BotaniaManager { + + public static final BotaniaManager INSTANCE = new BotaniaManager(); + + private final Map cocoonsSpawnMap = Maps.newHashMap(); + private final BiMap> subTileEntityMap = HashBiMap.create(); + + public void registerCocoonSpawn(String name, ICocoon cocoon) { + cocoonsSpawnMap.put(name, cocoon); + } + + public ICocoon getCocoonSpawn(String name) { + return cocoonsSpawnMap.get(name); + } + + public Map getCocoonsSpawnMap() { + return cocoonsSpawnMap; + } + + public void registerSubtileEntity(String unlocalizedName, SubtileEntityType typeName, CTSubTileEntityRepresentation subTileEntity) { + subTileEntityMap.put(unlocalizedName, Pair.of(typeName, subTileEntity)); + } + + public Pair getSubTileEntity(String unlocalizedName) { + return subTileEntityMap.get(unlocalizedName); + } + + public BiMap> getSubTileEntityMap() { + return subTileEntityMap; + } + + public enum SubtileEntityType { + FUNCTIONAL, + GENERATING, + } + +} diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/module/SubTileHydroangeasManager.java b/src/main/java/dev/ikx/rt/impl/mods/botania/module/SubTileHydroangeasManager.java similarity index 89% rename from src/main/java/ink/ikx/rt/impl/mods/botania/module/SubTileHydroangeasManager.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/module/SubTileHydroangeasManager.java index d02f8b4a..f638c2e1 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/module/SubTileHydroangeasManager.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/module/SubTileHydroangeasManager.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.botania.module; +package dev.ikx.rt.impl.mods.botania.module; import crafttweaker.CraftTweakerAPI; import crafttweaker.api.item.IItemStack; @@ -32,10 +32,10 @@ public static Block getBlock(ILiquidStack inputFluid) { public static class HydroangeasHandler { - ILiquidStack liquidConsume; - ILiquidStack liquidCatalyst; - double fluidFactor; - int manaGen; + public final ILiquidStack liquidConsume; + public final ILiquidStack liquidCatalyst; + public final double fluidFactor; + public final int manaGen; public HydroangeasHandler(ILiquidStack input, int manaGen, ILiquidStack liquidCatalyst, double factor) { this.liquidConsume = input; diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/module/SubTileOrechidManager.java b/src/main/java/dev/ikx/rt/impl/mods/botania/module/SubTileOrechidManager.java similarity index 80% rename from src/main/java/ink/ikx/rt/impl/mods/botania/module/SubTileOrechidManager.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/module/SubTileOrechidManager.java index 342164f2..0fca2695 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/module/SubTileOrechidManager.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/module/SubTileOrechidManager.java @@ -1,5 +1,6 @@ -package ink.ikx.rt.impl.mods.botania.module; +package dev.ikx.rt.impl.mods.botania.module; +import com.google.common.collect.Lists; import net.minecraft.block.state.IBlockState; import java.util.*; @@ -14,10 +15,12 @@ public static void addOreWeight(IBlockState state, String ore, Integer weight) { map.put(ore, weight); Objects.requireNonNull(map).putAll(oreWeights.get(state)); oreWeights.put(state, map); - } else + } else { oreWeights.put(state, new HashMap() {{ put(ore, weight); }}); + } + } public static String[] getOres(IBlockState state) { @@ -27,12 +30,17 @@ public static String[] getOres(IBlockState state) { .toArray(new String[0]); } - public static void delOre(IBlockState state, String oreName) { + public static List delOre(IBlockState state, String oreName) { + List weights = Lists.newArrayList(); + oreWeights.entrySet().stream() .filter(entry -> entry.getKey() == state) .map(Map.Entry::getValue) .filter(map -> map.containsKey(oreName)) + .peek(map -> weights.add(map.get(oreName))) .forEach(e -> e.remove(oreName)); + + return weights; } public static boolean checkOreExist(IBlockState state, String oreName) { diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/subtile/SubTileHydroangeasModified.java b/src/main/java/dev/ikx/rt/impl/mods/botania/subtile/SubTileHydroangeasModified.java similarity index 97% rename from src/main/java/ink/ikx/rt/impl/mods/botania/subtile/SubTileHydroangeasModified.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/subtile/SubTileHydroangeasModified.java index 462f10d7..ca96e3ac 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/subtile/SubTileHydroangeasModified.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/subtile/SubTileHydroangeasModified.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.impl.mods.botania.subtile; +package dev.ikx.rt.impl.mods.botania.subtile; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.impl.internal.config.RTConfig; -import ink.ikx.rt.impl.mods.botania.module.SubTileHydroangeasManager; +import dev.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.mods.botania.module.SubTileHydroangeasManager; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.block.properties.PropertyInteger; diff --git a/src/main/java/ink/ikx/rt/impl/mods/botania/subtile/SubTileOrechidModified.java b/src/main/java/dev/ikx/rt/impl/mods/botania/subtile/SubTileOrechidModified.java similarity index 96% rename from src/main/java/ink/ikx/rt/impl/mods/botania/subtile/SubTileOrechidModified.java rename to src/main/java/dev/ikx/rt/impl/mods/botania/subtile/SubTileOrechidModified.java index 6e9ae6f4..20769ccc 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/botania/subtile/SubTileOrechidModified.java +++ b/src/main/java/dev/ikx/rt/impl/mods/botania/subtile/SubTileOrechidModified.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.impl.mods.botania.subtile; +package dev.ikx.rt.impl.mods.botania.subtile; -import ink.ikx.rt.impl.internal.config.RTConfig; -import ink.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; +import dev.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBaubleContent.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/bauble/CTManaBaubleContent.java similarity index 94% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBaubleContent.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/bauble/CTManaBaubleContent.java index 2458758c..9cfc90b2 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBaubleContent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/bauble/CTManaBaubleContent.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.bauble; +package dev.ikx.rt.impl.mods.contenttweaker.bauble; import baubles.api.BaubleType; import baubles.api.BaublesApi; @@ -6,11 +6,9 @@ import baubles.api.cap.BaublesCapabilities; import baubles.api.cap.IBaublesItemHandler; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.contenttweaker.mana.bauble.IManaBaubleRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.mana.item.MCManaItemContent; -import java.util.Objects; -import javax.annotation.Nonnull; +import dev.ikx.rt.Main; +import dev.ikx.rt.api.mods.contenttweaker.mana.bauble.CTManaBaubleRepresentation; +import dev.ikx.rt.impl.mods.contenttweaker.item.CTManaItemContent; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -30,23 +28,26 @@ import vazkii.botania.common.entity.EntityDoppleganger; import youyihj.zenutils.api.cotx.annotation.ExpandContentTweakerEntry; +import javax.annotation.Nonnull; +import java.util.Objects; + /** * @author superhelo */ @ExpandContentTweakerEntry -public class MCManaBaubleContent extends MCManaItemContent implements IBauble, ICosmeticAttachable, IPhantomInkable, IBaubleRender { +public class CTManaBaubleContent extends CTManaItemContent implements IBauble, ICosmeticAttachable, IPhantomInkable, IBaubleRender { private static final String TAG_PHANTOM_INK = "phantomInk"; private static final String TAG_COSMETIC_ITEM = "cosmeticItem"; - private final IManaBaubleRepresentation manaBauble; + private final CTManaBaubleRepresentation manaBauble; - public MCManaBaubleContent(IManaBaubleRepresentation manaBauble) { + public CTManaBaubleContent(CTManaBaubleRepresentation manaBauble) { super(manaBauble); this.manaBauble = manaBauble; } @ExpandContentTweakerEntry.RepresentationGetter - public IManaBaubleRepresentation getRepresentation() { + public CTManaBaubleRepresentation getRepresentation() { return manaBauble; } diff --git a/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/bauble/CTManaTrinketContent.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/bauble/CTManaTrinketContent.java new file mode 100644 index 00000000..87bffd8b --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/bauble/CTManaTrinketContent.java @@ -0,0 +1,17 @@ +package dev.ikx.rt.impl.mods.contenttweaker.bauble; + +import dev.ikx.rt.api.mods.contenttweaker.mana.bauble.CTManaBaubleRepresentation; +import vazkii.botania.api.item.ICosmeticBauble; +import youyihj.zenutils.api.cotx.annotation.ExpandContentTweakerEntry; + +/** + * @author superhelo + */ +@ExpandContentTweakerEntry +public class CTManaTrinketContent extends CTManaBaubleContent implements ICosmeticBauble { + + public CTManaTrinketContent(CTManaBaubleRepresentation manaBauble) { + super(manaBauble); + } + +} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItemContent.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/item/CTManaItemContent.java similarity index 94% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItemContent.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/item/CTManaItemContent.java index 37fe5ee0..844a728f 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItemContent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/item/CTManaItemContent.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.item; +package dev.ikx.rt.impl.mods.contenttweaker.item; import com.teamacronymcoders.contenttweaker.modules.vanilla.items.ItemContent; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.IManaItemRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.mana.item.CTManaItemRepresentation; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; @@ -23,28 +23,28 @@ import vazkii.botania.common.core.helper.ItemNBTHelper; import youyihj.zenutils.api.cotx.annotation.ExpandContentTweakerEntry; +import javax.annotation.Nonnull; import java.util.List; import java.util.Objects; -import javax.annotation.Nonnull; /** * @author superhelo */ @ExpandContentTweakerEntry -public class MCManaItemContent extends ItemContent implements IManaItem, ICreativeManaProvider, IManaTooltipDisplay { +public class CTManaItemContent extends ItemContent implements IManaItem, ICreativeManaProvider, IManaTooltipDisplay { private static final String TAG_MANA = "mana"; private static final String TAG_CREATIVE = "creative"; private static final int DEFAULT_MAX_ITEM_USE_DURATION = 40; - private final IManaItemRepresentation manaItem; + private final CTManaItemRepresentation manaItem; - public MCManaItemContent(IManaItemRepresentation manaItem) { + public CTManaItemContent(CTManaItemRepresentation manaItem) { super(manaItem); this.manaItem = manaItem; } @ExpandContentTweakerEntry.RepresentationGetter - public IManaItemRepresentation getRepresentation() { + public CTManaItemRepresentation getRepresentation() { return manaItem; } diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/tool/MCIsUsesManaItemContent.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/item/CTUsageManaItemContent.java similarity index 56% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/tool/MCIsUsesManaItemContent.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/item/CTUsageManaItemContent.java index e24456bd..99efba9d 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/tool/MCIsUsesManaItemContent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/item/CTUsageManaItemContent.java @@ -1,8 +1,7 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.item.tool; +package dev.ikx.rt.impl.mods.contenttweaker.item; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.tool.IIsUsesManaItemRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.mana.item.MCManaItemContent; +import dev.ikx.rt.api.mods.contenttweaker.mana.item.tool.CTUsageManaItemRepresentation; import net.minecraft.item.ItemStack; import vazkii.botania.api.mana.IManaUsingItem; import youyihj.zenutils.api.cotx.annotation.ExpandContentTweakerEntry; @@ -10,11 +9,11 @@ import java.util.Objects; @ExpandContentTweakerEntry -public class MCIsUsesManaItemContent extends MCManaItemContent implements IManaUsingItem { +public class CTUsageManaItemContent extends CTManaItemContent implements IManaUsingItem { - private final IIsUsesManaItemRepresentation manaUsingItem; + private final CTUsageManaItemRepresentation manaUsingItem; - public MCIsUsesManaItemContent(IIsUsesManaItemRepresentation manaUsingItem) { + public CTUsageManaItemContent(CTUsageManaItemRepresentation manaUsingItem) { super(manaUsingItem); this.manaUsingItem = manaUsingItem; } diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBauble.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBauble.java similarity index 80% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBauble.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBauble.java index b955577f..0dd2bfbf 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBauble.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBauble.java @@ -1,15 +1,17 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.bauble; +package dev.ikx.rt.impl.mods.contenttweaker.mana.bauble; import baubles.api.IBauble; import crafttweaker.api.entity.IEntityLivingBase; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.contenttweaker.mana.IManaBauble; -import ink.ikx.rt.impl.mods.contenttweaker.mana.item.MCManaItem; -import javax.annotation.Nullable; +import dev.ikx.rt.api.mods.contenttweaker.mana.IManaBauble; +import dev.ikx.rt.impl.mods.contenttweaker.bauble.CTManaBaubleContent; +import dev.ikx.rt.impl.mods.contenttweaker.mana.item.MCManaItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import javax.annotation.Nullable; + /** * @author superhelo */ @@ -32,7 +34,7 @@ public static IManaBauble create(ItemStack stack) { @Override public String getBaubleType() { - return ((MCManaBaubleContent) this.itemIn).getBaubleType(stack).toString(); + return ((CTManaBaubleContent) this.itemIn).getBaubleType(stack).toString(); } @Override diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItem.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItem.java similarity index 90% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItem.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItem.java index 5dee9cb6..e51f5c8d 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItem.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItem.java @@ -1,16 +1,18 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.item; +package dev.ikx.rt.impl.mods.contenttweaker.mana.item; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; import crafttweaker.api.world.IWorld; -import ink.ikx.rt.api.mods.contenttweaker.mana.IManaItem; -import javax.annotation.Nullable; +import dev.ikx.rt.api.mods.contenttweaker.mana.IManaItem; +import dev.ikx.rt.impl.mods.contenttweaker.item.CTManaItemContent; import net.minecraft.item.ItemStack; import vazkii.botania.api.mana.ICreativeManaProvider; import vazkii.botania.api.mana.IManaUsingItem; import vazkii.botania.common.core.helper.ItemNBTHelper; +import javax.annotation.Nullable; + /** * @author superhelo */ @@ -31,12 +33,12 @@ public static IManaItem create(ItemStack stack) { @Override public boolean hasFull() { - return itemIn instanceof MCManaItemContent && ((MCManaItemContent) itemIn).getRepresentation().hasFull(); + return itemIn instanceof CTManaItemContent && ((CTManaItemContent) itemIn).getRepresentation().hasFull(); } @Override public boolean hasCreative() { - return itemIn instanceof MCManaItemContent && ((MCManaItemContent) itemIn).getRepresentation().hasCreative(); + return itemIn instanceof CTManaItemContent && ((CTManaItemContent) itemIn).getRepresentation().hasCreative(); } @Override diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionContent.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/potion/MCPotionContent.java similarity index 92% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionContent.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/potion/MCPotionContent.java index e5bcad2f..ffc7bddc 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionContent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/potion/MCPotionContent.java @@ -1,8 +1,8 @@ -package ink.ikx.rt.impl.mods.contenttweaker.potion; +package dev.ikx.rt.impl.mods.contenttweaker.potion; import com.teamacronymcoders.contenttweaker.ContentTweaker; import com.teamacronymcoders.contenttweaker.api.ctobjects.entity.EntityHelper; -import ink.ikx.rt.api.mods.contenttweaker.potion.IPotionRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.potion.CTPotionRepresentation; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.entity.Entity; @@ -19,10 +19,10 @@ @SuppressWarnings("deprecation") public class MCPotionContent extends Potion { - public final IPotionRepresentation potionRepresentation; + public final CTPotionRepresentation potionRepresentation; public ResourceLocation textureResourceLocation; - protected MCPotionContent(IPotionRepresentation potionRepresentation) { + public MCPotionContent(CTPotionRepresentation potionRepresentation) { super(potionRepresentation.badEffectIn, potionRepresentation.liquidColor); this.potionRepresentation = potionRepresentation; setField(); diff --git a/src/main/java/ink/ikx/rt/impl/internal/event/EventRegister.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/potion/PotionRegisterEvent.java similarity index 75% rename from src/main/java/ink/ikx/rt/impl/internal/event/EventRegister.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/potion/PotionRegisterEvent.java index fa72a2d4..3e27fe29 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/event/EventRegister.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/potion/PotionRegisterEvent.java @@ -1,24 +1,21 @@ -package ink.ikx.rt.impl.internal.event; +package dev.ikx.rt.impl.mods.contenttweaker.potion; import com.google.common.collect.Maps; -import ink.ikx.rt.impl.mods.contenttweaker.potion.MCPotionContent; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionType; import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.registries.IForgeRegistry; import java.util.Map; -@Mod.EventBusSubscriber -public class EventRegister { +public class PotionRegisterEvent { public static final Map POTION_MAP = Maps.newHashMap(); public static final Map POTION_TYPE_MAP = Maps.newHashMap(); @SubscribeEvent - public static void onPotionReg(RegistryEvent.Register event) { + public static void onPotionRegister(RegistryEvent.Register event) { IForgeRegistry registry = event.getRegistry(); POTION_MAP.values().forEach(registry::register); } diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityFunctionalContent.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityFunctionalContent.java similarity index 88% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityFunctionalContent.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityFunctionalContent.java index d334d27b..b0f6a8d4 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityFunctionalContent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityFunctionalContent.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.contenttweaker.subtile; +package dev.ikx.rt.impl.mods.contenttweaker.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.MCBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockstate.MCBlockState; @@ -8,11 +8,9 @@ import com.teamacronymcoders.contenttweaker.api.ctobjects.world.MCWorld; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; -import ink.ikx.rt.api.internal.utils.ITileData; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.functional.ISubTileEntityFunctionalRepresentation; -import ink.ikx.rt.impl.internal.utils.MCTileData; +import dev.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.functional.CTSubTileEntityFunctionalRepresentation; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -24,15 +22,16 @@ import net.minecraft.world.World; import vazkii.botania.api.subtile.RadiusDescriptor; import vazkii.botania.api.subtile.SubTileFunctional; +import youyihj.zenutils.api.cotx.tile.TileData; import java.util.Objects; public class MCSubTileEntityFunctionalContent extends SubTileFunctional implements ISubTileEntityInGame { - public final ISubTileEntityRepresentation subtile; - private final ITileData customData = new MCTileData(); + public final CTSubTileEntityRepresentation subtile; + private final TileData customData = new TileData(); - public MCSubTileEntityFunctionalContent(ISubTileEntityRepresentation subtile) { + public MCSubTileEntityFunctionalContent(CTSubTileEntityRepresentation subtile) { this.subtile = subtile; } @@ -69,7 +68,7 @@ public void onBlockHarvested(World world, BlockPos pos, IBlockState state, Entit } @Override - public ITileData getITileData() { + public TileData getTileData() { return customData; } @@ -200,13 +199,13 @@ public Object getInstance() { public static class Mini extends MCSubTileEntityFunctionalContent { - public Mini(ISubTileEntityRepresentation subtile) { + public Mini(CTSubTileEntityRepresentation subtile) { super(subtile); } @Override public RadiusDescriptor getRadius() { - return new RadiusDescriptor.Square(toBlockPos(), ((ISubTileEntityFunctionalRepresentation) subtile).miniRange); + return new RadiusDescriptor.Square(toBlockPos(), ((CTSubTileEntityFunctionalRepresentation) subtile).miniRange); } @Override diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityGeneratingContent.java b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityGeneratingContent.java similarity index 83% rename from src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityGeneratingContent.java rename to src/main/java/dev/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityGeneratingContent.java index a0c50ed9..8a3e1bea 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityGeneratingContent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityGeneratingContent.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.contenttweaker.subtile; +package dev.ikx.rt.impl.mods.contenttweaker.subtile; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockpos.MCBlockPos; import com.teamacronymcoders.contenttweaker.api.ctobjects.blockstate.MCBlockState; @@ -8,11 +8,9 @@ import com.teamacronymcoders.contenttweaker.api.ctobjects.world.MCWorld; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.api.world.IBlockPos; -import ink.ikx.rt.api.internal.utils.ITileData; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.generating.ISubTileEntityGeneratingRepresentation; -import ink.ikx.rt.impl.internal.utils.MCTileData; +import dev.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityInGame; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.generating.CTSubTileEntityGeneratingRepresentation; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -24,27 +22,28 @@ import net.minecraft.world.World; import vazkii.botania.api.subtile.RadiusDescriptor; import vazkii.botania.api.subtile.SubTileGenerating; +import youyihj.zenutils.api.cotx.tile.TileData; import java.util.List; import java.util.Objects; public class MCSubTileEntityGeneratingContent extends SubTileGenerating implements ISubTileEntityInGame { - public final ISubTileEntityRepresentation subtile; - private final ITileData customData = new MCTileData(); + public final CTSubTileEntityRepresentation subtile; + private final TileData customData = new TileData(); - public MCSubTileEntityGeneratingContent(ISubTileEntityRepresentation subtile) { + public MCSubTileEntityGeneratingContent(CTSubTileEntityRepresentation subtile) { this.subtile = subtile; } @Override - public ITileData getITileData() { + public TileData getTileData() { return customData; } @Override public boolean canGeneratePassively() { - ISubTileEntityGeneratingRepresentation subtile = (ISubTileEntityGeneratingRepresentation) this.subtile; + CTSubTileEntityGeneratingRepresentation subtile = (CTSubTileEntityGeneratingRepresentation) this.subtile; return Objects.nonNull(subtile.canGeneratePassively) && subtile.canGeneratePassively.call(new MCBlockPos(getPos()), new MCWorld(getWorld())); } @@ -75,7 +74,7 @@ public int getMaxMana() { @Override public boolean isPassiveFlower() { - ISubTileEntityGeneratingRepresentation subtile = (ISubTileEntityGeneratingRepresentation) this.subtile; + CTSubTileEntityGeneratingRepresentation subtile = (CTSubTileEntityGeneratingRepresentation) this.subtile; return subtile.passiveFlower; } @@ -101,13 +100,13 @@ public void writeToPacketNBT(NBTTagCompound compound) { @Override public int getDelayBetweenPassiveGeneration() { - ISubTileEntityGeneratingRepresentation subtile = (ISubTileEntityGeneratingRepresentation) this.subtile; + CTSubTileEntityGeneratingRepresentation subtile = (CTSubTileEntityGeneratingRepresentation) this.subtile; return subtile.delayBetweenPassiveGeneration; } @Override public int getValueForPassiveGeneration() { - ISubTileEntityGeneratingRepresentation subtile = (ISubTileEntityGeneratingRepresentation) this.subtile; + CTSubTileEntityGeneratingRepresentation subtile = (CTSubTileEntityGeneratingRepresentation) this.subtile; return subtile.valueForPassiveGeneration; } @@ -127,7 +126,7 @@ public boolean isOvergrowthAffected() { @Override public boolean shouldSyncPassiveGeneration() { - ISubTileEntityGeneratingRepresentation subtile = (ISubTileEntityGeneratingRepresentation) this.subtile; + CTSubTileEntityGeneratingRepresentation subtile = (CTSubTileEntityGeneratingRepresentation) this.subtile; return subtile.shouldSyncPassiveGeneration; } @@ -177,7 +176,7 @@ public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, Entity @Override public void populateDropStackNBTs(List drops) { super.populateDropStackNBTs(drops); - ISubTileEntityGeneratingRepresentation subtile = (ISubTileEntityGeneratingRepresentation) this.subtile; + CTSubTileEntityGeneratingRepresentation subtile = (CTSubTileEntityGeneratingRepresentation) this.subtile; if (Objects.nonNull(subtile.populateDropStackNBTs)) { subtile.populateDropStackNBTs.call(CraftTweakerMC.getIItemStacks(drops.toArray(new ItemStack[0]))); } diff --git a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/CraftTweakerExtension.java b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/CraftTweakerExtension.java similarity index 69% rename from src/main/java/ink/ikx/rt/impl/mods/crafttweaker/CraftTweakerExtension.java rename to src/main/java/dev/ikx/rt/impl/mods/crafttweaker/CraftTweakerExtension.java index 9ce9240e..6238f9e3 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/CraftTweakerExtension.java +++ b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/CraftTweakerExtension.java @@ -1,15 +1,15 @@ -package ink.ikx.rt.impl.mods.crafttweaker; +package dev.ikx.rt.impl.mods.crafttweaker; import crafttweaker.CraftTweakerAPI; import crafttweaker.zenscript.GlobalRegistry; -import ink.ikx.rt.api.internal.file.IProp; -import ink.ikx.rt.api.internal.utils.IInputPattern; -import ink.ikx.rt.api.mods.botania.subtile.IHydroangeas; -import ink.ikx.rt.api.mods.botania.subtile.IOrechid; -import ink.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.api.internal.file.IProp; +import dev.ikx.rt.api.internal.file.Props; +import dev.ikx.rt.api.internal.utils.IInputPattern; +import dev.ikx.rt.api.mods.botania.subtile.IHydroangeas; +import dev.ikx.rt.api.mods.botania.subtile.IOrechid; +import dev.ikx.rt.impl.internal.config.RTConfig; import net.minecraftforge.fml.common.Loader; -import java.util.Arrays; import java.util.Map; public class CraftTweakerExtension { @@ -20,8 +20,10 @@ public static void registerAllClass() { } public static void registerSpecialClass() { - if (IProp.isRegister(RTConfig.RandomTweaker.Prop)) + if (Props.isRegister(RTConfig.RandomTweaker.Prop)) { + CraftTweakerAPI.registerClass(Props.class); CraftTweakerAPI.registerClass(IProp.class); + } if (Loader.isModLoaded("botania")) { if (RTConfig.Botania.OrechidModified) CraftTweakerAPI.registerClass(IOrechid.class); diff --git a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerPotion.java b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerPotion.java similarity index 78% rename from src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerPotion.java rename to src/main/java/dev/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerPotion.java index b5c2e5b2..8fde1283 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerPotion.java +++ b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerPotion.java @@ -1,18 +1,18 @@ -package ink.ikx.rt.impl.mods.crafttweaker.brackethandler; +package dev.ikx.rt.impl.mods.crafttweaker.brackethandler; import crafttweaker.CraftTweakerAPI; import crafttweaker.annotations.BracketHandler; -import youyihj.zenutils.api.zenscript.SidedZenRegister; import crafttweaker.zenscript.IBracketHandler; -import ink.ikx.rt.api.mods.contenttweaker.potion.IPotionRepresentation; -import ink.ikx.rt.impl.internal.event.EventRegister; - +import dev.ikx.rt.api.mods.contenttweaker.potion.CTPotionRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.potion.IPotionRepresentation; +import dev.ikx.rt.impl.mods.contenttweaker.potion.PotionRegisterEvent; import stanhebben.zenscript.compiler.IEnvironmentGlobal; import stanhebben.zenscript.expression.ExpressionCallStatic; import stanhebben.zenscript.expression.ExpressionString; import stanhebben.zenscript.parser.Token; import stanhebben.zenscript.symbols.IZenSymbol; import stanhebben.zenscript.type.natives.IJavaMethod; +import youyihj.zenutils.api.zenscript.SidedZenRegister; import java.util.List; @@ -22,9 +22,9 @@ public class BracketHandlerPotion implements IBracketHandler { - public static IPotionRepresentation getPotion(String name) { - if (EventRegister.POTION_MAP.containsKey(name)) { - return EventRegister.POTION_MAP.get(name).potionRepresentation; + public static CTPotionRepresentation getPotion(String name) { + if (PotionRegisterEvent.POTION_MAP.containsKey(name)) { + return PotionRegisterEvent.POTION_MAP.get(name).potionRepresentation; } return null; } diff --git a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerSubTile.java b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerSubTile.java similarity index 55% rename from src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerSubTile.java rename to src/main/java/dev/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerSubTile.java index bf8fbdb8..a36488cd 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerSubTile.java +++ b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerSubTile.java @@ -1,15 +1,14 @@ -package ink.ikx.rt.impl.mods.crafttweaker.brackethandler; +package dev.ikx.rt.impl.mods.crafttweaker.brackethandler; import crafttweaker.CraftTweakerAPI; import crafttweaker.annotations.BracketHandler; import crafttweaker.zenscript.IBracketHandler; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.functional.ISubTileEntityFunctionalRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.generating.ISubTileEntityGeneratingRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.CTSubTileEntityRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.functional.CTSubTileEntityFunctionalRepresentation; +import dev.ikx.rt.api.mods.contenttweaker.subtile.generating.CTSubTileEntityGeneratingRepresentation; +import dev.ikx.rt.impl.mods.botania.module.BotaniaManager; import youyihj.zenutils.api.zenscript.SidedZenRegister; -import org.apache.commons.lang3.tuple.Pair; import stanhebben.zenscript.compiler.IEnvironmentGlobal; import stanhebben.zenscript.expression.ExpressionCallStatic; import stanhebben.zenscript.expression.ExpressionString; @@ -25,22 +24,19 @@ public class BracketHandlerSubTile implements IBracketHandler { - public static ISubTileEntityRepresentation getSubTile(String name) { - if (Main.SUB_TILE_GENERATING_MAP.containsKey(name)) { - Pair subtilePair = Main.SUB_TILE_GENERATING_MAP.get(name); - return subtilePair.getValue(); + public static CTSubTileEntityRepresentation getSubTile(String name) { + if (BotaniaManager.INSTANCE.getSubTileEntityMap().containsKey(name)) { + return BotaniaManager.INSTANCE.getSubTileEntity(name).getValue(); } return null; } - public static ISubTileEntityFunctionalRepresentation getSubTileF(String name) { - Pair subtilePair = Main.SUB_TILE_GENERATING_MAP.get(name); - return (ISubTileEntityFunctionalRepresentation) subtilePair.getValue(); + public static CTSubTileEntityFunctionalRepresentation getSubTileF(String name) { + return (CTSubTileEntityFunctionalRepresentation) BotaniaManager.INSTANCE.getSubTileEntity(name).getValue(); } - public static ISubTileEntityGeneratingRepresentation getSubTileG(String name) { - Pair subtilePair = Main.SUB_TILE_GENERATING_MAP.get(name); - return (ISubTileEntityGeneratingRepresentation) subtilePair.getValue(); + public static CTSubTileEntityGeneratingRepresentation getSubTileG(String name) { + return (CTSubTileEntityGeneratingRepresentation) BotaniaManager.INSTANCE.getSubTileEntity(name).getValue(); } @Override @@ -60,15 +56,15 @@ public String getRegexMatchingString() { @Override public Class getReturnedClass() { - return ISubTileEntityRepresentation.class; + return CTSubTileEntityRepresentation.class; } private IZenSymbol find(IEnvironmentGlobal environment, List tokens) { String name = tokens.get(2).getValue(); IJavaMethod method; - if (getSubTile(name) instanceof ISubTileEntityGeneratingRepresentation) { + if (getSubTile(name) instanceof CTSubTileEntityGeneratingRepresentation) { method = CraftTweakerAPI.getJavaMethod(BracketHandlerSubTile.class, "getSubTileG", String.class); - } else if (getSubTile(name) instanceof ISubTileEntityFunctionalRepresentation) { + } else if (getSubTile(name) instanceof CTSubTileEntityFunctionalRepresentation) { method = CraftTweakerAPI.getJavaMethod(BracketHandlerSubTile.class, "getSubTileF", String.class); } else { method = null; diff --git a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/command/AttributeCommand.java b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/command/AttributeCommand.java similarity index 98% rename from src/main/java/ink/ikx/rt/impl/mods/crafttweaker/command/AttributeCommand.java rename to src/main/java/dev/ikx/rt/impl/mods/crafttweaker/command/AttributeCommand.java index 7eeb440a..b5a4d27f 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/command/AttributeCommand.java +++ b/src/main/java/dev/ikx/rt/impl/mods/crafttweaker/command/AttributeCommand.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.crafttweaker.command; +package dev.ikx.rt.impl.mods.crafttweaker.command; import com.google.common.base.Strings; import com.google.common.collect.Multimap; diff --git a/src/main/java/ink/ikx/rt/impl/internal/capability/CapabilityRegistryHandler.java b/src/main/java/dev/ikx/rt/impl/mods/ftbultimine/capability/CapabilityRegistryHandler.java similarity index 98% rename from src/main/java/ink/ikx/rt/impl/internal/capability/CapabilityRegistryHandler.java rename to src/main/java/dev/ikx/rt/impl/mods/ftbultimine/capability/CapabilityRegistryHandler.java index 21a6dd1e..d8853203 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/capability/CapabilityRegistryHandler.java +++ b/src/main/java/dev/ikx/rt/impl/mods/ftbultimine/capability/CapabilityRegistryHandler.java @@ -1,7 +1,5 @@ -package ink.ikx.rt.impl.internal.capability; +package dev.ikx.rt.impl.mods.ftbultimine.capability; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -11,6 +9,9 @@ import net.minecraftforge.common.capabilities.ICapabilitySerializable; import net.minecraftforge.common.util.INBTSerializable; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + public class CapabilityRegistryHandler { @CapabilityInject(FTBUltimineTag.class) diff --git a/src/main/java/ink/ikx/rt/impl/internal/event/FTBUltimineEvent.java b/src/main/java/dev/ikx/rt/impl/mods/ftbultimine/event/FTBUltimineEvent.java similarity index 82% rename from src/main/java/ink/ikx/rt/impl/internal/event/FTBUltimineEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/ftbultimine/event/FTBUltimineEvent.java index f2891176..1f91f1e9 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/event/FTBUltimineEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/ftbultimine/event/FTBUltimineEvent.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.impl.internal.event; +package dev.ikx.rt.impl.mods.ftbultimine.event; -import ink.ikx.rt.Main; -import ink.ikx.rt.impl.internal.capability.CapabilityRegistryHandler; +import dev.ikx.rt.Constant; +import dev.ikx.rt.impl.mods.ftbultimine.capability.CapabilityRegistryHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; @@ -17,7 +17,7 @@ public class FTBUltimineEvent { public static void onAttachCapabilities(AttachCapabilitiesEvent event) { if (event.getObject() instanceof EntityPlayer) { CapabilityRegistryHandler.FTBUltimineTagProvider provider = new CapabilityRegistryHandler.FTBUltimineTagProvider(); - event.addCapability(new ResourceLocation(Main.MODID + ":ftb_ultimine_tag"), provider); + event.addCapability(new ResourceLocation(Constant.MODID + ":ftb_ultimine_tag"), provider); } } diff --git a/src/main/java/ink/ikx/rt/impl/internal/network/NetworkManager.java b/src/main/java/dev/ikx/rt/impl/mods/ftbultimine/network/NetworkManager.java similarity index 94% rename from src/main/java/ink/ikx/rt/impl/internal/network/NetworkManager.java rename to src/main/java/dev/ikx/rt/impl/mods/ftbultimine/network/NetworkManager.java index 3dee5b1c..ddd2e49f 100644 --- a/src/main/java/ink/ikx/rt/impl/internal/network/NetworkManager.java +++ b/src/main/java/dev/ikx/rt/impl/mods/ftbultimine/network/NetworkManager.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.impl.internal.network; +package dev.ikx.rt.impl.mods.ftbultimine.network; -import ink.ikx.rt.impl.internal.capability.CapabilityRegistryHandler; +import dev.ikx.rt.impl.mods.ftbultimine.capability.CapabilityRegistryHandler; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import net.minecraft.client.Minecraft; diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiAttunements.java b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIAttunements.java similarity index 58% rename from src/main/java/ink/ikx/rt/impl/mods/jei/JeiAttunements.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/JEIAttunements.java index 44998673..66001656 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiAttunements.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIAttunements.java @@ -1,41 +1,40 @@ -package ink.ikx.rt.impl.mods.jei; +package dev.ikx.rt.impl.mods.jei; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; +import dev.ikx.rt.api.mods.jei.JEIExpansion; +import dev.ikx.rt.api.mods.jei.JEIUtils; +import dev.ikx.rt.impl.mods.astralsorcery.CustomAttunementRecipe; +import dev.ikx.rt.impl.mods.jei.recipe.AttunementRecipeWarpper; import hellfirepvp.astralsorcery.common.lib.BlocksAS; -import ink.ikx.rt.api.mods.jei.IJeiUtils; -import ink.ikx.rt.api.mods.jei.JEIExpansion; -import ink.ikx.rt.impl.mods.astralsorcery.CustomAttunementRecipe; -import ink.ikx.rt.impl.mods.jei.recipe.JEIAttunementRecipe; import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextComponentTranslation; -import net.minecraft.util.text.translation.I18n; -public class JeiAttunements { +public class JEIAttunements { public static final String UID = "randomtweaker:jei_attunements"; private static final String TEXTURE = "randomtweaker:textures/gui/jei/altarattunement.png"; private static final IItemStack ALTAR = CraftTweakerMC.getIItemStack(new ItemStack(BlocksAS.attunementAltar)); public static void init() { - JEIExpansion.createJei(UID, new TextComponentTranslation("randomtweaker.jei_attunements").getUnformattedComponentText()) + JEIExpansion.createJEI(UID, new TextComponentTranslation("randomtweaker.jei_attunements").getUnformattedComponentText()) .setIcon(ALTAR) - .setBackground(IJeiUtils.createBackground(0, 0, 115, 161, TEXTURE)) + .setBackground(JEIUtils.createBackground(0, 0, 115, 161, TEXTURE)) .addRecipeCatalyst(ALTAR) - .addSlot(IJeiUtils.createItemSlot(49, 76, true, false)) - .addSlot(IJeiUtils.createItemSlot(49, 17, false, false)) - .register_(); + .addSlot(JEIUtils.createItemSlot(49, 76, true, false)) + .addSlot(JEIUtils.createItemSlot(49, 17, false, false)) + .registerDirect(); getRecipes(); } private static void getRecipes() { for (CustomAttunementRecipe recipe : CustomAttunementRecipe.allRecipes) { - JEIAttunementRecipe JEIRecipe = (JEIAttunementRecipe) - new JEIAttunementRecipe(UID) + AttunementRecipeWarpper.JEIAttunementRecipe JEIRecipe = (AttunementRecipeWarpper.JEIAttunementRecipe) + new AttunementRecipeWarpper.JEIAttunementRecipe(UID) .setConstellation(recipe.getConstellation()) .addInput(recipe.getOriginal().amount(recipe.getOriginal().getAmount())) .addOutput(CraftTweakerMC.getIItemStack(recipe.getResult())); - JEIRecipe.build_(); + JEIRecipe.buildDirect(); } } } diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiHydroangeas.java b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIHydroangeas.java similarity index 70% rename from src/main/java/ink/ikx/rt/impl/mods/jei/JeiHydroangeas.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/JEIHydroangeas.java index 17ea061d..e0d535b1 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiHydroangeas.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIHydroangeas.java @@ -1,15 +1,15 @@ -package ink.ikx.rt.impl.mods.jei; +package dev.ikx.rt.impl.mods.jei; import crafttweaker.api.item.IIngredient; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.jei.IJeiUtils; -import ink.ikx.rt.api.mods.jei.IJeiUtilsWithBotania; -import ink.ikx.rt.api.mods.jei.JEIExpansion; -import ink.ikx.rt.api.mods.jei.core.IJeiRecipe; -import ink.ikx.rt.api.mods.jei.core.IJeiTooltip; -import ink.ikx.rt.api.mods.jei.elements.IJeiElements; -import ink.ikx.rt.impl.mods.botania.module.SubTileHydroangeasManager; +import dev.ikx.rt.api.mods.jei.JEIUtils; +import dev.ikx.rt.api.mods.jei.IJeiUtilsWithBotania; +import dev.ikx.rt.api.mods.jei.JEIExpansion; +import dev.ikx.rt.api.mods.jei.core.JEIRecipe; +import dev.ikx.rt.api.mods.jei.core.JEITooltip; +import dev.ikx.rt.api.mods.jei.elements.JEIElements; +import dev.ikx.rt.impl.mods.botania.module.SubTileHydroangeasManager; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.text.translation.I18n; @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.List; -public class JeiHydroangeas { +public class JEIHydroangeas { private static final String UID = "randomtweaker:jei_hydroangeas"; private static final String TEXTURE = "randomtweaker:textures/gui/jei/hydroangeas.png"; @@ -30,14 +30,14 @@ public class JeiHydroangeas { @SuppressWarnings("deprecation") public static void init() { - JEIExpansion.createJei(UID, I18n.translateToLocal("randomtweaker.jei_hydroangeas")) + JEIExpansion.createJEI(UID, I18n.translateToLocal("randomtweaker.jei_hydroangeas")) .setIcon(FLOWER) - .setBackground(IJeiUtils.createBackground(0, 0, 105, 64, TEXTURE)) + .setBackground(JEIUtils.createBackground(0, 0, 105, 64, TEXTURE)) .addRecipeCatalyst(FLOWER) .addRecipeCatalyst(CraftTweakerMC.getIItemStack(ItemBlockSpecialFlower.ofType(new ItemStack(ModBlocks.floatingSpecialFlower), LibBlockNames.SUBTILE_HYDROANGEAS))) - .addSlot(IJeiUtils.createLiquidSlot(77, 9, true, false)) - .addSlot(IJeiUtils.createLiquidSlot(77, 34, true, false)) - .register_(); + .addSlot(JEIUtils.createLiquidSlot(77, 9, true, false)) + .addSlot(JEIUtils.createLiquidSlot(77, 34, true, false)) + .registerDirect(); getHydroangeasRecipes(); } @@ -45,8 +45,8 @@ private static void getHydroangeasRecipes() { for (SubTileHydroangeasManager.HydroangeasHandler handler : SubTileHydroangeasManager.handlerList) { FluidStack blockInput = new FluidStack(FluidRegistry.lookupFluidForBlock(handler.getBlockLiquid()), 1000); int mana = handler.getManaGen(); - IJeiElements.IJeiElementManaBar manaBar = IJeiUtilsWithBotania.createJeiManaBarElement(2, 60, mana, 1); - IJeiTooltip tooltip = (mouseX, mouseY) -> { + JEIElements.JEIElementManaBar manaBar = IJeiUtilsWithBotania.createJEIManaBarElement(2, 60, mana, 1); + JEITooltip tooltip = (mouseX, mouseY) -> { List text = new ArrayList<>(); if (mouseX >= 2 && mouseX <= 103 && mouseY >= 60 && mouseY <= 64) { text.add("mana: " + mana); @@ -54,7 +54,7 @@ private static void getHydroangeasRecipes() { return text.toArray(new String[0]); }; IIngredient iBlockInput = CraftTweakerMC.getIIngredient(blockInput); - IJeiRecipe recipe = JEIExpansion.createJeiRecipe(UID) + JEIRecipe recipe = JEIExpansion.createJEIRecipe(UID) .addInput(iBlockInput) .addElement(manaBar) .onJEITooltip(tooltip); @@ -65,7 +65,7 @@ private static void getHydroangeasRecipes() { recipe.addInput(iFluidFactor); } - recipe.build_(); + recipe.buildDirect(); } } diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiOrechid.java b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIOrechid.java similarity index 74% rename from src/main/java/ink/ikx/rt/impl/mods/jei/JeiOrechid.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/JEIOrechid.java index 45c067a4..e3ebe575 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiOrechid.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIOrechid.java @@ -1,4 +1,4 @@ -package ink.ikx.rt.impl.mods.jei; +package dev.ikx.rt.impl.mods.jei; import crafttweaker.api.block.IBlockState; import crafttweaker.api.item.IIngredient; @@ -6,10 +6,10 @@ import crafttweaker.api.item.IngredientOr; import crafttweaker.api.minecraft.CraftTweakerMC; import crafttweaker.mc1120.brackets.BracketHandlerOre; -import ink.ikx.rt.api.mods.jei.IJeiUtils; -import ink.ikx.rt.api.mods.jei.JEIExpansion; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import ink.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; +import dev.ikx.rt.api.mods.jei.JEIUtils; +import dev.ikx.rt.api.mods.jei.JEIExpansion; +import dev.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; import net.minecraft.item.ItemStack; import net.minecraft.util.text.translation.I18n; import net.minecraftforge.oredict.OreDictionary; @@ -19,23 +19,23 @@ import java.util.Map; -public class JeiOrechid { +public class JEIOrechid { private static final String UID = "randomtweaker:jei_orechid"; private static final String TEXTURE = "botania:textures/gui/pureDaisyOverlay.png"; private static final IItemStack FLOWER = CraftTweakerMC.getIItemStack(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_ORECHID)); public static void init() { - JEIExpansion.createJei("randomtweaker:jei_orechid", I18n.translateToLocal("randomtweaker.jei_orechid")) + JEIExpansion.createJEI("randomtweaker:jei_orechid", I18n.translateToLocal("randomtweaker.jei_orechid")) .setIcon(FLOWER) - .setBackground(IJeiUtils.createBackground(148, 45)) - .addElement(IJeiUtils.createImageElement(48, 0, 64, 46, 0, 0, TEXTURE, 256, 256)) + .setBackground(JEIUtils.createBackground(148, 45)) + .addElement(JEIUtils.createImageElement(48, 0, 64, 46, 0, 0, TEXTURE, 256, 256)) .addRecipeCatalyst(FLOWER) .addRecipeCatalyst(CraftTweakerMC.getIItemStack(ItemBlockSpecialFlower.ofType(new ItemStack(ModBlocks.floatingSpecialFlower), LibBlockNames.SUBTILE_ORECHID))) - .addSlot(IJeiUtils.createItemSlot(40, 13, true, false)) - .addSlot(IJeiUtils.createItemSlot(70, 13, true, false)) - .addSlot(IJeiUtils.createItemSlot(99, 13, false, false)) - .register_(); + .addSlot(JEIUtils.createItemSlot(40, 13, true, false)) + .addSlot(JEIUtils.createItemSlot(70, 13, true, false)) + .addSlot(JEIUtils.createItemSlot(99, 13, false, false)) + .registerDirect(); getRecipes(); } @@ -47,7 +47,7 @@ private static void getRecipes() { v.entrySet().stream() .filter(o -> InternalUtils.collIsNotEmpty(OreDictionary.getOres(o.getKey()))) - .forEach(o -> JEIExpansion.createJeiRecipe(UID).addInput(input).addInput(FLOWER).addOutput(getOutPut(v, o.getKey(), o.getValue())).build_()); + .forEach(o -> JEIExpansion.createJEIRecipe(UID).addInput(input).addInput(FLOWER).addOutput(getOutPut(v, o.getKey(), o.getValue())).buildDirect()); }); } diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiPlugin.java b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIPlugin.java similarity index 79% rename from src/main/java/ink/ikx/rt/impl/mods/jei/JeiPlugin.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/JEIPlugin.java index a5c9c917..6ee22fa3 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/JeiPlugin.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/JEIPlugin.java @@ -1,18 +1,17 @@ -package ink.ikx.rt.impl.mods.jei; +package dev.ikx.rt.impl.mods.jei; import com.google.common.collect.Lists; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.Main; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiPanel; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; -import ink.ikx.rt.impl.mods.jei.recipe.AttunementRecipeWarpper; -import ink.ikx.rt.impl.mods.jei.recipe.DynamicRecipesCategory; -import ink.ikx.rt.impl.mods.jei.recipe.DynamicRecipesWrapper; +import dev.ikx.rt.Main; +import dev.ikx.rt.impl.mods.jei.impl.core.MCJeiPanel; +import dev.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; +import dev.ikx.rt.impl.mods.jei.recipe.AttunementRecipeWarpper; +import dev.ikx.rt.impl.mods.jei.recipe.DynamicRecipesCategory; +import dev.ikx.rt.impl.mods.jei.recipe.DynamicRecipesWrapper; import mezz.jei.Internal; import mezz.jei.api.IModPlugin; import mezz.jei.api.IModRegistry; import mezz.jei.api.ISubtypeRegistry; -import mezz.jei.api.JEIPlugin; import mezz.jei.api.recipe.IRecipeCategoryRegistration; import mezz.jei.gui.GuiHelper; import net.minecraft.item.Item; @@ -21,9 +20,9 @@ import java.util.List; import java.util.stream.Collectors; -@JEIPlugin +@mezz.jei.api.JEIPlugin @ParametersAreNonnullByDefault -public class JeiPlugin implements IModPlugin { +public class JEIPlugin implements IModPlugin { public static List subtypesToRegister = Lists.newArrayList(); public static final String DEFAULT_TEXTURE = "randomtweaker:textures/gui/jei/jei_default.png"; @@ -48,7 +47,8 @@ public void register(IModRegistry registry) { .filter(r -> r.getUid().equals(panel.uid)) .map(r -> (MCJeiRecipe) r) .collect(Collectors.toList()); - if (panel.uid.equals(JeiAttunements.UID)) { + + if (panel.uid.equals(JEIAttunements.UID)) { registry.addRecipes(recipeList.stream().map(AttunementRecipeWarpper::new).collect(Collectors.toList()), panel.uid); } else { registry.addRecipes(recipeList.stream().map(DynamicRecipesWrapper::new).collect(Collectors.toList()), panel.uid); diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiPanel.java b/src/main/java/dev/ikx/rt/impl/mods/jei/impl/core/MCJeiPanel.java similarity index 69% rename from src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiPanel.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/impl/core/MCJeiPanel.java index 7ace94d1..e8465e76 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiPanel.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/impl/core/MCJeiPanel.java @@ -1,16 +1,17 @@ -package ink.ikx.rt.impl.mods.jei.impl.core; +package dev.ikx.rt.impl.mods.jei.impl.core; import com.google.common.collect.Lists; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; import crafttweaker.api.item.IItemStack; import crafttweaker.mc1120.brackets.BracketHandlerItem; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.jei.core.IJeiBackground; -import ink.ikx.rt.api.mods.jei.core.IJeiPanel; -import ink.ikx.rt.api.mods.jei.core.IJeiTooltip; -import ink.ikx.rt.api.mods.jei.elements.IJeiElement; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlot; +import dev.ikx.rt.Constant; +import dev.ikx.rt.Main; +import dev.ikx.rt.api.mods.jei.core.JEIBackground; +import dev.ikx.rt.api.mods.jei.core.JEIPanel; +import dev.ikx.rt.api.mods.jei.core.JEITooltip; +import dev.ikx.rt.api.mods.jei.elements.JEIElement; +import dev.ikx.rt.api.mods.jei.slots.JEISlot; import org.apache.commons.lang3.StringUtils; import youyihj.zenutils.api.reload.Reloadable; import youyihj.zenutils.api.util.ReflectionInvoked; @@ -18,16 +19,17 @@ import java.util.Arrays; import java.util.List; -public class MCJeiPanel implements IJeiPanel { +// TODO +public class MCJeiPanel implements JEIPanel { - public final List slots = Lists.newArrayList(); - public final List elements = Lists.newArrayList(); + public final List slots = Lists.newArrayList(); + public final List elements = Lists.newArrayList(); public final List recipeCatalysts = Lists.newArrayList(); public String uid; public String title; - public IJeiTooltip tooltip; - public IJeiBackground background; - public String modid = Main.MODID; + public JEITooltip tooltip; + public JEIBackground background; + public String modid = Constant.MODID; public IItemStack icon = BracketHandlerItem.getItem("minecraft:bedrock", 0); public MCJeiPanel(String uid, String title) { @@ -36,86 +38,86 @@ public MCJeiPanel(String uid, String title) { } @Override - public IJeiPanel setModid(String modid) { + public JEIPanel setModid(String modid) { this.modid = modid; return this; } @Override - public IJeiPanel setIcon(IItemStack icon) { + public JEIPanel setIcon(IItemStack icon) { this.icon = icon; return this; } @Override - public IJeiPanel addSlot(IJeiSlot slot) { + public JEIPanel addSlot(JEISlot slot) { this.slots.add(slot); return this; } @Override - public IJeiPanel setSlots(IJeiSlot[] slots) { + public JEIPanel setSlots(JEISlot[] slots) { this.slots.clear(); Arrays.stream(slots).forEach(this::addSlot); return this; } @Override - public IJeiPanel onTooltip(IJeiTooltip tooltip) { + public JEIPanel onTooltip(JEITooltip tooltip) { this.tooltip = tooltip; return this; } @Override - public IJeiPanel addElement(IJeiElement element) { + public JEIPanel addElement(JEIElement element) { this.elements.add(element); return this; } @Override - public IJeiPanel setElements(IJeiElement[] elements) { + public JEIPanel setElements(JEIElement[] elements) { this.elements.clear(); Arrays.stream(elements).forEach(this::addElement); return this; } @Override - public IJeiPanel addRecipeCatalyst(IItemStack stack) { + public JEIPanel addRecipeCatalyst(IItemStack stack) { this.recipeCatalysts.add(stack); return this; } @Override - public IJeiPanel setRecipeCatalysts(IItemStack[] stacks) { + public JEIPanel setRecipeCatalysts(IItemStack[] stacks) { this.recipeCatalysts.clear(); Arrays.stream(stacks).forEach(this::addRecipeCatalyst); return this; } @Override - public IJeiPanel setBackground(IJeiBackground background) { + public JEIPanel setBackground(JEIBackground background) { this.background = background; return this; } @Override - public IJeiSlot[] getJeiSlots() { - return this.slots.toArray(new IJeiSlot[0]); + public JEISlot[] getJeiSlots() { + return this.slots.toArray(new JEISlot[0]); } @Override - public IJeiSlot getJeiSlot(String slotName) { + public JEISlot getJeiSlot(String slotName) { if (StringUtils.isBlank(slotName)) return null; return this.slots.stream().filter(s -> s.slotName.equals(slotName)).findFirst().orElse(null); } @Override - public IJeiElement[] getJeiElements() { - return this.elements.toArray(new IJeiElement[0]); + public JEIElement[] getJeiElements() { + return this.elements.toArray(new JEIElement[0]); } @Override - public IJeiElement getJeiElement(String elementName) { + public JEIElement getJeiElement(String elementName) { if (StringUtils.isBlank(elementName)) return null; return this.elements.stream().filter(e -> e.elementName.equals(elementName)).findFirst().orElse(null); } @@ -141,7 +143,7 @@ public void register() { } @Override - public void register_() { + public void registerDirect() { Main.JEI_PANEL_SET.add(this); } diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiRecipe.java b/src/main/java/dev/ikx/rt/impl/mods/jei/impl/core/MCJeiRecipe.java similarity index 80% rename from src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiRecipe.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/impl/core/MCJeiRecipe.java index 4000e2e4..825c4f57 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiRecipe.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/impl/core/MCJeiRecipe.java @@ -1,13 +1,13 @@ -package ink.ikx.rt.impl.mods.jei.impl.core; +package dev.ikx.rt.impl.mods.jei.impl.core; import com.google.common.collect.Lists; import crafttweaker.CraftTweakerAPI; import crafttweaker.IAction; import crafttweaker.api.item.IIngredient; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.jei.core.IJeiRecipe; -import ink.ikx.rt.api.mods.jei.core.IJeiTooltip; -import ink.ikx.rt.api.mods.jei.elements.IJeiElement; +import dev.ikx.rt.Main; +import dev.ikx.rt.api.mods.jei.core.JEIRecipe; +import dev.ikx.rt.api.mods.jei.core.JEITooltip; +import dev.ikx.rt.api.mods.jei.elements.JEIElement; import youyihj.zenutils.api.reload.Reloadable; import youyihj.zenutils.api.util.ReflectionInvoked; @@ -16,59 +16,60 @@ import java.util.Objects; import java.util.StringJoiner; -public class MCJeiRecipe implements IJeiRecipe { +// TODO +public class MCJeiRecipe implements JEIRecipe { public final List inputs = Lists.newArrayList(); public final List outputs = Lists.newArrayList(); - public final List elements = Lists.newArrayList(); + public final List elements = Lists.newArrayList(); public String uid; - public IJeiTooltip tooltip; + public JEITooltip tooltip; public MCJeiRecipe(String uid) { this.uid = uid; } @Override - public IJeiRecipe setInputs(IIngredient[] inputs) { + public JEIRecipe setInputs(IIngredient[] inputs) { this.inputs.clear(); Arrays.stream(inputs).forEach(this::addInput); return this; } @Override - public IJeiRecipe setOutputs(IIngredient[] outputs) { + public JEIRecipe setOutputs(IIngredient[] outputs) { this.outputs.clear(); Arrays.stream(outputs).forEach(this::addOutput); return this; } @Override - public IJeiRecipe setElements(IJeiElement[] elements) { + public JEIRecipe setElements(JEIElement[] elements) { this.elements.clear(); Arrays.stream(elements).forEach(this::addElement); return this; } @Override - public IJeiRecipe addInput(IIngredient input) { + public JEIRecipe addInput(IIngredient input) { this.inputs.add(input); return this; } @Override - public IJeiRecipe addOutput(IIngredient output) { + public JEIRecipe addOutput(IIngredient output) { this.outputs.add(output); return this; } @Override - public IJeiRecipe addElement(IJeiElement element) { + public JEIRecipe addElement(JEIElement element) { this.elements.add(element); return this; } @Override - public IJeiRecipe onJEITooltip(IJeiTooltip tooltip) { + public JEIRecipe onJEITooltip(JEITooltip tooltip) { this.tooltip = tooltip; return this; } @@ -79,7 +80,7 @@ public void build() { } @Override - public void build_() { + public void buildDirect() { Main.JEI_RECIPE_SET.add(this); } diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/AttunementRecipeWarpper.java b/src/main/java/dev/ikx/rt/impl/mods/jei/recipe/AttunementRecipeWarpper.java similarity index 87% rename from src/main/java/ink/ikx/rt/impl/mods/jei/recipe/AttunementRecipeWarpper.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/recipe/AttunementRecipeWarpper.java index f7428205..9bbff469 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/AttunementRecipeWarpper.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/recipe/AttunementRecipeWarpper.java @@ -1,12 +1,11 @@ -package ink.ikx.rt.impl.mods.jei.recipe; +package dev.ikx.rt.impl.mods.jei.recipe; import hellfirepvp.astralsorcery.client.util.RenderConstellation; import hellfirepvp.astralsorcery.common.constellation.IConstellation; import hellfirepvp.astralsorcery.common.constellation.star.StarLocation; import hellfirepvp.astralsorcery.common.lib.BlocksAS; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; +import dev.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.item.ItemStack; import net.minecraft.util.text.translation.I18n; @@ -70,7 +69,6 @@ public float getBrightness() { RenderHelper.disableStandardItemLighting(); } - } @Nonnull @@ -93,6 +91,26 @@ public List getTooltipStrings(int mouseX, int mouseY) { public int scaleToLocation(int originalSize, int realSize, int originalLocation) { return (int) Math.round(((double) originalLocation * realSize) / (double) originalSize); } + + public static class JEIAttunementRecipe extends MCJeiRecipe { + + private IConstellation constellation; + + public JEIAttunementRecipe(String uid) { + super(uid); + } + + public IConstellation getConstellation() { + return this.constellation; + } + + public JEIAttunementRecipe setConstellation(IConstellation constellation) { + this.constellation = constellation; + return this; + } + + } + } diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/DynamicRecipesCategory.java b/src/main/java/dev/ikx/rt/impl/mods/jei/recipe/DynamicRecipesCategory.java similarity index 89% rename from src/main/java/ink/ikx/rt/impl/mods/jei/recipe/DynamicRecipesCategory.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/recipe/DynamicRecipesCategory.java index 15f6aa39..e28dea91 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/DynamicRecipesCategory.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/recipe/DynamicRecipesCategory.java @@ -1,10 +1,10 @@ -package ink.ikx.rt.impl.mods.jei.recipe; +package dev.ikx.rt.impl.mods.jei.recipe; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlot; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlotItem; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlotLiquid; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiPanel; +import dev.ikx.rt.api.mods.jei.slots.JEISlot; +import dev.ikx.rt.api.mods.jei.slots.JEISlotItem; +import dev.ikx.rt.api.mods.jei.slots.JEISlotLiquid; +import dev.ikx.rt.impl.mods.jei.impl.core.MCJeiPanel; import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiFluidStackGroup; @@ -95,11 +95,11 @@ public void setRecipe(IRecipeLayout recipeLayout, DynamicRecipesWrapper recipeWr IGuiItemStackGroup group = recipeLayout.getItemStacks(); IGuiFluidStackGroup fGroup = recipeLayout.getFluidStacks(); for (int i = 0; i < panel.slots.size(); i++) { - IJeiSlot slot = panel.slots.get(i); - if (slot instanceof IJeiSlotItem) { + JEISlot slot = panel.slots.get(i); + if (slot instanceof JEISlotItem) { group.init(i, slot.isInput, slot.x, slot.y); } else { - IJeiSlotLiquid f = ((IJeiSlotLiquid) slot); + JEISlotLiquid f = ((JEISlotLiquid) slot); fGroup.init(i, f.isInput, f.x, f.y, f.width, f.height, f.capacityMb, f.showCapacity, null); } } diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/DynamicRecipesWrapper.java b/src/main/java/dev/ikx/rt/impl/mods/jei/recipe/DynamicRecipesWrapper.java similarity index 95% rename from src/main/java/ink/ikx/rt/impl/mods/jei/recipe/DynamicRecipesWrapper.java rename to src/main/java/dev/ikx/rt/impl/mods/jei/recipe/DynamicRecipesWrapper.java index af6ace23..2fb9ed93 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/DynamicRecipesWrapper.java +++ b/src/main/java/dev/ikx/rt/impl/mods/jei/recipe/DynamicRecipesWrapper.java @@ -1,9 +1,9 @@ -package ink.ikx.rt.impl.mods.jei.recipe; +package dev.ikx.rt.impl.mods.jei.recipe; import crafttweaker.api.item.IIngredient; import crafttweaker.api.item.IItemStack; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; +import dev.ikx.rt.impl.internal.utils.InternalUtils; +import dev.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.ingredients.VanillaTypes; import mezz.jei.api.recipe.IRecipeWrapper; diff --git a/src/main/java/dev/ikx/rt/impl/mods/naturesaura/MCAuraChunk.java b/src/main/java/dev/ikx/rt/impl/mods/naturesaura/MCAuraChunk.java new file mode 100644 index 00000000..d34de2f8 --- /dev/null +++ b/src/main/java/dev/ikx/rt/impl/mods/naturesaura/MCAuraChunk.java @@ -0,0 +1,45 @@ +package dev.ikx.rt.impl.mods.naturesaura; + +import crafttweaker.api.world.IBlockPos; +import crafttweaker.api.world.IWorld; +import dev.ikx.rt.api.mods.naturesaura.CTAuraChunk; +import dev.ikx.rt.api.mods.naturesaura.IAuraChunk; +import dev.ikx.rt.impl.internal.compact.mods.DeprecatedCompact; + +@Deprecated +public class MCAuraChunk implements IAuraChunk { + + private final CTAuraChunk auraChunk; + + public static DeprecatedCompact compact = new DeprecatedCompact("mods.randomtweaker.naturesaura.IAuraChunk", CTAuraChunk.ZEN_CLASS); + + public MCAuraChunk(IWorld world, IBlockPos pos) { + this.auraChunk = compact.call(() -> new CTAuraChunk(world, pos), "`getAuraChunk` will be removed in the 1.6, please use `getAuraChunkFromWorld` instead."); + } + + @Override + public int drainAura(IBlockPos pos, int amount) { + return compact.call(() -> auraChunk.drainAura(pos, amount)); + } + + @Override + public int drainAura(IBlockPos pos, int amount, boolean aimForZero, boolean simulate) { + return compact.call(() -> auraChunk.drainAura(pos, amount, aimForZero, simulate)); + } + + @Override + public int storeAura(IBlockPos pos, int amount) { + return compact.call(() -> auraChunk.storeAura(pos, amount)); + } + + @Override + public int storeAura(IBlockPos pos, int amount, boolean aimForZero, boolean simulate) { + return compact.call(() -> auraChunk.storeAura(pos, amount, aimForZero, simulate)); + } + + @Override + public int getDrainSpot(IBlockPos pos) { + return compact.call(() -> auraChunk.getDrainSpot(pos)); + } + +} diff --git a/src/main/java/ink/ikx/rt/impl/mods/thaumcraft/DreamJournalEvent.java b/src/main/java/dev/ikx/rt/impl/mods/thaumcraft/DreamJournalEvent.java similarity index 92% rename from src/main/java/ink/ikx/rt/impl/mods/thaumcraft/DreamJournalEvent.java rename to src/main/java/dev/ikx/rt/impl/mods/thaumcraft/DreamJournalEvent.java index fa6773f8..d2d1d01f 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/thaumcraft/DreamJournalEvent.java +++ b/src/main/java/dev/ikx/rt/impl/mods/thaumcraft/DreamJournalEvent.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.impl.mods.thaumcraft; +package dev.ikx.rt.impl.mods.thaumcraft; -import ink.ikx.rt.impl.internal.config.RTConfig; +import dev.ikx.rt.impl.internal.config.RTConfig; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; diff --git a/src/main/java/ink/ikx/rt/impl/mods/thaumcraft/MCAspect.java b/src/main/java/dev/ikx/rt/impl/mods/thaumcraft/MCAspect.java similarity index 90% rename from src/main/java/ink/ikx/rt/impl/mods/thaumcraft/MCAspect.java rename to src/main/java/dev/ikx/rt/impl/mods/thaumcraft/MCAspect.java index aaa82d0d..833f5f4d 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/thaumcraft/MCAspect.java +++ b/src/main/java/dev/ikx/rt/impl/mods/thaumcraft/MCAspect.java @@ -1,6 +1,6 @@ -package ink.ikx.rt.impl.mods.thaumcraft; +package dev.ikx.rt.impl.mods.thaumcraft; -import ink.ikx.rt.api.mods.thaumcraft.IAspect; +import dev.ikx.rt.api.mods.thaumcraft.IAspect; import thaumcraft.api.aspects.Aspect; import java.util.Arrays; diff --git a/src/main/java/ink/ikx/rt/impl/mods/thaumcraft/MCAspectList.java b/src/main/java/dev/ikx/rt/impl/mods/thaumcraft/MCAspectList.java similarity index 95% rename from src/main/java/ink/ikx/rt/impl/mods/thaumcraft/MCAspectList.java rename to src/main/java/dev/ikx/rt/impl/mods/thaumcraft/MCAspectList.java index cee91b60..9f999d54 100644 --- a/src/main/java/ink/ikx/rt/impl/mods/thaumcraft/MCAspectList.java +++ b/src/main/java/dev/ikx/rt/impl/mods/thaumcraft/MCAspectList.java @@ -1,7 +1,7 @@ -package ink.ikx.rt.impl.mods.thaumcraft; +package dev.ikx.rt.impl.mods.thaumcraft; -import ink.ikx.rt.api.mods.thaumcraft.IAspect; -import ink.ikx.rt.api.mods.thaumcraft.IAspectList; +import dev.ikx.rt.api.mods.thaumcraft.IAspect; +import dev.ikx.rt.api.mods.thaumcraft.IAspectList; import thaumcraft.api.aspects.AspectList; import java.util.Arrays; diff --git a/src/main/java/ink/ikx/rt/impl/vanilla/ItemAttributeModificationEvent.java b/src/main/java/dev/ikx/rt/impl/vanilla/item/ItemAttributeModificationEvent.java similarity index 94% rename from src/main/java/ink/ikx/rt/impl/vanilla/ItemAttributeModificationEvent.java rename to src/main/java/dev/ikx/rt/impl/vanilla/item/ItemAttributeModificationEvent.java index f2f2ba01..cf8a0add 100644 --- a/src/main/java/ink/ikx/rt/impl/vanilla/ItemAttributeModificationEvent.java +++ b/src/main/java/dev/ikx/rt/impl/vanilla/item/ItemAttributeModificationEvent.java @@ -1,11 +1,11 @@ -package ink.ikx.rt.impl.vanilla; +package dev.ikx.rt.impl.vanilla.item; import com.google.common.collect.Multimap; import crafttweaker.api.entity.IEntityEquipmentSlot; import crafttweaker.api.entity.attribute.IEntityAttributeModifier; import crafttweaker.api.item.IItemStack; import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.api.vanilla.IItemAttributeModificationEvent; +import dev.ikx.rt.api.vanilla.item.IItemAttributeModificationEvent; import net.minecraft.entity.ai.attributes.AttributeModifier; import java.util.List; diff --git a/src/main/java/ink/ikx/rt/Main.java b/src/main/java/ink/ikx/rt/Main.java deleted file mode 100644 index 449287a0..00000000 --- a/src/main/java/ink/ikx/rt/Main.java +++ /dev/null @@ -1,207 +0,0 @@ -package ink.ikx.rt; - -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; -import com.google.common.collect.Lists; -import com.zeitheron.hammercore.utils.OnetimeCaller; -import crafttweaker.CraftTweakerAPI; -import crafttweaker.api.block.IBlockState; -import crafttweaker.api.minecraft.CraftTweakerMC; -import crafttweaker.mc1120.commands.CTChatCommand; -import crafttweaker.mods.jei.JEI; -import ink.ikx.rt.api.mods.astralsorcery.event.CTEventManagerAS; -import ink.ikx.rt.api.mods.botania.ICocoon; -import ink.ikx.rt.api.mods.botania.event.CTEventManager; -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; -import ink.ikx.rt.api.mods.jei.core.IJeiPanel; -import ink.ikx.rt.api.mods.jei.core.IJeiRecipe; -import ink.ikx.rt.api.mods.thaumicadditions.IFluxConcentrator; -import ink.ikx.rt.impl.internal.capability.CapabilityRegistryHandler; -import ink.ikx.rt.impl.internal.config.RTConfig; -import ink.ikx.rt.impl.internal.event.FTBUltimineEvent; -import ink.ikx.rt.impl.internal.network.NetworkManager; -import ink.ikx.rt.impl.internal.proxy.IProxy; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import ink.ikx.rt.impl.mods.botania.module.SubTileOrechidManager; -import ink.ikx.rt.impl.mods.botania.subtile.SubTileHydroangeasModified; -import ink.ikx.rt.impl.mods.botania.subtile.SubTileOrechidModified; -import ink.ikx.rt.impl.mods.contenttweaker.MCBotaniaContentEvent; -import ink.ikx.rt.impl.mods.crafttweaker.CraftTweakerExtension; -import ink.ikx.rt.impl.mods.crafttweaker.command.AttributeCommand; -import ink.ikx.rt.impl.mods.jei.JeiAttunements; -import ink.ikx.rt.impl.mods.jei.JeiHydroangeas; -import ink.ikx.rt.impl.mods.jei.JeiOrechid; -import ink.ikx.rt.impl.mods.thaumcraft.DreamJournalEvent; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.Mod.EventHandler; -import net.minecraftforge.fml.common.SidedProxy; -import net.minecraftforge.fml.common.event.FMLConstructionEvent; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import org.apache.commons.lang3.tuple.Pair; -import org.zeith.thaumicadditions.api.RecipesFluxConcentrator; -import vazkii.botania.api.BotaniaAPI; -import vazkii.botania.api.subtile.SubTileEntity; -import vazkii.botania.common.lib.LibBlockNames; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -@Mod( - modid = Main.MODID, - name = Main.NAME, - version = Main.VERSION, - dependencies = Main.DESPENDENCIES -) -public class Main { - - public static final String MODID = "randomtweaker"; - public static final String NAME = "RandomTweaker"; - public static final String VERSION = "1.4.7"; - public static final String DESPENDENCIES = "required-after:crafttweaker;" + - "required-after:mixinbooter@[4.2,);" + - "required-after:zenutils@[1.17,);" + - "required-after:configanytime@[2.0,);" + - "after:contenttweaker;after:thaumcraft"; - - public static final Set JEI_PANEL_SET = new HashSet<>(); - public static final Set JEI_RECIPE_SET = new HashSet<>(); - public static final Map CUSTOM_COCOONS_SPAWN = new HashMap<>(); - public static final BiMap> SUB_TILE_GENERATING_MAP = HashBiMap.create(); - - public static final List HIDDEN_MATERIAL_LIST = new ArrayList<>(); - public static final Map MATERIAL_PRIORITY_MAP = new HashMap<>(); - public static final Map MATERIAL_SHOW_ITEM_MAP = new HashMap<>(); - - @SidedProxy(clientSide = "ink.ikx.rt.impl.internal.proxy.ClientProxy", serverSide = "ink.ikx.rt.impl.internal.proxy.ServerProxy") - public static IProxy proxy; - - @EventHandler - public void onConstruct(FMLConstructionEvent event) { - CraftTweakerExtension.registerAllClass(); - if (Loader.isModLoaded("astralsorcery")) - MinecraftForge.EVENT_BUS.register(CTEventManagerAS.Handler.class); - if (Loader.isModLoaded("botania")) { - MinecraftForge.EVENT_BUS.register(CTEventManager.Handler.class); - if (Loader.isModLoaded("contenttweaker")) { - MinecraftForge.EVENT_BUS.register(MCBotaniaContentEvent.class); - } - } - } - - @EventHandler - public void onPreInit(FMLPreInitializationEvent event) { - if (RTConfig.Botania.OrechidHasDefault && Loader.isModLoaded("botania")) { - SubTileOrechidManager.oreWeights.put(Blocks.STONE.getDefaultState(), BotaniaAPI.oreWeights); - } - if (Loader.isModLoaded("thaumcraft")) { - MinecraftForge.EVENT_BUS.register(DreamJournalEvent.class); - } - if (InternalUtils.isOpenFTBUltimineControl()) { - NetworkManager.registerFTBUltimineTag(); - CapabilityRegistryHandler.registerFTBUltimineTag(); - MinecraftForge.EVENT_BUS.register(FTBUltimineEvent.class); - } - } - - @EventHandler - public void onInit(FMLInitializationEvent event) { - registryFlowerModified(); - registerAttuAltarRecipe(); - } - - @EventHandler - public void onPostInit(FMLPostInitializationEvent event) { - CTChatCommand.registerCommand(new AttributeCommand()); - if (Loader.isModLoaded("thaumcraft")) { - CraftTweakerAPI.tweaker.loadScript(false, "thaumcraft"); - if (Loader.isModLoaded("thaumadditions")) { - if (!IFluxConcentrator.LATE_REMOVES.isEmpty()) OnetimeCaller.of(this::removeRecipeLate).call(); - } - } - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - private void removeRecipeLate() { - for (Map.Entry entry : IFluxConcentrator.LATE_REMOVES.entrySet()) { - Boolean isRemoveAll = entry.getValue(); - IBlockState lateRemove = entry.getKey(); - List toRemoveForPassInBlocks = Lists.newArrayList(); - - try { - Field field = RecipesFluxConcentrator.class.getDeclaredField("HANDLERS"); - field.setAccessible(true); - Map handlers = - (Map) field.get(RecipesFluxConcentrator.class); - handlers.entrySet().removeIf(next -> { - boolean toReturn = false; - - if (isRemoveAll && next.getValue().getOutState().getBlock().equals(CraftTweakerMC.getBlockState(lateRemove).getBlock())) { - toReturn = true; - toRemoveForPassInBlocks.add(next.getKey()); - } else if (next.getValue().getOutState().equals(CraftTweakerMC.getBlockState(lateRemove))) { - toReturn = true; - toRemoveForPassInBlocks.add(next.getKey()); - } - - return toReturn; - }); - - Field field1 = RecipesFluxConcentrator.class.getDeclaredField("PASS_IN_BLOCKS"); - field1.setAccessible(true); - Set passInBlocks = (Set) field1.get(RecipesFluxConcentrator.class); - for (net.minecraft.block.state.IBlockState toRemoveForPassInBlock : toRemoveForPassInBlocks) { - passInBlocks.remove(CraftTweakerMC.getBlockState(toRemoveForPassInBlock)); - } - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - } - } - - @SuppressWarnings("unchecked") - private void registryFlowerModified() { - if (!Loader.isModLoaded("botania")) return; - final BiMap> subTiles; - try { - Field field = BotaniaAPI.class.getDeclaredField("subTiles"); - field.setAccessible(true); - subTiles = (BiMap>) field.get(null); - if (Objects.nonNull(subTiles)) { - if (RTConfig.Botania.OrechidModified) { - if (Loader.isModLoaded("jei")) { - JeiOrechid.init(); - JEI.hideCategory("botania.orechid"); - } - subTiles.forcePut(LibBlockNames.SUBTILE_ORECHID, SubTileOrechidModified.class); - } - if (RTConfig.Botania.HydroangeasModified) { - if (Loader.isModLoaded("jei")) { - JeiHydroangeas.init(); - } - subTiles.forcePut(LibBlockNames.SUBTILE_HYDROANGEAS, SubTileHydroangeasModified.class); - } - } - } catch (IllegalAccessException | NoSuchFieldException e) { - e.printStackTrace(); - } - } - - private void registerAttuAltarRecipe() { - if (Loader.isModLoaded("astralsorcery") && Loader.isModLoaded("jei")) { - JeiAttunements.init(); - } - } - -} diff --git a/src/main/java/ink/ikx/rt/api/internal/utils/ITileData.java b/src/main/java/ink/ikx/rt/api/internal/utils/ITileData.java deleted file mode 100644 index 8b94a957..00000000 --- a/src/main/java/ink/ikx/rt/api/internal/utils/ITileData.java +++ /dev/null @@ -1,40 +0,0 @@ -package ink.ikx.rt.api.internal.utils; - -import crafttweaker.CraftTweakerAPI; -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import crafttweaker.api.data.DataMap; -import crafttweaker.api.data.IData; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.INBTSerializable; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenGetter; -import stanhebben.zenscript.annotations.ZenSetter; - -/** - * @author youyihj - *
Mit LICENSE - *
by -> https://github.com/friendlyhj/ZenUtils/blob/master/src/main/java/youyihj/zenutils/api/cotx/tile/TileData.java - */ - -@SidedZenRegister(modDeps = "contenttweaker") -@ZenClass("mods.randomtweaker.utils.ITileData") -public interface ITileData extends INBTSerializable { - - static void checkDataMap(IData data) { - if (!(data instanceof DataMap)) { - CraftTweakerAPI.logError("data argument must be DataMap", new IllegalArgumentException()); - } - } - - void readFromNBT(NBTTagCompound nbt); - - NBTTagCompound writeToNBT(NBTTagCompound nbt); - - @ZenGetter("data") - IData getData(); - - @ZenSetter("data") - void setData(IData data); - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactory.java b/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactory.java deleted file mode 100644 index 64cdaeac..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactory.java +++ /dev/null @@ -1,29 +0,0 @@ -package ink.ikx.rt.api.mods.contenttweaker; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import ink.ikx.rt.api.mods.contenttweaker.potion.IPotionRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.potion.IPotionTypeRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.potion.MCPotionRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.potion.MCPotionTypeRepresentation; - -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenMethodStatic; - - -@SidedZenRegister(modDeps = "contenttweaker") -@ZenExpansion("mods.contenttweaker.VanillaFactory") -@ZenClass("mods.randomtweaker.cote.VanillaFactoryExpansion") -public abstract class ExpandVanillaFactory { - - @ZenMethodStatic - public static IPotionRepresentation createPotion(String unlocalizedName, int color) { - return new MCPotionRepresentation(color, unlocalizedName); - } - - @ZenMethodStatic - public static IPotionTypeRepresentation createPotionType(String unlocalizedName, IPotionRepresentation potion) { - return new MCPotionTypeRepresentation(unlocalizedName, potion); - } - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithBotania.java b/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithBotania.java deleted file mode 100644 index eda40bae..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/ExpandVanillaFactoryWithBotania.java +++ /dev/null @@ -1,50 +0,0 @@ -package ink.ikx.rt.api.mods.contenttweaker; - -import ink.ikx.rt.api.mods.contenttweaker.mana.bauble.IManaBaubleRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.IManaItemRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.tool.IIsUsesManaItemRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.functional.ISubTileEntityFunctionalRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.generating.ISubTileEntityGeneratingRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.mana.bauble.MCManaBaubleRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.mana.item.MCManaItemRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.mana.item.tool.MCIsUsesManaItemRepresentation; -import ink.ikx.rt.impl.mods.contenttweaker.subtile.MCSubTileEntityRepresentation; -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -import stanhebben.zenscript.annotations.Optional; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenMethodStatic; - - -@SidedZenRegister(modDeps = {"botania", "contenttweaker"}) -@ZenExpansion("mods.contenttweaker.VanillaFactory") -@ZenClass("mods.randomtweaker.cote.VanillaFactoryExpansionWithBotania") -public abstract class ExpandVanillaFactoryWithBotania { - - @ZenMethodStatic - public static IManaItemRepresentation createManaItem(String unlocalizedName, @Optional(valueLong = 500000) int maxMana) { - return new MCManaItemRepresentation(unlocalizedName, maxMana); - } - - @ZenMethodStatic - public static IIsUsesManaItemRepresentation createManaUsingItem(String unlocalizedName, @Optional(valueLong = 500000) int maxMana) { - return new MCIsUsesManaItemRepresentation(unlocalizedName, maxMana); - } - - @ZenMethodStatic - public static IManaBaubleRepresentation createManaBauble(String unlocalizedName, String baubleType, @Optional(valueLong = 500000) int maxMana) { - return new MCManaBaubleRepresentation(unlocalizedName, maxMana, baubleType); - } - - @ZenMethodStatic - public static ISubTileEntityGeneratingRepresentation createSubTileGenerating(String unlocalizedName, @Optional int color) { - return new MCSubTileEntityRepresentation.MCSubTileEntityGeneratingRepresentation(color, unlocalizedName); - } - - @ZenMethodStatic - public static ISubTileEntityFunctionalRepresentation createSubTileFunctional(String unlocalizedName, @Optional int color) { - return new MCSubTileEntityRepresentation.MCSubTileEntityFunctionalRepresentation(color, unlocalizedName); - } - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/bauble/IManaBaubleRepresentation.java b/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/bauble/IManaBaubleRepresentation.java deleted file mode 100644 index 2aba3ff3..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/bauble/IManaBaubleRepresentation.java +++ /dev/null @@ -1,58 +0,0 @@ -package ink.ikx.rt.api.mods.contenttweaker.mana.bauble; - -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleFunction; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleFunctionWithReturn; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IBaubleRender; -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IGetBaubleType; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.IManaItemRepresentation; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; -import stanhebben.zenscript.annotations.ZenProperty; -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -/** - * @author superhelo - */ - -@SidedZenRegister(modDeps = {"contenttweaker", "botania"}) -@ZenClass("mods.randomtweaker.cote.ManaBauble") -public abstract class IManaBaubleRepresentation extends IManaItemRepresentation { - - @ZenProperty - public String baubleType; - @ZenProperty - public IBaubleFunction onWornTick; - @ZenProperty - public IBaubleFunction onEquipped; - @ZenProperty - public IBaubleFunction onUnequipped; - @ZenProperty - public IGetBaubleType getBaubleType; - @ZenProperty - public IBaubleRender onPlayerBaubleRender; - @ZenProperty - public IBaubleFunctionWithReturn canEquip; - @ZenProperty - public IBaubleFunctionWithReturn canUnEquip; - @ZenProperty - public IBaubleFunctionWithReturn willAutoSync; - - @ZenMethod - public String getBaubleType() { - return baubleType; - } - - @ZenMethod - public void setBaubleType(String baubleType) { - this.baubleType = baubleType; - } - - @Override - public String getTypeName() { - return "ManaBauble"; - } - - @Override - public abstract void register(); - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/item/tool/IIsUsesManaItemRepresentation.java b/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/item/tool/IIsUsesManaItemRepresentation.java deleted file mode 100644 index 51c189d4..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/mana/item/tool/IIsUsesManaItemRepresentation.java +++ /dev/null @@ -1,38 +0,0 @@ -package ink.ikx.rt.api.mods.contenttweaker.mana.item.tool; - -import ink.ikx.rt.api.mods.contenttweaker.function.mana.IisUsesMana; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.IManaItemRepresentation; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; -import stanhebben.zenscript.annotations.ZenProperty; -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -/** - * @author superhelo - */ -@SidedZenRegister(modDeps = {"contenttweaker", "botania"}) -@ZenClass("mods.randomtweaker.cote.ManaUsingItem") -public abstract class IIsUsesManaItemRepresentation extends IManaItemRepresentation { - - @ZenProperty - public IisUsesMana usesMana; - - @ZenMethod - public IisUsesMana getUsesMana() { - return usesMana; - } - - @ZenMethod - public void setUsesMana(IisUsesMana usesMana) { - this.usesMana = usesMana; - } - - @Override - public String getTypeName() { - return "ManaUsingItem"; - } - - @Override - public abstract void register(); - -} \ No newline at end of file diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/potion/IPotionRepresentation.java b/src/main/java/ink/ikx/rt/api/mods/contenttweaker/potion/IPotionRepresentation.java deleted file mode 100644 index abb619a4..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/potion/IPotionRepresentation.java +++ /dev/null @@ -1,47 +0,0 @@ -package ink.ikx.rt.api.mods.contenttweaker.potion; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import ink.ikx.rt.api.mods.contenttweaker.function.IPotionIsReady; -import ink.ikx.rt.api.mods.contenttweaker.function.IPotionPerformEffect; - -import net.minecraft.potion.Potion; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; -import stanhebben.zenscript.annotations.ZenProperty; - - -@SidedZenRegister(modDeps = "contenttweaker") -@ZenClass("mods.randomtweaker.cote.IPotion") -public abstract class IPotionRepresentation { - - public final int liquidColor; - public final String unlocalizedName; - - @ZenProperty - public boolean instant; - @ZenProperty - public boolean badEffectIn; - @ZenProperty - public boolean beneficial = true; - @ZenProperty - public boolean shouldRender = true; - @ZenProperty - public boolean shouldRenderHUD = true; - @ZenProperty - public IPotionIsReady isReady = null; - @ZenProperty - public IPotionPerformEffect performEffect; - @ZenProperty - public IPotionPerformEffect affectEntity; - - protected IPotionRepresentation(int liquidColor, String unlocalizedName) { - this.liquidColor = liquidColor; - this.unlocalizedName = unlocalizedName; - } - - @ZenMethod - public abstract void register(); - - public abstract Potion getInternal(); - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/potion/IPotionTypeRepresentation.java b/src/main/java/ink/ikx/rt/api/mods/contenttweaker/potion/IPotionTypeRepresentation.java deleted file mode 100644 index 4d8e8161..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/contenttweaker/potion/IPotionTypeRepresentation.java +++ /dev/null @@ -1,30 +0,0 @@ -package ink.ikx.rt.api.mods.contenttweaker.potion; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; -import stanhebben.zenscript.annotations.ZenProperty; - - -@SidedZenRegister(modDeps = "contenttweaker") -@ZenClass("mods.randomtweaker.cote.IPotionType") -public abstract class IPotionTypeRepresentation { - - public String unlocalizedName; - public IPotionRepresentation potion; - - @ZenProperty - public int duration = 3600; - @ZenProperty - public int amplifier = 0; - - protected IPotionTypeRepresentation(String unlocalizedName, IPotionRepresentation potion) { - this.unlocalizedName = unlocalizedName; - this.potion = potion; - } - - @ZenMethod - public abstract void register(); - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/IJeiUtils.java b/src/main/java/ink/ikx/rt/api/mods/jei/IJeiUtils.java deleted file mode 100644 index c6985b6c..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/jei/IJeiUtils.java +++ /dev/null @@ -1,131 +0,0 @@ -package ink.ikx.rt.api.mods.jei; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import ink.ikx.rt.api.mods.jei.core.IJeiBackground; -import ink.ikx.rt.api.mods.jei.elements.IJeiElements; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlotItem; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlotLiquid; - -import ink.ikx.rt.impl.mods.jei.impl.MCJeiSlots; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiBackground; -import ink.ikx.rt.impl.mods.jei.impl.elemenet.MCJeiElementArrow; -import ink.ikx.rt.impl.mods.jei.impl.elemenet.MCJeiElementLiquid; -import ink.ikx.rt.impl.mods.jei.impl.elemenet.MCJeiElements; -import stanhebben.zenscript.annotations.Optional; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; - - -@SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiUtils") -public abstract class IJeiUtils { - - @ZenMethod - public static IJeiBackground createBackground(int width, int height) { - return new MCJeiBackground(width, height); - } - - @ZenMethod - public static IJeiBackground createBackground(int u, int v, int width, int height, String resourceName) { - return new MCJeiBackground(u, v, width, height, resourceName); - } - - //------------------------------------------------------------------------------------------- - - @ZenMethod - public static IJeiSlotLiquid createLiquidSlot(int x, int y, int width, int height, int capacityMb, boolean showCapacity, - boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { - return new MCJeiSlots.MCJeiSlotLiquid(x, y, width, height, capacityMb, showCapacity, isInput, hasBase); - } - - @ZenMethod - public static IJeiSlotLiquid createLiquidSlot(int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { - return createLiquidSlot(x, y, 16, 16, 1000, false, isInput, hasBase); - } - - @ZenMethod - public static IJeiSlotItem createItemSlot(int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { - return new MCJeiSlots.MCJeiSlotItem(x, y, isInput, hasBase); - } - - @ZenMethod - public static IJeiSlotLiquid createLiquidSlot(String slotName, int x, int y, int width, int height, int capacityMb, boolean showCapacity, - boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { - return new MCJeiSlots.MCJeiSlotLiquid(slotName, x, y, isInput, hasBase, width, height, capacityMb, showCapacity); - } - - @ZenMethod - public static IJeiSlotLiquid createLiquidSlot(String slotName, int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { - return createLiquidSlot(slotName, x, y, 16, 16, 1000, false, isInput, hasBase); - } - - @ZenMethod - public static IJeiSlotItem createItemSlot(String slotName, int x, int y, boolean isInput, @Optional(valueBoolean = true) boolean hasBase) { - return new MCJeiSlots.MCJeiSlotItem(slotName, x, y, isInput, hasBase); - } - - //------------------------------------------------------------------------------------------- - - @ZenMethod - public static IJeiElements.IJeiElementItemInput createItemInputElement(int x, int y) { - return new MCJeiElements.MCJeiElementItemInput(x, y); - } - - @ZenMethod - public static IJeiElements.IJeiElementItemOutput createItemOutputElement(int x, int y) { - return new MCJeiElements.MCJeiElementItemOutput(x, y); - } - - @ZenMethod - public static IJeiElements.IJeiElementLiquid createLiquidElement(int x, int y, int width, int height) { - return new MCJeiElementLiquid(x, y, width, height); - } - - @ZenMethod - public static IJeiElements.IJeiElementFontInfo createFontInfoElement(String info, int x, int y, int color, @Optional int width, @Optional int height) { - return new MCJeiElements.MCJeiElementFontInfo(x, y, width, height, color, info); - } - - @ZenMethod - public static IJeiElements.IJeiElementArrow createArrowElement(int x, int y, int direction) { - return new MCJeiElementArrow(x, y, direction); - } - - @ZenMethod - public static IJeiElements.IJeiElementImage createImageElement(int x, int y, int width, int height, int u, int v, - String texture, int textureWidth, int textureHeight) { - return new MCJeiElements.MCJeiElementImage(u, v, x, y, width, height, texture, textureWidth, textureHeight); - } - - @ZenMethod - public static IJeiElements.IJeiElementItemInput createItemInputElement(String elementName, int x, int y) { - return new MCJeiElements.MCJeiElementItemInput(elementName, x, y); - } - - @ZenMethod - public static IJeiElements.IJeiElementItemOutput createItemOutputElement(String elementName, int x, int y) { - return new MCJeiElements.MCJeiElementItemOutput(elementName, x, y); - } - - @ZenMethod - public static IJeiElements.IJeiElementLiquid createLiquidElement(String elementName, int x, int y, int width, int height) { - return new MCJeiElementLiquid(elementName, x, y, width, height); - } - - @ZenMethod - public static IJeiElements.IJeiElementFontInfo createFontInfoElement(String elementName, String info, int x, int y, int color, @Optional int width, @Optional int height) { - return new MCJeiElements.MCJeiElementFontInfo(elementName, x, y, width, height, color, info); - } - - @ZenMethod - public static IJeiElements.IJeiElementArrow createArrowElement(String elementName, int x, int y, int direction) { - return new MCJeiElementArrow(elementName, x, y, direction); - } - - @ZenMethod - public static IJeiElements.IJeiElementImage createImageElement(String elementName, int x, int y, int width, int height, int u, int v, - String texture, int textureWidth, int textureHeight) { - return new MCJeiElements.MCJeiElementImage(elementName, u, v, x, y, width, height, texture, textureWidth, textureHeight); - } - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/IJeiUtilsWithBotania.java b/src/main/java/ink/ikx/rt/api/mods/jei/IJeiUtilsWithBotania.java deleted file mode 100644 index 29ba4620..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/jei/IJeiUtilsWithBotania.java +++ /dev/null @@ -1,21 +0,0 @@ -package ink.ikx.rt.api.mods.jei; - -import ink.ikx.rt.api.mods.jei.elements.IJeiElements; -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -import ink.ikx.rt.impl.mods.jei.impl.elemenet.MCJeiElementManaBar; -import stanhebben.zenscript.annotations.Optional; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenMethodStatic; - - -@SidedZenRegister(modDeps = {"jei", "botania"}) -@ZenExpansion("mods.randomtweaker.jei.IJeiUtils") -public abstract class IJeiUtilsWithBotania { - - @ZenMethodStatic - public static IJeiElements.IJeiElementManaBar createJeiManaBarElement(int x, int y, int mana, @Optional int mode) { - return new MCJeiElementManaBar(x, y, mode, mana); - } - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/JEIExpansion.java b/src/main/java/ink/ikx/rt/api/mods/jei/JEIExpansion.java deleted file mode 100644 index b712db86..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/jei/JEIExpansion.java +++ /dev/null @@ -1,38 +0,0 @@ -package ink.ikx.rt.api.mods.jei; - -import crafttweaker.api.item.IItemStack; -import crafttweaker.api.minecraft.CraftTweakerMC; -import ink.ikx.rt.impl.mods.jei.JeiPlugin; -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import ink.ikx.rt.api.mods.jei.core.IJeiPanel; -import ink.ikx.rt.api.mods.jei.core.IJeiRecipe; -import net.minecraft.item.ItemStack; - -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiPanel; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; -import stanhebben.zenscript.annotations.ZenExpansion; -import stanhebben.zenscript.annotations.ZenMethodStatic; - -import java.util.Objects; - -@SidedZenRegister(modDeps = "jei") -@ZenExpansion("mods.jei.JEI") -public abstract class JEIExpansion { - - @ZenMethodStatic - public static IJeiPanel createJei(String uid, String title) { - return new MCJeiPanel(uid, title); - } - - @ZenMethodStatic - public static IJeiRecipe createJeiRecipe(String uid) { - return new MCJeiRecipe(uid); - } - - @ZenMethodStatic - public static void addItemNBTSubtype(IItemStack stack) { - ItemStack mcStack = CraftTweakerMC.getItemStack(stack); - Objects.requireNonNull(mcStack.getItem()); - JeiPlugin.subtypesToRegister.add(mcStack.getItem()); - } -} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiPanel.java b/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiPanel.java deleted file mode 100644 index f887f49c..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiPanel.java +++ /dev/null @@ -1,62 +0,0 @@ -package ink.ikx.rt.api.mods.jei.core; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import crafttweaker.api.item.IItemStack; -import ink.ikx.rt.api.mods.jei.elements.IJeiElement; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlot; - -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; - - -@SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiPanel") -public interface IJeiPanel { - - @ZenMethod - IJeiPanel setModid(String modid); - - @ZenMethod - IJeiPanel setIcon(IItemStack icon); - - @ZenMethod - IJeiPanel addSlot(IJeiSlot slot); - - @ZenMethod - IJeiPanel setSlots(IJeiSlot[] slots); - - @ZenMethod - IJeiPanel onTooltip(IJeiTooltip tooltip); - - @ZenMethod - IJeiPanel addElement(IJeiElement elements); - - @ZenMethod - IJeiPanel setElements(IJeiElement[] elements); - - @ZenMethod - IJeiPanel addRecipeCatalyst(IItemStack stack); - - @ZenMethod - IJeiPanel setRecipeCatalysts(IItemStack[] stacks); - - @ZenMethod - IJeiPanel setBackground(IJeiBackground background); - - @ZenMethod - IJeiSlot[] getJeiSlots(); - - @ZenMethod - IJeiSlot getJeiSlot(String slotName); - - @ZenMethod - IJeiElement[] getJeiElements(); - - @ZenMethod - IJeiElement getJeiElement(String elementName); - - @ZenMethod - void register(); - - void register_(); -} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiRecipe.java b/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiRecipe.java deleted file mode 100644 index 6a691cd4..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/jei/core/IJeiRecipe.java +++ /dev/null @@ -1,43 +0,0 @@ -package ink.ikx.rt.api.mods.jei.core; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import crafttweaker.api.item.IIngredient; -import ink.ikx.rt.api.mods.jei.elements.IJeiElement; - -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; - - -@SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiRecipe") -public interface IJeiRecipe { - - @ZenMethod - IJeiRecipe setInputs(IIngredient[] inputs); - - @ZenMethod - IJeiRecipe setOutputs(IIngredient[] outputs); - - @ZenMethod - IJeiRecipe setElements(IJeiElement[] elements); - - @ZenMethod - IJeiRecipe addInput(IIngredient input); - - @ZenMethod - IJeiRecipe addOutput(IIngredient output); - - @ZenMethod - IJeiRecipe addElement(IJeiElement element); - - @ZenMethod - IJeiRecipe onJEITooltip(IJeiTooltip tooltip); - - @ZenMethod - void build(); - - void build_(); - - String getUid(); - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/elements/IJeiElements.java b/src/main/java/ink/ikx/rt/api/mods/jei/elements/IJeiElements.java deleted file mode 100644 index 1f268913..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/jei/elements/IJeiElements.java +++ /dev/null @@ -1,156 +0,0 @@ -package ink.ikx.rt.api.mods.jei.elements; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenProperty; - -public abstract class IJeiElements { - - - @SidedZenRegister(modDeps = "jei") - @ZenClass("mods.randomtweaker.jei.IJeiElementItemInput") - public abstract static class IJeiElementItemInput extends IJeiElement { - - protected IJeiElementItemInput(int x, int y) { - super(x, y, 18, 18); - } - - protected IJeiElementItemInput(String elementName, int x, int y) { - super(elementName, x, y, 18, 18); - } - } - - - @SidedZenRegister(modDeps = "jei") - @ZenClass("mods.randomtweaker.jei.IJeiElementItemOutput") - public abstract static class IJeiElementItemOutput extends IJeiElement { - - protected IJeiElementItemOutput(int x, int y) { - super(80, 0, x, y, 27, 27); - } - - protected IJeiElementItemOutput(String elementName, int x, int y) { - super(elementName, 80, 0, x, y, 27, 27); - } - - } - - - @SidedZenRegister(modDeps = "jei") - @ZenClass("mods.randomtweaker.jei.IJeiElementLiquid") - public abstract static class IJeiElementLiquid extends IJeiElement { - - protected IJeiElementLiquid(int x, int y, int width, int height) { - super(x, y, width, height); - } - - protected IJeiElementLiquid(String elementName, int x, int y, int width, int height) { - super(elementName, x, y, width, height); - } - - } - - - @SidedZenRegister(modDeps = "jei") - @ZenClass("mods.randomtweaker.jei.IJeiElementArrow") - public abstract static class IJeiElementArrow extends IJeiElement { - - @ZenProperty - public int direction; - - protected IJeiElementArrow(int x, int y, int direction) { - super(x, y, 0, 0); - this.direction = direction; - } - - protected IJeiElementArrow(String elementName, int x, int y, int direction) { - super(elementName, x, y, 0, 0); - this.direction = direction; - } - - } - - - @SidedZenRegister(modDeps = "jei") - @ZenClass("mods.randomtweaker.jei.IJeiElementFontInfo") - public abstract static class IJeiElementFontInfo extends IJeiElement { - - @ZenProperty - public int color; - - @ZenProperty - public String info; - - protected IJeiElementFontInfo(int x, int y, int width, int height, int color, String info) { - super(x, y, width, height); - this.info = info; - this.color = color; - } - - protected IJeiElementFontInfo(String elementName, int x, int y, int width, int height, int color, String info) { - super(elementName, x, y, width, height); - this.info = info; - this.color = color; - } - - } - - - @SidedZenRegister(modDeps = {"jei", "botania"}) - @ZenClass("mods.randomtweaker.jei.IJeiElementManaBar") - public abstract static class IJeiElementManaBar extends IJeiElement { - - @ZenProperty - public int mode; - - @ZenProperty - public int mana; - - protected IJeiElementManaBar(int x, int y, int mode, int mana) { - super(x, y, 0, 0); - this.mode = mode; - this.mana = mana; - } - - protected IJeiElementManaBar(String elementName, int x, int y, int mode, int mana) { - super(elementName, x, y, 0, 0); - this.mode = mode; - this.mana = mana; - } - - } - - - @SidedZenRegister(modDeps = "jei") - @ZenClass("mods.randomtweaker.jei.IJeiElementImage") - public abstract static class IJeiElementImage extends IJeiElement { - - @ZenProperty - public String texture; - - @ZenProperty - public int textureHeight; - - @ZenProperty - public int textureWidth; - - protected IJeiElementImage(int u, int v, int x, int y, int width, int height, - String texture, int textureWidth, int textureHeight) { - super(u, v, x, y, width, height); - this.texture = texture; - this.textureWidth = textureWidth; - this.textureHeight = textureHeight; - } - - protected IJeiElementImage(String elementName, int u, int v, int x, int y, int width, int height, - String texture, int textureWidth, int textureHeight) { - super(elementName, u, v, x, y, width, height); - this.texture = texture; - this.textureWidth = textureWidth; - this.textureHeight = textureHeight; - } - - } - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlotItem.java b/src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlotItem.java deleted file mode 100644 index f3502c3a..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/jei/slots/IJeiSlotItem.java +++ /dev/null @@ -1,20 +0,0 @@ -package ink.ikx.rt.api.mods.jei.slots; - -import youyihj.zenutils.api.zenscript.SidedZenRegister; - -import stanhebben.zenscript.annotations.ZenClass; - - -@SidedZenRegister(modDeps = "jei") -@ZenClass("mods.randomtweaker.jei.IJeiSlotItem") -public abstract class IJeiSlotItem extends IJeiSlot { - - protected IJeiSlotItem(int x, int y, boolean isInput, boolean hasBase) { - super(x, y, isInput, hasBase); - } - - protected IJeiSlotItem(String slotName, int x, int y, boolean isInput, boolean hasBase) { - super(slotName, x, y, isInput, hasBase); - } - -} diff --git a/src/main/java/ink/ikx/rt/api/mods/thaumicadditions/IEdibleAspect.java b/src/main/java/ink/ikx/rt/api/mods/thaumicadditions/IEdibleAspect.java deleted file mode 100644 index fa4f18fb..00000000 --- a/src/main/java/ink/ikx/rt/api/mods/thaumicadditions/IEdibleAspect.java +++ /dev/null @@ -1,94 +0,0 @@ -package ink.ikx.rt.api.mods.thaumicadditions; - -import crafttweaker.CraftTweakerAPI; -import crafttweaker.IAction; -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import crafttweaker.api.entity.IEntityLivingBase; -import crafttweaker.api.item.IItemStack; -import crafttweaker.api.minecraft.CraftTweakerMC; -import crafttweaker.api.potions.IPotionEffect; -import ink.ikx.rt.api.mods.thaumcraft.IAspect; -import ink.ikx.rt.api.mods.thaumcraft.IAspectList; - -import org.zeith.thaumicadditions.api.EdibleAspect; -import stanhebben.zenscript.annotations.ZenClass; -import stanhebben.zenscript.annotations.ZenMethod; - - -@SidedZenRegister(modDeps = "thaumadditions") -@ZenClass("mods.randomtweaker.thaumadditions.IEdibleAspect") -public abstract class IEdibleAspect { - - @ZenMethod - public static void addEatCall(IAspect aspect, EatFunction function) { - CraftTweakerAPI.apply(new IAction() { - @Override public void apply() { - EdibleAspect.addEatCall(aspect.getInternal(), (entity, count) -> { - entity.addPotionEffect(CraftTweakerMC.getPotionEffect(function.apply(count))); - return true; - }); - } - - @Override public String describe() { - return "Adding EatCall -> " + aspect.getName(); - } - }); - } - - @ZenMethod - public static void addAdvancedEatCall(IAspect aspect, EatFunctionWithEntity function) { - CraftTweakerAPI.apply(new IAction() { - @Override public void apply() { - EdibleAspect.addEatCall(aspect.getInternal(), (entity, count) -> function.apply(CraftTweakerMC.getIEntityLivingBase(entity), count)); - } - - @Override public String describe() { - return "Adding EatCall -> " + aspect.getName(); - } - }); - } - - @ZenMethod - public static void removeEatCall(IAspect aspect) { - CraftTweakerAPI.apply(new IAction() { - @Override public void apply() { - EdibleAspect.EAT_FUNCTIONS.entrySet().removeIf(entry -> entry.getKey().getTag().equals(aspect.getInternal().getTag())); - } - - @Override public String describe() { - return "Removing EatCall -> " + aspect.getName(); - } - }); - } - - @ZenMethod - public static IItemStack applyToFoodStack(IItemStack stack, IAspectList aspects) { - return CraftTweakerMC.getIItemStack(EdibleAspect.applyToFoodStack(CraftTweakerMC.getItemStack(stack), aspects.getInternal())); - } - - @ZenMethod - public static IAspectList getSalt(IItemStack stack) { - return IAspectList.of(EdibleAspect.getSalt(CraftTweakerMC.getItemStack(stack))); - } - - - @SidedZenRegister(modDeps = "thaumadditions") - @ZenClass("mods.randomtweaker.thaumadditions.EatFunction") - @FunctionalInterface - public interface EatFunction { - - IPotionEffect apply(int count); - - } - - - @SidedZenRegister(modDeps = "thaumadditions") - @ZenClass("mods.randomtweaker.thaumadditions.EatFunctionWithEntity") - @FunctionalInterface - public interface EatFunctionWithEntity { - - boolean apply(IEntityLivingBase entity, int count); - - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/internal/utils/MCTileData.java b/src/main/java/ink/ikx/rt/impl/internal/utils/MCTileData.java deleted file mode 100644 index 16466950..00000000 --- a/src/main/java/ink/ikx/rt/impl/internal/utils/MCTileData.java +++ /dev/null @@ -1,42 +0,0 @@ -package ink.ikx.rt.impl.internal.utils; - -import crafttweaker.api.data.IData; -import crafttweaker.mc1120.data.NBTConverter; -import ink.ikx.rt.api.internal.utils.ITileData; -import net.minecraft.nbt.NBTTagCompound; - -public class MCTileData implements ITileData { - - private final NBTTagCompound nbtTagCompound = new NBTTagCompound(); - - public void readFromNBT(NBTTagCompound nbt) { - this.nbtTagCompound.merge(nbt); - } - - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - nbt.merge(this.nbtTagCompound); - return nbt; - } - - @Override - public IData getData() { - return NBTConverter.from(this.writeToNBT(new NBTTagCompound()), true); - } - - @Override - public void setData(IData data) { - ITileData.checkDataMap(data); - this.readFromNBT((NBTTagCompound) NBTConverter.from(data)); - } - - @Override - public NBTTagCompound serializeNBT() { - return nbtTagCompound; - } - - @Override - public void deserializeNBT(NBTTagCompound nbt) { - this.nbtTagCompound.merge(nbt); - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/aspect/MCAspectRepresentation.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/aspect/MCAspectRepresentation.java deleted file mode 100644 index 34d7e9de..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/aspect/MCAspectRepresentation.java +++ /dev/null @@ -1,26 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.aspect; - -import ink.ikx.rt.api.mods.contenttweaker.aspect.IAspectRepresentation; -import net.minecraft.util.ResourceLocation; -import org.apache.logging.log4j.LogManager; -import thaumcraft.api.aspects.Aspect; - -public class MCAspectRepresentation extends IAspectRepresentation { - - public MCAspectRepresentation(String tag, int color) { - this.setTag(tag); - this.setColor(color); - this.setImage("contenttweaker:textures/aspects/" + tag.toLowerCase() + ".png"); - } - - @Override - public void register() { - try { - Aspect aspect = new Aspect(this.tag, this.color, this.asAspects(), new ResourceLocation(this.image), this.blend); - aspect.setChatcolor(this.chatcolor); - } catch (IllegalArgumentException e) { - LogManager.getLogger("randomtweaker").error("Registering " + this.tag + " aspect failed"); - } - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBaubleRepresentation.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBaubleRepresentation.java deleted file mode 100644 index 9830040a..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaBaubleRepresentation.java +++ /dev/null @@ -1,25 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.bauble; - -import com.teamacronymcoders.base.registrysystem.ItemRegistry; -import com.teamacronymcoders.contenttweaker.ContentTweaker; -import ink.ikx.rt.api.mods.contenttweaker.mana.bauble.IManaBaubleRepresentation; - -public class MCManaBaubleRepresentation extends IManaBaubleRepresentation { - - public MCManaBaubleRepresentation(String unlocalizedName, int maxMana, String baubleType) { - this.setUnlocalizedName(unlocalizedName); - this.setMaxMana(maxMana); - this.setMaxStackSize(1); - this.setBaubleType(baubleType); - } - - @Override - public void register() { - if (baubleType.equals("TRINKET")) { - ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new MCManaTrinketContent(this)); - } else { - ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new MCManaBaubleContent(this)); - } - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaTrinketContent.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaTrinketContent.java deleted file mode 100644 index 5a30a566..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/bauble/MCManaTrinketContent.java +++ /dev/null @@ -1,17 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.bauble; - -import ink.ikx.rt.api.mods.contenttweaker.mana.bauble.IManaBaubleRepresentation; -import vazkii.botania.api.item.ICosmeticBauble; -import youyihj.zenutils.api.cotx.annotation.ExpandContentTweakerEntry; - -/** - * @author superhelo - */ -@ExpandContentTweakerEntry -public class MCManaTrinketContent extends MCManaBaubleContent implements ICosmeticBauble { - - public MCManaTrinketContent(IManaBaubleRepresentation manaBauble) { - super(manaBauble); - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItemRepresentation.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItemRepresentation.java deleted file mode 100644 index 7121e996..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/MCManaItemRepresentation.java +++ /dev/null @@ -1,20 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.item; - -import com.teamacronymcoders.base.registrysystem.ItemRegistry; -import com.teamacronymcoders.contenttweaker.ContentTweaker; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.IManaItemRepresentation; - -public class MCManaItemRepresentation extends IManaItemRepresentation { - - public MCManaItemRepresentation(String unlocalizedName, int maxMana) { - this.setUnlocalizedName(unlocalizedName); - this.setMaxMana(maxMana); - this.setMaxStackSize(1); - } - - @Override - public void register() { - ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new MCManaItemContent(this)); - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/tool/MCIsUsesManaItemRepresentation.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/tool/MCIsUsesManaItemRepresentation.java deleted file mode 100644 index e9e5992d..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/mana/item/tool/MCIsUsesManaItemRepresentation.java +++ /dev/null @@ -1,19 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.mana.item.tool; - -import com.teamacronymcoders.base.registrysystem.ItemRegistry; -import com.teamacronymcoders.contenttweaker.ContentTweaker; -import ink.ikx.rt.api.mods.contenttweaker.mana.item.tool.IIsUsesManaItemRepresentation; - -public class MCIsUsesManaItemRepresentation extends IIsUsesManaItemRepresentation { - - public MCIsUsesManaItemRepresentation(String unlocalizedName, int maxMana) { - this.setUnlocalizedName(unlocalizedName); - this.setMaxMana(maxMana); - this.setMaxStackSize(1); - } - - @Override - public void register() { - ContentTweaker.instance.getRegistry(ItemRegistry.class, "ITEM").register(new MCIsUsesManaItemContent(this)); - } -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionRepresentation.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionRepresentation.java deleted file mode 100644 index e19a6d70..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionRepresentation.java +++ /dev/null @@ -1,31 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.potion; - -import crafttweaker.CraftTweakerAPI; -import ink.ikx.rt.api.mods.contenttweaker.potion.IPotionRepresentation; -import ink.ikx.rt.impl.internal.event.EventRegister; -import net.minecraft.potion.Potion; - -import java.text.MessageFormat; - -public class MCPotionRepresentation extends IPotionRepresentation { - - public MCPotionRepresentation(int liquidColor, String unlocalizedName) { - super(liquidColor, unlocalizedName); - } - - @Override - public void register() { - if (!EventRegister.POTION_MAP.containsKey(unlocalizedName)) { - EventRegister.POTION_MAP.put(unlocalizedName, new MCPotionContent(this)); - } else { - CraftTweakerAPI.getLogger().logError(MessageFormat.format( - "All Potion must be unique. Key: contenttweaker:{0} is not.", unlocalizedName) - , new UnsupportedOperationException()); - } - } - - @Override - public Potion getInternal() { - return EventRegister.POTION_MAP.get(unlocalizedName); - } -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionTypeRepresentation.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionTypeRepresentation.java deleted file mode 100644 index 6f977e41..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/potion/MCPotionTypeRepresentation.java +++ /dev/null @@ -1,36 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.potion; - -import com.teamacronymcoders.contenttweaker.ContentTweaker; -import crafttweaker.CraftTweakerAPI; -import ink.ikx.rt.api.mods.contenttweaker.potion.IPotionRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.potion.IPotionTypeRepresentation; -import ink.ikx.rt.impl.internal.event.EventRegister; -import net.minecraft.potion.PotionEffect; -import net.minecraft.potion.PotionType; - -import java.text.MessageFormat; - -public class MCPotionTypeRepresentation extends IPotionTypeRepresentation { - - public MCPotionTypeRepresentation(String unlocalizedName, IPotionRepresentation potion) { - super(unlocalizedName, potion); - } - - @Override - public void register() { - if (potion.instant) duration = 0; - - PotionType potionType = new PotionType(ContentTweaker.MOD_ID + "." + unlocalizedName, - new PotionEffect(potion.getInternal(), duration, amplifier)) - .setRegistryName(ContentTweaker.MOD_ID, unlocalizedName); - - if (!EventRegister.POTION_TYPE_MAP.containsKey(unlocalizedName)) { - EventRegister.POTION_TYPE_MAP.put(unlocalizedName, potionType); - } else { - CraftTweakerAPI.getLogger().logError(MessageFormat.format( - "All PotionTypes must be unique. Key: contenttweaker:{0} is not.", unlocalizedName) - , new UnsupportedOperationException()); - } - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityRepresentation.java b/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityRepresentation.java deleted file mode 100644 index e83b6b0e..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/contenttweaker/subtile/MCSubTileEntityRepresentation.java +++ /dev/null @@ -1,44 +0,0 @@ -package ink.ikx.rt.impl.mods.contenttweaker.subtile; - -import ink.ikx.rt.api.mods.contenttweaker.subtile.ISubTileEntityRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.functional.ISubTileEntityFunctionalRepresentation; -import ink.ikx.rt.api.mods.contenttweaker.subtile.generating.ISubTileEntityGeneratingRepresentation; - -public class MCSubTileEntityRepresentation extends ISubTileEntityRepresentation { - - public MCSubTileEntityRepresentation(int color, String unlocalizedName) { - super(color, unlocalizedName); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - ISubTileEntityRepresentation that = (ISubTileEntityRepresentation) o; - - return unlocalizedName.equals(that.unlocalizedName); - } - - @Override - public int hashCode() { - return unlocalizedName.hashCode(); - } - - public static class MCSubTileEntityGeneratingRepresentation extends ISubTileEntityGeneratingRepresentation { - - public MCSubTileEntityGeneratingRepresentation(int color, String unlocalizedName) { - super(color, unlocalizedName); - } - - } - - public static class MCSubTileEntityFunctionalRepresentation extends ISubTileEntityFunctionalRepresentation { - - public MCSubTileEntityFunctionalRepresentation(int color, String unlocalizedName) { - super(color, unlocalizedName); - } - - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerJei.java b/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerJei.java deleted file mode 100644 index 85f016d3..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/crafttweaker/brackethandler/BracketHandlerJei.java +++ /dev/null @@ -1,58 +0,0 @@ -package ink.ikx.rt.impl.mods.crafttweaker.brackethandler; - -import crafttweaker.CraftTweakerAPI; -import crafttweaker.annotations.BracketHandler; -import youyihj.zenutils.api.zenscript.SidedZenRegister; -import crafttweaker.zenscript.IBracketHandler; -import ink.ikx.rt.Main; -import ink.ikx.rt.api.mods.jei.core.IJeiPanel; - -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiPanel; -import stanhebben.zenscript.compiler.IEnvironmentGlobal; -import stanhebben.zenscript.expression.ExpressionCallStatic; -import stanhebben.zenscript.expression.ExpressionString; -import stanhebben.zenscript.parser.Token; -import stanhebben.zenscript.symbols.IZenSymbol; -import stanhebben.zenscript.type.natives.IJavaMethod; - -import java.util.List; - -@SidedZenRegister(modDeps = "jei") -@BracketHandler(priority = 100) - -public class BracketHandlerJei implements IBracketHandler { - - public static IJeiPanel getJEIPanel(String name) { - return Main.JEI_PANEL_SET.stream().filter(p -> ((MCJeiPanel) p).uid.equals(name)).findFirst().orElse(null); - } - - @Override - public IZenSymbol resolve(IEnvironmentGlobal environment, List tokens) { - if (tokens.size() > 2) { - if (tokens.get(0).getValue().equals("jei") && tokens.get(1).getValue().equals(":")) { - return find(environment, tokens); - } - } - return null; - } - - @Override - public String getRegexMatchingString() { - return "jei:.*"; - } - - @Override - public Class getReturnedClass() { - return IJeiPanel.class; - } - - private IZenSymbol find(IEnvironmentGlobal environment, List tokens) { - String name = tokens.get(2).getValue(); - if (getJEIPanel(name) != null) { - IJavaMethod method = CraftTweakerAPI.getJavaMethod(BracketHandlerJei.class, "getJEIPanel", String.class); - return position -> new ExpressionCallStatic(position, environment, method, new ExpressionString(position, name)); - } - return null; - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/MCJeiSlots.java b/src/main/java/ink/ikx/rt/impl/mods/jei/impl/MCJeiSlots.java deleted file mode 100644 index 8fd280e3..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/MCJeiSlots.java +++ /dev/null @@ -1,52 +0,0 @@ -package ink.ikx.rt.impl.mods.jei.impl; - -import ink.ikx.rt.api.mods.jei.IJeiUtils; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlotItem; -import ink.ikx.rt.api.mods.jei.slots.IJeiSlotLiquid; -import net.minecraft.client.Minecraft; - -public class MCJeiSlots { - - public static class MCJeiSlotItem extends IJeiSlotItem { - - public MCJeiSlotItem(int x, int y, boolean isInput, boolean hasBase) { - super(x, y, isInput, hasBase); - } - - public MCJeiSlotItem(String slotName, int x, int y, boolean isInput, boolean hasBase) { - super(slotName, x, y, isInput, hasBase); - } - - @Override - public void render(Minecraft minecraft) { - if (!hasBase) return; - if (isInput) { - IJeiUtils.createItemInputElement(x, y).render(minecraft); - } else { - IJeiUtils.createItemOutputElement(x, y).render(minecraft); - } - } - - } - - public static class MCJeiSlotLiquid extends IJeiSlotLiquid { - - public MCJeiSlotLiquid(int x, int y, int width, int height, int capacityMb, - boolean showCapacity, boolean isInput, boolean hasBase) { - super(x, y, isInput, hasBase, width, height, capacityMb, showCapacity); - } - - public MCJeiSlotLiquid(String slotName, int x, int y, boolean isInput, boolean hasBase, - int width, int height, int capacityMb, boolean showCapacity) { - super(slotName, x, y, isInput, hasBase, width, height, capacityMb, showCapacity); - } - - @Override - public void render(Minecraft minecraft) { - if (!hasBase) return; - IJeiUtils.createLiquidElement(x, y, width, height).render(minecraft); - } - - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiBackground.java b/src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiBackground.java deleted file mode 100644 index 5150b1cc..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/core/MCJeiBackground.java +++ /dev/null @@ -1,15 +0,0 @@ -package ink.ikx.rt.impl.mods.jei.impl.core; - -import ink.ikx.rt.api.mods.jei.core.IJeiBackground; - -public class MCJeiBackground extends IJeiBackground { - - public MCJeiBackground(int u, int v, int width, int height, String resourceName) { - super(u, v, width, height, resourceName); - } - - public MCJeiBackground(int width, int height) { - super(width, height); - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementArrow.java b/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementArrow.java deleted file mode 100644 index d60105b7..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementArrow.java +++ /dev/null @@ -1,46 +0,0 @@ -package ink.ikx.rt.impl.mods.jei.impl.elemenet; - -import crafttweaker.CraftTweakerAPI; -import ink.ikx.rt.api.mods.jei.elements.IJeiElements; -import ink.ikx.rt.impl.mods.jei.JeiPlugin; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.util.ResourceLocation; - -public class MCJeiElementArrow extends IJeiElements.IJeiElementArrow { - - public MCJeiElementArrow(int x, int y, int direction) { - super(x, y, direction); - } - - public MCJeiElementArrow(String elementName, int x, int y, int direction) { - super(elementName, x, y, direction); - } - - @Override - public void render(Minecraft minecraft) { - minecraft.getTextureManager().bindTexture(new ResourceLocation(JeiPlugin.DEFAULT_TEXTURE)); - switch (direction) { - case 0: - render(36, 0, 22, 15); - break; - case 1: - render(36, 16, 22, 15); - break; - case 2: - render(64, 0, 15, 22); - break; - case 3: - render(64, 32, 15, 22); - break; - default: - CraftTweakerAPI.getLogger().logError("The direction isn't exist."); - break; - } - } - - private void render(int u, int v, int width, int height) { - Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, width, height, 256, 256); - } - -} \ No newline at end of file diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementLiquid.java b/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementLiquid.java deleted file mode 100644 index 18fec24b..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementLiquid.java +++ /dev/null @@ -1,35 +0,0 @@ -package ink.ikx.rt.impl.mods.jei.impl.elemenet; - -import ink.ikx.rt.api.mods.jei.elements.IJeiElements; -import ink.ikx.rt.impl.mods.jei.JeiPlugin; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.util.ResourceLocation; - -public class MCJeiElementLiquid extends IJeiElements.IJeiElementLiquid { - - public MCJeiElementLiquid(int x, int y, int width, int height) { - super(x, y, width, height); - } - - public MCJeiElementLiquid(String elementName, int x, int y, int width, int height) { - super(elementName, x, y, width, height); - } - - @Override - public void render(Minecraft minecraft) { - minecraft.getTextureManager().bindTexture(new ResourceLocation(JeiPlugin.DEFAULT_TEXTURE)); - if (width == 16 && height == 16) { - render(18, 0); - } else if (width == 34 && height == 16) { - render(0, 18); - } else if (width == 16 && height == 34) { - render(0, 36); - } - } - - private void render(int u, int v) { - Gui.drawModalRectWithCustomSizedTexture(x - 1, y - 1, u, v, width + 2, height + 2, 256, 256); - } - -} \ No newline at end of file diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementManaBar.java b/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementManaBar.java deleted file mode 100644 index 3e6e5684..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElementManaBar.java +++ /dev/null @@ -1,44 +0,0 @@ -package ink.ikx.rt.impl.mods.jei.impl.elemenet; - -import ink.ikx.rt.api.mods.jei.elements.IJeiElements; -import net.minecraft.client.Minecraft; -import vazkii.botania.client.core.handler.HUDHandler; -import vazkii.botania.common.block.tile.mana.TilePool; - -public class MCJeiElementManaBar extends IJeiElements.IJeiElementManaBar { - - public int multiplesLog = 0; - public int manaMax = TilePool.MAX_MANA_DILLUTED; - - public MCJeiElementManaBar(int x, int y, int mode, int mana) { - super(x, y, mode, mana); - } - - public MCJeiElementManaBar(String elementName, int x, int y, int mode, int mana) { - super(elementName, x, y, mode, mana); - } - - @Override - public void render(Minecraft minecraft) { - handlerMode(mode); - HUDHandler.renderManaBar(x, y, 0x0000FF, 0.75F, mana, manaMax); - String sign = "x"; - if (multiplesLog < 0) - sign = "/"; - if (multiplesLog != 0) - minecraft.fontRenderer.drawString(sign + Math.pow(10, Math.abs(multiplesLog)), x + 103, y - 2, 0x8B8B8B); - } - - private void handlerMode(int mode) { - if (mode == 1) { - for (; mana > manaMax; manaMax *= 10) - multiplesLog += 1; - for (; (manaMax / mana > 50); manaMax /= 10) - multiplesLog -= 1; - } else { - manaMax = TilePool.MAX_MANA / 10; - multiplesLog = 0; - } - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElements.java b/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElements.java deleted file mode 100644 index 134b43d2..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/impl/elemenet/MCJeiElements.java +++ /dev/null @@ -1,87 +0,0 @@ -package ink.ikx.rt.impl.mods.jei.impl.elemenet; - -import ink.ikx.rt.api.mods.jei.elements.IJeiElements; -import ink.ikx.rt.impl.mods.jei.JeiPlugin; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.util.ResourceLocation; - -public class MCJeiElements { - - public static class MCJeiElementItemInput extends IJeiElements.IJeiElementItemInput { - - public MCJeiElementItemInput(int x, int y) { - super(x, y); - } - - public MCJeiElementItemInput(String elementName, int x, int y) { - super(elementName, x, y); - } - - @Override - public void render(Minecraft minecraft) { - minecraft.getTextureManager().bindTexture(new ResourceLocation(JeiPlugin.DEFAULT_TEXTURE)); - Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, width, height, 256, 256); - } - - } - - public static class MCJeiElementItemOutput extends IJeiElements.IJeiElementItemOutput { - - public MCJeiElementItemOutput(int x, int y) { - super(x, y); - } - - public MCJeiElementItemOutput(String elementName, int x, int y) { - super(elementName, x, y); - } - - @Override - public void render(Minecraft minecraft) { - minecraft.getTextureManager().bindTexture(new ResourceLocation(JeiPlugin.DEFAULT_TEXTURE)); - Gui.drawModalRectWithCustomSizedTexture(x - 4, y - 4, u, v, width, height, 256, 256); - } - - } - - public static class MCJeiElementFontInfo extends IJeiElements.IJeiElementFontInfo { - - public MCJeiElementFontInfo(int x, int y, int width, int height, int color, String info) { - super(x, y, width, height, color, info); - } - - public MCJeiElementFontInfo(String elementName, int x, int y, int width, int height, int color, String info) { - super(elementName, x, y, width, height, color, info); - } - - @Override - public void render(Minecraft minecraft) { - FontRenderer fontRenderer = minecraft.fontRenderer; - fontRenderer.drawString(this.info, this.x, this.y, this.color); - } - - } - - public static class MCJeiElementImage extends IJeiElements.IJeiElementImage { - - - public MCJeiElementImage(int u, int v, int x, int y, int width, int height, - String texture, int textureWidth, int textureHeight) { - super(u, v, x, y, width, height, texture, textureWidth, textureHeight); - } - - public MCJeiElementImage(String elementName, int u, int v, int x, int y, int width, int height, - String texture, int textureWidth, int textureHeight) { - super(elementName, u, v, x, y, width, height, texture, textureWidth, textureHeight); - } - - @Override - public void render(Minecraft minecraft) { - minecraft.getTextureManager().bindTexture(new ResourceLocation(texture)); - Gui.drawModalRectWithCustomSizedTexture(x, y, u, v, width, height, textureWidth, textureHeight); - } - - } - -} diff --git a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/JEIAttunementRecipe.java b/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/JEIAttunementRecipe.java deleted file mode 100644 index 62f38b5e..00000000 --- a/src/main/java/ink/ikx/rt/impl/mods/jei/recipe/JEIAttunementRecipe.java +++ /dev/null @@ -1,22 +0,0 @@ -package ink.ikx.rt.impl.mods.jei.recipe; - -import hellfirepvp.astralsorcery.common.constellation.IConstellation; -import ink.ikx.rt.impl.mods.jei.impl.core.MCJeiRecipe; - -public class JEIAttunementRecipe extends MCJeiRecipe { - - private IConstellation constellation; - - public JEIAttunementRecipe(String uid) { - super(uid); - } - - public IConstellation getConstellation() { - return this.constellation; - } - - public JEIAttunementRecipe setConstellation(IConstellation constellation) { - this.constellation = constellation; - return this; - } -} \ No newline at end of file diff --git a/src/main/java/ink/ikx/rt/mixins/ftbultimine/MixinFTBUltimineClient.java b/src/main/java/ink/ikx/rt/mixins/ftbultimine/MixinFTBUltimineClient.java deleted file mode 100644 index 9d25a6ba..00000000 --- a/src/main/java/ink/ikx/rt/mixins/ftbultimine/MixinFTBUltimineClient.java +++ /dev/null @@ -1,24 +0,0 @@ -package ink.ikx.rt.mixins.ftbultimine; - -import com.feed_the_beast.mods.ftbultimine.client.FTBUltimineClient; -import ink.ikx.rt.impl.internal.utils.InternalUtils; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(value = FTBUltimineClient.class, remap = false) -public abstract class MixinFTBUltimineClient { - - @Inject(method = "info", at = @At("HEAD"), cancellable = true) - public void injectInfo(RenderGameOverlayEvent.Text event, CallbackInfo ci) { - InternalUtils.decouplingMethod(ci); - } - - @Inject(method = "renderGameOverlay", at = @At("HEAD"), cancellable = true) - public void injectRenderGameOverlay(RenderGameOverlayEvent.Post list, CallbackInfo ci) { - InternalUtils.decouplingMethod(ci); - } - -} diff --git a/src/main/resources/mixins.randomtweaker.mods.json b/src/main/resources/mixins.randomtweaker.mods.json index bc13c99d..85a0e53b 100644 --- a/src/main/resources/mixins.randomtweaker.mods.json +++ b/src/main/resources/mixins.randomtweaker.mods.json @@ -1,10 +1,11 @@ { "required": false, "compatibilityLevel": "JAVA_8", - "package": "ink.ikx.rt.mixins", + "package": "dev.ikx.rt.impl.internal.mixins", "minVersion": "0.8", "refmap": "mixins.randomtweaker.refmap.json", "mixins": [ + "botania.MixinBlockSpecialFlower", "botania.MixinBlockCocoon", "botania.MixinBlockSpecialFlower", "botania.MixinBotaniaAPI",