diff --git a/Fabric/build.gradle b/Fabric/build.gradle index e9f8306..f2f9c97 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -21,7 +21,10 @@ dependencies { modImplementation "io.netty:netty-codec-http:4.1.77.Final" modImplementation "curse.maven:tardim-531315:4453924" - modImplementation "curse.maven:cc-restitched-462672:3908334" + //modImplementation "curse.maven:cc-restitched-462672:3908334" + //.. maybe? + modApi "curse.maven:cc-restitched-462672:3908334" + modCompileOnly "curse.maven:cc-restitched-462672:3908334" } loom { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 3d9e1a3..32ccbea 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -6,9 +6,9 @@ import com.swdteam.tardim.common.block.BlockTardimRoof; import com.swdteam.tardim.common.init.TardimRegistry; import com.swdteam.tardim.tileentity.TileEntityTardim; -import dan200.computercraft.api.ComputerCraftAPI; import com.mojang.datafixers.types.Type; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.Util; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; @@ -31,13 +31,11 @@ import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityT import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfacePeripheralProvider; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; +import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; public class Registration { @@ -47,7 +45,6 @@ public class Registration { public static Block FLOOR_SOVIET_CHRONOBOX; public static BlockEntityType TILE_SOVIET_CHRONOBOX; - public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); // Tile Entities @@ -57,15 +54,9 @@ public class Registration { FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, REDSTONE_TARDIM_INPUT).build() ); - public static final BlockEntityType DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registry.register( - Registry.BLOCK_ENTITY_TYPE, - new ResourceLocation("tardim_ic", "digital_tardim_interface"), - FabricBlockEntityTypeBuilder.create(DigitalInterfaceTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() - ); - - private static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder + public static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder .create(new ResourceLocation("tardim_ic")) - .icon(() -> new ItemStack(DIGITAL_TARDIM_INTERFACE)) + .icon(() -> new ItemStack(REDSTONE_TARDIM_INPUT)) .build(); // Cloister bell @@ -81,12 +72,13 @@ public class Registration { // Register our stuff public static void register() { + if (FabricLoader.getInstance().isModLoaded("computercraft")) { + ComputerCraftCompat.register(); + } + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new FabricItemSettings().tab(TARDIM_IC_TAB))); - Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(TARDIM_IC_TAB))); - Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); FLOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_floor_soviet"), new BlockTardimFloor(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion(), new BlockTardimFloor.TardimTileData() { @@ -105,7 +97,6 @@ public class Registration { ROOF_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_roof_soviet"), new BlockTardimRoof(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); TARDIM_TYPE_SOVIET = new TardimRegistry.TardimBuilder(new ResourceLocation(Constants.MOD_ID, "tardim_soviet_chronobox"), "TARDIM Soviet Chronobox", ROOF_SOVIET_CHRONOBOX, DOOR_SOVIET_CHRONOBOX, FLOOR_SOVIET_CHRONOBOX); - ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); CommandInit.init(); } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java index 9f1ee66..b0977d9 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java @@ -8,6 +8,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import org.jetbrains.annotations.NotNull; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; import javax.annotation.Nullable; @@ -21,6 +22,6 @@ public class DigitalInterfaceBlock extends Block implements EntityBlock { @Nullable @Override public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.create(pos, state); + return ComputerCraftCompat.DIGITAL_TARDIM_INTERFACE_TILEENTITY.create(pos, state); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java index 2e84bb7..bee0a9c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -8,6 +8,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; public class DigitalInterfaceTileEntity extends BlockEntity {//implements IDigitalInterfaceEntity { @@ -15,7 +16,7 @@ public class DigitalInterfaceTileEntity extends BlockEntity {//implements IDigit public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { - super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); + super(ComputerCraftCompat.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); //this.data = getTardimDataInitial(); } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index 4db50bf..ca5e64d 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -4,11 +4,9 @@ package su.a71.tardim_ic.tardim_ic.registration; import com.swdteam.tardim.common.init.CommandManager; import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; -import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; public class CommandInit { public static void init() { - CommandManager.register(new CommandModemTransmit()); CommandManager.register(new CommandCloisterBell()); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java new file mode 100644 index 0000000..9ba3347 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java @@ -0,0 +1,36 @@ +package su.a71.tardim_ic.tardim_ic.registration; + +import com.swdteam.tardim.common.init.CommandManager; +import dan200.computercraft.api.ComputerCraftAPI; +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfacePeripheralProvider; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; + +public class ComputerCraftCompat { + public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); + + public static final BlockEntityType DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registry.register( + Registry.BLOCK_ENTITY_TYPE, + new ResourceLocation("tardim_ic", "digital_tardim_interface"), + FabricBlockEntityTypeBuilder.create(DigitalInterfaceTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() + ); + + public static void register() { + Constants.LOG.info("Loaded ComputerCraft compatibility!"); + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB))); + + CommandManager.register(new CommandModemTransmit()); + ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java new file mode 100644 index 0000000..590e76f --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java @@ -0,0 +1,4 @@ +package su.a71.tardim_ic.tardim_ic.registration; + +public class Exteriors { +} diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index edd4ec9..b8939a8 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -27,8 +27,11 @@ "fabric": "*", "minecraft": "1.19.x", "java": ">=17", - "tardim": ">=1.2.2", - "computercraft": ">=1.101.0" - } + "tardim": ">=1.2.2" + }, + + "suggests": { + "computercraft": ">=1.101.0" + } } \ No newline at end of file