diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 76884ad0..7939711c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -39,7 +39,7 @@ If applicable, add screenshots to help explain your problem. **Versions (please complete the following information):** - Minecraft: [e.g. 1.18.2] - Forge: [e.g. 40.0.40] - - oc2r: [e.g. 0.1.7] + - oc2: [e.g. 0.1.7] **Additional context** Add any other context about the problem here. diff --git a/.gitignore b/.gitignore index 69022a76..fc1ef465 100644 --- a/.gitignore +++ b/.gitignore @@ -34,5 +34,7 @@ forge*changelog.txt #vscode .vscode +libs/ + # Don't ignore bin from scripts !/src/main/scripts/bin/ diff --git a/README.md b/README.md index 59d870cb..ccc1834a 100644 --- a/README.md +++ b/README.md @@ -26,13 +26,13 @@ The original section that was found here is preserved below, however it should b ~~While the mod isn't quite yet ready for release due to some remaining technical and usability issues, the API should be mostly stable at this point. For most people the high level device API will be sufficient, and is much more accessible. It centers around the [`RPCDevice`][RPC Device]. For a sample block implementation, see the [redstone interface]. For a sample item implementation, see the [sound card]. If you wish to dive deeper, and provide emulated hardware that requires a Linux driver, this centers around the [`VMDevice`][VM Device]. For a sample block implementation, see the [disk drive]. For a sample item implementation, see the [network card].~~ [OpenComputers]: https://github.com/MightyPirates/OpenComputers -[RPC Device]: src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCDevice.java -[redstone interface]: src/main/java/li/cil/oc2r/common/blockentity/RedstoneInterfaceBlockEntity.java -[sound card]: src/main/java/li/cil/oc2r/common/bus/device/rpc/item/SoundCardItemDevice.java -[VM Device]: src/main/java/li/cil/oc2r/api/bus/device/vm/VMDevice.java -[disk drive]: src/main/java/li/cil/oc2r/common/blockentity/DiskDriveBlockEntity.java -[network card]: src/main/java/li/cil/oc2r/common/bus/device/vm/item/NetworkInterfaceCardDevice.java -[documentation]: src/main/resources/assets/oc2r/doc/en_us/index.md +[RPC Device]: src/main/java/li/cil/oc2/api/bus/device/rpc/RPCDevice.java +[redstone interface]: src/main/java/li/cil/oc2/common/blockentity/RedstoneInterfaceBlockEntity.java +[sound card]: src/main/java/li/cil/oc2/common/bus/device/rpc/item/SoundCardItemDevice.java +[VM Device]: src/main/java/li/cil/oc2/api/bus/device/vm/VMDevice.java +[disk drive]: src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java +[network card]: src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkInterfaceCardDevice.java +[documentation]: src/main/resources/assets/oc2/doc/en_us/index.md [GithubPackagesGradle]: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry [Sangar (fnuecke)]: https://github.com/fnuecke [Sedna]: https://github.com/fnuecke/sedna diff --git a/build.gradle b/build.gradle index 4c1e3f44..ed75d67f 100644 --- a/build.gradle +++ b/build.gradle @@ -8,6 +8,8 @@ plugins { apply plugin: 'org.spongepowered.mixin' apply from: "minecraft.gradle" +apply plugin: "java" +jarJar.enable() allprojects { gradle.projectsEvaluated { @@ -71,6 +73,10 @@ repositories { } } } + flatDir { + dirs("libs") + } + } dependencies { @@ -86,7 +92,8 @@ dependencies { compileOnly "li.cil.sedna:sedna:2.0.8" compileOnly "li.cil.sedna:sedna-buildroot:0.0.8" } - implementation "curse.maven:sedna-511276:3885542" + implementation fileTree(dir: 'libs', include: '*.jar') +// implementation "curse.maven:sedna-511276:3885542" minecraftLibrary "org.apache.commons:commons-collections4:4.4" implementation fg.deobf("curse.maven:markdownmanual-502485:4873115") @@ -121,13 +128,16 @@ dependencies { testImplementation "org.mockito:mockito-inline:4.3.1" testImplementation "org.junit.jupiter:junit-jupiter-api:5.8.2" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.8.2" + jarJar(group: 'libs', name: 'sedna', version: '[]') { + jarJar.pin(it, "") + } } System.setProperty("line.separator", "\n") task packageScripts(type: Zip) { archiveFileName = "scripts.zip" - destinationDirectory = file("$buildDir/resources/main/data/oc2r/file_systems") + destinationDirectory = file("$buildDir/resources/main/data/oc2/file_systems") from "src/main/scripts" filter { line -> line } } @@ -141,6 +151,9 @@ task copyLicensesToResources(type: Copy) { processResources.dependsOn(packageScripts) processResources.dependsOn(copyLicensesToResources) +tasks.named('jarJar'){ +} + minecraft { mappings channel: "official", version: minecraft_version @@ -152,7 +165,7 @@ minecraft { property "forge.logging.console.level", "debug" mods { - oc2r { + oc2 { source sourceSets.main } } @@ -232,6 +245,7 @@ publishing { version = semver artifact jar artifact apiJar + jarJar.component(it) } } repositories { @@ -274,3 +288,7 @@ idea { test { useJUnitPlatform() } + +compileJava { + options.encoding = "UTF-8" +} diff --git a/gradle.properties b/gradle.properties index 3e2ef39a..4bb57f74 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ org.gradle.daemon=false forge_version=47.2.32 -semver=1.1.0 +semver=1.3.1 curse_project_id=1037738 diff --git a/src/main/java/li/cil/oc2r/api/API.java b/src/main/java/li/cil/oc2/api/API.java similarity index 82% rename from src/main/java/li/cil/oc2r/api/API.java rename to src/main/java/li/cil/oc2/api/API.java index d2824560..8da43bc4 100644 --- a/src/main/java/li/cil/oc2r/api/API.java +++ b/src/main/java/li/cil/oc2/api/API.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api; +package li.cil.oc2.api; import com.google.gson.GsonBuilder; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.rpc.RPCMethod; -import li.cil.oc2r.api.imc.RPCMethodParameterTypeAdapter; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.rpc.RPCMethod; +import li.cil.oc2.api.imc.RPCMethodParameterTypeAdapter; import java.lang.reflect.Type; diff --git a/src/main/java/li/cil/oc2r/api/README.md b/src/main/java/li/cil/oc2/api/README.md similarity index 93% rename from src/main/java/li/cil/oc2r/api/README.md rename to src/main/java/li/cil/oc2/api/README.md index 5f99cc4b..3f47be16 100644 --- a/src/main/java/li/cil/oc2r/api/README.md +++ b/src/main/java/li/cil/oc2/api/README.md @@ -1,6 +1,6 @@ # The OpenComputer II API -Welcome to the API of `oc2r`, fellow developer! This document will hopefully provide a sufficient overview of what +Welcome to the API of `oc2`, fellow developer! This document will hopefully provide a sufficient overview of what integrations this API allows, and how to best implement them. The primary purpose of the API is to allow other mods to implement their own devices, to be used by the computers in this mod. @@ -150,15 +150,15 @@ In this example, a device is made available for a custom `BlockEntity`. Using capabilities: ```java -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; import net.minecraft.core.Direction; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fml.ModList; -import li.cil.oc2r.api.bus.device.Device; +import li.cil.oc2.api.bus.device.Device; class ModBlockEntity extends BlockEntity { public int getMagicValue() { @@ -167,7 +167,7 @@ class ModBlockEntity extends BlockEntity { @Override public LazyOptional getCapability(Capability cap, @Nullable Direction side) { - if (ModList.get().isLoaded("oc2r")) { + if (ModList.get().isLoaded("oc2")) { // Note: you can also store this and invalidate the capability to remove the // device/trigger the device bus to scan for changes in available devices. LazyOptional device = getDeviceCapability(); @@ -212,7 +212,7 @@ class Integration { Using the `Callback` annotation in the `BlockEntity` (hard dependency): ```java -import li.cil.oc2r.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.Callback; import net.minecraft.world.level.block.entity.BlockEntity; class ModBlockEntity extends BlockEntity { @@ -229,14 +229,14 @@ devices to third-party `BlockEntities`. ### Block Device for a Third-Party `BlockEntity` In this example, a simple device providing a single method, `squareRoot`, is made available for the `FurnaceBlockEntity` -. As long as the registration of the `BlockDeviceProvider` is gated behind a check, whether `oc2r` is present, this is a +. As long as the registration of the `BlockDeviceProvider` is gated behind a check, whether `oc2` is present, this is a soft dependency. Using `ObjectDevice`: ```java -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.ObjectDevice; import net.minecraft.world.level.block.entity.BlockEntity; class MyCalculatorDevice { @@ -264,14 +264,14 @@ class ModDeviceProvider extends ForgeRegistryEntry implemen Using the `RPCDevice` and `RPCMethods` interfaces directly: ```java -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCMethod; -import li.cil.oc2r.api.bus.device.rpc.RPCMethodGroup; -import li.cil.oc2r.api.bus.device.rpc.RPCParameter; -import li.cil.oc2r.api.util.Invalidatable; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.rpc.RPCMethod; +import li.cil.oc2.api.bus.device.rpc.RPCMethodGroup; +import li.cil.oc2.api.bus.device.rpc.RPCParameter; +import li.cil.oc2.api.util.Invalidatable; import net.minecraft.world.level.block.entity.FurnaceBlockEntity; import java.util.Collections; @@ -333,7 +333,7 @@ class ModDeviceProvider extends ForgeRegistryEntry implemen Shared device provider registration: ```java -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; @@ -341,7 +341,7 @@ class Providers { static final DeferredRegister BLOCK_DEVICE_PROVIDERS = DeferredRegister.create(BlockDeviceProvider.class, "my_mod_id"); - // Called from mod initialization, if oc2r is present. + // Called from mod initialization, if oc2 is present. static void initialize() { BLOCK_DEVICE_PROVIDERS.register("my_calculator_device", ModDeviceProvider::new); diff --git a/src/main/java/li/cil/oc2r/api/bus/BlockDeviceBusElement.java b/src/main/java/li/cil/oc2/api/bus/BlockDeviceBusElement.java similarity index 96% rename from src/main/java/li/cil/oc2r/api/bus/BlockDeviceBusElement.java rename to src/main/java/li/cil/oc2/api/bus/BlockDeviceBusElement.java index b4c62709..29129e3f 100644 --- a/src/main/java/li/cil/oc2r/api/bus/BlockDeviceBusElement.java +++ b/src/main/java/li/cil/oc2/api/bus/BlockDeviceBusElement.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus; +package li.cil.oc2.api.bus; import net.minecraft.core.BlockPos; import net.minecraft.world.level.LevelAccessor; diff --git a/src/main/java/li/cil/oc2r/api/bus/DeviceBus.java b/src/main/java/li/cil/oc2/api/bus/DeviceBus.java similarity index 94% rename from src/main/java/li/cil/oc2r/api/bus/DeviceBus.java rename to src/main/java/li/cil/oc2/api/bus/DeviceBus.java index 075ccfd9..cbbc90b6 100644 --- a/src/main/java/li/cil/oc2r/api/bus/DeviceBus.java +++ b/src/main/java/li/cil/oc2/api/bus/DeviceBus.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus; +package li.cil.oc2.api.bus; -import li.cil.oc2r.api.bus.device.Device; +import li.cil.oc2.api.bus.device.Device; import java.util.Collection; diff --git a/src/main/java/li/cil/oc2r/api/bus/DeviceBusController.java b/src/main/java/li/cil/oc2/api/bus/DeviceBusController.java similarity index 97% rename from src/main/java/li/cil/oc2r/api/bus/DeviceBusController.java rename to src/main/java/li/cil/oc2/api/bus/DeviceBusController.java index 1f00442c..4c37b137 100644 --- a/src/main/java/li/cil/oc2r/api/bus/DeviceBusController.java +++ b/src/main/java/li/cil/oc2/api/bus/DeviceBusController.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus; +package li.cil.oc2.api.bus; -import li.cil.oc2r.api.bus.device.Device; +import li.cil.oc2.api.bus.device.Device; import java.util.Set; import java.util.UUID; diff --git a/src/main/java/li/cil/oc2r/api/bus/DeviceBusElement.java b/src/main/java/li/cil/oc2/api/bus/DeviceBusElement.java similarity index 97% rename from src/main/java/li/cil/oc2r/api/bus/DeviceBusElement.java rename to src/main/java/li/cil/oc2/api/bus/DeviceBusElement.java index dfe7a813..53d11696 100644 --- a/src/main/java/li/cil/oc2r/api/bus/DeviceBusElement.java +++ b/src/main/java/li/cil/oc2/api/bus/DeviceBusElement.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus; +package li.cil.oc2.api.bus; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; import net.minecraftforge.common.util.LazyOptional; import java.util.Collection; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/Device.java b/src/main/java/li/cil/oc2/api/bus/device/Device.java similarity index 92% rename from src/main/java/li/cil/oc2r/api/bus/device/Device.java rename to src/main/java/li/cil/oc2/api/bus/device/Device.java index b7a43d39..6a6b699b 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/Device.java +++ b/src/main/java/li/cil/oc2/api/bus/device/Device.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device; +package li.cil.oc2.api.bus.device; -import li.cil.oc2r.api.bus.DeviceBus; -import li.cil.oc2r.api.bus.DeviceBusController; +import li.cil.oc2.api.bus.DeviceBus; +import li.cil.oc2.api.bus.DeviceBusController; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/DeviceType.java b/src/main/java/li/cil/oc2/api/bus/device/DeviceType.java similarity index 95% rename from src/main/java/li/cil/oc2r/api/bus/device/DeviceType.java rename to src/main/java/li/cil/oc2/api/bus/device/DeviceType.java index e785a73b..fbd949a0 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/DeviceType.java +++ b/src/main/java/li/cil/oc2/api/bus/device/DeviceType.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device; +package li.cil.oc2.api.bus.device; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.core.Registry; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceKey; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/DeviceTypes.java b/src/main/java/li/cil/oc2/api/bus/device/DeviceTypes.java similarity index 96% rename from src/main/java/li/cil/oc2r/api/bus/device/DeviceTypes.java rename to src/main/java/li/cil/oc2/api/bus/device/DeviceTypes.java index b4b9c4bc..b21632b1 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/DeviceTypes.java +++ b/src/main/java/li/cil/oc2/api/bus/device/DeviceTypes.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device; +package li.cil.oc2.api.bus.device; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.registries.RegistryObject; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/ItemDevice.java b/src/main/java/li/cil/oc2/api/bus/device/ItemDevice.java similarity index 93% rename from src/main/java/li/cil/oc2r/api/bus/device/ItemDevice.java rename to src/main/java/li/cil/oc2/api/bus/device/ItemDevice.java index a460d37a..a9c2d999 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/ItemDevice.java +++ b/src/main/java/li/cil/oc2/api/bus/device/ItemDevice.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device; +package li.cil.oc2.api.bus.device; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/data/BlockDeviceData.java b/src/main/java/li/cil/oc2/api/bus/device/data/BlockDeviceData.java similarity index 81% rename from src/main/java/li/cil/oc2r/api/bus/device/data/BlockDeviceData.java rename to src/main/java/li/cil/oc2/api/bus/device/data/BlockDeviceData.java index 40bc7a51..c796b4bd 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/data/BlockDeviceData.java +++ b/src/main/java/li/cil/oc2/api/bus/device/data/BlockDeviceData.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.data; +package li.cil.oc2.api.bus.device.data; import li.cil.sedna.api.device.BlockDevice; import net.minecraft.network.chat.Component; @@ -13,15 +13,15 @@ import net.minecraft.network.chat.Component; * This is used for the built-in Linux root file-system, for example. *

* To make use of registered implementations, a hard drive item with the - * string tag {@code oc2r.base} referencing the implementation's registry id + * string tag {@code oc2.base} referencing the implementation's registry id * must be created. For example, if the implementation's registry name is * {@code my_mod:my_block_device}: *

- * /give ? oc2r:hard_drive{oc2r:{data:"my_mod:my_block_device"}}
+ * /give ? oc2:hard_drive{oc2:{data:"my_mod:my_block_device"}}
  * 
* The drive can be made readonly by also specifying the {@code readonly} tag: *
- * /give ? oc2r:hard_drive{oc2r:{data:"my_mod:my_block_device",readonly:true}}
+ * /give ? oc2:hard_drive{oc2:{data:"my_mod:my_block_device",readonly:true}}
  * 
*/ public interface BlockDeviceData { diff --git a/src/main/java/li/cil/oc2r/api/bus/device/data/Firmware.java b/src/main/java/li/cil/oc2/api/bus/device/data/Firmware.java similarity index 87% rename from src/main/java/li/cil/oc2r/api/bus/device/data/Firmware.java rename to src/main/java/li/cil/oc2/api/bus/device/data/Firmware.java index 791e5013..ecfd0ab0 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/data/Firmware.java +++ b/src/main/java/li/cil/oc2/api/bus/device/data/Firmware.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.data; +package li.cil.oc2.api.bus.device.data; import li.cil.sedna.api.memory.MemoryMap; import net.minecraft.network.chat.Component; @@ -12,11 +12,11 @@ import net.minecraft.network.chat.Component; * This is used for the built-in OpenSBI firmware and Linux kernel, for example. *

* To make use of registered implementations, a flash memory item with the - * string tag {@code oc2r.firmware} referencing the implementation's registry name + * string tag {@code oc2.firmware} referencing the implementation's registry name * must be created. For example, if the implementation's registry name is * {@code my_mod:my_firmware}: *

- * /give @p oc2r:flash_memory{oc2r:{firmware:"my_mod:my_firmware"}}
+ * /give @p oc2:flash_memory{oc2:{firmware:"my_mod:my_firmware"}}
  * 
*/ public interface Firmware { diff --git a/src/main/java/li/cil/oc2r/api/bus/device/rpc/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/data/package-info.java similarity index 83% rename from src/main/java/li/cil/oc2r/api/bus/device/rpc/package-info.java rename to src/main/java/li/cil/oc2/api/bus/device/data/package-info.java index bdd7e92f..47ed0659 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/rpc/package-info.java +++ b/src/main/java/li/cil/oc2/api/bus/device/data/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.bus.device.rpc; +package li.cil.oc2.api.bus.device.data; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/object/Callback.java b/src/main/java/li/cil/oc2/api/bus/device/object/Callback.java similarity index 91% rename from src/main/java/li/cil/oc2r/api/bus/device/object/Callback.java rename to src/main/java/li/cil/oc2/api/bus/device/object/Callback.java index 07986a82..ae350414 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/object/Callback.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/Callback.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.object; +package li.cil.oc2.api.bus.device.object; -import li.cil.oc2r.api.bus.device.rpc.RPCMethod; +import li.cil.oc2.api.bus.device.rpc.RPCMethod; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -17,7 +17,7 @@ import java.lang.annotation.Target; *

* Method parameters are serialized and deserialized using Gson. When using custom * parameter types it may be necessary to register a custom type adapter for them - * via {@link li.cil.oc2r.api.API#IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER}. + * via {@link li.cil.oc2.api.API#IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER}. */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/li/cil/oc2r/api/bus/device/object/Callbacks.java b/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java similarity index 97% rename from src/main/java/li/cil/oc2r/api/bus/device/object/Callbacks.java rename to src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java index ae6896dd..2fccd3ef 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/object/Callbacks.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.object; +package li.cil.oc2.api.bus.device.object; -import li.cil.oc2r.api.bus.device.rpc.AbstractRPCMethod; -import li.cil.oc2r.api.bus.device.rpc.RPCMethod; -import li.cil.oc2r.api.bus.device.rpc.RPCMethodGroup; -import li.cil.oc2r.api.bus.device.rpc.RPCParameter; +import li.cil.oc2.api.bus.device.rpc.AbstractRPCMethod; +import li.cil.oc2.api.bus.device.rpc.RPCMethod; +import li.cil.oc2.api.bus.device.rpc.RPCMethodGroup; +import li.cil.oc2.api.bus.device.rpc.RPCParameter; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.util.Strings; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/object/DocumentedDevice.java b/src/main/java/li/cil/oc2/api/bus/device/object/DocumentedDevice.java similarity index 98% rename from src/main/java/li/cil/oc2r/api/bus/device/object/DocumentedDevice.java rename to src/main/java/li/cil/oc2/api/bus/device/object/DocumentedDevice.java index 22adf2d5..f840bae0 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/object/DocumentedDevice.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/DocumentedDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.object; +package li.cil.oc2.api.bus.device.object; /** * This interface is used to declare callback documentation on targets of an {@link ObjectDevice}. diff --git a/src/main/java/li/cil/oc2r/api/bus/device/object/LifecycleAwareDevice.java b/src/main/java/li/cil/oc2/api/bus/device/object/LifecycleAwareDevice.java similarity index 89% rename from src/main/java/li/cil/oc2r/api/bus/device/object/LifecycleAwareDevice.java rename to src/main/java/li/cil/oc2/api/bus/device/object/LifecycleAwareDevice.java index fd4bc8b8..aedd908b 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/object/LifecycleAwareDevice.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/LifecycleAwareDevice.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.object; +package li.cil.oc2.api.bus.device.object; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/object/NamedDevice.java b/src/main/java/li/cil/oc2/api/bus/device/object/NamedDevice.java similarity index 94% rename from src/main/java/li/cil/oc2r/api/bus/device/object/NamedDevice.java rename to src/main/java/li/cil/oc2/api/bus/device/object/NamedDevice.java index e28af06f..0001a66f 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/object/NamedDevice.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/NamedDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.object; +package li.cil.oc2.api.bus.device.object; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/object/ObjectDevice.java b/src/main/java/li/cil/oc2/api/bus/device/object/ObjectDevice.java similarity index 90% rename from src/main/java/li/cil/oc2r/api/bus/device/object/ObjectDevice.java rename to src/main/java/li/cil/oc2/api/bus/device/object/ObjectDevice.java index ffffc3d2..920272eb 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/object/ObjectDevice.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/ObjectDevice.java @@ -1,11 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.object; +package li.cil.oc2.api.bus.device.object; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCMethod; -import li.cil.oc2r.api.bus.device.rpc.RPCMethodGroup; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.rpc.RPCMethod; +import li.cil.oc2.api.bus.device.rpc.RPCMethodGroup; +import li.cil.oc2.api.bus.device.rpc.RPCEventSource; import javax.annotation.Nullable; import java.util.ArrayList; @@ -83,6 +84,12 @@ public final class ObjectDevice implements RPCDevice, ItemDevice { } /////////////////////////////////////////////////////////////////// + public RPCEventSource asEventSource() { + if (object instanceof RPCEventSource res) { + return res; + } + return null; + } @Override public List getTypeNames() { diff --git a/src/main/java/li/cil/oc2r/api/bus/device/object/Parameter.java b/src/main/java/li/cil/oc2/api/bus/device/object/Parameter.java similarity index 95% rename from src/main/java/li/cil/oc2r/api/bus/device/object/Parameter.java rename to src/main/java/li/cil/oc2/api/bus/device/object/Parameter.java index 23276549..86226498 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/object/Parameter.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/Parameter.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.object; +package li.cil.oc2.api.bus.device.object; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/main/java/li/cil/oc2/api/bus/device/object/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/object/package-info.java new file mode 100644 index 00000000..261c7339 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/bus/device/object/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.bus.device.object; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/api/bus/device/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/package-info.java new file mode 100644 index 00000000..609af817 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/bus/device/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.bus.device; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/provider/BlockDeviceProvider.java b/src/main/java/li/cil/oc2/api/bus/device/provider/BlockDeviceProvider.java similarity index 85% rename from src/main/java/li/cil/oc2r/api/bus/device/provider/BlockDeviceProvider.java rename to src/main/java/li/cil/oc2/api/bus/device/provider/BlockDeviceProvider.java index cf59de58..6c1eab63 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/provider/BlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/api/bus/device/provider/BlockDeviceProvider.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.provider; +package li.cil.oc2.api.bus.device.provider; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.util.Invalidatable; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.util.Invalidatable; import net.minecraft.nbt.CompoundTag; /** @@ -21,7 +21,7 @@ import net.minecraft.nbt.CompoundTag; * previous scan. *

* This is also required to avoid device duplication when a device is connected to a - * {@link li.cil.oc2r.api.bus.DeviceBus} more than once. An example where this can occur are + * {@link li.cil.oc2.api.bus.DeviceBus} more than once. An example where this can occur are * blocks that expose the same device on all sides having connected cabling adjacent to more * than one face. *

@@ -39,9 +39,9 @@ import net.minecraft.nbt.CompoundTag; * } * * - * @see li.cil.oc2r.api.bus.device.rpc.RPCDevice - * @see li.cil.oc2r.api.bus.device.object.ObjectDevice - * @see li.cil.oc2r.api.bus.device.vm.VMDevice + * @see li.cil.oc2.api.bus.device.rpc.RPCDevice + * @see li.cil.oc2.api.bus.device.object.ObjectDevice + * @see li.cil.oc2.api.bus.device.vm.VMDevice * @see BlockDeviceQuery */ public interface BlockDeviceProvider { diff --git a/src/main/java/li/cil/oc2r/api/bus/device/provider/BlockDeviceQuery.java b/src/main/java/li/cil/oc2/api/bus/device/provider/BlockDeviceQuery.java similarity index 95% rename from src/main/java/li/cil/oc2r/api/bus/device/provider/BlockDeviceQuery.java rename to src/main/java/li/cil/oc2/api/bus/device/provider/BlockDeviceQuery.java index ff014567..5781523a 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/provider/BlockDeviceQuery.java +++ b/src/main/java/li/cil/oc2/api/bus/device/provider/BlockDeviceQuery.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.provider; +package li.cil.oc2.api.bus.device.provider; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/provider/ItemDeviceProvider.java b/src/main/java/li/cil/oc2/api/bus/device/provider/ItemDeviceProvider.java similarity index 89% rename from src/main/java/li/cil/oc2r/api/bus/device/provider/ItemDeviceProvider.java rename to src/main/java/li/cil/oc2/api/bus/device/provider/ItemDeviceProvider.java index a53a92ed..b860fd6e 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/provider/ItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/api/bus/device/provider/ItemDeviceProvider.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.provider; +package li.cil.oc2.api.bus.device.provider; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; import net.minecraft.nbt.CompoundTag; import javax.annotation.Nullable; @@ -36,9 +36,9 @@ import java.util.Optional; * } * * - * @see li.cil.oc2r.api.bus.device.rpc.RPCDevice - * @see li.cil.oc2r.api.bus.device.object.ObjectDevice - * @see li.cil.oc2r.api.bus.device.vm.VMDevice + * @see li.cil.oc2.api.bus.device.rpc.RPCDevice + * @see li.cil.oc2.api.bus.device.object.ObjectDevice + * @see li.cil.oc2.api.bus.device.vm.VMDevice * @see ItemDeviceQuery */ public interface ItemDeviceProvider { diff --git a/src/main/java/li/cil/oc2r/api/bus/device/provider/ItemDeviceQuery.java b/src/main/java/li/cil/oc2/api/bus/device/provider/ItemDeviceQuery.java similarity index 95% rename from src/main/java/li/cil/oc2r/api/bus/device/provider/ItemDeviceQuery.java rename to src/main/java/li/cil/oc2/api/bus/device/provider/ItemDeviceQuery.java index 4d29d709..9bed31a5 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/provider/ItemDeviceQuery.java +++ b/src/main/java/li/cil/oc2/api/bus/device/provider/ItemDeviceQuery.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.provider; +package li.cil.oc2.api.bus.device.provider; import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2/api/bus/device/provider/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/provider/package-info.java new file mode 100644 index 00000000..fc586bd3 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/bus/device/provider/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.bus.device.provider; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/rpc/AbstractRPCMethod.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/AbstractRPCMethod.java similarity index 98% rename from src/main/java/li/cil/oc2r/api/bus/device/rpc/AbstractRPCMethod.java rename to src/main/java/li/cil/oc2/api/bus/device/rpc/AbstractRPCMethod.java index b78ffebb..c6397ad8 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/rpc/AbstractRPCMethod.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/AbstractRPCMethod.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.rpc; +package li.cil.oc2.api.bus.device.rpc; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2/api/bus/device/rpc/IEventSink.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/IEventSink.java new file mode 100644 index 00000000..055eab6e --- /dev/null +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/IEventSink.java @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: MIT */ + +package li.cil.oc2.api.bus.device.rpc; +import com.google.gson.JsonElement; +import java.util.UUID; + +/** + * This interface handles events coming from RPCEventSources. + * RPCDeviceBusAdapter implements this to relay events via the built in serial + */ + +public interface IEventSink { + void postEvent(UUID sourceid, JsonElement msg); +} diff --git a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCDevice.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCDevice.java similarity index 92% rename from src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCDevice.java rename to src/main/java/li/cil/oc2/api/bus/device/rpc/RPCDevice.java index bbea5262..68942d14 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCDevice.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCDevice.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.rpc; +package li.cil.oc2.api.bus.device.rpc; -import li.cil.oc2r.api.bus.DeviceBus; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.DeviceBus; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.object.ObjectDevice; import java.util.List; @@ -47,8 +47,8 @@ import java.util.List; * * * @see ObjectDevice - * @see li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider - * @see li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider + * @see li.cil.oc2.api.bus.device.provider.BlockDeviceProvider + * @see li.cil.oc2.api.bus.device.provider.ItemDeviceProvider */ public interface RPCDevice extends Device { /** diff --git a/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCEventSource.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCEventSource.java new file mode 100644 index 00000000..8389244f --- /dev/null +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCEventSource.java @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: MIT */ + +package li.cil.oc2.api.bus.device.rpc; + +import java.util.*; + +/** + * Provides an interface for an RPC event source. Blocks which whish to provide + * push notifications via the /dev/hvc0 serial devices should implement this. + * It is generally recommended to *also* provide documentation and a list of + * events by implementing DocumentedDevice and providing a listEvents() callback + *

+ */ +public interface RPCEventSource { + + /** + * Called to add a {@link IEventSink} to the list of consumers. + */ + void subscribe(IEventSink dba, UUID sourceid); + /** + * Called to remove a specific {@link IEventSink} from the list of consumers. + */ + void unsubscribe(IEventSink dba); +} diff --git a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCInvocation.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCInvocation.java similarity index 97% rename from src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCInvocation.java rename to src/main/java/li/cil/oc2/api/bus/device/rpc/RPCInvocation.java index 4db63dc4..e4c0c6f9 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCInvocation.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCInvocation.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.rpc; +package li.cil.oc2.api.bus.device.rpc; import com.google.gson.Gson; import com.google.gson.JsonArray; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCMethod.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethod.java similarity index 94% rename from src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCMethod.java rename to src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethod.java index 3adfd861..ac9b7a05 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCMethod.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethod.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.rpc; +package li.cil.oc2.api.bus.device.rpc; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.object.ObjectDevice; import javax.annotation.Nullable; import java.util.Collections; @@ -17,7 +17,7 @@ import java.util.Set; *

* Method parameters are serialized and deserialized using Gson. When using custom * parameter types it may be necessary to register a custom type adapter for them - * via {@link li.cil.oc2r.api.API#IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER}. + * via {@link li.cil.oc2.api.API#IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER}. * * @see ObjectDevice */ diff --git a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCMethodGroup.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethodGroup.java similarity index 94% rename from src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCMethodGroup.java rename to src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethodGroup.java index 570e4e67..74cf93cc 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCMethodGroup.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethodGroup.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.rpc; +package li.cil.oc2.api.bus.device.rpc; -import li.cil.oc2r.api.bus.DeviceBusController; +import li.cil.oc2.api.bus.DeviceBusController; import java.util.Collections; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCParameter.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCParameter.java similarity index 96% rename from src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCParameter.java rename to src/main/java/li/cil/oc2/api/bus/device/rpc/RPCParameter.java index 61d15bbc..51f9ecff 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/rpc/RPCParameter.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCParameter.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.rpc; +package li.cil.oc2.api.bus.device.rpc; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/package-info.java similarity index 84% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/package-info.java rename to src/main/java/li/cil/oc2/api/bus/device/rpc/package-info.java index f699c021..c3668cf1 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/package-info.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.bus.device.vm; +package li.cil.oc2.api.bus.device.rpc; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/FirmwareLoader.java b/src/main/java/li/cil/oc2/api/bus/device/vm/FirmwareLoader.java similarity index 89% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/FirmwareLoader.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/FirmwareLoader.java index b66e4949..f93a4cd4 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/FirmwareLoader.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/FirmwareLoader.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm; +package li.cil.oc2.api.bus.device.vm; /** * This interface serves as a marker for devices that load firmware. diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/VMDevice.java b/src/main/java/li/cil/oc2/api/bus/device/vm/VMDevice.java similarity index 89% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/VMDevice.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/VMDevice.java index 7a13998b..a6574819 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/VMDevice.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/VMDevice.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm; +package li.cil.oc2.api.bus.device.vm; -import li.cil.oc2r.api.bus.DeviceBus; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.vm.context.InterruptAllocator; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.DeviceBus; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.vm.context.InterruptAllocator; +import li.cil.oc2.api.bus.device.vm.context.VMContext; import li.cil.sedna.api.device.MemoryMappedDevice; /** @@ -47,8 +47,8 @@ import li.cil.sedna.api.device.MemoryMappedDevice; * Note that if any other {@link VMDevice} fails mounting, all mounted devices * will immediately unmounted and disposed. * - * @see li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider - * @see li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider + * @see li.cil.oc2.api.bus.device.provider.BlockDeviceProvider + * @see li.cil.oc2.api.bus.device.provider.ItemDeviceProvider */ public interface VMDevice extends Device { /** diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/VMDeviceLoadResult.java b/src/main/java/li/cil/oc2/api/bus/device/vm/VMDeviceLoadResult.java similarity index 94% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/VMDeviceLoadResult.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/VMDeviceLoadResult.java index 5b504669..f8cf523c 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/VMDeviceLoadResult.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/VMDeviceLoadResult.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm; +package li.cil.oc2.api.bus.device.vm; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.context.VMContext; import net.minecraft.network.chat.Component; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/InterruptAllocator.java b/src/main/java/li/cil/oc2/api/bus/device/vm/context/InterruptAllocator.java similarity index 92% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/context/InterruptAllocator.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/context/InterruptAllocator.java index d69853e9..fb7fb991 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/InterruptAllocator.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/context/InterruptAllocator.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.context; +package li.cil.oc2.api.bus.device.vm.context; -import li.cil.oc2r.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; import java.util.Optional; import java.util.OptionalInt; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/MemoryAllocator.java b/src/main/java/li/cil/oc2/api/bus/device/vm/context/MemoryAllocator.java similarity index 90% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/context/MemoryAllocator.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/context/MemoryAllocator.java index 9244d2ce..084e1847 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/MemoryAllocator.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/context/MemoryAllocator.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.context; +package li.cil.oc2.api.bus.device.vm.context; /** * A memory allocator used to ensure sandbox limits when loading devices. diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/MemoryRangeAllocator.java b/src/main/java/li/cil/oc2/api/bus/device/vm/context/MemoryRangeAllocator.java similarity index 95% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/context/MemoryRangeAllocator.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/context/MemoryRangeAllocator.java index 3195723a..f148d6aa 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/MemoryRangeAllocator.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/context/MemoryRangeAllocator.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.context; +package li.cil.oc2.api.bus.device.vm.context; -import li.cil.oc2r.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; import li.cil.sedna.api.device.MemoryMappedDevice; import java.util.OptionalLong; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/VMContext.java b/src/main/java/li/cil/oc2/api/bus/device/vm/context/VMContext.java similarity index 96% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/context/VMContext.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/context/VMContext.java index 0b253157..e3090cea 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/VMContext.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/context/VMContext.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.context; +package li.cil.oc2.api.bus.device.vm.context; -import li.cil.oc2r.api.bus.DeviceBus; -import li.cil.oc2r.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.DeviceBus; +import li.cil.oc2.api.bus.device.vm.VMDevice; import li.cil.sedna.api.device.InterruptController; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.memory.MemoryMap; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/VMLifecycleEventBus.java b/src/main/java/li/cil/oc2/api/bus/device/vm/context/VMLifecycleEventBus.java similarity index 57% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/context/VMLifecycleEventBus.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/context/VMLifecycleEventBus.java index 9d85db3f..de272ddb 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/VMLifecycleEventBus.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/context/VMLifecycleEventBus.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.context; +package li.cil.oc2.api.bus.device.vm.context; /** * Allows registering for VM lifecycle events. * - * @see li.cil.oc2r.api.bus.device.vm.event.VMInitializingEvent - * @see li.cil.oc2r.api.bus.device.vm.event.VMSynchronizeEvent - * @see li.cil.oc2r.api.bus.device.vm.event.VMResumedRunningEvent + * @see li.cil.oc2.api.bus.device.vm.event.VMInitializingEvent + * @see li.cil.oc2.api.bus.device.vm.event.VMSynchronizeEvent + * @see li.cil.oc2.api.bus.device.vm.event.VMResumedRunningEvent */ public interface VMLifecycleEventBus { /** diff --git a/src/main/java/li/cil/oc2/api/bus/device/vm/context/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/vm/context/package-info.java new file mode 100644 index 00000000..b67780c0 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/context/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.bus.device.vm.context; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMInitializationException.java b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMInitializationException.java similarity index 95% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMInitializationException.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/event/VMInitializationException.java index 6f779716..fb6c6ee2 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMInitializationException.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMInitializationException.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.event; +package li.cil.oc2.api.bus.device.vm.event; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMInitializingEvent.java b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMInitializingEvent.java similarity index 84% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMInitializingEvent.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/event/VMInitializingEvent.java index fc254d37..f264abf5 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMInitializingEvent.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMInitializingEvent.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.event; +package li.cil.oc2.api.bus.device.vm.event; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.context.VMContext; /** * Fired exactly once, when the VM first starts running. diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMResumedRunningEvent.java b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMResumedRunningEvent.java similarity index 79% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMResumedRunningEvent.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/event/VMResumedRunningEvent.java index 42f93ee3..628726ea 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMResumedRunningEvent.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMResumedRunningEvent.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.event; +package li.cil.oc2.api.bus.device.vm.event; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.context.VMContext; /** * Fired when the VM resumed running, either when first starting up, when resuming after diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMSynchronizeEvent.java b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMSynchronizeEvent.java similarity index 93% rename from src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMSynchronizeEvent.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/event/VMSynchronizeEvent.java index d201c0c8..af0f69b3 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/VMSynchronizeEvent.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/event/VMSynchronizeEvent.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.bus.device.vm.event; +package li.cil.oc2.api.bus.device.vm.event; /** * Fired when the VM is paused, typically before state is persisted. diff --git a/src/main/java/li/cil/oc2/api/bus/device/vm/event/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/vm/event/package-info.java new file mode 100644 index 00000000..08173178 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/event/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.bus.device.vm.event; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/capabilities/package-info.java b/src/main/java/li/cil/oc2/api/bus/device/vm/package-info.java similarity index 84% rename from src/main/java/li/cil/oc2r/api/capabilities/package-info.java rename to src/main/java/li/cil/oc2/api/bus/device/vm/package-info.java index 4575d615..6f100586 100644 --- a/src/main/java/li/cil/oc2r/api/capabilities/package-info.java +++ b/src/main/java/li/cil/oc2/api/bus/device/vm/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.capabilities; +package li.cil.oc2.api.bus.device.vm; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/bus/package-info.java b/src/main/java/li/cil/oc2/api/bus/package-info.java similarity index 75% rename from src/main/java/li/cil/oc2r/api/bus/package-info.java rename to src/main/java/li/cil/oc2/api/bus/package-info.java index ca439a80..89ba550b 100644 --- a/src/main/java/li/cil/oc2r/api/bus/package-info.java +++ b/src/main/java/li/cil/oc2/api/bus/package-info.java @@ -3,29 +3,29 @@ /** * The device bus is the glue that connects devices and VMs. *

- * A bus must always be managed by a {@link li.cil.oc2r.api.bus.DeviceBusController}. + * A bus must always be managed by a {@link li.cil.oc2.api.bus.DeviceBusController}. * If there is no controller, there is no (connected) bus. *

* When a controller performs a scan, it collects a list of connected - * {@link li.cil.oc2r.api.bus.DeviceBusElement}s thus defining a - * {@link li.cil.oc2r.api.bus.DeviceBus}. + * {@link li.cil.oc2.api.bus.DeviceBusElement}s thus defining a + * {@link li.cil.oc2.api.bus.DeviceBus}. * How the controller scans for elements depends on the implementation. * One example is a block-based controller which scans adjacent blocks * in a recursive manner -- usually up to some maximum bus complexity. *

- * {@link li.cil.oc2r.api.bus.DeviceBusElement}s are responsible for + * {@link li.cil.oc2.api.bus.DeviceBusElement}s are responsible for * providing a list of devices connected to them. Whether they play an * active role and seek out devices, or passively expect devices to be * registered with them depends on the implementation. *

- * After a scan {@link li.cil.oc2r.api.bus.DeviceBusController}s then + * After a scan {@link li.cil.oc2.api.bus.DeviceBusController}s then * collect all devices from all bus elements to build a global set * of devices on the bus. *

* There can be various types of devices on a bus, but which types are * supported will depend on the context of the controller. Currently, two - * types of devices are defined in this API, {@link li.cil.oc2r.api.bus.device.rpc.RPCDevice} - * and {@link li.cil.oc2r.api.bus.device.vm.VMDevice}. + * types of devices are defined in this API, {@link li.cil.oc2.api.bus.device.rpc.RPCDevice} + * and {@link li.cil.oc2.api.bus.device.vm.VMDevice}. *

    *
  • * RPC devices are a high-level system for providing VMs with means of @@ -42,7 +42,7 @@ */ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.bus; +package li.cil.oc2.api.bus; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/capabilities/NetworkInterface.java b/src/main/java/li/cil/oc2/api/capabilities/NetworkInterface.java similarity index 96% rename from src/main/java/li/cil/oc2r/api/capabilities/NetworkInterface.java rename to src/main/java/li/cil/oc2/api/capabilities/NetworkInterface.java index 6ad5dba1..a228ed95 100644 --- a/src/main/java/li/cil/oc2r/api/capabilities/NetworkInterface.java +++ b/src/main/java/li/cil/oc2/api/capabilities/NetworkInterface.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.capabilities; +package li.cil.oc2.api.capabilities; -import li.cil.oc2r.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.ItemDevice; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/api/capabilities/RedstoneEmitter.java b/src/main/java/li/cil/oc2/api/capabilities/RedstoneEmitter.java similarity index 93% rename from src/main/java/li/cil/oc2r/api/capabilities/RedstoneEmitter.java rename to src/main/java/li/cil/oc2/api/capabilities/RedstoneEmitter.java index 51293231..1d50a2ac 100644 --- a/src/main/java/li/cil/oc2r/api/capabilities/RedstoneEmitter.java +++ b/src/main/java/li/cil/oc2/api/capabilities/RedstoneEmitter.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.capabilities; +package li.cil.oc2.api.capabilities; /** * This interface may be provided as a capability by item components to signal diff --git a/src/main/java/li/cil/oc2r/api/capabilities/Robot.java b/src/main/java/li/cil/oc2/api/capabilities/Robot.java similarity index 95% rename from src/main/java/li/cil/oc2r/api/capabilities/Robot.java rename to src/main/java/li/cil/oc2/api/capabilities/Robot.java index 671af64b..248c443a 100644 --- a/src/main/java/li/cil/oc2r/api/capabilities/Robot.java +++ b/src/main/java/li/cil/oc2/api/capabilities/Robot.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.capabilities; +package li.cil.oc2.api.capabilities; import net.minecraftforge.items.ItemStackHandler; diff --git a/src/main/java/li/cil/oc2r/api/capabilities/TerminalUserProvider.java b/src/main/java/li/cil/oc2/api/capabilities/TerminalUserProvider.java similarity index 84% rename from src/main/java/li/cil/oc2r/api/capabilities/TerminalUserProvider.java rename to src/main/java/li/cil/oc2/api/capabilities/TerminalUserProvider.java index b6b3afa4..1e4ed50e 100644 --- a/src/main/java/li/cil/oc2r/api/capabilities/TerminalUserProvider.java +++ b/src/main/java/li/cil/oc2/api/capabilities/TerminalUserProvider.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.capabilities; +package li.cil.oc2.api.capabilities; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2/api/capabilities/package-info.java b/src/main/java/li/cil/oc2/api/capabilities/package-info.java new file mode 100644 index 00000000..e6daf2d8 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/capabilities/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.capabilities; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/imc/RPCMethodParameterTypeAdapter.java b/src/main/java/li/cil/oc2/api/imc/RPCMethodParameterTypeAdapter.java similarity index 88% rename from src/main/java/li/cil/oc2r/api/imc/RPCMethodParameterTypeAdapter.java rename to src/main/java/li/cil/oc2/api/imc/RPCMethodParameterTypeAdapter.java index d1344f7a..7af1d69d 100644 --- a/src/main/java/li/cil/oc2r/api/imc/RPCMethodParameterTypeAdapter.java +++ b/src/main/java/li/cil/oc2/api/imc/RPCMethodParameterTypeAdapter.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.imc; +package li.cil.oc2.api.imc; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; import java.lang.reflect.Type; diff --git a/src/main/java/li/cil/oc2r/client/package-info.java b/src/main/java/li/cil/oc2/api/imc/package-info.java similarity index 88% rename from src/main/java/li/cil/oc2r/client/package-info.java rename to src/main/java/li/cil/oc2/api/imc/package-info.java index 4dee9b24..b08fdc78 100644 --- a/src/main/java/li/cil/oc2r/client/package-info.java +++ b/src/main/java/li/cil/oc2/api/imc/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.client; +package li.cil.oc2.api.imc; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/api/inet/InternetDeviceLifecycle.java b/src/main/java/li/cil/oc2/api/inet/InternetDeviceLifecycle.java new file mode 100644 index 00000000..9632437e --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/InternetDeviceLifecycle.java @@ -0,0 +1,12 @@ +package li.cil.oc2.api.inet; + +import net.minecraft.nbt.Tag; + +import java.util.Optional; + +public interface InternetDeviceLifecycle { + default Optional onSave() { + return Optional.empty(); + } + default void onStop() {} +} diff --git a/src/main/java/li/cil/oc2/api/inet/InternetManager.java b/src/main/java/li/cil/oc2/api/inet/InternetManager.java new file mode 100644 index 00000000..a0d580c3 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/InternetManager.java @@ -0,0 +1,10 @@ +package li.cil.oc2.api.inet; + +public interface InternetManager { + + Task runOnInternetThreadTick(Runnable action); + + interface Task { + void close(); + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/LayerParameters.java b/src/main/java/li/cil/oc2/api/inet/LayerParameters.java new file mode 100644 index 00000000..ca9e19b6 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/LayerParameters.java @@ -0,0 +1,10 @@ +package li.cil.oc2.api.inet; + +import net.minecraft.nbt.Tag; + +import java.util.Optional; + +public interface LayerParameters { + Optional getSavedState(); + InternetManager getInternetManager(); +} diff --git a/src/main/java/li/cil/oc2/api/inet/TransportMessage.java b/src/main/java/li/cil/oc2/api/inet/TransportMessage.java new file mode 100644 index 00000000..8a23170b --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/TransportMessage.java @@ -0,0 +1,185 @@ +package li.cil.oc2.api.inet; + +import li.cil.oc2.api.inet.layer.NetworkLayer; +import li.cil.oc2.common.inet.InetUtils; + +import java.net.InetAddress; +import java.nio.ByteBuffer; + +/** + * Reusable data object, that contains information about transport layer message that makes sense both for + * transport and network layer. + */ +public final class TransportMessage { + + private static final byte DEFAULT_TTL = 64; + + /////////////////////////////////////////////////////////////////////// + + private short networkProtocolNumber = -1; + private long srcIpAddressMost = -1; + private long srcIpAddressLeast = -1; + private long dstIpAddressMost = -1; + private long dstIpAddressLeast = -1; + private byte ttl = -1; + private ByteBuffer data = null; + + /////////////////////////////////////////////////////////////////////// + + /** + * Network layer should provide byte buffer for transport layer via this method. + * + * @param data byte buffer for transport layer data + */ + public void initializeBuffer(final ByteBuffer data) { + this.data = data; + } + + /** + * Updates network layer parameters for current transport message. + * + * @param networkProtocolNumber chosen network protocol number (use {@link NetworkLayer#PROTOCOL_IPv4} or + * {@link NetworkLayer#PROTOCOL_IPv6} values) + * @param srcIpAddressMost part of a source IP address + * @param srcIpAddressLeast part of a source IP address + * @param dstIpAddressMost part of a destination IP address + * @param dstIpAddressLeast part of a destination IP address + * @param ttl time to live value (for tracert functionality) + */ + public void update( + final short networkProtocolNumber, + final long srcIpAddressMost, + final long srcIpAddressLeast, + final long dstIpAddressMost, + final long dstIpAddressLeast, + final byte ttl + ) { + this.networkProtocolNumber = networkProtocolNumber; + this.srcIpAddressMost = srcIpAddressMost; + this.srcIpAddressLeast = srcIpAddressLeast; + this.dstIpAddressMost = dstIpAddressMost; + this.dstIpAddressLeast = dstIpAddressLeast; + this.ttl = ttl; + } + + /** + * Updates network layer parameters for current transport message assuming IPv4 network protocol. + * + * @param srcIpAddress source IP address + * @param dstIpAddress destination IP address + * @param ttl time to live value (for tracert functionality) + */ + public void updateIpv4( + final int srcIpAddress, + final int dstIpAddress, + final byte ttl + ) { + update(NetworkLayer.PROTOCOL_IPv4, 0, srcIpAddress, 0, dstIpAddress, ttl); + } + + /** + * Updates network layer parameters for current transport message and sets the default TTL value assuming IPv4 + * network protocol. + * + * @param srcIpAddress source IP address + * @param dstIpAddress destination IP address + */ + public void updateIpv4( + final int srcIpAddress, + final int dstIpAddress + ) { + updateIpv4(srcIpAddress, dstIpAddress, DEFAULT_TTL); + } + + /** + * Gets stored TTL value. + * + * @return TTL value + */ + public byte getTtl() { + return ttl; + } + + /** + * Gets stored source IPv4 address. + * + * @return IPv4 source address + */ + public int getSrcIpv4Address() { + return (int) srcIpAddressLeast; + } + + /** + * Gets stored destination IPv4 address. + * + * @return IPv4 destination address + */ + public int getDstIpv4Address() { + return (int) dstIpAddressLeast; + } + + /** + * Gets stored source IP address as {@link InetAddress} object. + * + * @return IPv4 source address + */ + public InetAddress getSrcAddress() { + return switch (networkProtocolNumber) { + case NetworkLayer.PROTOCOL_IPv4 -> InetUtils.toJavaInetAddress(getSrcIpv4Address()); + case NetworkLayer.PROTOCOL_IPv6 -> InetUtils.toJavaInetAddress(srcIpAddressMost, srcIpAddressLeast); + default -> throw new IllegalStateException(); + }; + } + + /** + * Gets stored destination IP address as {@link InetAddress} object. + * + * @return IPv4 destination address + */ + public InetAddress getDstAddress() { + return switch (networkProtocolNumber) { + case NetworkLayer.PROTOCOL_IPv4 -> InetUtils.toJavaInetAddress(getDstIpv4Address()); + case NetworkLayer.PROTOCOL_IPv6 -> InetUtils.toJavaInetAddress(dstIpAddressMost, dstIpAddressLeast); + default -> throw new IllegalStateException(); + }; + } + + /** + * Gets transport layer data buffer + * + * @return transport layer data buffer + */ + public ByteBuffer getData() { + if (data == null) { + throw new IllegalStateException(); + } + return data; + } + + /** + * Gets network protocol number + * + * @return network protocol number + */ + public short getNetworkProtocolNumber() { + return networkProtocolNumber; + } + + /** + * Checks if an IPv4 transport message stored in this object. + * + * @return true only if it is an IPv4 message + */ + public boolean isIpv4() { + return networkProtocolNumber == NetworkLayer.PROTOCOL_IPv4; + } + + /** + * Checks if an IPv6 transport message stored in this object. + * + * @return true only if it is an IPv6 message + */ + public boolean isIpv6() { + return networkProtocolNumber == NetworkLayer.PROTOCOL_IPv6; + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/layer/LinkLocalLayer.java b/src/main/java/li/cil/oc2/api/inet/layer/LinkLocalLayer.java new file mode 100644 index 00000000..f6775976 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/layer/LinkLocalLayer.java @@ -0,0 +1,54 @@ +package li.cil.oc2.api.inet.layer; + +import li.cil.oc2.api.inet.InternetDeviceLifecycle; +import li.cil.oc2.api.inet.provider.NetworkLayerInternetProvider; + +import java.nio.ByteBuffer; + +/** + * Link local or channel TCP/IP layer interface. + *

    + * There is a default link local layer implementation that uses provided {@link NetworkLayer} implementation + * (see {@link NetworkLayerInternetProvider} for more information). + */ +public interface LinkLocalLayer extends InternetDeviceLifecycle { + /** + * Ethernet frame header size. Consists of two ethernet (MAC) addresses and protocol number. + */ + int FRAME_HEADER_SIZE = 14; + + /** + * Default ethernet frame body size that is used in Linux. + */ + int DEFAULT_MTU = 1500; + + /** + * Default ethernet frame size. + */ + int FRAME_SIZE = FRAME_HEADER_SIZE + DEFAULT_MTU; + + String LAYER_NAME = "LinkLocal"; + + //////////////////////////////////////////////////////////////////// + + /** + * Tries to get the next ethernet frame to send it to virtual computer later. + *

    + * Normally, this method is invoked every game tick in the Internet thread. + * + * @param frame byte buffer where frame body should be put + * @return should return false, if no ethernet frame were gathered, and true otherwise + */ + default boolean receiveEthernetFrame(final ByteBuffer frame) { + return false; + } + + /** + * Sends an ethernet frame from virtual computer. + * + * @param frame byte buffer filled with ethernet frame data + */ + default void sendEthernetFrame(final ByteBuffer frame) { + + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/layer/NetworkLayer.java b/src/main/java/li/cil/oc2/api/inet/layer/NetworkLayer.java new file mode 100644 index 00000000..6f73d3d8 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/layer/NetworkLayer.java @@ -0,0 +1,70 @@ +package li.cil.oc2.api.inet.layer; + +import li.cil.oc2.api.inet.InternetDeviceLifecycle; +import li.cil.oc2.api.inet.provider.TransportLayerInternetProvider; + +import java.nio.ByteBuffer; + +/** + * Network TCP/IP layer interface. + *

    + * There is a default network layer implementation that uses provided {@link TransportLayer} implementation + * (see {@link TransportLayerInternetProvider} for more information). + */ +public interface NetworkLayer extends InternetDeviceLifecycle { + + /** + * The value of this constant should be returned by {@link NetworkLayer#receivePacket(ByteBuffer)} method if no + * data is arrived. + */ + short PROTOCOL_NONE = 0; + + /** + * The value of this constant should be returned by {@link NetworkLayer#receivePacket(ByteBuffer)} method if IPv4 + * packet is arrived. + */ + short PROTOCOL_IPv4 = 0x0800; + + /** + * The value of this constant should be returned by {@link NetworkLayer#receivePacket(ByteBuffer)} method if any IP + * packet is arrived (can be either IPv4 packet or IPv6 packet). + *

    + * Normally, this value should be returned if any data is arrived. + */ + short PROTOCOL_IP = PROTOCOL_IPv4; + + /** + * The value of this constant should be returned by {@link NetworkLayer#receivePacket(ByteBuffer)} method if IPv6 + * packet is arrived. + */ + short PROTOCOL_IPv6 = (short) 0x86dd; + + String LAYER_NAME = "Network"; + + //////////////////////////////////////////////////////////////////////////////////// + + /** + * Tries to get the next IP paket to wrap it into an ethernet frame and send it to virtual computer later. + *

    + * Normally, this method is invoked every game tick in the Internet thread. + * + * @param packet byte buffer where IP packet body should be put + * @return protocol number of received data (either {@link NetworkLayer#PROTOCOL_IP}, + * {@link NetworkLayer#PROTOCOL_IPv4} or {@link NetworkLayer#PROTOCOL_IPv6}) or + * {@link NetworkLayer#PROTOCOL_NONE}, if no new data has arrived + */ + default short receivePacket(final ByteBuffer packet) { + return PROTOCOL_NONE; + } + + /** + * Sends an IP packet extracted from an ethernet frame that sent virtual computer. + * + * @param protocol protocol number of arrived message; normally, should be either + * {@link NetworkLayer::PROTOCOL_IPv4} or {@link NetworkLayer::PROTOCOL_IPv6} + * @param packet arrived data + */ + default void sendPacket(final short protocol, final ByteBuffer packet) { + + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/layer/SessionLayer.java b/src/main/java/li/cil/oc2/api/inet/layer/SessionLayer.java new file mode 100644 index 00000000..1c5060ee --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/layer/SessionLayer.java @@ -0,0 +1,29 @@ +package li.cil.oc2.api.inet.layer; + +import li.cil.oc2.api.inet.InternetDeviceLifecycle; +import li.cil.oc2.api.inet.session.Session; + +import javax.annotation.Nullable; +import java.nio.ByteBuffer; + +/** + * A session layer interface of TCP/IP stack. + */ +public interface SessionLayer extends InternetDeviceLifecycle { + + String LAYER_NAME = "Session"; + + //////////////////////////////////////////////////////////////////////////////////// + + default void receiveSession(final Receiver receiver) { + } + + default void sendSession(final Session session, @Nullable final ByteBuffer data) { + session.close(); + } + + interface Receiver { + @Nullable + ByteBuffer receive(Session session); + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/layer/TransportLayer.java b/src/main/java/li/cil/oc2/api/inet/layer/TransportLayer.java new file mode 100644 index 00000000..f4fa53f8 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/layer/TransportLayer.java @@ -0,0 +1,66 @@ +package li.cil.oc2.api.inet.layer; + +import li.cil.oc2.api.inet.InternetDeviceLifecycle; +import li.cil.oc2.api.inet.TransportMessage; +import li.cil.oc2.api.inet.provider.SessionLayerInternetProvider; + +/** + * Transport TCP/IP layer interface. + *

    + * There is a default transport layer implementation that uses provided {@link SessionLayer} implementation + * (see {@link SessionLayerInternetProvider} for more information). + */ +public interface TransportLayer extends InternetDeviceLifecycle { + + /** + * The value of this constant should be returned by {@link TransportLayer#receiveTransportMessage(TransportMessage)} + * method if no data is arrived. + */ + byte PROTOCOL_NONE = 0; + + /** + * The value of this constant should be returned by {@link TransportLayer#receiveTransportMessage(TransportMessage)} + * method if an ICMP message is arrived. + */ + byte PROTOCOL_ICMP = 1; + + /** + * The value of this constant should be returned by {@link TransportLayer#receiveTransportMessage(TransportMessage)} + * method if a TCP packet is arrived. + */ + byte PROTOCOL_TCP = 6; + + /** + * The value of this constant should be returned by {@link TransportLayer#receiveTransportMessage(TransportMessage)} + * method if a UDP message is arrived. + */ + byte PROTOCOL_UDP = 17; + + String LAYER_NAME = "Transport"; + + //////////////////////////////////////////////////////////////////////////////////// + + /** + * Tries to get the next transport message to wrap it into an IP packet and send it to virtual computer later. + *

    + * Normally, this method is invoked every game tick in the Internet thread. + * + * @param message transport message object that should be filled with arrived data + * @return protocol number of received data (can be, for example, {@link TransportLayer#PROTOCOL_ICMP}, + * {@link TransportLayer#PROTOCOL_TCP} or {@link TransportLayer#PROTOCOL_UDP}) or + * {@link TransportLayer#PROTOCOL_NONE}, if no new data has arrived + */ + default byte receiveTransportMessage(final TransportMessage message) { + return PROTOCOL_NONE; + } + + /** + * Sends a transport message extracted from an IP packet that sent virtual computer. + * + * @param protocol protocol number of arrived message + * @param message arrived transport message + */ + default void sendTransportMessage(byte protocol, final TransportMessage message) { + + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/layer/package-info.java b/src/main/java/li/cil/oc2/api/inet/layer/package-info.java new file mode 100644 index 00000000..e1a5c7d5 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/layer/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.inet.layer; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/api/inet/package-info.java b/src/main/java/li/cil/oc2/api/inet/package-info.java new file mode 100644 index 00000000..93691fe0 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.inet; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/api/inet/provider/InternetProvider.java b/src/main/java/li/cil/oc2/api/inet/provider/InternetProvider.java new file mode 100644 index 00000000..96788166 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/provider/InternetProvider.java @@ -0,0 +1,38 @@ +package li.cil.oc2.api.inet.provider; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.LinkLocalLayer; + +/** + * Internet access provider for oc2:internet-card item. + * At initialization phase one implementation of this interface will be loaded via {@link java.util.ServiceLoader}. + * If no implementation is found, then the default one will be used instead. + *

    + * It is recommended to not implement this interface directly. + * There are several abstract classes for several levels of TCP/IP stack: + * + *

      + *
    • {@link LinkLocalLayerInternetProvider}
    • + *
    • {@link NetworkLayerInternetProvider}
    • + *
    • {@link TransportLayerInternetProvider}
    • + *
    • {@link SessionLayerInternetProvider}
    • + *
    + *

    + * Each of these classes implements {@link InternetProvider} and + * asks you to provide an implementation of corresponding TCP/IP layer. + * + * @see LinkLocalLayerInternetProvider + * @see NetworkLayerInternetProvider + * @see TransportLayerInternetProvider + * @see SessionLayerInternetProvider + */ +public interface InternetProvider { + + /** + * This method should provide an implementation of {@link LinkLocalLayer} interface. + * It will be called once for each loaded internet card. + * + * @return an implementation of {@link LinkLocalLayer} interface + */ + LinkLocalLayer provideInternet(LayerParameters layerParameters); +} diff --git a/src/main/java/li/cil/oc2/api/inet/provider/LinkLocalLayerInternetProvider.java b/src/main/java/li/cil/oc2/api/inet/provider/LinkLocalLayerInternetProvider.java new file mode 100644 index 00000000..e703246d --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/provider/LinkLocalLayerInternetProvider.java @@ -0,0 +1,39 @@ +package li.cil.oc2.api.inet.provider; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.LinkLocalLayer; +import li.cil.oc2.api.inet.layer.NetworkLayer; +import li.cil.oc2.common.inet.*; + +/** + * An {@link InternetProvider} partial implementation that expects an {@link LinkLocalLayer} implementation from + * protected method {@link LinkLocalLayerInternetProvider#provideLinkLocalLayer(LayerParameters)}. + * + * @see InternetProvider + * @see LinkLocalLayer + */ +public abstract class LinkLocalLayerInternetProvider implements InternetProvider { + + protected static LinkLocalLayer nullLinkLocalLayer() { + return NullLayer.INSTANCE; + } + + protected static LinkLocalLayer defaultLinkLocalLayer(final LayerParameters layerParameters) { + final LayerParameters networkParameters = InetUtils.nextLayerParameters(layerParameters, NetworkLayer.LAYER_NAME); + final NetworkLayer networkLayer = NetworkLayerInternetProvider.defaultNetworkLayer(networkParameters); + return new DefaultLinkLocalLayer(layerParameters, networkLayer); + } + + /** + * This method is called from {@link LinkLocalLayerInternetProvider#provideInternet(LayerParameters)} in order to get an + * {@link LinkLocalLayer} implementation. + * + * @return an implementation of link local TCP/IP layer for internet cards + */ + protected abstract LinkLocalLayer provideLinkLocalLayer(LayerParameters layerParameters); + + @Override + public final LinkLocalLayer provideInternet(final LayerParameters layerParameters) { + return provideLinkLocalLayer(InetUtils.nextLayerParameters(layerParameters, LinkLocalLayer.LAYER_NAME)); + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/provider/NetworkLayerInternetProvider.java b/src/main/java/li/cil/oc2/api/inet/provider/NetworkLayerInternetProvider.java new file mode 100644 index 00000000..f966093b --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/provider/NetworkLayerInternetProvider.java @@ -0,0 +1,47 @@ +package li.cil.oc2.api.inet.provider; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.LinkLocalLayer; +import li.cil.oc2.api.inet.layer.NetworkLayer; +import li.cil.oc2.api.inet.layer.TransportLayer; +import li.cil.oc2.common.inet.DefaultLinkLocalLayer; +import li.cil.oc2.common.inet.DefaultNetworkLayer; +import li.cil.oc2.common.inet.InetUtils; +import li.cil.oc2.common.inet.NullLayer; + +/** + * An {@link InternetProvider} partial implementation that expects an {@link NetworkLayer} implementation from + * protected method {@link NetworkLayerInternetProvider#provideNetworkLayer(LayerParameters)}. + * + * @see InternetProvider + * @see NetworkLayer + */ +public abstract class NetworkLayerInternetProvider extends LinkLocalLayerInternetProvider { + + protected static NetworkLayer nullNetworkLayer() { + return NullLayer.INSTANCE; + } + + protected static NetworkLayer defaultNetworkLayer(final LayerParameters layerParameters) { + final LayerParameters transportParameters = InetUtils.nextLayerParameters(layerParameters, TransportLayer.LAYER_NAME); + final TransportLayer transportLayer = TransportLayerInternetProvider.defaultTransportLayer(transportParameters); + return new DefaultNetworkLayer(layerParameters, transportLayer); + } + + /** + * This method is called from {@link NetworkLayerInternetProvider#provideLinkLocalLayer(LayerParameters)} in order to get a + * {@link NetworkLayer} implementation. + * Retrieved {@link NetworkLayer} implementation will be wrapped with internal {@link LinkLocalLayer} + * implementation. + * + * @return an implementation of network TCP/IP layer for internet cards + */ + protected abstract NetworkLayer provideNetworkLayer(LayerParameters layerParameters); + + @Override + protected final LinkLocalLayer provideLinkLocalLayer(final LayerParameters layerParameters) { + final LayerParameters networkParameters = InetUtils.nextLayerParameters(layerParameters, NetworkLayer.LAYER_NAME); + final NetworkLayer networkLayer = provideNetworkLayer(networkParameters); + return InetUtils.createLayerIfNotStub(networkLayer, layer -> new DefaultLinkLocalLayer(layerParameters, networkLayer)); + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/provider/SessionLayerInternetProvider.java b/src/main/java/li/cil/oc2/api/inet/provider/SessionLayerInternetProvider.java new file mode 100644 index 00000000..dae82495 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/provider/SessionLayerInternetProvider.java @@ -0,0 +1,44 @@ +package li.cil.oc2.api.inet.provider; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.SessionLayer; +import li.cil.oc2.api.inet.layer.TransportLayer; +import li.cil.oc2.common.inet.DefaultSessionLayer; +import li.cil.oc2.common.inet.DefaultTransportLayer; +import li.cil.oc2.common.inet.InetUtils; +import li.cil.oc2.common.inet.NullLayer; + +/** + * An {@link InternetProvider} partial implementation that expects an {@link SessionLayer} implementation from + * protected method {@link SessionLayerInternetProvider#provideSessionLayer(LayerParameters)}. + * + * @see InternetProvider + * @see SessionLayer + */ +public abstract class SessionLayerInternetProvider extends TransportLayerInternetProvider { + + protected static SessionLayer nullSessionLayer() { + return NullLayer.INSTANCE; + } + + protected static SessionLayer defaultSessionLayer(final LayerParameters layerParameters) { + return new DefaultSessionLayer(layerParameters); + } + + /** + * This method is called from {@link SessionLayerInternetProvider#provideTransportLayer(LayerParameters)} in order to get a + * {@link SessionLayer} implementation. + * Retrieved {@link SessionLayer} implementation will be wrapped with internal {@link TransportLayer} + * implementation. + * + * @return an implementation of session TCP/IP layer for internet cards + */ + protected abstract SessionLayer provideSessionLayer(LayerParameters layerParameters); + + @Override + protected final TransportLayer provideTransportLayer(final LayerParameters layerParameters) { + final LayerParameters sessionParameters = InetUtils.nextLayerParameters(layerParameters, SessionLayer.LAYER_NAME); + final SessionLayer sessionLayer = provideSessionLayer(sessionParameters); + return InetUtils.createLayerIfNotStub(sessionLayer, DefaultTransportLayer::new); + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/provider/TransportLayerInternetProvider.java b/src/main/java/li/cil/oc2/api/inet/provider/TransportLayerInternetProvider.java new file mode 100644 index 00000000..3f5dba65 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/provider/TransportLayerInternetProvider.java @@ -0,0 +1,47 @@ +package li.cil.oc2.api.inet.provider; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.NetworkLayer; +import li.cil.oc2.api.inet.layer.SessionLayer; +import li.cil.oc2.api.inet.layer.TransportLayer; +import li.cil.oc2.common.inet.DefaultNetworkLayer; +import li.cil.oc2.common.inet.DefaultTransportLayer; +import li.cil.oc2.common.inet.InetUtils; +import li.cil.oc2.common.inet.NullLayer; + +/** + * An {@link InternetProvider} partial implementation that expects an {@link TransportLayer} implementation from + * protected method {@link TransportLayerInternetProvider#provideTransportLayer(LayerParameters)}. + * + * @see InternetProvider + * @see TransportLayer + */ +public abstract class TransportLayerInternetProvider extends NetworkLayerInternetProvider { + + protected static TransportLayer nullTransportLayer() { + return NullLayer.INSTANCE; + } + + protected static TransportLayer defaultTransportLayer(final LayerParameters layerParameters) { + final LayerParameters sessionParameters = InetUtils.nextLayerParameters(layerParameters, SessionLayer.LAYER_NAME); + final SessionLayer sessionLayer = SessionLayerInternetProvider.defaultSessionLayer(sessionParameters); + return new DefaultTransportLayer(sessionLayer); + } + + /** + * This method is called from {@link TransportLayerInternetProvider#provideNetworkLayer(LayerParameters)} in order to get a + * {@link TransportLayer} implementation. + * Retrieved {@link TransportLayer} implementation will be wrapped with internal {@link NetworkLayer} + * implementation. + * + * @return an implementation of transport TCP/IP layer for internet cards + */ + protected abstract TransportLayer provideTransportLayer(LayerParameters layerParameters); + + @Override + protected final NetworkLayer provideNetworkLayer(final LayerParameters layerParameters) { + final LayerParameters transportParameters = InetUtils.nextLayerParameters(layerParameters, TransportLayer.LAYER_NAME); + final TransportLayer transportLayer = provideTransportLayer(transportParameters); + return InetUtils.createLayerIfNotStub(transportLayer, layer -> new DefaultNetworkLayer(layerParameters, layer)); + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/provider/package-info.java b/src/main/java/li/cil/oc2/api/inet/provider/package-info.java new file mode 100644 index 00000000..92faee15 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/provider/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.api.inet.provider; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/api/inet/session/DatagramSession.java b/src/main/java/li/cil/oc2/api/inet/session/DatagramSession.java new file mode 100644 index 00000000..21831963 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/session/DatagramSession.java @@ -0,0 +1,4 @@ +package li.cil.oc2.api.inet.session; + +public interface DatagramSession extends Session { +} diff --git a/src/main/java/li/cil/oc2/api/inet/session/EchoSession.java b/src/main/java/li/cil/oc2/api/inet/session/EchoSession.java new file mode 100644 index 00000000..f3d9f67c --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/session/EchoSession.java @@ -0,0 +1,7 @@ +package li.cil.oc2.api.inet.session; + +public interface EchoSession extends Session { + int getSequenceNumber(); + + int getTtl(); +} diff --git a/src/main/java/li/cil/oc2/api/inet/session/Session.java b/src/main/java/li/cil/oc2/api/inet/session/Session.java new file mode 100644 index 00000000..ecc73376 --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/session/Session.java @@ -0,0 +1,33 @@ +package li.cil.oc2.api.inet.session; + +import javax.annotation.Nullable; +import java.net.InetSocketAddress; +import java.time.Instant; + +public interface Session { + long getId(); + + void close(); + + States getState(); + + @Nullable + Object getAttachment(); + + void setAttachment(@Nullable final Object userdata); + + InetSocketAddress getDestination(); + + Instant getLastUpdateTime(); + + default boolean isClosed() { + return switch (getState()) { + case FINISH, REJECT, EXPIRED -> true; + default -> false; + }; + } + + enum States { + NEW, ESTABLISHED, FINISH, REJECT, EXPIRED + } +} diff --git a/src/main/java/li/cil/oc2/api/inet/session/StreamSession.java b/src/main/java/li/cil/oc2/api/inet/session/StreamSession.java new file mode 100644 index 00000000..b97d6a9d --- /dev/null +++ b/src/main/java/li/cil/oc2/api/inet/session/StreamSession.java @@ -0,0 +1,10 @@ +package li.cil.oc2.api.inet.session; + +import java.nio.ByteBuffer; + +public interface StreamSession extends Session { + ByteBuffer getSendBuffer(); + ByteBuffer getReceiveBuffer(); + + void connect(); +} diff --git a/src/main/java/li/cil/oc2r/api/package-info.java b/src/main/java/li/cil/oc2/api/package-info.java similarity index 89% rename from src/main/java/li/cil/oc2r/api/package-info.java rename to src/main/java/li/cil/oc2/api/package-info.java index eabd85b5..cd72a3a6 100644 --- a/src/main/java/li/cil/oc2r/api/package-info.java +++ b/src/main/java/li/cil/oc2/api/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api; +package li.cil.oc2.api; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/util/Invalidatable.java b/src/main/java/li/cil/oc2/api/util/Invalidatable.java similarity index 96% rename from src/main/java/li/cil/oc2r/api/util/Invalidatable.java rename to src/main/java/li/cil/oc2/api/util/Invalidatable.java index 8e3de7c5..83fe4cc1 100644 --- a/src/main/java/li/cil/oc2r/api/util/Invalidatable.java +++ b/src/main/java/li/cil/oc2/api/util/Invalidatable.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.util; +package li.cil.oc2.api.util; -import li.cil.oc2r.common.util.RunnableUtils; +import li.cil.oc2.common.util.RunnableUtils; import java.util.ArrayList; import java.util.List; @@ -11,7 +11,7 @@ import java.util.function.Consumer; import java.util.function.Function; /** - * Wrapper for objects which may become invalid, such as {@link li.cil.oc2r.api.bus.device.Device}s. + * Wrapper for objects which may become invalid, such as {@link li.cil.oc2.api.bus.device.Device}s. *

    * This implementation allows listeners added via {@link #addListener(Consumer)} to be removed again * using the returned token. This allows avoiding memory leaks due to inversion of reference ownership, diff --git a/src/main/java/li/cil/oc2r/api/util/Registries.java b/src/main/java/li/cil/oc2/api/util/Registries.java similarity index 81% rename from src/main/java/li/cil/oc2r/api/util/Registries.java rename to src/main/java/li/cil/oc2/api/util/Registries.java index d9e6faa9..3d01cdb0 100644 --- a/src/main/java/li/cil/oc2r/api/util/Registries.java +++ b/src/main/java/li/cil/oc2/api/util/Registries.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.util; +package li.cil.oc2.api.util; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.data.BlockDeviceData; -import li.cil.oc2r.api.bus.device.data.Firmware; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.data.BlockDeviceData; +import li.cil.oc2.api.bus.device.data.Firmware; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/api/util/RobotOperationSide.java b/src/main/java/li/cil/oc2/api/util/RobotOperationSide.java similarity index 98% rename from src/main/java/li/cil/oc2r/api/util/RobotOperationSide.java rename to src/main/java/li/cil/oc2/api/util/RobotOperationSide.java index 5665a57b..b3a9694e 100644 --- a/src/main/java/li/cil/oc2r/api/util/RobotOperationSide.java +++ b/src/main/java/li/cil/oc2/api/util/RobotOperationSide.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.util; +package li.cil.oc2.api.util; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/li/cil/oc2r/api/util/Side.java b/src/main/java/li/cil/oc2/api/util/Side.java similarity index 58% rename from src/main/java/li/cil/oc2r/api/util/Side.java rename to src/main/java/li/cil/oc2/api/util/Side.java index 04e3df09..84c2048f 100644 --- a/src/main/java/li/cil/oc2r/api/util/Side.java +++ b/src/main/java/li/cil/oc2/api/util/Side.java @@ -1,15 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.api.util; +package li.cil.oc2.api.util; import net.minecraft.core.Direction; +import net.minecraft.core.BlockPos; import javax.annotation.Nullable; /** * This enum indicates a side of a block device. *

    - * It is intended to be used by {@link li.cil.oc2r.api.bus.device.rpc.RPCDevice} APIs, + * It is intended to be used by {@link li.cil.oc2.api.bus.device.rpc.RPCDevice} APIs, * providing both convenience for the caller by providing a range of aliases, and also * stability, in case Mojang decide to rename the enum fields of the {@link Direction} * enum at some time in the future. @@ -73,4 +74,34 @@ public enum Side { public String toString() { return base != null ? base.toString() : super.toString(); } + + public static Direction relativeDirection(BlockPos from, BlockPos to) { + int dx = to.getX() - from.getX(); + int dy = to.getY() - from.getY(); + int dz = to.getZ() - from.getZ(); + if (Math.abs(dx) > Math.abs(dy) && Math.abs(dx) > Math.abs(dz)) { + if (dx > 0) { + return Direction.EAST; + } + else { + return Direction.WEST; + } + } + else if (Math.abs(dy) > Math.abs(dx) && Math.abs(dy) > Math.abs(dz)) { + if (dy > 0) { + return Direction.UP; + } + else { + return Direction.DOWN; + } + } + else { + if (dz > 0) { + return Direction.SOUTH; + } + else { + return Direction.NORTH; + } + } + } } diff --git a/src/main/java/li/cil/oc2r/api/imc/package-info.java b/src/main/java/li/cil/oc2/api/util/package-info.java similarity index 87% rename from src/main/java/li/cil/oc2r/api/imc/package-info.java rename to src/main/java/li/cil/oc2/api/util/package-info.java index 20c0c7ba..2ee5b311 100644 --- a/src/main/java/li/cil/oc2r/api/imc/package-info.java +++ b/src/main/java/li/cil/oc2/api/util/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.imc; +package li.cil.oc2.api.util; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/ClientSetup.java b/src/main/java/li/cil/oc2/client/ClientSetup.java similarity index 80% rename from src/main/java/li/cil/oc2r/client/ClientSetup.java rename to src/main/java/li/cil/oc2/client/ClientSetup.java index 32808c13..0fa3d85d 100644 --- a/src/main/java/li/cil/oc2r/client/ClientSetup.java +++ b/src/main/java/li/cil/oc2/client/ClientSetup.java @@ -1,21 +1,21 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client; +package li.cil.oc2.client; -import li.cil.oc2r.client.gui.*; -import li.cil.oc2r.client.item.CustomItemColors; -import li.cil.oc2r.client.item.CustomItemModelProperties; -import li.cil.oc2r.client.model.BusCableModelLoader; -import li.cil.oc2r.client.renderer.BusInterfaceNameRenderer; -import li.cil.oc2r.client.renderer.ProjectorDepthRenderer; -import li.cil.oc2r.client.renderer.blockentity.*; -import li.cil.oc2r.client.renderer.color.BusCableBlockColor; -import li.cil.oc2r.client.renderer.entity.RobotRenderer; -import li.cil.oc2r.client.renderer.entity.model.RobotModel; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.container.Containers; -import li.cil.oc2r.common.entity.Entities; +import li.cil.oc2.client.gui.*; +import li.cil.oc2.client.item.CustomItemColors; +import li.cil.oc2.client.item.CustomItemModelProperties; +import li.cil.oc2.client.model.BusCableModelLoader; +import li.cil.oc2.client.renderer.BusInterfaceNameRenderer; +import li.cil.oc2.client.renderer.ProjectorDepthRenderer; +import li.cil.oc2.client.renderer.blockentity.*; +import li.cil.oc2.client.renderer.color.BusCableBlockColor; +import li.cil.oc2.client.renderer.entity.RobotRenderer; +import li.cil.oc2.client.renderer.entity.model.RobotModel; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.container.Containers; +import li.cil.oc2.common.entity.Entities; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.client.renderer.ItemBlockRenderTypes; @@ -38,6 +38,7 @@ public final class ClientSetup { BlockEntityRenderers.register(BlockEntities.DISK_DRIVE.get(), DiskDriveRenderer::new); BlockEntityRenderers.register(BlockEntities.CHARGER.get(), ChargerRenderer::new); BlockEntityRenderers.register(BlockEntities.PROJECTOR.get(), ProjectorRenderer::new); + BlockEntityRenderers.register(BlockEntities.INTERNET_GATEWAY.get(), InternetGateWayRenderer::new); event.enqueueWork(() -> { CustomItemModelProperties.initialize(); diff --git a/src/main/java/li/cil/oc2r/client/audio/LoopingBlockEntitySound.java b/src/main/java/li/cil/oc2/client/audio/LoopingBlockEntitySound.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/audio/LoopingBlockEntitySound.java rename to src/main/java/li/cil/oc2/client/audio/LoopingBlockEntitySound.java index 16d5f1e9..8cf84f4e 100644 --- a/src/main/java/li/cil/oc2r/client/audio/LoopingBlockEntitySound.java +++ b/src/main/java/li/cil/oc2/client/audio/LoopingBlockEntitySound.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.audio; +package li.cil.oc2.client.audio; -import li.cil.oc2r.common.util.TickUtils; +import li.cil.oc2.common.util.TickUtils; import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; diff --git a/src/main/java/li/cil/oc2r/client/audio/LoopingSoundManager.java b/src/main/java/li/cil/oc2/client/audio/LoopingSoundManager.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/audio/LoopingSoundManager.java rename to src/main/java/li/cil/oc2/client/audio/LoopingSoundManager.java index dc57818c..d7e26f39 100644 --- a/src/main/java/li/cil/oc2r/client/audio/LoopingSoundManager.java +++ b/src/main/java/li/cil/oc2/client/audio/LoopingSoundManager.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.audio; +package li.cil.oc2.client.audio; import net.minecraft.client.Minecraft; import net.minecraft.sounds.SoundEvent; diff --git a/src/main/java/li/cil/oc2/client/audio/package-info.java b/src/main/java/li/cil/oc2/client/audio/package-info.java new file mode 100644 index 00000000..a58b4026 --- /dev/null +++ b/src/main/java/li/cil/oc2/client/audio/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.client.audio; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/gui/AbstractMachineInventoryScreen.java b/src/main/java/li/cil/oc2/client/gui/AbstractMachineInventoryScreen.java similarity index 93% rename from src/main/java/li/cil/oc2r/client/gui/AbstractMachineInventoryScreen.java rename to src/main/java/li/cil/oc2/client/gui/AbstractMachineInventoryScreen.java index 914ad6c7..e8814e5c 100644 --- a/src/main/java/li/cil/oc2r/client/gui/AbstractMachineInventoryScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/AbstractMachineInventoryScreen.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.systems.RenderSystem; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.client.gui.util.GuiUtils; -import li.cil.oc2r.client.gui.widget.ImageButton; -import li.cil.oc2r.client.gui.widget.ToggleImageButton; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.container.AbstractMachineTerminalContainer; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.client.gui.util.GuiUtils; +import li.cil.oc2.client.gui.widget.ImageButton; +import li.cil.oc2.client.gui.widget.ToggleImageButton; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.container.AbstractMachineTerminalContainer; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.narration.NarrationElementOutput; @@ -25,7 +25,7 @@ import java.util.ArrayList; import java.util.List; import static java.util.Arrays.asList; -import static li.cil.oc2r.common.util.TextFormatUtils.withFormat; +import static li.cil.oc2.common.util.TextFormatUtils.withFormat; @OnlyIn(Dist.CLIENT) public abstract class AbstractMachineInventoryScreen extends AbstractModContainerScreen { diff --git a/src/main/java/li/cil/oc2r/client/gui/AbstractMachineTerminalScreen.java b/src/main/java/li/cil/oc2/client/gui/AbstractMachineTerminalScreen.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/gui/AbstractMachineTerminalScreen.java rename to src/main/java/li/cil/oc2/client/gui/AbstractMachineTerminalScreen.java index bf3c328d..e0a34b75 100644 --- a/src/main/java/li/cil/oc2r/client/gui/AbstractMachineTerminalScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/AbstractMachineTerminalScreen.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.platform.InputConstants; -import li.cil.oc2r.client.gui.widget.ImageButton; -import li.cil.oc2r.client.gui.widget.ToggleImageButton; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.container.AbstractMachineTerminalContainer; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.client.gui.widget.ImageButton; +import li.cil.oc2.client.gui.widget.ToggleImageButton; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.container.AbstractMachineTerminalContainer; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.EditBox; @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.List; import static java.util.Arrays.asList; -import static li.cil.oc2r.common.util.TextFormatUtils.withFormat; +import static li.cil.oc2.common.util.TextFormatUtils.withFormat; @OnlyIn(Dist.CLIENT) public abstract class AbstractMachineTerminalScreen extends AbstractModContainerScreen { diff --git a/src/main/java/li/cil/oc2r/client/gui/AbstractModContainerScreen.java b/src/main/java/li/cil/oc2/client/gui/AbstractModContainerScreen.java similarity index 98% rename from src/main/java/li/cil/oc2r/client/gui/AbstractModContainerScreen.java rename to src/main/java/li/cil/oc2/client/gui/AbstractModContainerScreen.java index e116abcd..a1763056 100644 --- a/src/main/java/li/cil/oc2r/client/gui/AbstractModContainerScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/AbstractModContainerScreen.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; diff --git a/src/main/java/li/cil/oc2r/client/gui/AbstractMonitorDisplayScreen.java b/src/main/java/li/cil/oc2/client/gui/AbstractMonitorDisplayScreen.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/gui/AbstractMonitorDisplayScreen.java rename to src/main/java/li/cil/oc2/client/gui/AbstractMonitorDisplayScreen.java index 6098671c..fa3ec14c 100644 --- a/src/main/java/li/cil/oc2r/client/gui/AbstractMonitorDisplayScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/AbstractMonitorDisplayScreen.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.platform.InputConstants; -import li.cil.oc2r.client.gui.widget.ToggleImageButton; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.container.AbstractMonitorContainer; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.client.gui.widget.ToggleImageButton; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.container.AbstractMonitorContainer; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.EditBox; @@ -21,7 +21,7 @@ import net.minecraftforge.api.distmarker.OnlyIn; import java.util.List; import static java.util.Arrays.asList; -import static li.cil.oc2r.common.util.TextFormatUtils.withFormat; +import static li.cil.oc2.common.util.TextFormatUtils.withFormat; @OnlyIn(Dist.CLIENT) public abstract class AbstractMonitorDisplayScreen extends AbstractModContainerScreen { diff --git a/src/main/java/li/cil/oc2r/client/gui/BusInterfaceScreen.java b/src/main/java/li/cil/oc2/client/gui/BusInterfaceScreen.java similarity index 92% rename from src/main/java/li/cil/oc2r/client/gui/BusInterfaceScreen.java rename to src/main/java/li/cil/oc2/client/gui/BusInterfaceScreen.java index 14aff918..bc573753 100644 --- a/src/main/java/li/cil/oc2r/client/gui/BusInterfaceScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/BusInterfaceScreen.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.systems.RenderSystem; -import li.cil.oc2r.client.gui.widget.ImageButton; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.blockentity.BusCableBlockEntity; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.BusInterfaceNameMessage; +import li.cil.oc2.client.gui.widget.ImageButton; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.blockentity.BusCableBlockEntity; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.BusInterfaceNameMessage; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.narration.NarrationElementOutput; @@ -18,7 +18,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.phys.Vec3; import org.lwjgl.glfw.GLFW; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class BusInterfaceScreen extends Screen { private static final int TEXT_LEFT = 9; diff --git a/src/main/java/li/cil/oc2r/client/gui/ComputerContainerScreen.java b/src/main/java/li/cil/oc2/client/gui/ComputerContainerScreen.java similarity index 91% rename from src/main/java/li/cil/oc2r/client/gui/ComputerContainerScreen.java rename to src/main/java/li/cil/oc2/client/gui/ComputerContainerScreen.java index faeff012..3fd92cad 100644 --- a/src/main/java/li/cil/oc2r/client/gui/ComputerContainerScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/ComputerContainerScreen.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; -import li.cil.oc2r.common.container.ComputerInventoryContainer; +import li.cil.oc2.common.container.ComputerInventoryContainer; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; diff --git a/src/main/java/li/cil/oc2r/client/gui/ComputerTerminalScreen.java b/src/main/java/li/cil/oc2/client/gui/ComputerTerminalScreen.java similarity index 90% rename from src/main/java/li/cil/oc2r/client/gui/ComputerTerminalScreen.java rename to src/main/java/li/cil/oc2/client/gui/ComputerTerminalScreen.java index f77150e9..674cd1fc 100644 --- a/src/main/java/li/cil/oc2r/client/gui/ComputerTerminalScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/ComputerTerminalScreen.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; -import li.cil.oc2r.common.container.ComputerTerminalContainer; +import li.cil.oc2.common.container.ComputerTerminalContainer; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; diff --git a/src/main/java/li/cil/oc2r/client/gui/FileChooserScreen.java b/src/main/java/li/cil/oc2/client/gui/FileChooserScreen.java similarity index 99% rename from src/main/java/li/cil/oc2r/client/gui/FileChooserScreen.java rename to src/main/java/li/cil/oc2/client/gui/FileChooserScreen.java index 0b84ed32..fdef3221 100644 --- a/src/main/java/li/cil/oc2r/client/gui/FileChooserScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/FileChooserScreen.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.vertex.Tesselator; import net.minecraft.ChatFormatting; @@ -25,7 +25,7 @@ import java.util.Objects; import java.util.Optional; import java.util.function.Supplier; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class FileChooserScreen extends Screen { private static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/main/java/li/cil/oc2r/client/gui/KeyCodeMapping.java b/src/main/java/li/cil/oc2/client/gui/KeyCodeMapping.java similarity index 99% rename from src/main/java/li/cil/oc2r/client/gui/KeyCodeMapping.java rename to src/main/java/li/cil/oc2/client/gui/KeyCodeMapping.java index 8c41a1c9..ea820e9d 100644 --- a/src/main/java/li/cil/oc2r/client/gui/KeyCodeMapping.java +++ b/src/main/java/li/cil/oc2/client/gui/KeyCodeMapping.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import it.unimi.dsi.fastutil.ints.Int2IntArrayMap; import li.cil.sedna.evdev.EvdevKeys; diff --git a/src/main/java/li/cil/oc2r/client/gui/KeyboardScreen.java b/src/main/java/li/cil/oc2/client/gui/KeyboardScreen.java similarity index 95% rename from src/main/java/li/cil/oc2r/client/gui/KeyboardScreen.java rename to src/main/java/li/cil/oc2/client/gui/KeyboardScreen.java index a3ace960..a6a31fc0 100644 --- a/src/main/java/li/cil/oc2r/client/gui/KeyboardScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/KeyboardScreen.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; -import li.cil.oc2r.common.blockentity.KeyboardBlockEntity; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.KeyboardInputMessage; +import li.cil.oc2.common.blockentity.KeyboardBlockEntity; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.KeyboardInputMessage; import net.minecraft.client.Minecraft; import net.minecraft.client.MouseHandler; import net.minecraft.client.gui.GuiGraphics; @@ -27,7 +27,7 @@ public final class KeyboardScreen extends Screen { private static final float ARM_SWING_RATE = 0.8f; private static final int BORDER_COLOR = 0xFFFFFFFF; - private static final MutableComponent CLOSE_INFO = Component.translatable("gui.oc2r.keyboard.close_info"); + private static final MutableComponent CLOSE_INFO = Component.translatable("gui.oc2.keyboard.close_info"); /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2r/client/gui/MachineTerminalWidget.java b/src/main/java/li/cil/oc2/client/gui/MachineTerminalWidget.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/gui/MachineTerminalWidget.java rename to src/main/java/li/cil/oc2/client/gui/MachineTerminalWidget.java index cba87519..acba38f3 100644 --- a/src/main/java/li/cil/oc2r/client/gui/MachineTerminalWidget.java +++ b/src/main/java/li/cil/oc2/client/gui/MachineTerminalWidget.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.MultiBufferSource; import org.joml.Matrix4f; -import li.cil.oc2r.client.gui.terminal.TerminalInput; -import li.cil.oc2r.common.container.AbstractMachineTerminalContainer; -import li.cil.oc2r.common.vm.Terminal; +import li.cil.oc2.client.gui.terminal.TerminalInput; +import li.cil.oc2.common.container.AbstractMachineTerminalContainer; +import li.cil.oc2.common.vm.Terminal; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/client/gui/MonitorDisplayScreen.java b/src/main/java/li/cil/oc2/client/gui/MonitorDisplayScreen.java similarity index 92% rename from src/main/java/li/cil/oc2r/client/gui/MonitorDisplayScreen.java rename to src/main/java/li/cil/oc2/client/gui/MonitorDisplayScreen.java index 466ea3ac..6a0c184b 100644 --- a/src/main/java/li/cil/oc2r/client/gui/MonitorDisplayScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/MonitorDisplayScreen.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; -import li.cil.oc2r.common.container.MonitorDisplayContainer; +import li.cil.oc2.common.container.MonitorDisplayContainer; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; diff --git a/src/main/java/li/cil/oc2r/client/gui/MonitorDisplayWidget.java b/src/main/java/li/cil/oc2/client/gui/MonitorDisplayWidget.java similarity index 94% rename from src/main/java/li/cil/oc2r/client/gui/MonitorDisplayWidget.java rename to src/main/java/li/cil/oc2/client/gui/MonitorDisplayWidget.java index 824b01cc..8f9a785d 100644 --- a/src/main/java/li/cil/oc2r/client/gui/MonitorDisplayWidget.java +++ b/src/main/java/li/cil/oc2/client/gui/MonitorDisplayWidget.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; -import li.cil.oc2r.client.renderer.MonitorGUIRenderer; -import li.cil.oc2r.common.bus.device.vm.block.MonitorDevice; -import li.cil.oc2r.common.container.AbstractMonitorContainer; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.MonitorInputMessage; -import li.cil.oc2r.common.vm.Terminal; +import li.cil.oc2.client.renderer.MonitorGUIRenderer; +import li.cil.oc2.common.bus.device.vm.block.MonitorDevice; +import li.cil.oc2.common.container.AbstractMonitorContainer; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.MonitorInputMessage; +import li.cil.oc2.common.vm.Terminal; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; diff --git a/src/main/java/li/cil/oc2r/client/gui/NetworkInterfaceCardScreen.java b/src/main/java/li/cil/oc2/client/gui/NetworkInterfaceCardScreen.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/gui/NetworkInterfaceCardScreen.java rename to src/main/java/li/cil/oc2/client/gui/NetworkInterfaceCardScreen.java index 40d22357..f13e7bad 100644 --- a/src/main/java/li/cil/oc2r/client/gui/NetworkInterfaceCardScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/NetworkInterfaceCardScreen.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; @@ -10,12 +10,12 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.world.item.ItemDisplayContext; import org.joml.Quaternionf; import org.joml.Vector3f; -import li.cil.oc2r.client.gui.widget.Texture; -import li.cil.oc2r.client.renderer.ModRenderType; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.item.NetworkInterfaceCardItem; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.NetworkInterfaceCardConfigurationMessage; +import li.cil.oc2.client.gui.widget.Texture; +import li.cil.oc2.client.renderer.ModRenderType; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.item.NetworkInterfaceCardItem; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.NetworkInterfaceCardConfigurationMessage; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.MultiBufferSource; @@ -37,8 +37,8 @@ import net.minecraft.world.phys.Vec3; import javax.annotation.Nullable; -import static li.cil.oc2r.common.util.TranslationUtils.key; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.key; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class NetworkInterfaceCardScreen extends Screen { private static final String SIDE_STATE_TEXT = key("gui.{mod}.network_interface_card.side_state"); diff --git a/src/main/java/li/cil/oc2r/client/gui/NetworkTunnelScreen.java b/src/main/java/li/cil/oc2/client/gui/NetworkTunnelScreen.java similarity index 90% rename from src/main/java/li/cil/oc2r/client/gui/NetworkTunnelScreen.java rename to src/main/java/li/cil/oc2/client/gui/NetworkTunnelScreen.java index 39cd407e..999c5e45 100644 --- a/src/main/java/li/cil/oc2r/client/gui/NetworkTunnelScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/NetworkTunnelScreen.java @@ -1,19 +1,19 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.systems.RenderSystem; -import li.cil.oc2r.client.gui.widget.ImageButton; -import li.cil.oc2r.common.container.NetworkTunnelContainer; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.NetworkTunnelLinkMessage; +import li.cil.oc2.client.gui.widget.ImageButton; +import li.cil.oc2.common.container.NetworkTunnelContainer; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.NetworkTunnelLinkMessage; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.narration.NarrationElementOutput; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class NetworkTunnelScreen extends AbstractModContainerScreen { private static final int LINK_BUTTON_LEFT = 48; diff --git a/src/main/java/li/cil/oc2r/client/gui/RobotContainerScreen.java b/src/main/java/li/cil/oc2/client/gui/RobotContainerScreen.java similarity index 95% rename from src/main/java/li/cil/oc2r/client/gui/RobotContainerScreen.java rename to src/main/java/li/cil/oc2/client/gui/RobotContainerScreen.java index 627074df..d795ef89 100644 --- a/src/main/java/li/cil/oc2r/client/gui/RobotContainerScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/RobotContainerScreen.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; import com.mojang.blaze3d.systems.RenderSystem; -import li.cil.oc2r.common.container.RobotInventoryContainer; +import li.cil.oc2.common.container.RobotInventoryContainer; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/client/gui/RobotTerminalScreen.java b/src/main/java/li/cil/oc2/client/gui/RobotTerminalScreen.java similarity index 94% rename from src/main/java/li/cil/oc2r/client/gui/RobotTerminalScreen.java rename to src/main/java/li/cil/oc2/client/gui/RobotTerminalScreen.java index 81929784..1b83b7e7 100644 --- a/src/main/java/li/cil/oc2r/client/gui/RobotTerminalScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/RobotTerminalScreen.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; -import li.cil.oc2r.common.container.RobotTerminalContainer; +import li.cil.oc2.common.container.RobotTerminalContainer; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/client/gui/Sprites.java b/src/main/java/li/cil/oc2/client/gui/Sprites.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/gui/Sprites.java rename to src/main/java/li/cil/oc2/client/gui/Sprites.java index 9146b8f0..0e27f8f2 100644 --- a/src/main/java/li/cil/oc2r/client/gui/Sprites.java +++ b/src/main/java/li/cil/oc2/client/gui/Sprites.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; -import li.cil.oc2r.client.gui.widget.Sprite; +import li.cil.oc2.client.gui.widget.Sprite; -import static li.cil.oc2r.client.gui.Textures.*; +import static li.cil.oc2.client.gui.Textures.*; public final class Sprites { public static final Sprite COMPUTER_CONTAINER = new Sprite(COMPUTER_CONTAINER_TEXTURE); diff --git a/src/main/java/li/cil/oc2r/client/gui/Textures.java b/src/main/java/li/cil/oc2/client/gui/Textures.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/gui/Textures.java rename to src/main/java/li/cil/oc2/client/gui/Textures.java index 74aa1af0..37629866 100644 --- a/src/main/java/li/cil/oc2r/client/gui/Textures.java +++ b/src/main/java/li/cil/oc2/client/gui/Textures.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.gui; -import li.cil.oc2r.client.gui.widget.Texture; +import li.cil.oc2.client.gui.widget.Texture; public final class Textures { public static final Texture COMPUTER_CONTAINER_TEXTURE = new Texture("textures/gui/widget/computer_container.png", 176, 197); diff --git a/src/main/java/li/cil/oc2/client/gui/package-info.java b/src/main/java/li/cil/oc2/client/gui/package-info.java new file mode 100644 index 00000000..ec9bf592 --- /dev/null +++ b/src/main/java/li/cil/oc2/client/gui/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.client.gui; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/gui/terminal/TerminalInput.java b/src/main/java/li/cil/oc2/client/gui/terminal/TerminalInput.java similarity index 99% rename from src/main/java/li/cil/oc2r/client/gui/terminal/TerminalInput.java rename to src/main/java/li/cil/oc2/client/gui/terminal/TerminalInput.java index 3a114986..d3bf4797 100644 --- a/src/main/java/li/cil/oc2r/client/gui/terminal/TerminalInput.java +++ b/src/main/java/li/cil/oc2/client/gui/terminal/TerminalInput.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui.terminal; +package li.cil.oc2.client.gui.terminal; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; import org.lwjgl.glfw.GLFW; diff --git a/src/main/java/li/cil/oc2/client/gui/terminal/package-info.java b/src/main/java/li/cil/oc2/client/gui/terminal/package-info.java new file mode 100644 index 00000000..6dc108fe --- /dev/null +++ b/src/main/java/li/cil/oc2/client/gui/terminal/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.client.gui.terminal; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/gui/util/GuiUtils.java b/src/main/java/li/cil/oc2/client/gui/util/GuiUtils.java similarity index 91% rename from src/main/java/li/cil/oc2r/client/gui/util/GuiUtils.java rename to src/main/java/li/cil/oc2/client/gui/util/GuiUtils.java index 7bedc876..b390f0f9 100644 --- a/src/main/java/li/cil/oc2r/client/gui/util/GuiUtils.java +++ b/src/main/java/li/cil/oc2/client/gui/util/GuiUtils.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui.util; +package li.cil.oc2.client.gui.util; -import li.cil.oc2r.api.bus.device.DeviceType; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.client.gui.widget.Sprite; -import li.cil.oc2r.common.container.DeviceTypeSlotItemHandler; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.client.gui.widget.Sprite; +import li.cil.oc2.common.container.DeviceTypeSlotItemHandler; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.Util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; @@ -17,7 +17,7 @@ import net.minecraft.world.inventory.Slot; import java.util.*; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class GuiUtils { private static final Map WARNING_BY_DEVICE_TYPE = Util.make(() -> { diff --git a/src/main/java/li/cil/oc2r/api/bus/device/package-info.java b/src/main/java/li/cil/oc2/client/gui/util/package-info.java similarity index 85% rename from src/main/java/li/cil/oc2r/api/bus/device/package-info.java rename to src/main/java/li/cil/oc2/client/gui/util/package-info.java index 169ce7b5..811d7482 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/package-info.java +++ b/src/main/java/li/cil/oc2/client/gui/util/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.bus.device; +package li.cil.oc2.client.gui.util; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/gui/widget/ImageButton.java b/src/main/java/li/cil/oc2/client/gui/widget/ImageButton.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/gui/widget/ImageButton.java rename to src/main/java/li/cil/oc2/client/gui/widget/ImageButton.java index 8d9a6437..5ab921f7 100644 --- a/src/main/java/li/cil/oc2r/client/gui/widget/ImageButton.java +++ b/src/main/java/li/cil/oc2/client/gui/widget/ImageButton.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui.widget; +package li.cil.oc2.client.gui.widget; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.ChatFormatting; @@ -17,7 +17,7 @@ import java.util.List; import java.util.Objects; import static java.util.Collections.emptyList; -import static li.cil.oc2r.common.util.TextFormatUtils.withFormat; +import static li.cil.oc2.common.util.TextFormatUtils.withFormat; public abstract class ImageButton extends AbstractButton { private static final long PRESS_DURATION = 200; diff --git a/src/main/java/li/cil/oc2r/client/gui/widget/Sprite.java b/src/main/java/li/cil/oc2/client/gui/widget/Sprite.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/gui/widget/Sprite.java rename to src/main/java/li/cil/oc2/client/gui/widget/Sprite.java index 093c0ea3..d0a5be6b 100644 --- a/src/main/java/li/cil/oc2r/client/gui/widget/Sprite.java +++ b/src/main/java/li/cil/oc2/client/gui/widget/Sprite.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui.widget; +package li.cil.oc2.client.gui.widget; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.util.Mth; diff --git a/src/main/java/li/cil/oc2r/client/gui/widget/Texture.java b/src/main/java/li/cil/oc2/client/gui/widget/Texture.java similarity index 89% rename from src/main/java/li/cil/oc2r/client/gui/widget/Texture.java rename to src/main/java/li/cil/oc2/client/gui/widget/Texture.java index fbe072b8..62bdb6b5 100644 --- a/src/main/java/li/cil/oc2r/client/gui/widget/Texture.java +++ b/src/main/java/li/cil/oc2/client/gui/widget/Texture.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui.widget; +package li.cil.oc2.client.gui.widget; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.resources.ResourceLocation; public final class Texture { diff --git a/src/main/java/li/cil/oc2r/client/gui/widget/ToggleImageButton.java b/src/main/java/li/cil/oc2/client/gui/widget/ToggleImageButton.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/gui/widget/ToggleImageButton.java rename to src/main/java/li/cil/oc2/client/gui/widget/ToggleImageButton.java index e9199cb7..67aa72b2 100644 --- a/src/main/java/li/cil/oc2r/client/gui/widget/ToggleImageButton.java +++ b/src/main/java/li/cil/oc2/client/gui/widget/ToggleImageButton.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.gui.widget; +package li.cil.oc2.client.gui.widget; import net.minecraft.client.gui.GuiGraphics; diff --git a/src/main/java/li/cil/oc2/client/gui/widget/package-info.java b/src/main/java/li/cil/oc2/client/gui/widget/package-info.java new file mode 100644 index 00000000..6f146b0c --- /dev/null +++ b/src/main/java/li/cil/oc2/client/gui/widget/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.client.gui.widget; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/item/CustomItemColors.java b/src/main/java/li/cil/oc2/client/item/CustomItemColors.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/item/CustomItemColors.java rename to src/main/java/li/cil/oc2/client/item/CustomItemColors.java index d1c4aa1e..6178db40 100644 --- a/src/main/java/li/cil/oc2r/client/item/CustomItemColors.java +++ b/src/main/java/li/cil/oc2/client/item/CustomItemColors.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.item; +package li.cil.oc2.client.item; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.common.item.Items; import net.minecraft.client.Minecraft; import net.minecraft.client.color.item.ItemColors; import net.minecraft.world.item.DyeColor; diff --git a/src/main/java/li/cil/oc2r/client/item/CustomItemModelProperties.java b/src/main/java/li/cil/oc2/client/item/CustomItemModelProperties.java similarity index 94% rename from src/main/java/li/cil/oc2r/client/item/CustomItemModelProperties.java rename to src/main/java/li/cil/oc2/client/item/CustomItemModelProperties.java index c4f7fe29..db49879b 100644 --- a/src/main/java/li/cil/oc2r/client/item/CustomItemModelProperties.java +++ b/src/main/java/li/cil/oc2/client/item/CustomItemModelProperties.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.item; +package li.cil.oc2.client.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.API; +import li.cil.oc2.common.item.Items; import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/client/gui/package-info.java b/src/main/java/li/cil/oc2/client/item/package-info.java similarity index 86% rename from src/main/java/li/cil/oc2r/client/gui/package-info.java rename to src/main/java/li/cil/oc2/client/item/package-info.java index 6b1a3df4..248854e6 100644 --- a/src/main/java/li/cil/oc2r/client/gui/package-info.java +++ b/src/main/java/li/cil/oc2/client/item/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.client.gui; +package li.cil.oc2.client.item; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/manual/Manuals.java b/src/main/java/li/cil/oc2/client/manual/Manuals.java similarity index 95% rename from src/main/java/li/cil/oc2r/client/manual/Manuals.java rename to src/main/java/li/cil/oc2/client/manual/Manuals.java index ee77e31e..b5f5c3da 100644 --- a/src/main/java/li/cil/oc2r/client/manual/Manuals.java +++ b/src/main/java/li/cil/oc2/client/manual/Manuals.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.manual; +package li.cil.oc2.client.manual; import li.cil.manual.api.ManualModel; import li.cil.manual.api.Tab; @@ -12,9 +12,9 @@ import li.cil.manual.api.prefab.tab.TextureTab; import li.cil.manual.api.provider.DocumentProvider; import li.cil.manual.api.provider.PathProvider; import li.cil.manual.api.util.Constants; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.API; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.item.Items; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/client/manual/ModManualScreenStyle.java b/src/main/java/li/cil/oc2/client/manual/ModManualScreenStyle.java similarity index 95% rename from src/main/java/li/cil/oc2r/client/manual/ModManualScreenStyle.java rename to src/main/java/li/cil/oc2/client/manual/ModManualScreenStyle.java index 4fbd9a6a..9d76f805 100644 --- a/src/main/java/li/cil/oc2r/client/manual/ModManualScreenStyle.java +++ b/src/main/java/li/cil/oc2/client/manual/ModManualScreenStyle.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.manual; +package li.cil.oc2.client.manual; import li.cil.manual.api.ManualScreenStyle; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.client.renderer.Rect2i; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/li/cil/oc2r/client/manual/ModManualStyle.java b/src/main/java/li/cil/oc2/client/manual/ModManualStyle.java similarity index 92% rename from src/main/java/li/cil/oc2r/client/manual/ModManualStyle.java rename to src/main/java/li/cil/oc2/client/manual/ModManualStyle.java index 762837be..bee9ee3a 100644 --- a/src/main/java/li/cil/oc2r/client/manual/ModManualStyle.java +++ b/src/main/java/li/cil/oc2/client/manual/ModManualStyle.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.manual; +package li.cil.oc2.client.manual; import li.cil.manual.api.ManualStyle; import li.cil.manual.api.render.FontRenderer; -import li.cil.oc2r.client.renderer.font.MonospaceFontRenderer; +import li.cil.oc2.client.renderer.font.MonospaceFontRenderer; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/li/cil/oc2r/client/audio/package-info.java b/src/main/java/li/cil/oc2/client/manual/package-info.java similarity index 85% rename from src/main/java/li/cil/oc2r/client/audio/package-info.java rename to src/main/java/li/cil/oc2/client/manual/package-info.java index 4f94272c..bd104786 100644 --- a/src/main/java/li/cil/oc2r/client/audio/package-info.java +++ b/src/main/java/li/cil/oc2/client/manual/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.client.audio; +package li.cil.oc2.client.manual; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/model/BusCableBakedModel.java b/src/main/java/li/cil/oc2/client/model/BusCableBakedModel.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/model/BusCableBakedModel.java rename to src/main/java/li/cil/oc2/client/model/BusCableBakedModel.java index 29c81604..099114cd 100644 --- a/src/main/java/li/cil/oc2r/client/model/BusCableBakedModel.java +++ b/src/main/java/li/cil/oc2/client/model/BusCableBakedModel.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.model; +package li.cil.oc2.client.model; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.block.BusCableBlock; -import li.cil.oc2r.common.blockentity.BusCableBlockEntity; -import li.cil.oc2r.common.util.ItemStackUtils; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.block.BusCableBlock; +import li.cil.oc2.common.blockentity.BusCableBlockEntity; +import li.cil.oc2.common.util.ItemStackUtils; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockModelShaper; diff --git a/src/main/java/li/cil/oc2r/client/model/BusCableModel.java b/src/main/java/li/cil/oc2/client/model/BusCableModel.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/model/BusCableModel.java rename to src/main/java/li/cil/oc2/client/model/BusCableModel.java index 6cc2513d..d2f82a28 100644 --- a/src/main/java/li/cil/oc2r/client/model/BusCableModel.java +++ b/src/main/java/li/cil/oc2/client/model/BusCableModel.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.model; +package li.cil.oc2.client.model; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.*; diff --git a/src/main/java/li/cil/oc2r/client/model/BusCableModelLoader.java b/src/main/java/li/cil/oc2/client/model/BusCableModelLoader.java similarity index 94% rename from src/main/java/li/cil/oc2r/client/model/BusCableModelLoader.java rename to src/main/java/li/cil/oc2/client/model/BusCableModelLoader.java index ef54cc47..6d5ce6e7 100644 --- a/src/main/java/li/cil/oc2r/client/model/BusCableModelLoader.java +++ b/src/main/java/li/cil/oc2/client/model/BusCableModelLoader.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.model; +package li.cil.oc2.client.model; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; diff --git a/src/main/java/li/cil/oc2/client/model/package-info.java b/src/main/java/li/cil/oc2/client/model/package-info.java new file mode 100644 index 00000000..4ab66041 --- /dev/null +++ b/src/main/java/li/cil/oc2/client/model/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.client.model; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/package-info.java b/src/main/java/li/cil/oc2/client/package-info.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/package-info.java rename to src/main/java/li/cil/oc2/client/package-info.java index e536160d..e90acf4d 100644 --- a/src/main/java/li/cil/oc2r/common/package-info.java +++ b/src/main/java/li/cil/oc2/client/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.common; +package li.cil.oc2.client; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/renderer/BusInterfaceNameRenderer.java b/src/main/java/li/cil/oc2/client/renderer/BusInterfaceNameRenderer.java similarity index 95% rename from src/main/java/li/cil/oc2r/client/renderer/BusInterfaceNameRenderer.java rename to src/main/java/li/cil/oc2/client/renderer/BusInterfaceNameRenderer.java index 1acbab6c..718613f9 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/BusInterfaceNameRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/BusInterfaceNameRenderer.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer; +package li.cil.oc2.client.renderer; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; import org.joml.Matrix4f; -import li.cil.oc2r.common.block.BusCableBlock; -import li.cil.oc2r.common.blockentity.BusCableBlockEntity; -import li.cil.oc2r.common.integration.Wrenches; +import li.cil.oc2.common.block.BusCableBlock; +import li.cil.oc2.common.blockentity.BusCableBlockEntity; +import li.cil.oc2.common.integration.Wrenches; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; diff --git a/src/main/java/li/cil/oc2r/client/renderer/ModRenderType.java b/src/main/java/li/cil/oc2/client/renderer/ModRenderType.java similarity index 84% rename from src/main/java/li/cil/oc2r/client/renderer/ModRenderType.java rename to src/main/java/li/cil/oc2/client/renderer/ModRenderType.java index 9b419bf9..b41477bd 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/ModRenderType.java +++ b/src/main/java/li/cil/oc2/client/renderer/ModRenderType.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer; +package li.cil.oc2.client.renderer; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.VertexFormat; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.client.renderer.RenderType; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; @@ -41,6 +41,20 @@ public abstract class ModRenderType extends RenderType { .setCullState(NO_CULL) .createCompositeState(false)); + private static final RenderType GATEWAY_PARTICLE = create( + API.MOD_ID + "/gateway_particle", + DefaultVertexFormat.POSITION_COLOR, + VertexFormat.Mode.QUADS, + 256, + false, + true, + CompositeState.builder() + .setShaderState(RENDERTYPE_LIGHTNING_SHADER) + .setTransparencyState(LIGHTNING_TRANSPARENCY) + .setWriteMaskState(COLOR_WRITE) + .setCullState(CULL) + .createCompositeState(false)); + /////////////////////////////////////////////////////////////////// public static RenderType getNetworkCable() { @@ -87,6 +101,10 @@ public abstract class ModRenderType extends RenderType { state); } + public static RenderType getGateWayParticle() { + return GATEWAY_PARTICLE; + } + /////////////////////////////////////////////////////////////////// private ModRenderType(final String name, final VertexFormat format, final VertexFormat.Mode drawMode, final int bufferSize, final boolean useDelegate, final boolean needsSorting, final Runnable setupTask, final Runnable clearTask) { diff --git a/src/main/java/li/cil/oc2r/client/renderer/ModShaders.java b/src/main/java/li/cil/oc2/client/renderer/ModShaders.java similarity index 98% rename from src/main/java/li/cil/oc2r/client/renderer/ModShaders.java rename to src/main/java/li/cil/oc2/client/renderer/ModShaders.java index e81a548a..bca42421 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/ModShaders.java +++ b/src/main/java/li/cil/oc2/client/renderer/ModShaders.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer; +package li.cil.oc2.client.renderer; import com.mojang.blaze3d.pipeline.RenderTarget; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import org.joml.Matrix4f; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.client.renderer.texture.DynamicTexture; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/client/renderer/MonitorGUIRenderer.java b/src/main/java/li/cil/oc2/client/renderer/MonitorGUIRenderer.java similarity index 96% rename from src/main/java/li/cil/oc2r/client/renderer/MonitorGUIRenderer.java rename to src/main/java/li/cil/oc2/client/renderer/MonitorGUIRenderer.java index bf58fca0..56ea2868 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/MonitorGUIRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/MonitorGUIRenderer.java @@ -1,4 +1,4 @@ -package li.cil.oc2r.client.renderer; +package li.cil.oc2.client.renderer; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -7,10 +7,10 @@ import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.bus.device.vm.block.MonitorDevice; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.scale.Yuv420jToRgb; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.bus.device.vm.block.MonitorDevice; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.scale.Yuv420jToRgb; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.client.renderer.texture.DynamicTexture; diff --git a/src/main/java/li/cil/oc2r/client/renderer/NetworkCableRenderer.java b/src/main/java/li/cil/oc2/client/renderer/NetworkCableRenderer.java similarity index 98% rename from src/main/java/li/cil/oc2r/client/renderer/NetworkCableRenderer.java rename to src/main/java/li/cil/oc2/client/renderer/NetworkCableRenderer.java index 651abb45..94f0f72e 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/NetworkCableRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/NetworkCableRenderer.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer; +package li.cil.oc2.client.renderer; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import li.cil.oc2r.common.util.Vec3Utils; +import li.cil.oc2.common.util.Vec3Utils; import org.joml.Matrix4f; import org.joml.Vector3f; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.blockentity.NetworkConnectorBlockEntity; +import li.cil.oc2.api.API; +import li.cil.oc2.common.blockentity.NetworkConnectorBlockEntity; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; diff --git a/src/main/java/li/cil/oc2r/client/renderer/ProjectorDepthRenderer.java b/src/main/java/li/cil/oc2/client/renderer/ProjectorDepthRenderer.java similarity index 98% rename from src/main/java/li/cil/oc2r/client/renderer/ProjectorDepthRenderer.java rename to src/main/java/li/cil/oc2/client/renderer/ProjectorDepthRenderer.java index ec308a98..b2a82a2d 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/ProjectorDepthRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/ProjectorDepthRenderer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer; +package li.cil.oc2.client.renderer; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -16,14 +16,14 @@ import com.mojang.blaze3d.vertex.*; import com.mojang.math.Axis; import org.joml.Matrix3f; import org.joml.Matrix4f; -import li.cil.oc2r.common.block.ProjectorBlock; -import li.cil.oc2r.common.blockentity.ProjectorBlockEntity; -import li.cil.oc2r.common.bus.device.vm.block.ProjectorDevice; -import li.cil.oc2r.common.ext.MinecraftExt; -import li.cil.oc2r.common.mixin.LevelRendererMixin; -import li.cil.oc2r.common.util.FakePlayerUtils; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.scale.Yuv420jToRgb; +import li.cil.oc2.common.block.ProjectorBlock; +import li.cil.oc2.common.blockentity.ProjectorBlockEntity; +import li.cil.oc2.common.bus.device.vm.block.ProjectorDevice; +import li.cil.oc2.common.ext.MinecraftExt; +import li.cil.oc2.common.mixin.LevelRendererMixin; +import li.cil.oc2.common.util.FakePlayerUtils; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.scale.Yuv420jToRgb; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -194,6 +194,7 @@ public final class ProjectorDepthRenderer { final int projectorCount = Math.min(VISIBLE_PROJECTORS.size(), ModShaders.MAX_PROJECTORS); renderProjectorDepths(minecraft, level, event.getPartialTick(), projectorCount); renderProjectorColors(minecraft, event.getPoseStack().last().pose(), event.getProjectionMatrix(), projectorCount); + } finally { VISIBLE_PROJECTORS.clear(); Arrays.fill(PROJECTOR_COLOR_TARGETS, null); diff --git a/src/main/java/li/cil/oc2r/client/renderer/blockentity/ChargerRenderer.java b/src/main/java/li/cil/oc2/client/renderer/blockentity/ChargerRenderer.java similarity index 93% rename from src/main/java/li/cil/oc2r/client/renderer/blockentity/ChargerRenderer.java rename to src/main/java/li/cil/oc2/client/renderer/blockentity/ChargerRenderer.java index a285e9fe..ce58305d 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/blockentity/ChargerRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/blockentity/ChargerRenderer.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer.blockentity; +package li.cil.oc2.client.renderer.blockentity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import org.joml.Matrix4f; -import li.cil.oc2r.api.API; -import li.cil.oc2r.client.renderer.ModRenderType; -import li.cil.oc2r.common.blockentity.ChargerBlockEntity; -import li.cil.oc2r.common.util.ChainableVertexConsumer; +import li.cil.oc2.api.API; +import li.cil.oc2.client.renderer.ModRenderType; +import li.cil.oc2.common.blockentity.ChargerBlockEntity; +import li.cil.oc2.common.util.ChainableVertexConsumer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/li/cil/oc2r/client/renderer/blockentity/ComputerRenderer.java b/src/main/java/li/cil/oc2/client/renderer/blockentity/ComputerRenderer.java similarity index 97% rename from src/main/java/li/cil/oc2r/client/renderer/blockentity/ComputerRenderer.java rename to src/main/java/li/cil/oc2/client/renderer/blockentity/ComputerRenderer.java index 169378fd..ed3f5a25 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/blockentity/ComputerRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/blockentity/ComputerRenderer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer.blockentity; +package li.cil.oc2.client.renderer.blockentity; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -11,12 +11,12 @@ import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; import org.joml.Matrix4f; -import li.cil.oc2r.api.API; -import li.cil.oc2r.client.renderer.ModRenderType; -import li.cil.oc2r.common.block.ComputerBlock; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.util.ChainableVertexConsumer; -import li.cil.oc2r.common.vm.Terminal; +import li.cil.oc2.api.API; +import li.cil.oc2.client.renderer.ModRenderType; +import li.cil.oc2.common.block.ComputerBlock; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.util.ChainableVertexConsumer; +import li.cil.oc2.common.vm.Terminal; import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; diff --git a/src/main/java/li/cil/oc2r/client/renderer/blockentity/DiskDriveRenderer.java b/src/main/java/li/cil/oc2/client/renderer/blockentity/DiskDriveRenderer.java similarity index 93% rename from src/main/java/li/cil/oc2r/client/renderer/blockentity/DiskDriveRenderer.java rename to src/main/java/li/cil/oc2/client/renderer/blockentity/DiskDriveRenderer.java index 278e8c08..9f92c0b8 100644 --- a/src/main/java/li/cil/oc2r/client/renderer/blockentity/DiskDriveRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/blockentity/DiskDriveRenderer.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.client.renderer.blockentity; +package li.cil.oc2.client.renderer.blockentity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; import net.minecraft.world.item.ItemDisplayContext; -import li.cil.oc2r.common.block.DiskDriveBlock; -import li.cil.oc2r.common.blockentity.DiskDriveBlockEntity; +import li.cil.oc2.common.block.DiskDriveBlock; +import li.cil.oc2.common.blockentity.DiskDriveBlockEntity; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; diff --git a/src/main/java/li/cil/oc2/client/renderer/blockentity/InternetGateWayRenderer.java b/src/main/java/li/cil/oc2/client/renderer/blockentity/InternetGateWayRenderer.java new file mode 100644 index 00000000..4091ff1e --- /dev/null +++ b/src/main/java/li/cil/oc2/client/renderer/blockentity/InternetGateWayRenderer.java @@ -0,0 +1,114 @@ +package li.cil.oc2.client.renderer.blockentity; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import org.joml.Matrix4f; + +import li.cil.oc2.client.renderer.ModRenderType; +import li.cil.oc2.common.blockentity.InternetGateWayBlockEntity; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; + +public class InternetGateWayRenderer implements BlockEntityRenderer { + private static final float BLOCK_HEIGHT = 14f/16f; + private static final float PORTAL_POSITION = 0.4f; + private static final float EMITTER_POSITION = -3f/16f; + private static final float EMITTER_SIZE = 6f/16f; + private static final float EMITTER_PIXEL_SIZE = EMITTER_SIZE / 9f; + private static final int[] SCRAMBLER = {1, 2, 0, 3, 13, 5, 15, 12, 6, 14, 10, 11, 7, 8, 9, 4}; + + public InternetGateWayRenderer(final BlockEntityRendererProvider.Context context) { + //this.renderer = context.getBlockEntityRenderDispatcher(); + } + + @Override + public void render(InternetGateWayBlockEntity gateWay, final float partialTicks, final PoseStack stack, final MultiBufferSource bufferSource, final int light, final int overlay) { + stack.pushPose(); + stack.translate(0.5f, BLOCK_HEIGHT, 0.5f); + stack.pushPose(); + long time = System.currentTimeMillis(); + long dt = time - gateWay.lastRender; + gateWay.lastRender = time; + if (dt > 1000) { + //Catch up if rendering stopped + gateWay.handledInboundCount = gateWay.inboundCount; + gateWay.handledOutboundCount = gateWay.outboundCount; + } + double phase = ((double)time)/1000d; + stack.translate(0f, PORTAL_POSITION+Math.sin(phase/2)*0.03f, 0f); + //stack.mulPose(Vector3f.XN.rotationDegrees((float)Math.sin(phase)*5)); + //stack.mulPose(Vector3f.ZN.rotationDegrees((float)Math.sin(phase+2)*5)); + VertexConsumer portal = bufferSource.getBuffer(RenderType.endPortal()); + Matrix4f matrix = stack.last().pose(); + float halfSide = 0.2f; + + renderCube(portal, matrix, halfSide, 0, 0, 0, false); + stack.popPose(); + stack.translate(0, EMITTER_POSITION, 0); + matrix = stack.last().pose(); + int pendingPackets = Math.max(0, gateWay.inboundCount - gateWay.handledInboundCount) + Math.max(0, gateWay.outboundCount - gateWay.handledOutboundCount); + float speedMod = Math.max(1f, Math.min(1.5f, pendingPackets * 0.025f)); + VertexConsumer packet = bufferSource.getBuffer(ModRenderType.getGateWayParticle()); + for (int x=0;x=1f) { + gateWay.pointer += 1; + if (gateWay.pointer>=InternetGateWayBlockEntity.EMITTER_SIDE_PIXELS*InternetGateWayBlockEntity.EMITTER_SIDE_PIXELS) { + gateWay.pointer = 0; + } + gateWay.animProgress[scrambledPointer] = 0f - (float)Math.random() * 0.1f; + if (gateWay.handledInboundCount 0 && computerEnergyStorage > 0; @@ -74,4 +89,7 @@ public final class Config { public static boolean monitorsUseEnergy() { return computerEnergyPerTick > 0 && computerEnergyStorage > 0; } + public static boolean gatewayUseEnergy() { + return gatewayEnergyPerPacket > 0 && gatewayEnergyStorage > 0; + } } diff --git a/src/main/java/li/cil/oc2r/common/ConfigManager.java b/src/main/java/li/cil/oc2/common/ConfigManager.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/ConfigManager.java rename to src/main/java/li/cil/oc2/common/ConfigManager.java index 68361c90..c4436198 100644 --- a/src/main/java/li/cil/oc2r/common/ConfigManager.java +++ b/src/main/java/li/cil/oc2/common/ConfigManager.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common; +package li.cil.oc2.common; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -72,6 +72,7 @@ public final class ConfigManager { PARSERS.put(String.class, ConfigManager::parseStringField); PARSERS.put(UUID.class, ConfigManager::parseUUIDField); PARSERS.put(ResourceLocation.class, ConfigManager::parseResourceLocationField); + PARSERS.put(boolean.class, ConfigManager::parseBooleanField); } /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2r/common/Constants.java b/src/main/java/li/cil/oc2/common/Constants.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/Constants.java rename to src/main/java/li/cil/oc2/common/Constants.java index c0adf980..b20119b5 100644 --- a/src/main/java/li/cil/oc2r/common/Constants.java +++ b/src/main/java/li/cil/oc2/common/Constants.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common; +package li.cil.oc2.common; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.core.Direction; -import static li.cil.oc2r.common.util.TranslationUtils.key; +import static li.cil.oc2.common.util.TranslationUtils.key; public final class Constants { public static final int KILOBYTE = 1024; @@ -28,6 +28,7 @@ public final class Constants { public static final String MOD_TAG_NAME = API.MOD_ID; public static final String ITEMS_TAG_NAME = "items"; public static final String ENERGY_TAG_NAME = "energy"; + public static final String INTERNET_ADAPTER_TAG_NAME = "InternetAdapter"; /////////////////////////////////////////////////////////////////// @@ -37,6 +38,8 @@ public final class Constants { public static final String TOOLTIP_ENERGY_CONSUMPTION = key("tooltip.{mod}.energyConsumption"); public static final String TOOLTIP_CONFIRM = key("tooltip.{mod}.confirm"); public static final String TOOLTIP_CANCEL = key("tooltip.{mod}.cancel"); + public static final String TOOLTIP_INTERNET_DISABLED = key("tooltip.{mod}.internet.disabled"); + public static final String TOOLTIP_INTERNET_ENERGY_PER_PACKET = key("tooltip.{mod}.internet.energy_per_packet"); /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2r/common/Main.java b/src/main/java/li/cil/oc2/common/Main.java similarity index 62% rename from src/main/java/li/cil/oc2r/common/Main.java rename to src/main/java/li/cil/oc2/common/Main.java index 8c40f603..b2358e63 100644 --- a/src/main/java/li/cil/oc2r/common/Main.java +++ b/src/main/java/li/cil/oc2/common/Main.java @@ -1,29 +1,29 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common; +package li.cil.oc2.common; import dev.architectury.platform.forge.EventBuses; import li.cil.ceres.Ceres; -import li.cil.oc2r.api.API; -import li.cil.oc2r.client.ClientSetup; -import li.cil.oc2r.client.manual.Manuals; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.bus.device.DeviceTypes; -import li.cil.oc2r.common.bus.device.data.BlockDeviceDataRegistry; -import li.cil.oc2r.common.bus.device.data.FirmwareRegistry; -import li.cil.oc2r.common.bus.device.provider.ProviderRegistry; -import li.cil.oc2r.common.container.Containers; -import li.cil.oc2r.common.entity.Entities; -import li.cil.oc2r.common.item.ItemGroup; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.item.crafting.RecipeSerializers; -import li.cil.oc2r.common.serialization.ceres.Serializers; -import li.cil.oc2r.common.tags.BlockTags; -import li.cil.oc2r.common.tags.ItemTags; -import li.cil.oc2r.common.util.RegistryUtils; -import li.cil.oc2r.common.util.SoundEvents; -import li.cil.oc2r.common.vm.provider.DeviceTreeProviders; +import li.cil.oc2.api.API; +import li.cil.oc2.client.ClientSetup; +import li.cil.oc2.client.manual.Manuals; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.bus.device.DeviceTypes; +import li.cil.oc2.common.bus.device.data.BlockDeviceDataRegistry; +import li.cil.oc2.common.bus.device.data.FirmwareRegistry; +import li.cil.oc2.common.bus.device.provider.ProviderRegistry; +import li.cil.oc2.common.container.Containers; +import li.cil.oc2.common.entity.Entities; +import li.cil.oc2.common.item.ItemGroup; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.item.crafting.RecipeSerializers; +import li.cil.oc2.common.serialization.ceres.Serializers; +import li.cil.oc2.common.tags.BlockTags; +import li.cil.oc2.common.tags.ItemTags; +import li.cil.oc2.common.util.RegistryUtils; +import li.cil.oc2.common.util.SoundEvents; +import li.cil.oc2.common.vm.provider.DeviceTreeProviders; import li.cil.sedna.Sedna; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.fml.DistExecutor; diff --git a/src/main/java/li/cil/oc2r/common/block/Blocks.java b/src/main/java/li/cil/oc2/common/block/Blocks.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/block/Blocks.java rename to src/main/java/li/cil/oc2/common/block/Blocks.java index 02911df1..1d796d85 100644 --- a/src/main/java/li/cil/oc2r/common/block/Blocks.java +++ b/src/main/java/li/cil/oc2/common/block/Blocks.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.world.level.block.Block; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; @@ -30,6 +30,7 @@ public final class Blocks { public static final RegistryObject VXLAN_HUB = BLOCKS.register("vxlan_hub", VxlanBlock::new); public static final RegistryObject PCI_CARD_CAGE = BLOCKS.register("pci_card_cage", PciCardCageBlock::new); + public static final RegistryObject INTERNET_GATEWAY = BLOCKS.register("internet_gateway", InternetGatewayBlock::new); /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2r/common/block/BusCableBlock.java b/src/main/java/li/cil/oc2/common/block/BusCableBlock.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/block/BusCableBlock.java rename to src/main/java/li/cil/oc2/common/block/BusCableBlock.java index 9dc15e2d..da66b5fe 100644 --- a/src/main/java/li/cil/oc2r/common/block/BusCableBlock.java +++ b/src/main/java/li/cil/oc2/common/block/BusCableBlock.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; import com.google.common.collect.Maps; -import li.cil.oc2r.client.gui.BusInterfaceScreen; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.BusCableBlockEntity; -import li.cil.oc2r.common.integration.Wrenches; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.LevelUtils; +import li.cil.oc2.client.gui.BusInterfaceScreen; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.BusCableBlockEntity; +import li.cil.oc2.common.integration.Wrenches; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.LevelUtils; import net.minecraft.Util; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; @@ -54,7 +54,7 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class BusCableBlock extends BaseEntityBlock { public enum ConnectionType implements StringRepresentable { diff --git a/src/main/java/li/cil/oc2r/common/block/ChargerBlock.java b/src/main/java/li/cil/oc2/common/block/ChargerBlock.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/block/ChargerBlock.java rename to src/main/java/li/cil/oc2/common/block/ChargerBlock.java index a961949f..a0c34bd0 100644 --- a/src/main/java/li/cil/oc2r/common/block/ChargerBlock.java +++ b/src/main/java/li/cil/oc2/common/block/ChargerBlock.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.TickableBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; diff --git a/src/main/java/li/cil/oc2r/common/block/ComputerBlock.java b/src/main/java/li/cil/oc2/common/block/ComputerBlock.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/block/ComputerBlock.java rename to src/main/java/li/cil/oc2/common/block/ComputerBlock.java index 7e8dd706..6b72374d 100644 --- a/src/main/java/li/cil/oc2r/common/block/ComputerBlock.java +++ b/src/main/java/li/cil/oc2/common/block/ComputerBlock.java @@ -1,19 +1,19 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.api.capabilities.RedstoneEmitter; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.integration.Wrenches; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.util.NBTUtils; -import li.cil.oc2r.common.util.TooltipUtils; -import li.cil.oc2r.common.util.VoxelShapeUtils; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.api.capabilities.RedstoneEmitter; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.integration.Wrenches; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.util.NBTUtils; +import li.cil.oc2.common.util.TooltipUtils; +import li.cil.oc2.common.util.VoxelShapeUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -47,10 +47,10 @@ import net.minecraftforge.api.distmarker.OnlyIn; import javax.annotation.Nullable; import java.util.List; -import static li.cil.oc2r.common.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM; -import static li.cil.oc2r.common.Constants.ITEMS_TAG_NAME; -import static li.cil.oc2r.common.util.NBTUtils.makeInventoryTag; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM; +import static li.cil.oc2.common.Constants.ITEMS_TAG_NAME; +import static li.cil.oc2.common.util.NBTUtils.makeInventoryTag; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class ComputerBlock extends HorizontalDirectionalBlock implements EntityBlock { // We bake the "screen" indent on the front into the collision shape, to prevent stuff being diff --git a/src/main/java/li/cil/oc2r/common/block/CreativeEnergyBlock.java b/src/main/java/li/cil/oc2/common/block/CreativeEnergyBlock.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/block/CreativeEnergyBlock.java rename to src/main/java/li/cil/oc2/common/block/CreativeEnergyBlock.java index c02a250b..e3b12da7 100644 --- a/src/main/java/li/cil/oc2r/common/block/CreativeEnergyBlock.java +++ b/src/main/java/li/cil/oc2/common/block/CreativeEnergyBlock.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.TickableBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/li/cil/oc2r/common/block/DiskDriveBlock.java b/src/main/java/li/cil/oc2/common/block/DiskDriveBlock.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/block/DiskDriveBlock.java rename to src/main/java/li/cil/oc2/common/block/DiskDriveBlock.java index 9217eb7d..dd184f87 100644 --- a/src/main/java/li/cil/oc2r/common/block/DiskDriveBlock.java +++ b/src/main/java/li/cil/oc2/common/block/DiskDriveBlock.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.DiskDriveBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.DiskDriveBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; diff --git a/src/main/java/li/cil/oc2r/common/block/EnergyConsumingBlock.java b/src/main/java/li/cil/oc2/common/block/EnergyConsumingBlock.java similarity index 76% rename from src/main/java/li/cil/oc2r/common/block/EnergyConsumingBlock.java rename to src/main/java/li/cil/oc2/common/block/EnergyConsumingBlock.java index e995187e..5580826f 100644 --- a/src/main/java/li/cil/oc2r/common/block/EnergyConsumingBlock.java +++ b/src/main/java/li/cil/oc2/common/block/EnergyConsumingBlock.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; public interface EnergyConsumingBlock { int getEnergyConsumption(); diff --git a/src/main/java/li/cil/oc2r/common/block/FlashMemoryFlasherBlock.java b/src/main/java/li/cil/oc2/common/block/FlashMemoryFlasherBlock.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/block/FlashMemoryFlasherBlock.java rename to src/main/java/li/cil/oc2/common/block/FlashMemoryFlasherBlock.java index cad1735f..0475ad83 100644 --- a/src/main/java/li/cil/oc2r/common/block/FlashMemoryFlasherBlock.java +++ b/src/main/java/li/cil/oc2/common/block/FlashMemoryFlasherBlock.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.FlashMemoryFlasherBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.FlashMemoryFlasherBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; diff --git a/src/main/java/li/cil/oc2r/common/block/ImmutableHorizontalBlock.java b/src/main/java/li/cil/oc2/common/block/ImmutableHorizontalBlock.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/block/ImmutableHorizontalBlock.java rename to src/main/java/li/cil/oc2/common/block/ImmutableHorizontalBlock.java index 837931b2..a845818b 100644 --- a/src/main/java/li/cil/oc2r/common/block/ImmutableHorizontalBlock.java +++ b/src/main/java/li/cil/oc2/common/block/ImmutableHorizontalBlock.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.Mirror; diff --git a/src/main/java/li/cil/oc2/common/block/InternetGatewayBlock.java b/src/main/java/li/cil/oc2/common/block/InternetGatewayBlock.java new file mode 100644 index 00000000..c7fe4482 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/block/InternetGatewayBlock.java @@ -0,0 +1,23 @@ +package li.cil.oc2.common.block; + +import li.cil.oc2.common.blockentity.BlockEntities; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.HalfTransparentBlock; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.MapColor; + +public class InternetGatewayBlock extends HalfTransparentBlock implements EntityBlock { + + public InternetGatewayBlock() { + super(Properties.of().mapColor(MapColor.METAL).sound(SoundType.METAL).strength(1.5f, 6.0f)); + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return BlockEntities.INTERNET_GATEWAY.get().create(pos, state); + } + +} diff --git a/src/main/java/li/cil/oc2r/common/block/KeyboardBlock.java b/src/main/java/li/cil/oc2/common/block/KeyboardBlock.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/block/KeyboardBlock.java rename to src/main/java/li/cil/oc2/common/block/KeyboardBlock.java index 82570fc1..7c6675e7 100644 --- a/src/main/java/li/cil/oc2r/common/block/KeyboardBlock.java +++ b/src/main/java/li/cil/oc2/common/block/KeyboardBlock.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.client.gui.KeyboardScreen; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.KeyboardBlockEntity; -import li.cil.oc2r.common.util.VoxelShapeUtils; +import li.cil.oc2.client.gui.KeyboardScreen; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.KeyboardBlockEntity; +import li.cil.oc2.common.util.VoxelShapeUtils; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/li/cil/oc2r/common/block/MonitorBlock.java b/src/main/java/li/cil/oc2/common/block/MonitorBlock.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/block/MonitorBlock.java rename to src/main/java/li/cil/oc2/common/block/MonitorBlock.java index beeb7827..7e7953de 100644 --- a/src/main/java/li/cil/oc2r/common/block/MonitorBlock.java +++ b/src/main/java/li/cil/oc2/common/block/MonitorBlock.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; -import li.cil.oc2r.common.integration.Wrenches; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.MonitorPowerMessageForwarded; -import li.cil.oc2r.common.util.VoxelShapeUtils; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.integration.Wrenches; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.MonitorPowerMessageForwarded; +import li.cil.oc2.common.util.VoxelShapeUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/block/NetworkConnectorBlock.java b/src/main/java/li/cil/oc2/common/block/NetworkConnectorBlock.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/block/NetworkConnectorBlock.java rename to src/main/java/li/cil/oc2/common/block/NetworkConnectorBlock.java index 7f8443fb..d8df4ca3 100644 --- a/src/main/java/li/cil/oc2r/common/block/NetworkConnectorBlock.java +++ b/src/main/java/li/cil/oc2/common/block/NetworkConnectorBlock.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.NetworkConnectorBlockEntity; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.NetworkConnectorBlockEntity; +import li.cil.oc2.common.blockentity.TickableBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.BlockGetter; diff --git a/src/main/java/li/cil/oc2r/common/block/NetworkHubBlock.java b/src/main/java/li/cil/oc2/common/block/NetworkHubBlock.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/block/NetworkHubBlock.java rename to src/main/java/li/cil/oc2/common/block/NetworkHubBlock.java index 4e3a23d8..3f82a34e 100644 --- a/src/main/java/li/cil/oc2r/common/block/NetworkHubBlock.java +++ b/src/main/java/li/cil/oc2/common/block/NetworkHubBlock.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.NetworkHubBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.NetworkHubBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; diff --git a/src/main/java/li/cil/oc2r/common/block/NetworkSwitchBlock.java b/src/main/java/li/cil/oc2/common/block/NetworkSwitchBlock.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/block/NetworkSwitchBlock.java rename to src/main/java/li/cil/oc2/common/block/NetworkSwitchBlock.java index 7b8b79a2..079159d4 100644 --- a/src/main/java/li/cil/oc2r/common/block/NetworkSwitchBlock.java +++ b/src/main/java/li/cil/oc2/common/block/NetworkSwitchBlock.java @@ -1,7 +1,7 @@ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.NetworkHubBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.NetworkHubBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; diff --git a/src/main/java/li/cil/oc2r/common/block/PciCardCageBlock.java b/src/main/java/li/cil/oc2/common/block/PciCardCageBlock.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/block/PciCardCageBlock.java rename to src/main/java/li/cil/oc2/common/block/PciCardCageBlock.java index f17f324d..ea0c6670 100644 --- a/src/main/java/li/cil/oc2r/common/block/PciCardCageBlock.java +++ b/src/main/java/li/cil/oc2/common/block/PciCardCageBlock.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; -import li.cil.oc2r.common.util.VoxelShapeUtils; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.util.VoxelShapeUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; diff --git a/src/main/java/li/cil/oc2r/common/block/ProjectorBlock.java b/src/main/java/li/cil/oc2/common/block/ProjectorBlock.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/block/ProjectorBlock.java rename to src/main/java/li/cil/oc2/common/block/ProjectorBlock.java index 0fb32272..adc1d1ee 100644 --- a/src/main/java/li/cil/oc2r/common/block/ProjectorBlock.java +++ b/src/main/java/li/cil/oc2/common/block/ProjectorBlock.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; -import li.cil.oc2r.common.util.VoxelShapeUtils; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.util.VoxelShapeUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; diff --git a/src/main/java/li/cil/oc2r/common/block/RedstoneInterfaceBlock.java b/src/main/java/li/cil/oc2/common/block/RedstoneInterfaceBlock.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/block/RedstoneInterfaceBlock.java rename to src/main/java/li/cil/oc2/common/block/RedstoneInterfaceBlock.java index b8de56da..1d1ef02c 100644 --- a/src/main/java/li/cil/oc2r/common/block/RedstoneInterfaceBlock.java +++ b/src/main/java/li/cil/oc2/common/block/RedstoneInterfaceBlock.java @@ -1,9 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.RedstoneInterfaceBlockEntity; +import net.minecraft.world.level.Level; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.RedstoneInterfaceBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; @@ -61,6 +62,12 @@ public final class RedstoneInterfaceBlock extends HorizontalDirectionalBlock imp return getSignal(state, level, pos, side); } + @Override + public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { + RedstoneInterfaceBlockEntity ribe = (RedstoneInterfaceBlockEntity) worldIn.getBlockEntity(pos); + ribe.neighborChanged(fromPos); + } + /////////////////////////////////////////////////////////////////// // EntityBlock diff --git a/src/main/java/li/cil/oc2r/common/block/VxlanBlock.java b/src/main/java/li/cil/oc2/common/block/VxlanBlock.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/block/VxlanBlock.java rename to src/main/java/li/cil/oc2/common/block/VxlanBlock.java index 45123faf..d8854498 100644 --- a/src/main/java/li/cil/oc2r/common/block/VxlanBlock.java +++ b/src/main/java/li/cil/oc2/common/block/VxlanBlock.java @@ -1,8 +1,8 @@ -package li.cil.oc2r.common.block; +package li.cil.oc2.common.block; -import li.cil.oc2r.common.blockentity.BlockEntities; -import li.cil.oc2r.common.blockentity.TickableBlockEntity; -import li.cil.oc2r.common.blockentity.VxlanBlockEntity; +import li.cil.oc2.common.blockentity.BlockEntities; +import li.cil.oc2.common.blockentity.TickableBlockEntity; +import li.cil.oc2.common.blockentity.VxlanBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; diff --git a/src/main/java/li/cil/oc2/common/block/package-info.java b/src/main/java/li/cil/oc2/common/block/package-info.java new file mode 100644 index 00000000..b2e6d494 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/block/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.block; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/BlockEntities.java b/src/main/java/li/cil/oc2/common/blockentity/BlockEntities.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/blockentity/BlockEntities.java rename to src/main/java/li/cil/oc2/common/blockentity/BlockEntities.java index ac617828..3268f667 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/BlockEntities.java +++ b/src/main/java/li/cil/oc2/common/blockentity/BlockEntities.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.block.Blocks; +import li.cil.oc2.api.API; +import li.cil.oc2.common.block.Blocks; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -33,6 +33,7 @@ public final class BlockEntities { public static final RegistryObject> VXLAN_HUB = register(Blocks.VXLAN_HUB, VxlanBlockEntity::new); public static final RegistryObject> PCI_CARD_CAGE = register(Blocks.PCI_CARD_CAGE, PciCardCageBlockEntity::new); + public static final RegistryObject> INTERNET_GATEWAY = register(Blocks.INTERNET_GATEWAY, InternetGateWayBlockEntity::new); /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2r/common/blockentity/BusCableBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/BusCableBlockEntity.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/blockentity/BusCableBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/BusCableBlockEntity.java index 8a569907..03112f73 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/BusCableBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/BusCableBlockEntity.java @@ -1,24 +1,24 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.api.bus.DeviceBus; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.client.model.BusCableBakedModel; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.block.BusCableBlock; -import li.cil.oc2r.common.bus.AbstractBlockDeviceBusElement; -import li.cil.oc2r.common.bus.device.rpc.TypeNameRPCDevice; -import li.cil.oc2r.common.bus.device.util.BlockDeviceInfo; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.BusCableFacadeMessage; -import li.cil.oc2r.common.network.message.BusInterfaceNameMessage; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.LevelUtils; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.util.ServerScheduler; +import li.cil.oc2.api.bus.DeviceBus; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.client.model.BusCableBakedModel; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.block.BusCableBlock; +import li.cil.oc2.common.bus.AbstractBlockDeviceBusElement; +import li.cil.oc2.common.bus.device.rpc.TypeNameRPCDevice; +import li.cil.oc2.common.bus.device.util.BlockDeviceInfo; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.BusCableFacadeMessage; +import li.cil.oc2.common.network.message.BusInterfaceNameMessage; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.LevelUtils; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.util.ServerScheduler; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.BlockModelShaper; import net.minecraft.client.resources.model.BakedModel; @@ -47,7 +47,7 @@ import java.util.HashSet; import java.util.Objects; import static java.util.Objects.requireNonNull; -import static li.cil.oc2r.client.model.BusCableBakedModel.*; +import static li.cil.oc2.client.model.BusCableBakedModel.*; public final class BusCableBlockEntity extends ModBlockEntity { public enum FacadeType { diff --git a/src/main/java/li/cil/oc2r/common/blockentity/ChargerBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/ChargerBlockEntity.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/blockentity/ChargerBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/ChargerBlockEntity.java index 3c974705..2f583e72 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/ChargerBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/ChargerBlockEntity.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.NamedDevice; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.util.ChunkUtils; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.NamedDevice; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.util.ChunkUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/ComputerBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/ComputerBlockEntity.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/blockentity/ComputerBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/ComputerBlockEntity.java index ec1effeb..8de996f6 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/ComputerBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/ComputerBlockEntity.java @@ -1,31 +1,31 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.api.capabilities.TerminalUserProvider; -import li.cil.oc2r.client.audio.LoopingSoundManager; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.block.ComputerBlock; -import li.cil.oc2r.common.bus.AbstractBlockDeviceBusElement; -import li.cil.oc2r.common.bus.BlockDeviceBusController; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.bus.device.util.Devices; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.container.ComputerInventoryContainer; -import li.cil.oc2r.common.container.ComputerTerminalContainer; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.ComputerBootErrorMessage; -import li.cil.oc2r.common.network.message.ComputerBusStateMessage; -import li.cil.oc2r.common.network.message.ComputerRunStateMessage; -import li.cil.oc2r.common.network.message.ComputerTerminalOutputMessage; -import li.cil.oc2r.common.serialization.NBTSerialization; -import li.cil.oc2r.common.util.*; -import li.cil.oc2r.common.vm.*; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.capabilities.TerminalUserProvider; +import li.cil.oc2.client.audio.LoopingSoundManager; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.ComputerBlock; +import li.cil.oc2.common.bus.AbstractBlockDeviceBusElement; +import li.cil.oc2.common.bus.BlockDeviceBusController; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.bus.device.util.Devices; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.container.ComputerInventoryContainer; +import li.cil.oc2.common.container.ComputerTerminalContainer; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.ComputerBootErrorMessage; +import li.cil.oc2.common.network.message.ComputerBusStateMessage; +import li.cil.oc2.common.network.message.ComputerRunStateMessage; +import li.cil.oc2.common.network.message.ComputerTerminalOutputMessage; +import li.cil.oc2.common.serialization.NBTSerialization; +import li.cil.oc2.common.util.*; +import li.cil.oc2.common.vm.*; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -46,8 +46,8 @@ import java.nio.ByteBuffer; import java.time.Duration; import java.util.*; -import static li.cil.oc2r.common.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM; -import static li.cil.oc2r.common.Constants.ITEMS_TAG_NAME; +import static li.cil.oc2.common.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM; +import static li.cil.oc2.common.Constants.ITEMS_TAG_NAME; public final class ComputerBlockEntity extends ModBlockEntity implements TerminalUserProvider, TickableBlockEntity { private static final String BUS_ELEMENT_TAG_NAME = "busElement"; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/CreativeEnergyBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/CreativeEnergyBlockEntity.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/blockentity/CreativeEnergyBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/CreativeEnergyBlockEntity.java index a8774ce8..f3a54e15 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/CreativeEnergyBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/CreativeEnergyBlockEntity.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.ChunkPos; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/DiskDriveBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/blockentity/DiskDriveBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java index b2eb63e0..bfe4418f 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/DiskDriveBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java @@ -1,20 +1,20 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.block.DiskDriveBlock; -import li.cil.oc2r.common.bus.device.vm.block.DiskDriveContainer; -import li.cil.oc2r.common.bus.device.vm.block.DiskDriveDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.container.TypedItemStackHandler; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.DiskDriveFloppyMessage; -import li.cil.oc2r.common.tags.ItemTags; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.LocationSupplierUtils; -import li.cil.oc2r.common.util.SoundEvents; -import li.cil.oc2r.common.util.ThrottledSoundEmitter; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.block.DiskDriveBlock; +import li.cil.oc2.common.bus.device.vm.block.DiskDriveContainer; +import li.cil.oc2.common.bus.device.vm.block.DiskDriveDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.container.TypedItemStackHandler; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.DiskDriveFloppyMessage; +import li.cil.oc2.common.tags.ItemTags; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.LocationSupplierUtils; +import li.cil.oc2.common.util.SoundEvents; +import li.cil.oc2.common.util.ThrottledSoundEmitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/FlashMemoryFlasherBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/FlashMemoryFlasherBlockEntity.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/blockentity/FlashMemoryFlasherBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/FlashMemoryFlasherBlockEntity.java index e6556170..5e8cdfa0 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/FlashMemoryFlasherBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/FlashMemoryFlasherBlockEntity.java @@ -1,20 +1,20 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.block.FlashMemoryFlasherBlock; -import li.cil.oc2r.common.bus.device.vm.block.FlashMemoryFlasherContainer; -import li.cil.oc2r.common.bus.device.vm.block.FlashMemoryFlasherDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.container.TypedItemStackHandler; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.FirmwareFlasherMessage; -import li.cil.oc2r.common.tags.ItemTags; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.LocationSupplierUtils; -import li.cil.oc2r.common.util.SoundEvents; -import li.cil.oc2r.common.util.ThrottledSoundEmitter; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.block.FlashMemoryFlasherBlock; +import li.cil.oc2.common.bus.device.vm.block.FlashMemoryFlasherContainer; +import li.cil.oc2.common.bus.device.vm.block.FlashMemoryFlasherDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.container.TypedItemStackHandler; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.FirmwareFlasherMessage; +import li.cil.oc2.common.tags.ItemTags; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.LocationSupplierUtils; +import li.cil.oc2.common.util.SoundEvents; +import li.cil.oc2.common.util.ThrottledSoundEmitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2/common/blockentity/InternetGateWayBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/InternetGateWayBlockEntity.java new file mode 100644 index 00000000..b9c8f742 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/blockentity/InternetGateWayBlockEntity.java @@ -0,0 +1,198 @@ +package li.cil.oc2.common.blockentity; + +import java.util.ArrayDeque; +import java.util.Deque; + +import javax.annotation.Nullable; + +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.inet.InternetAdapter; +import li.cil.oc2.common.inet.InternetConnection; +import li.cil.oc2.common.inet.InternetManagerImpl; +import li.cil.oc2.common.util.ChunkUtils; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.Connection; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class InternetGateWayBlockEntity extends ModBlockEntity implements NetworkInterface, InternetAdapter { + private static final Logger LOGGER = LogManager.getLogger(); + + private static final int QUEUE_MAX = 64; + private final Deque inboundQueue; + private final Deque outboundQueue; + + private InternetConnection internetConnection; + private static final String STATE_TAG = "internet_adapter"; + private Tag internetState; + + private final FixedEnergyStorage energy = new FixedEnergyStorage(Config.gatewayEnergyStorage); + + // Animation stuff + public static final int EMITTER_SIDE_PIXELS = 4; + public float animProgress[]; + public boolean animReversed[]; + public int inboundCount = 0; + public int outboundCount = 0; + public int handledInboundCount = 0; + public int handledOutboundCount = 0; + public long lastRender = 0; + public int pointer = 0; + + protected InternetGateWayBlockEntity(final BlockPos pos, final BlockState state) { + super(BlockEntities.INTERNET_GATEWAY.get(), pos, state); + inboundQueue = new ArrayDeque<>(); + outboundQueue = new ArrayDeque<>(); + animProgress = new float[EMITTER_SIDE_PIXELS*EMITTER_SIDE_PIXELS]; + animReversed = new boolean[EMITTER_SIDE_PIXELS*EMITTER_SIDE_PIXELS]; + internetState = null; + setNeedsLevelUnloadEvent(); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + internetState = tag.get(Constants.INTERNET_ADAPTER_TAG_NAME); + energy.deserializeNBT(tag.getCompound(Constants.ENERGY_TAG_NAME)); + } + + @Override + public void saveAdditional(CompoundTag tag) { + super.saveAdditional(tag); + if (internetConnection != null) { + internetConnection.saveAdapterState() + .ifPresent(adapterState -> tag.put(Constants.INTERNET_ADAPTER_TAG_NAME, adapterState)); + } + tag.put(Constants.ENERGY_TAG_NAME, energy.serializeNBT()); + LOGGER.trace("State saved"); + } + + @Override + public CompoundTag getUpdateTag() { + final CompoundTag tag = super.getUpdateTag(); + tag.putInt("inbound_count", inboundCount); + tag.putInt("outbound_count", outboundCount); + return tag; + } + + @Override + public void onDataPacket(Connection net, ClientboundBlockEntityDataPacket pkt) + { + CompoundTag compoundtag = pkt.getTag(); + if (compoundtag != null) { + handleUpdateTag(compoundtag); + } + } + + @Override + public void handleUpdateTag(final CompoundTag tag) { + inboundCount = tag.getInt("inbound_count"); + outboundCount = tag.getInt("outbound_count"); + handledInboundCount = Math.max(handledInboundCount, inboundCount-128); + handledOutboundCount = Math.max(handledOutboundCount, outboundCount-128); + } + + @Override + public Packet getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + + @Override + protected void loadServer() { + InternetManagerImpl.getInstance() + .ifPresent(internetManager -> internetConnection = internetManager.connect(this, internetState)); + if (internetConnection != null) { + LOGGER.trace("Connected to the internet"); + } else { + LOGGER.trace("Not connected to the internet"); + } + } + + protected void unloadServer(final boolean isRemove) { + if (internetConnection != null) { + internetConnection.stop(); + LOGGER.trace("Connection stopped"); + } + } + + @Override + protected void collectCapabilities(final CapabilityCollector collector, @Nullable final Direction direction) { + collector.offer(Capabilities.networkInterface(), this); + collector.offer(Capabilities.energyStorage(), energy); + } + + @Override + public byte[] receiveEthernetFrame() { + return outboundQueue.pollFirst(); + } + + private boolean tryUseEnergy() { + boolean hasEnough = energy.getEnergyStored() >= Config.gatewayEnergyPerPacket; + if (hasEnough) { + energy.extractEnergy(Config.gatewayEnergyPerPacket, false); + Level level = getLevel(); + if (level != null) { + ChunkUtils.setLazyUnsaved(level, getBlockPos()); + } + } + return hasEnough; + } + + private void notifyPlayers() { + Level level = getLevel(); + if (level != null) { + level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 2); + } + } + @Override + public void sendEthernetFrame(byte[] frame) { + LOGGER.trace("Got inbound packet"); + if (inboundQueue.size() < QUEUE_MAX) { + if (tryUseEnergy()) { + inboundCount += 1; + notifyPlayers(); + inboundQueue.addLast(frame); + } + } + } + + @Override + public byte[] readEthernetFrame() { + return inboundQueue.pollFirst(); + } + + @Override + public void writeEthernetFrame(NetworkInterface source, byte[] frame, int timeToLive) { + LOGGER.trace("Got outbound packet"); + if (outboundQueue.size() < QUEUE_MAX) { + if (tryUseEnergy()) { + outboundCount += 1; + notifyPlayers(); + outboundQueue.addLast(frame); + } + } + } + + @Override + public AABB getRenderBoundingBox() { + return new AABB( + getBlockPos(), + getBlockPos().offset(1, 2, 1) + ); + } + +} diff --git a/src/main/java/li/cil/oc2r/common/blockentity/KeyboardBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/KeyboardBlockEntity.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/blockentity/KeyboardBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/KeyboardBlockEntity.java index 4cf2004b..3bdebe25 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/KeyboardBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/KeyboardBlockEntity.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.bus.device.vm.block.KeyboardDevice; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.common.bus.device.vm.block.KeyboardDevice; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/ModBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/ModBlockEntity.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/blockentity/ModBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/ModBlockEntity.java index ad1a44d4..a9f20045 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/ModBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/ModBlockEntity.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.util.LazyOptionalUtils; -import li.cil.oc2r.common.util.ServerScheduler; +import li.cil.oc2.common.util.LazyOptionalUtils; +import li.cil.oc2.common.util.ServerScheduler; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/MonitorBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/MonitorBlockEntity.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/blockentity/MonitorBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/MonitorBlockEntity.java index 35497064..9982eb1c 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/MonitorBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/MonitorBlockEntity.java @@ -1,25 +1,25 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.client.renderer.MonitorGUIRenderer; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.block.MonitorBlock; -import li.cil.oc2r.common.bus.device.DeviceGroup; -import li.cil.oc2r.common.bus.device.vm.block.KeyboardDevice; -import li.cil.oc2r.common.bus.device.vm.block.MonitorDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.container.MonitorDisplayContainer; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.network.MonitorLoadBalancer; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.*; -import li.cil.oc2r.common.vm.device.SimpleFramebufferDevice; -import li.cil.oc2r.jcodec.codecs.h264.H264Decoder; -import li.cil.oc2r.jcodec.codecs.h264.H264Encoder; -import li.cil.oc2r.jcodec.codecs.h264.encode.CQPRateControl; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.client.renderer.MonitorGUIRenderer; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.MonitorBlock; +import li.cil.oc2.common.bus.device.DeviceGroup; +import li.cil.oc2.common.bus.device.vm.block.KeyboardDevice; +import li.cil.oc2.common.bus.device.vm.block.MonitorDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.container.MonitorDisplayContainer; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.network.MonitorLoadBalancer; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.*; +import li.cil.oc2.common.vm.device.SimpleFramebufferDevice; +import li.cil.oc2.jcodec.codecs.h264.H264Decoder; +import li.cil.oc2.jcodec.codecs.h264.H264Encoder; +import li.cil.oc2.jcodec.codecs.h264.encode.CQPRateControl; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -40,8 +40,8 @@ import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater; -import static li.cil.oc2r.common.bus.device.vm.block.MonitorDevice.HEIGHT; -import static li.cil.oc2r.common.bus.device.vm.block.MonitorDevice.WIDTH; +import static li.cil.oc2.common.bus.device.vm.block.MonitorDevice.HEIGHT; +import static li.cil.oc2.common.bus.device.vm.block.MonitorDevice.WIDTH; public final class MonitorBlockEntity extends ModBlockEntity implements TickableBlockEntity { @FunctionalInterface diff --git a/src/main/java/li/cil/oc2r/common/blockentity/NetworkConnectorBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/NetworkConnectorBlockEntity.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/blockentity/NetworkConnectorBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/NetworkConnectorBlockEntity.java index d7f43c66..93ba7c98 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/NetworkConnectorBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/NetworkConnectorBlockEntity.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.client.renderer.NetworkCableRenderer; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.block.NetworkConnectorBlock; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.NetworkConnectorConnectionsMessage; -import li.cil.oc2r.common.util.*; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.client.renderer.NetworkCableRenderer; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.NetworkConnectorBlock; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.NetworkConnectorConnectionsMessage; +import li.cil.oc2.common.util.*; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/NetworkHubBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/NetworkHubBlockEntity.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/blockentity/NetworkHubBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/NetworkHubBlockEntity.java index 3676f800..4e3f1e2a 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/NetworkHubBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/NetworkHubBlockEntity.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.util.LazyOptionalUtils; -import li.cil.oc2r.common.util.LevelUtils; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.util.LazyOptionalUtils; +import li.cil.oc2.common.util.LevelUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/NetworkSwitchBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/NetworkSwitchBlockEntity.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/blockentity/NetworkSwitchBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/NetworkSwitchBlockEntity.java index 24b081a8..4e3e2175 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/NetworkSwitchBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/NetworkSwitchBlockEntity.java @@ -1,18 +1,18 @@ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; import java.util.*; import java.util.stream.Collectors; import com.google.gson.internal.LinkedTreeMap; import com.mojang.datafixers.util.Pair; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.DocumentedDevice; -import li.cil.oc2r.api.bus.device.object.NamedDevice; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.util.LazyOptionalUtils; -import li.cil.oc2r.common.util.LevelUtils; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.DocumentedDevice; +import li.cil.oc2.api.bus.device.object.NamedDevice; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.util.LazyOptionalUtils; +import li.cil.oc2.common.util.LevelUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.*; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/PciCardCageBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/PciCardCageBlockEntity.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/blockentity/PciCardCageBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/PciCardCageBlockEntity.java index 59494a46..3d9d8dbf 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/PciCardCageBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/PciCardCageBlockEntity.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.block.PciCardCageBlock; -import li.cil.oc2r.common.bus.device.vm.block.PciCardCageDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.PciCardCageBlock; +import li.cil.oc2.common.bus.device.vm.block.PciCardCageDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.energy.FixedEnergyStorage; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/ProjectorBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/ProjectorBlockEntity.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/blockentity/ProjectorBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/ProjectorBlockEntity.java index 35a1d334..25c0ef9e 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/ProjectorBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/ProjectorBlockEntity.java @@ -1,21 +1,21 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.block.ProjectorBlock; -import li.cil.oc2r.common.bus.device.vm.block.ProjectorDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.ProjectorLoadBalancer; -import li.cil.oc2r.common.network.message.ProjectorRequestFramebufferMessage; -import li.cil.oc2r.common.network.message.ProjectorStateMessage; -import li.cil.oc2r.jcodec.codecs.h264.H264Decoder; -import li.cil.oc2r.jcodec.codecs.h264.H264Encoder; -import li.cil.oc2r.jcodec.codecs.h264.encode.CQPRateControl; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.ProjectorBlock; +import li.cil.oc2.common.bus.device.vm.block.ProjectorDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.ProjectorLoadBalancer; +import li.cil.oc2.common.network.message.ProjectorRequestFramebufferMessage; +import li.cil.oc2.common.network.message.ProjectorStateMessage; +import li.cil.oc2.jcodec.codecs.h264.H264Decoder; +import li.cil.oc2.jcodec.codecs.h264.H264Encoder; +import li.cil.oc2.jcodec.codecs.h264.encode.CQPRateControl; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.SectionPos; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/RedstoneInterfaceBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/RedstoneInterfaceBlockEntity.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/blockentity/RedstoneInterfaceBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/RedstoneInterfaceBlockEntity.java index 55140e75..1e72a968 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/RedstoneInterfaceBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/RedstoneInterfaceBlockEntity.java @@ -1,29 +1,30 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; - -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.DocumentedDevice; -import li.cil.oc2r.api.bus.device.object.NamedDevice; -import li.cil.oc2r.api.bus.device.object.Parameter; -import li.cil.oc2r.api.util.Side; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.integration.util.BundledRedstone; -import li.cil.oc2r.common.util.HorizontalBlockUtils; +package li.cil.oc2.common.blockentity; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.DocumentedDevice; +import li.cil.oc2.api.bus.device.object.NamedDevice; +import li.cil.oc2.api.bus.device.object.Parameter; +import li.cil.oc2.api.util.Side; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.integration.util.BundledRedstone; +import li.cil.oc2.common.util.HorizontalBlockUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.fml.ModList; - -import javax.annotation.Nullable; import java.util.Collection; +import net.minecraftforge.fml.ModList; +import java.util.*; +import javax.annotation.Nullable; +import com.google.gson.JsonObject; +import li.cil.oc2.api.bus.device.rpc.*; import static java.util.Collections.singletonList; -public final class RedstoneInterfaceBlockEntity extends ModBlockEntity implements NamedDevice, DocumentedDevice { +public final class RedstoneInterfaceBlockEntity extends ModBlockEntity implements NamedDevice, DocumentedDevice, RPCEventSource { private static final String OUTPUT_TAG_NAME = "output"; private static final String BUNDLED_TAG_NAME = "bundled"; @@ -39,6 +40,8 @@ public final class RedstoneInterfaceBlockEntity extends ModBlockEntity implement private static final String VALUES = "values"; private static final String COLOUR = "colour"; + private final HashMap subscribers = new HashMap(); + /////////////////////////////////////////////////////////////////// private final byte[] output = new byte[Constants.BLOCK_FACE_COUNT]; @@ -284,4 +287,39 @@ public final class RedstoneInterfaceBlockEntity extends ModBlockEntity implement final int index = direction.get3DDataValue(); return this.bundled_output[index]; } + + @Override + public void subscribe(IEventSink sink, UUID myid) { + subscribers.put(sink, myid); + } + @Override + public void unsubscribe(IEventSink sink) { + subscribers.remove(sink); + } + + public void neighborChanged(BlockPos fromPos) { + int sl = 0; + if (level == null) { + return; + } + + final BlockPos pos = getBlockPos(); + final Direction direction = Side.relativeDirection(pos, fromPos); + assert direction != null; + + final ChunkPos chunkPos = new ChunkPos(fromPos); + if (!level.hasChunk(chunkPos.x, chunkPos.z)) { + sl = 0; + } + + sl = level.getSignal(fromPos, direction); + JsonObject msg = new JsonObject(); + msg.addProperty("event", "redstone"); + msg.addProperty("side", ""+direction); + msg.addProperty("level", sl); + + for (var subscriber : subscribers.entrySet()) { + subscriber.getKey().postEvent(subscriber.getValue(), msg); + } + } } diff --git a/src/main/java/li/cil/oc2r/common/blockentity/TickableBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/TickableBlockEntity.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/blockentity/TickableBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/TickableBlockEntity.java index 21141d89..3841b0f3 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/TickableBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/TickableBlockEntity.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.common.util.BlockEntityUtils; +import li.cil.oc2.common.util.BlockEntityUtils; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/VxlanBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/VxlanBlockEntity.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/blockentity/VxlanBlockEntity.java rename to src/main/java/li/cil/oc2/common/blockentity/VxlanBlockEntity.java index 8422e88e..bef7aac5 100644 --- a/src/main/java/li/cil/oc2r/common/blockentity/VxlanBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/VxlanBlockEntity.java @@ -1,12 +1,12 @@ -package li.cil.oc2r.common.blockentity; +package li.cil.oc2.common.blockentity; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.util.LazyOptionalUtils; -import li.cil.oc2r.common.util.LevelUtils; -import li.cil.oc2r.common.vxlan.TunnelManager; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.util.LazyOptionalUtils; +import li.cil.oc2.common.util.LevelUtils; +import li.cil.oc2.common.vxlan.TunnelManager; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2/common/blockentity/package-info.java b/src/main/java/li/cil/oc2/common/blockentity/package-info.java new file mode 100644 index 00000000..b2284550 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/blockentity/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.blockentity; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/AbstractBlockDeviceBusElement.java b/src/main/java/li/cil/oc2/common/bus/AbstractBlockDeviceBusElement.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/bus/AbstractBlockDeviceBusElement.java rename to src/main/java/li/cil/oc2/common/bus/AbstractBlockDeviceBusElement.java index cae6cab2..8a1b26ec 100644 --- a/src/main/java/li/cil/oc2r/common/bus/AbstractBlockDeviceBusElement.java +++ b/src/main/java/li/cil/oc2/common/bus/AbstractBlockDeviceBusElement.java @@ -1,20 +1,20 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus; +package li.cil.oc2.common.bus; -import li.cil.oc2r.api.bus.BlockDeviceBusElement; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.provider.Providers; -import li.cil.oc2r.common.bus.device.rpc.TypeNameRPCDevice; -import li.cil.oc2r.common.bus.device.util.BlockDeviceInfo; -import li.cil.oc2r.common.bus.device.util.Devices; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.util.LevelUtils; +import li.cil.oc2.api.bus.BlockDeviceBusElement; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.provider.Providers; +import li.cil.oc2.common.bus.device.rpc.TypeNameRPCDevice; +import li.cil.oc2.common.bus.device.util.BlockDeviceInfo; +import li.cil.oc2.common.bus.device.util.Devices; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.util.LevelUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -28,7 +28,7 @@ import net.minecraftforge.registries.IForgeRegistry; import javax.annotation.Nullable; import java.util.*; -import static li.cil.oc2r.common.util.RegistryUtils.optionalKey; +import static li.cil.oc2.common.util.RegistryUtils.optionalKey; public abstract class AbstractBlockDeviceBusElement extends AbstractGroupingDeviceBusElement implements BlockDeviceBusElement { public AbstractBlockDeviceBusElement() { diff --git a/src/main/java/li/cil/oc2r/common/bus/AbstractDeviceBusElement.java b/src/main/java/li/cil/oc2/common/bus/AbstractDeviceBusElement.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/bus/AbstractDeviceBusElement.java rename to src/main/java/li/cil/oc2/common/bus/AbstractDeviceBusElement.java index b219d18e..7681d016 100644 --- a/src/main/java/li/cil/oc2r/common/bus/AbstractDeviceBusElement.java +++ b/src/main/java/li/cil/oc2/common/bus/AbstractDeviceBusElement.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus; +package li.cil.oc2.common.bus; import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; -import li.cil.oc2r.api.bus.DeviceBusController; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.Device; +import li.cil.oc2.api.bus.DeviceBusController; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.Device; import net.minecraftforge.common.util.LazyOptional; import java.util.*; diff --git a/src/main/java/li/cil/oc2r/common/bus/AbstractGroupingDeviceBusElement.java b/src/main/java/li/cil/oc2/common/bus/AbstractGroupingDeviceBusElement.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/bus/AbstractGroupingDeviceBusElement.java rename to src/main/java/li/cil/oc2/common/bus/AbstractGroupingDeviceBusElement.java index 1b77afa1..86be7a21 100644 --- a/src/main/java/li/cil/oc2r/common/bus/AbstractGroupingDeviceBusElement.java +++ b/src/main/java/li/cil/oc2/common/bus/AbstractGroupingDeviceBusElement.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus; +package li.cil.oc2.common.bus; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/AbstractItemDeviceBusElement.java b/src/main/java/li/cil/oc2/common/bus/AbstractItemDeviceBusElement.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/bus/AbstractItemDeviceBusElement.java rename to src/main/java/li/cil/oc2/common/bus/AbstractItemDeviceBusElement.java index c500149d..5229b628 100644 --- a/src/main/java/li/cil/oc2r/common/bus/AbstractItemDeviceBusElement.java +++ b/src/main/java/li/cil/oc2/common/bus/AbstractItemDeviceBusElement.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus; +package li.cil.oc2.common.bus; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.bus.device.provider.Providers; -import li.cil.oc2r.common.bus.device.rpc.TypeNameRPCDevice; -import li.cil.oc2r.common.bus.device.util.Devices; -import li.cil.oc2r.common.bus.device.util.ItemDeviceInfo; -import li.cil.oc2r.common.util.ItemDeviceUtils; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.bus.device.provider.Providers; +import li.cil.oc2.common.bus.device.rpc.TypeNameRPCDevice; +import li.cil.oc2.common.bus.device.util.Devices; +import li.cil.oc2.common.bus.device.util.ItemDeviceInfo; +import li.cil.oc2.common.util.ItemDeviceUtils; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -20,7 +20,7 @@ import net.minecraftforge.registries.IForgeRegistry; import javax.annotation.Nullable; import java.util.*; -import static li.cil.oc2r.common.util.RegistryUtils.optionalKey; +import static li.cil.oc2.common.util.RegistryUtils.optionalKey; public abstract class AbstractItemDeviceBusElement extends AbstractGroupingDeviceBusElement { public AbstractItemDeviceBusElement(final int groupCount) { diff --git a/src/main/java/li/cil/oc2r/common/bus/BlockDeviceBusController.java b/src/main/java/li/cil/oc2/common/bus/BlockDeviceBusController.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/bus/BlockDeviceBusController.java rename to src/main/java/li/cil/oc2/common/bus/BlockDeviceBusController.java index a13cdf83..9a6bfad4 100644 --- a/src/main/java/li/cil/oc2r/common/bus/BlockDeviceBusController.java +++ b/src/main/java/li/cil/oc2/common/bus/BlockDeviceBusController.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus; +package li.cil.oc2.common.bus; -import li.cil.oc2r.api.bus.BlockDeviceBusElement; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.common.util.ChunkLocation; -import li.cil.oc2r.common.util.ChunkUtils; -import li.cil.oc2r.common.util.ServerScheduler; +import li.cil.oc2.api.bus.BlockDeviceBusElement; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.common.util.ChunkLocation; +import li.cil.oc2.common.util.ChunkUtils; +import li.cil.oc2.common.util.ServerScheduler; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.LevelAccessor; diff --git a/src/main/java/li/cil/oc2r/common/bus/CommonDeviceBusController.java b/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/bus/CommonDeviceBusController.java rename to src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java index 006941c2..f1590fd3 100644 --- a/src/main/java/li/cil/oc2r/common/bus/CommonDeviceBusController.java +++ b/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus; +package li.cil.oc2.common.bus; -import li.cil.oc2r.api.bus.DeviceBusController; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.common.util.Event; -import li.cil.oc2r.common.util.LazyOptionalUtils; -import li.cil.oc2r.common.util.ParameterizedEvent; -import li.cil.oc2r.common.util.TickUtils; +import li.cil.oc2.api.bus.DeviceBusController; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.common.util.Event; +import li.cil.oc2.common.util.LazyOptionalUtils; +import li.cil.oc2.common.util.ParameterizedEvent; +import li.cil.oc2.common.util.TickUtils; import net.minecraftforge.common.util.LazyOptional; import java.time.Duration; diff --git a/src/main/java/li/cil/oc2r/common/bus/RPCDeviceBusAdapter.java b/src/main/java/li/cil/oc2/common/bus/RPCDeviceBusAdapter.java similarity index 83% rename from src/main/java/li/cil/oc2r/common/bus/RPCDeviceBusAdapter.java rename to src/main/java/li/cil/oc2/common/bus/RPCDeviceBusAdapter.java index 880885ad..0268303e 100644 --- a/src/main/java/li/cil/oc2r/common/bus/RPCDeviceBusAdapter.java +++ b/src/main/java/li/cil/oc2/common/bus/RPCDeviceBusAdapter.java @@ -1,21 +1,22 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus; +package li.cil.oc2.common.bus; import com.google.gson.Gson; import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import li.cil.ceres.api.Serialized; -import li.cil.oc2r.api.bus.DeviceBusController; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.rpc.*; -import li.cil.oc2r.api.util.Side; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.rpc.RPCDeviceList; -import li.cil.oc2r.common.bus.device.rpc.RPCMethodParameterTypeAdapters; -import li.cil.oc2r.common.serialization.gson.*; +import li.cil.oc2.api.bus.DeviceBusController; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.rpc.*; +import li.cil.oc2.api.util.Side; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.rpc.RPCDeviceList; +import li.cil.oc2.common.bus.device.rpc.RPCMethodParameterTypeAdapters; +import li.cil.oc2.common.serialization.gson.*; import li.cil.sedna.api.device.Steppable; import li.cil.sedna.api.device.serial.SerialDevice; - +import li.cil.oc2.api.bus.device.object.*; import javax.annotation.Nullable; import java.io.ByteArrayInputStream; import java.io.InputStreamReader; @@ -24,12 +25,13 @@ import java.util.*; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -public final class RPCDeviceBusAdapter implements Steppable { +public final class RPCDeviceBusAdapter implements Steppable, IEventSink { private static final int DEFAULT_MAX_MESSAGE_SIZE = 4 * Constants.KILOBYTE; private static final byte[] MESSAGE_DELIMITER = "\0".getBytes(); + private static final byte[] MESSAGE_DELIMITER2 = "\r".getBytes(); public static final String ERROR_MESSAGE_TOO_LARGE = "message too large"; - public static final String ERROR_UNKNOWN_MESSAGE_TYPE = "unknown message type"; + public static final String ERROR_UNKNOWN_MESSAGE_TYPE = "unknown message type: "; public static final String ERROR_UNKNOWN_DEVICE = "unknown device"; public static final String ERROR_UNKNOWN_METHOD = "unknown method"; public static final String ERROR_INVALID_PARAMETER_SIGNATURE = "invalid parameter signature"; @@ -45,6 +47,8 @@ public final class RPCDeviceBusAdapter implements Steppable { private final Set mountedDevices = new HashSet<>(); private final Lock pauseLock = new ReentrantLock(); private boolean isPaused; + private boolean crmode = false; + private final ArrayList subscriptions = new ArrayList<>(); /////////////////////////////////////////////////////////////////// @@ -93,6 +97,9 @@ public final class RPCDeviceBusAdapter implements Steppable { } public void disposeDevices() { + for (RPCEventSource res: subscriptions) { + res.unsubscribe(this); + } unmountDevices(); unmountedDevices.forEach(RPCDeviceList::dispose); @@ -241,7 +248,8 @@ public final class RPCDeviceBusAdapter implements Steppable { // the most simple and easy to maintain one I could think of. int value; while (receiveBuffer == null && synchronizedInvocation == null && (value = serialDevice.read()) >= 0) { - if (value == 0) { + if (value == 0 || value == 13) { + this.crmode = value == 13; if (transmitBuffer.limit() > 0) { transmitBuffer.flip(); if (transmitBuffer.hasRemaining()) { @@ -302,13 +310,75 @@ public final class RPCDeviceBusAdapter implements Steppable { writeError("missing invocation data"); } } - default -> writeError(ERROR_UNKNOWN_MESSAGE_TYPE); + case Message.MESSAGE_TYPE_SUBSCRIBE -> { + if (message.data != null) { + subscribe((UUID)message.data); + } else { + writeError("missing invocation data"); + } + } + case Message.MESSAGE_TYPE_UNSUBSCRIBE -> { + if (message.data != null) { + unsubscribe((UUID)message.data); + } else { + writeError("missing invocation data"); + } + } + + default -> writeError(ERROR_UNKNOWN_MESSAGE_TYPE + message.type); } } catch (final Throwable e) { writeError(e.getMessage()); } } + @Override + public void postEvent(UUID deviceid, JsonElement msg) { + writeMessage(Message.MESSAGE_TYPE_EVENT, new Object[]{deviceid, msg}); + } + + private void subscribe(final UUID deviceId) { + RPCDeviceList devices = devicesById.get(deviceId); + if (devices != null) { + for (RPCDevice device : devices.getDevices()) { + if (device instanceof ObjectDevice od) { + RPCEventSource res = od.asEventSource(); + if (res != null) { + res.subscribe(this, deviceId); + subscriptions.add(res); + return; + } + } + if (device instanceof RPCEventSource res) { + res.subscribe(this, deviceId); + subscriptions.add(res); + return; + } + } + writeError("device does not support subscriptions"); + } + else { + writeError("unknown device"); + } + } + private void unsubscribe(final UUID deviceId) { + RPCDeviceList devices = devicesById.get(deviceId); + if (devices != null) { + for (RPCDevice device : devices.getDevices()) { + if (device instanceof RPCEventSource res) { + res.unsubscribe(this); + subscriptions.remove(res); + } + else { + writeError("device does not support subscriptions"); + } + } + } + else { + writeError("unknown device"); + } + } + private void processMethodInvocation(final MethodInvocation methodInvocation, final boolean isMainThread) { final RPCDevice device = devicesById.get(methodInvocation.deviceId); if (device == null) { @@ -396,14 +466,24 @@ public final class RPCDeviceBusAdapter implements Steppable { // In case we went through a reset and the VM was in the middle of reading // a message we inject a delimiter up front to cause the truncated message // to be discarded. - receiveBuffer.put(MESSAGE_DELIMITER); + if (this.crmode) { + receiveBuffer.put(MESSAGE_DELIMITER2); + } + else { + receiveBuffer.put(MESSAGE_DELIMITER); + } receiveBuffer.put(bytes); // We follow up each message with a delimiter, too, so the VM knows when the // message has been completed. This will lead to two delimiters between most // messages. The VM is expected to ignore such "empty" messages. - receiveBuffer.put(MESSAGE_DELIMITER); + if (this.crmode) { + receiveBuffer.put(MESSAGE_DELIMITER2); + } + else { + receiveBuffer.put(MESSAGE_DELIMITER); + } receiveBuffer.flip(); this.receiveBuffer = receiveBuffer; @@ -421,9 +501,12 @@ public final class RPCDeviceBusAdapter implements Steppable { public static final String MESSAGE_TYPE_METHODS = "methods"; public static final String MESSAGE_TYPE_RESULT = "result"; public static final String MESSAGE_TYPE_ERROR = "error"; + public static final String MESSAGE_TYPE_EVENT = "event"; // VM -> Device public static final String MESSAGE_TYPE_INVOKE_METHOD = "invoke"; + public static final String MESSAGE_TYPE_SUBSCRIBE = "subscribe"; + public static final String MESSAGE_TYPE_UNSUBSCRIBE = "unsubscribe"; } @Serialized diff --git a/src/main/java/li/cil/oc2/common/bus/device/BlockDeviceBusElement.java b/src/main/java/li/cil/oc2/common/bus/device/BlockDeviceBusElement.java new file mode 100644 index 00000000..9d18d60e --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/BlockDeviceBusElement.java @@ -0,0 +1,8 @@ +package li.cil.oc2.common.bus.device; + +import li.cil.oc2.common.bus.AbstractDeviceBusElement; + + +public class BlockDeviceBusElement extends AbstractDeviceBusElement { + +} diff --git a/src/main/java/li/cil/oc2r/common/bus/device/DeviceGroup.java b/src/main/java/li/cil/oc2/common/bus/device/DeviceGroup.java similarity index 77% rename from src/main/java/li/cil/oc2r/common/bus/device/DeviceGroup.java rename to src/main/java/li/cil/oc2/common/bus/device/DeviceGroup.java index 57faa113..c985153c 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/DeviceGroup.java +++ b/src/main/java/li/cil/oc2/common/bus/device/DeviceGroup.java @@ -1,7 +1,7 @@ -package li.cil.oc2r.common.bus.device; +package li.cil.oc2.common.bus.device; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.common.bus.device.util.IdentityProxy; import net.minecraft.world.level.block.entity.BlockEntity; import java.util.*; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/DeviceTypes.java b/src/main/java/li/cil/oc2/common/bus/device/DeviceTypes.java similarity index 86% rename from src/main/java/li/cil/oc2r/common/bus/device/DeviceTypes.java rename to src/main/java/li/cil/oc2/common/bus/device/DeviceTypes.java index a2c569a0..62985505 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/DeviceTypes.java +++ b/src/main/java/li/cil/oc2/common/bus/device/DeviceTypes.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device; +package li.cil.oc2.common.bus.device; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.DeviceType; -import li.cil.oc2r.common.bus.device.util.DeviceTypeImpl; -import li.cil.oc2r.common.tags.ItemTags; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.DeviceType; +import li.cil.oc2.common.bus.device.util.DeviceTypeImpl; +import li.cil.oc2.common.tags.ItemTags; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; @@ -16,7 +16,7 @@ import net.minecraftforge.registries.RegistryBuilder; import java.util.function.Supplier; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class DeviceTypes { private static final DeferredRegister DEVICE_TYPES = DeferredRegister.create(DeviceType.REGISTRY, API.MOD_ID); diff --git a/src/main/java/li/cil/oc2r/common/bus/device/data/BlockDeviceDataRegistry.java b/src/main/java/li/cil/oc2/common/bus/device/data/BlockDeviceDataRegistry.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/bus/device/data/BlockDeviceDataRegistry.java rename to src/main/java/li/cil/oc2/common/bus/device/data/BlockDeviceDataRegistry.java index 1a02ab63..e1fecdc0 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/data/BlockDeviceDataRegistry.java +++ b/src/main/java/li/cil/oc2/common/bus/device/data/BlockDeviceDataRegistry.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.data; +package li.cil.oc2.common.bus.device.data; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.data.BlockDeviceData; -import li.cil.oc2r.api.util.Registries; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.data.BlockDeviceData; +import li.cil.oc2.api.util.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/data/BuildrootBlockDeviceData.java b/src/main/java/li/cil/oc2/common/bus/device/data/BuildrootBlockDeviceData.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/bus/device/data/BuildrootBlockDeviceData.java rename to src/main/java/li/cil/oc2/common/bus/device/data/BuildrootBlockDeviceData.java index ee438465..1efbff26 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/data/BuildrootBlockDeviceData.java +++ b/src/main/java/li/cil/oc2/common/bus/device/data/BuildrootBlockDeviceData.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.data; +package li.cil.oc2.common.bus.device.data; -import li.cil.oc2r.api.bus.device.data.BlockDeviceData; +import li.cil.oc2.api.bus.device.data.BlockDeviceData; import li.cil.sedna.api.device.BlockDevice; import li.cil.sedna.buildroot.Buildroot; import li.cil.sedna.device.block.ByteBufferBlockDevice; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/data/BuildrootFirmware.java b/src/main/java/li/cil/oc2/common/bus/device/data/BuildrootFirmware.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/bus/device/data/BuildrootFirmware.java rename to src/main/java/li/cil/oc2/common/bus/device/data/BuildrootFirmware.java index f4d9cff5..143e4553 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/data/BuildrootFirmware.java +++ b/src/main/java/li/cil/oc2/common/bus/device/data/BuildrootFirmware.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.data; +package li.cil.oc2.common.bus.device.data; -import li.cil.oc2r.api.bus.device.data.Firmware; +import li.cil.oc2.api.bus.device.data.Firmware; import li.cil.sedna.api.memory.MemoryMap; import li.cil.sedna.buildroot.Buildroot; import li.cil.sedna.memory.MemoryMaps; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/data/FileSystems.java b/src/main/java/li/cil/oc2/common/bus/device/data/FileSystems.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/bus/device/data/FileSystems.java rename to src/main/java/li/cil/oc2/common/bus/device/data/FileSystems.java index 9cb6f06a..f4d803f6 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/data/FileSystems.java +++ b/src/main/java/li/cil/oc2/common/bus/device/data/FileSystems.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.data; +package li.cil.oc2.common.bus.device.data; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonPrimitive; import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.data.BlockDeviceData; -import li.cil.oc2r.common.vm.fs.LayeredFileSystem; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.data.BlockDeviceData; +import li.cil.oc2.common.vm.fs.LayeredFileSystem; import li.cil.sedna.fs.FileSystem; import li.cil.sedna.fs.ZipStreamFileSystem; import net.minecraft.resources.ResourceLocation; @@ -29,13 +29,16 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; -import static li.cil.oc2r.common.util.TextFormatUtils.formatSize; +import static li.cil.oc2.common.util.TextFormatUtils.formatSize; @Mod.EventBusSubscriber(modid = API.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE) public final class FileSystems { private static final Logger LOGGER = LogManager.getLogger(); private static final LayeredFileSystem LAYERED_FILE_SYSTEM = new LayeredFileSystem(); private static final Map BLOCK_DEVICE_DATA = new HashMap<>(); + private static final Map blocksByName = new HashMap<>(); + + public static ResourceManager _resourceManager = null; /////////////////////////////////////////////////////////////////// @@ -43,6 +46,10 @@ public final class FileSystems { return LAYERED_FILE_SYSTEM; } + public static BlockDeviceData getBlockByName(String name) { + return blocksByName.get(name); + } + public static ResourceLocation getKeyByValue(BlockDeviceData value) { for (Map.Entry entry : BLOCK_DEVICE_DATA.entrySet()) { if (Objects.equals(value, entry.getValue())) { @@ -84,6 +91,7 @@ public final class FileSystems { /////////////////////////////////////////////////////////////////// private static void reload(final ResourceManager resourceManager) { + _resourceManager = resourceManager; reset(); LOGGER.info("Searching for datapack filesystems..."); @@ -141,6 +149,7 @@ public final class FileSystems { LOGGER.info(" Adding block device [{}] with id [{}] and a size of [{}].", name, location, formatSize(data.getBlockDevice().getCapacity())); BLOCK_DEVICE_DATA.put(location, data); + blocksByName.put(name, data); } default -> LOGGER.error("Unsupported file system type [{}].", type); } diff --git a/src/main/java/li/cil/oc2r/common/bus/device/data/FirmwareRegistry.java b/src/main/java/li/cil/oc2/common/bus/device/data/FirmwareRegistry.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/bus/device/data/FirmwareRegistry.java rename to src/main/java/li/cil/oc2/common/bus/device/data/FirmwareRegistry.java index 15f78665..893f3626 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/data/FirmwareRegistry.java +++ b/src/main/java/li/cil/oc2/common/bus/device/data/FirmwareRegistry.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.data; +package li.cil.oc2.common.bus.device.data; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.data.Firmware; -import li.cil.oc2r.api.util.Registries; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.data.Firmware; +import li.cil.oc2.api.util.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/data/ResourceBlockDeviceData.java b/src/main/java/li/cil/oc2/common/bus/device/data/ResourceBlockDeviceData.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/bus/device/data/ResourceBlockDeviceData.java rename to src/main/java/li/cil/oc2/common/bus/device/data/ResourceBlockDeviceData.java index f177b787..a84526e6 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/data/ResourceBlockDeviceData.java +++ b/src/main/java/li/cil/oc2/common/bus/device/data/ResourceBlockDeviceData.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.data; +package li.cil.oc2.common.bus.device.data; -import li.cil.oc2r.api.bus.device.data.BlockDeviceData; +import li.cil.oc2.api.bus.device.data.BlockDeviceData; import li.cil.sedna.api.device.BlockDevice; import li.cil.sedna.device.block.ByteBufferBlockDevice; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2/common/bus/device/data/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/data/package-info.java new file mode 100644 index 00000000..14b9d74a --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/data/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.data; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/device/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/package-info.java new file mode 100644 index 00000000..c6a315b1 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/ProviderRegistry.java b/src/main/java/li/cil/oc2/common/bus/device/provider/ProviderRegistry.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/ProviderRegistry.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/ProviderRegistry.java index 16041138..f49f2698 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/ProviderRegistry.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/ProviderRegistry.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider; +package li.cil.oc2.common.bus.device.provider; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; -import li.cil.oc2r.api.util.Registries; -import li.cil.oc2r.common.bus.device.provider.block.BlockEntityCapabilityDeviceProvider; -import li.cil.oc2r.common.bus.device.provider.item.*; -import li.cil.oc2r.common.bus.device.rpc.block.*; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.util.Registries; +import li.cil.oc2.common.bus.device.provider.block.BlockEntityCapabilityDeviceProvider; +import li.cil.oc2.common.bus.device.provider.item.*; +import li.cil.oc2.common.bus.device.rpc.block.*; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.IForgeRegistry; @@ -37,8 +37,6 @@ public final class ProviderRegistry { ITEM_DEVICE_PROVIDERS.register("flash_memory", FlashMemoryItemDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("flash_memory_custom", FlashMemoryWithExternalDataItemDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("redstone_interface_card", RedstoneInterfaceCardItemDeviceProvider::new); - ITEM_DEVICE_PROVIDERS.register("network_interface_card", NetworkInterfaceCardItemDeviceProvider::new); - ITEM_DEVICE_PROVIDERS.register("network_tunnel_card", NetworkTunnelCardItemDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("file_import_export_card", FileImportExportCardItemDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("sound_card", SoundCardItemDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("cpu", CPUItemDeviceProvider::new); @@ -47,6 +45,10 @@ public final class ProviderRegistry { ITEM_DEVICE_PROVIDERS.register("block_operations_module", BlockOperationsModuleDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("network_tunnel_module", NetworkTunnelModuleItemDeviceProvider::new); + ITEM_DEVICE_PROVIDERS.register("network_interface_card", NetworkInterfaceCardItemDeviceProvider::new); + ITEM_DEVICE_PROVIDERS.register("network_tunnel_card", NetworkTunnelCardItemDeviceProvider::new); + ITEM_DEVICE_PROVIDERS.register("internet_card", InternetCardItemDeviceProvider::new); + ITEM_DEVICE_PROVIDERS.register("item_stack/capability", ItemStackCapabilityDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("energy_storage", EnergyStorageItemDeviceProvider::new); ITEM_DEVICE_PROVIDERS.register("fluid_handler", FluidHandlerItemDeviceProvider::new); diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/Providers.java b/src/main/java/li/cil/oc2/common/bus/device/provider/Providers.java similarity index 81% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/Providers.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/Providers.java index 8c23b5e8..f253d68a 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/Providers.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/Providers.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider; +package li.cil.oc2.common.bus.device.provider; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; import net.minecraftforge.registries.IForgeRegistry; import java.util.function.BiConsumer; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/block/BlockEntityCapabilityDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockEntityCapabilityDeviceProvider.java similarity index 61% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/block/BlockEntityCapabilityDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockEntityCapabilityDeviceProvider.java index b433c5e2..a88254b4 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/block/BlockEntityCapabilityDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockEntityCapabilityDeviceProvider.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.block; +package li.cil.oc2.common.bus.device.provider.block; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.world.level.block.entity.BlockEntity; public final class BlockEntityCapabilityDeviceProvider extends AbstractBlockEntityCapabilityDeviceProvider { diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/block/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/provider/block/package-info.java new file mode 100644 index 00000000..8a13946f --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/block/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.provider.block; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/AbstractItemStackCapabilityDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/AbstractItemStackCapabilityDeviceProvider.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/AbstractItemStackCapabilityDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/AbstractItemStackCapabilityDeviceProvider.java index 2f30949a..51451426 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/AbstractItemStackCapabilityDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/AbstractItemStackCapabilityDeviceProvider.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java similarity index 64% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java index d3d4c9f1..79c4a9a8 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.item.BlockOperationsModuleDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.BlockOperationsModuleDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.item.Items; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/CPUItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/CPUItemDeviceProvider.java similarity index 64% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/CPUItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/CPUItemDeviceProvider.java index de96bea6..7e5301c5 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/CPUItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/CPUItemDeviceProvider.java @@ -1,13 +1,11 @@ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.item.CPUItemDevice; -import li.cil.oc2r.common.item.CPUItem; -import li.cil.oc2r.common.item.MemoryItem; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.CPUItemDevice; +import li.cil.oc2.common.item.CPUItem; import net.minecraft.world.item.ItemStack; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/EnergyStorageItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/EnergyStorageItemDeviceProvider.java similarity index 65% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/EnergyStorageItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/EnergyStorageItemDeviceProvider.java index 40d1843f..4c412dfe 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/EnergyStorageItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/EnergyStorageItemDeviceProvider.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.bus.device.rpc.EnergyStorageDevice; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.bus.device.rpc.EnergyStorageDevice; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraftforge.energy.IEnergyStorage; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java similarity index 78% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java index c98beee2..04018c5a 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.api.capabilities.TerminalUserProvider; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.item.FileImportExportCardItemDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.capabilities.TerminalUserProvider; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.item.Items; import net.minecraftforge.common.util.LazyOptional; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java similarity index 67% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java index 07a75b3b..1818b7c2 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.ByteBufferFlashStorageDevice; -import li.cil.oc2r.common.item.FlashMemoryItem; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.ByteBufferFlashStorageDevice; +import li.cil.oc2.common.item.FlashMemoryItem; import net.minecraft.world.item.ItemStack; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java similarity index 67% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java index d073757c..583b6446 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.data.Firmware; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.FirmwareFlashStorageDevice; -import li.cil.oc2r.common.item.FlashMemoryWithExternalDataItem; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.data.Firmware; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.FirmwareFlashStorageDevice; +import li.cil.oc2.common.item.FlashMemoryWithExternalDataItem; import net.minecraft.world.item.ItemStack; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FluidHandlerItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FluidHandlerItemDeviceProvider.java similarity index 65% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/FluidHandlerItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/FluidHandlerItemDeviceProvider.java index 10d12f34..68700bdc 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/FluidHandlerItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FluidHandlerItemDeviceProvider.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.bus.device.rpc.FluidHandlerDevice; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.bus.device.rpc.FluidHandlerDevice; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraftforge.fluids.capability.IFluidHandler; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/HardDriveItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveItemDeviceProvider.java similarity index 75% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/HardDriveItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveItemDeviceProvider.java index 7e842b9d..0d4dfad4 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/HardDriveItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveItemDeviceProvider.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.HardDriveDevice; -import li.cil.oc2r.common.item.HardDriveItem; -import li.cil.oc2r.common.util.LocationSupplierUtils; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.HardDriveDevice; +import li.cil.oc2.common.item.HardDriveItem; +import li.cil.oc2.common.util.LocationSupplierUtils; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java similarity index 76% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java index 281ff82f..c82919b4 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.data.BlockDeviceData; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.HardDriveDeviceWithInitialData; -import li.cil.oc2r.common.item.HardDriveWithExternalDataItem; -import li.cil.oc2r.common.util.LocationSupplierUtils; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.data.BlockDeviceData; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.HardDriveDeviceWithInitialData; +import li.cil.oc2.common.item.HardDriveWithExternalDataItem; +import li.cil.oc2.common.util.LocationSupplierUtils; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/InternetCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/InternetCardItemDeviceProvider.java new file mode 100644 index 00000000..04974767 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/InternetCardItemDeviceProvider.java @@ -0,0 +1,26 @@ +package li.cil.oc2.common.bus.device.provider.item; + +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.vm.item.InternetCardDevice; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.item.Items; + +import java.util.Optional; + +public final class InternetCardItemDeviceProvider extends AbstractItemDeviceProvider { + public InternetCardItemDeviceProvider() { + super(Items.INTERNET_CARD); + } + + @Override + protected Optional getItemDevice(final ItemDeviceQuery query) { + return Optional.of(new InternetCardDevice(query.getItemStack())); + } + + @Override + protected int getItemDeviceEnergyConsumption(final ItemDeviceQuery query) { + return Config.networkInterfaceEnergyPerTick; + } +} diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java similarity index 65% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java index 0799e74b..dad09f1b 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.item.InventoryOperationsModuleDevice; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.InventoryOperationsModuleDevice; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.item.Items; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/ItemHandlerItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/ItemHandlerItemDeviceProvider.java similarity index 64% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/ItemHandlerItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/ItemHandlerItemDeviceProvider.java index 3707dc0d..32e72a48 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/ItemHandlerItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/ItemHandlerItemDeviceProvider.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.bus.device.rpc.ItemHandlerDevice; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.bus.device.rpc.ItemHandlerDevice; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraftforge.items.IItemHandler; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/ItemStackCapabilityDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/ItemStackCapabilityDeviceProvider.java similarity index 71% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/ItemStackCapabilityDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/ItemStackCapabilityDeviceProvider.java index 7ae76b4e..84c4981e 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/ItemStackCapabilityDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/ItemStackCapabilityDeviceProvider.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.capabilities.Capabilities; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/MemoryItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/MemoryItemDeviceProvider.java similarity index 72% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/MemoryItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/MemoryItemDeviceProvider.java index 9e162980..9c1ac114 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/MemoryItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/MemoryItemDeviceProvider.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.MemoryDevice; -import li.cil.oc2r.common.item.MemoryItem; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.MemoryDevice; +import li.cil.oc2.common.item.MemoryItem; import net.minecraft.world.item.ItemStack; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java similarity index 63% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java index aa962d03..f89ef106 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.NetworkInterfaceCardDevice; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.NetworkInterfaceCardDevice; +import li.cil.oc2.common.item.Items; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java similarity index 63% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java index 03ae94b3..381c0a01 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.NetworkTunnelDevice; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.NetworkTunnelDevice; +import li.cil.oc2.common.item.Items; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java similarity index 63% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java index ad7319ce..49a770d6 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.vm.item.NetworkTunnelDevice; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.NetworkTunnelDevice; +import li.cil.oc2.common.item.Items; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java similarity index 65% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java index eff3d9fa..c1d6811e 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.item.RedstoneInterfaceCardItemDevice; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.RedstoneInterfaceCardItemDevice; +import li.cil.oc2.common.item.Items; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/SoundCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/SoundCardItemDeviceProvider.java similarity index 60% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/item/SoundCardItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/item/SoundCardItemDeviceProvider.java index f6508bc8..aa079fed 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/SoundCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/SoundCardItemDeviceProvider.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.item; +package li.cil.oc2.common.bus.device.provider.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.device.provider.util.AbstractItemDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.item.SoundCardItemDevice; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.util.LocationSupplierUtils; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.SoundCardItemDevice; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.util.LocationSupplierUtils; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/package-info.java new file mode 100644 index 00000000..093cd2f9 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.provider.item; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/provider/package-info.java new file mode 100644 index 00000000..c16cf596 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.provider; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockDeviceProvider.java similarity index 51% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockDeviceProvider.java index 61372eb9..442fbaef 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockDeviceProvider.java @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.util; +package li.cil.oc2.common.bus.device.provider.util; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; public abstract class AbstractBlockDeviceProvider implements BlockDeviceProvider { } diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockEntityCapabilityDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockEntityCapabilityDeviceProvider.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockEntityCapabilityDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockEntityCapabilityDeviceProvider.java index 1fbc55e8..aadd6685 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockEntityCapabilityDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockEntityCapabilityDeviceProvider.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.util; +package li.cil.oc2.common.bus.device.provider.util; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.util.LazyOptionalUtils; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.util.LazyOptionalUtils; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.common.capabilities.Capability; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockEntityDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockEntityDeviceProvider.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockEntityDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockEntityDeviceProvider.java index ce140895..92ab734e 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractBlockEntityDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractBlockEntityDeviceProvider.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.util; +package li.cil.oc2.common.bus.device.provider.util; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractItemDeviceProvider.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractItemDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractItemDeviceProvider.java index 4e1092b3..eadb2932 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/AbstractItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/util/AbstractItemDeviceProvider.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.provider.util; +package li.cil.oc2.common.bus.device.provider.util; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraftforge.registries.RegistryObject; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/util/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/provider/util/package-info.java new file mode 100644 index 00000000..7bea9b40 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/util/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.provider.util; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/EnergyStorageDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/EnergyStorageDevice.java similarity index 81% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/EnergyStorageDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/EnergyStorageDevice.java index c263df6e..b1c57ab8 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/EnergyStorageDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/EnergyStorageDevice.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.NamedDevice; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.NamedDevice; +import li.cil.oc2.common.bus.device.util.IdentityProxy; import net.minecraftforge.energy.IEnergyStorage; import java.util.Collection; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/FluidHandlerDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/FluidHandlerDevice.java similarity index 80% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/FluidHandlerDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/FluidHandlerDevice.java index 51e6384b..1c62f902 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/FluidHandlerDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/FluidHandlerDevice.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.NamedDevice; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.NamedDevice; +import li.cil.oc2.common.bus.device.util.IdentityProxy; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/ItemHandlerDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/ItemHandlerDevice.java similarity index 80% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/ItemHandlerDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/ItemHandlerDevice.java index 3fdbeb4a..5b2979e4 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/ItemHandlerDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/ItemHandlerDevice.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.NamedDevice; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.NamedDevice; +import li.cil.oc2.common.bus.device.util.IdentityProxy; import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCDeviceList.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCDeviceList.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCDeviceList.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/RPCDeviceList.java index da7ec89c..112cdb3b 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCDeviceList.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCDeviceList.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCMethodGroup; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.rpc.RPCMethodGroup; import net.minecraft.nbt.CompoundTag; import java.util.ArrayList; @@ -12,6 +12,11 @@ import java.util.List; import java.util.stream.Collectors; public record RPCDeviceList(ArrayList devices) implements RPCDevice { + + public ArrayList getDevices() { + return devices; + } + @Override public List getTypeNames() { return devices.stream() diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCItemStackTagFilter.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCItemStackTagFilter.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCItemStackTagFilter.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/RPCItemStackTagFilter.java index f648ca14..0543c662 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCItemStackTagFilter.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCItemStackTagFilter.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCItemStackTagFilters.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCItemStackTagFilters.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCItemStackTagFilters.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/RPCItemStackTagFilters.java index 41e758fa..890becae 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCItemStackTagFilters.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCItemStackTagFilters.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCMethodParameterTypeAdapters.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCMethodParameterTypeAdapters.java similarity index 83% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCMethodParameterTypeAdapters.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/RPCMethodParameterTypeAdapters.java index bd178441..f3fbfe8d 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/RPCMethodParameterTypeAdapters.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/RPCMethodParameterTypeAdapters.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; import com.google.gson.GsonBuilder; -import li.cil.oc2r.api.imc.RPCMethodParameterTypeAdapter; -import li.cil.oc2r.common.serialization.gson.DirectionJsonSerializer; -import li.cil.oc2r.common.serialization.gson.ItemStackJsonSerializer; +import li.cil.oc2.api.imc.RPCMethodParameterTypeAdapter; +import li.cil.oc2.common.serialization.gson.DirectionJsonSerializer; +import li.cil.oc2.common.serialization.gson.ItemStackJsonSerializer; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/TypeNameRPCDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/TypeNameRPCDevice.java similarity index 70% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/TypeNameRPCDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/TypeNameRPCDevice.java index b0b0a987..891e43f0 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/TypeNameRPCDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/TypeNameRPCDevice.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc; +package li.cil.oc2.common.bus.device.rpc; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCMethodGroup; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.rpc.RPCMethodGroup; import java.util.List; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java similarity index 57% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java index c7aa858d..599690b7 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.block; +package li.cil.oc2.common.bus.device.rpc.block; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.object.Callbacks; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.bus.device.provider.util.AbstractBlockEntityDeviceProvider; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.object.Callbacks; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.bus.device.provider.util.AbstractBlockEntityDeviceProvider; import net.minecraft.world.level.block.entity.BlockEntity; public final class BlockEntityObjectDeviceProvider extends AbstractBlockEntityDeviceProvider { diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java similarity index 69% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java index 52752411..cbfc658d 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.block; +package li.cil.oc2.common.bus.device.rpc.block; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.object.Callbacks; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.bus.device.provider.util.AbstractBlockDeviceProvider; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.object.Callbacks; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.bus.device.provider.util.AbstractBlockDeviceProvider; import net.minecraft.core.BlockPos; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java similarity index 59% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java index ecace198..5b68a060 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.block; +package li.cil.oc2.common.bus.device.rpc.block; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.EnergyStorageDevice; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.EnergyStorageDevice; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.energy.IEnergyStorage; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java similarity index 59% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java index 42f06bd3..a98de15d 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.block; +package li.cil.oc2.common.bus.device.rpc.block; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.FluidHandlerDevice; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.FluidHandlerDevice; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.capability.IFluidHandler; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java similarity index 58% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java index dfc15d97..037b9b63 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.block; +package li.cil.oc2.common.bus.device.rpc.block; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; -import li.cil.oc2r.common.bus.device.rpc.ItemHandlerDevice; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.bus.device.provider.util.AbstractBlockEntityCapabilityDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.ItemHandlerDevice; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.items.IItemHandler; diff --git a/src/main/java/li/cil/oc2/common/bus/device/rpc/block/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/package-info.java new file mode 100644 index 00000000..ab99897f --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.rpc.block; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/AbstractItemRPCDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/AbstractItemRPCDevice.java similarity index 71% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/item/AbstractItemRPCDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/AbstractItemRPCDevice.java index f30dbbe3..967013bc 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/AbstractItemRPCDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/AbstractItemRPCDevice.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.item; +package li.cil.oc2.common.bus.device.rpc.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCDevice; -import li.cil.oc2r.api.bus.device.rpc.RPCMethodGroup; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.rpc.RPCDevice; +import li.cil.oc2.api.bus.device.rpc.RPCMethodGroup; +import li.cil.oc2.common.bus.device.util.IdentityProxy; import net.minecraft.world.item.ItemStack; import java.util.List; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/BlockOperationsModuleDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/BlockOperationsModuleDevice.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/item/BlockOperationsModuleDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/BlockOperationsModuleDevice.java index 6430b8e4..d00cb565 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/BlockOperationsModuleDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/BlockOperationsModuleDevice.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.item; +package li.cil.oc2.common.bus.device.rpc.item; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.Parameter; -import li.cil.oc2r.api.capabilities.Robot; -import li.cil.oc2r.api.util.RobotOperationSide; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.util.FakePlayerUtils; -import li.cil.oc2r.common.util.TickUtils; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.Parameter; +import li.cil.oc2.api.capabilities.Robot; +import li.cil.oc2.api.util.RobotOperationSide; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.util.FakePlayerUtils; +import li.cil.oc2.common.util.TickUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/CPUItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/CPUItemDevice.java similarity index 73% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/item/CPUItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/CPUItemDevice.java index b63c7973..865acd26 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/CPUItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/CPUItemDevice.java @@ -1,7 +1,7 @@ -package li.cil.oc2r.common.bus.device.rpc.item; +package li.cil.oc2.common.bus.device.rpc.item; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.common.item.CPUItem; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.common.item.CPUItem; import net.minecraft.world.item.ItemStack; public class CPUItemDevice extends AbstractItemRPCDevice { diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/FileImportExportCardItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/FileImportExportCardItemDevice.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/item/FileImportExportCardItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/FileImportExportCardItemDevice.java index 0b5e2e1c..deba9c40 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/FileImportExportCardItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/FileImportExportCardItemDevice.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.item; +package li.cil.oc2.common.bus.device.rpc.item; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.DocumentedDevice; -import li.cil.oc2r.api.bus.device.object.Parameter; -import li.cil.oc2r.api.capabilities.TerminalUserProvider; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.ExportedFileMessage; -import li.cil.oc2r.common.network.message.RequestImportedFileMessage; -import li.cil.oc2r.common.network.message.ServerCanceledImportFileMessage; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.DocumentedDevice; +import li.cil.oc2.api.bus.device.object.Parameter; +import li.cil.oc2.api.capabilities.TerminalUserProvider; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.ExportedFileMessage; +import li.cil.oc2.common.network.message.RequestImportedFileMessage; +import li.cil.oc2.common.network.message.ServerCanceledImportFileMessage; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.StringUtil; import net.minecraft.world.entity.player.Player; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java index 91209b14..28929a9f 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.item; +package li.cil.oc2.common.bus.device.rpc.item; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.Parameter; -import li.cil.oc2r.api.capabilities.Robot; -import li.cil.oc2r.api.util.RobotOperationSide; -import li.cil.oc2r.common.capabilities.Capabilities; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.Parameter; +import li.cil.oc2.api.capabilities.Robot; +import li.cil.oc2.api.util.RobotOperationSide; +import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java index 3164e7dd..b5b04648 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.item; +package li.cil.oc2.common.bus.device.rpc.item; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.DocumentedDevice; -import li.cil.oc2r.api.bus.device.object.Parameter; -import li.cil.oc2r.api.capabilities.RedstoneEmitter; -import li.cil.oc2r.api.util.Side; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.util.HorizontalBlockUtils; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.DocumentedDevice; +import li.cil.oc2.api.bus.device.object.Parameter; +import li.cil.oc2.api.capabilities.RedstoneEmitter; +import li.cil.oc2.api.util.Side; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.util.HorizontalBlockUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/SoundCardItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/SoundCardItemDevice.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/bus/device/rpc/item/SoundCardItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/SoundCardItemDevice.java index c32e1ded..43fe006d 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/SoundCardItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/SoundCardItemDevice.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.rpc.item; +package li.cil.oc2.common.bus.device.rpc.item; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.Parameter; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.util.BlockLocation; -import li.cil.oc2r.common.util.TickUtils; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.Parameter; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.util.BlockLocation; +import li.cil.oc2.common.util.TickUtils; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; diff --git a/src/main/java/li/cil/oc2/common/bus/device/rpc/item/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/package-info.java new file mode 100644 index 00000000..48db9acd --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.rpc.item; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/device/rpc/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/package-info.java new file mode 100644 index 00000000..799d6786 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.rpc; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/AbstractDeviceInfo.java b/src/main/java/li/cil/oc2/common/bus/device/util/AbstractDeviceInfo.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/bus/device/util/AbstractDeviceInfo.java rename to src/main/java/li/cil/oc2/common/bus/device/util/AbstractDeviceInfo.java index 8dc52217..1c3e9fcb 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/AbstractDeviceInfo.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/AbstractDeviceInfo.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; -import li.cil.oc2r.api.bus.device.Device; +import li.cil.oc2.api.bus.device.Device; import javax.annotation.Nullable; import java.util.Objects; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/BlockDeviceInfo.java b/src/main/java/li/cil/oc2/common/bus/device/util/BlockDeviceInfo.java similarity index 68% rename from src/main/java/li/cil/oc2r/common/bus/device/util/BlockDeviceInfo.java rename to src/main/java/li/cil/oc2/common/bus/device/util/BlockDeviceInfo.java index fc20e26c..862b8984 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/BlockDeviceInfo.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/BlockDeviceInfo.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/DeviceTypeImpl.java b/src/main/java/li/cil/oc2/common/bus/device/util/DeviceTypeImpl.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/bus/device/util/DeviceTypeImpl.java rename to src/main/java/li/cil/oc2/common/bus/device/util/DeviceTypeImpl.java index e7d9108f..f314dad4 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/DeviceTypeImpl.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/DeviceTypeImpl.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; -import li.cil.oc2r.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.DeviceType; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/Devices.java b/src/main/java/li/cil/oc2/common/bus/device/util/Devices.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/bus/device/util/Devices.java rename to src/main/java/li/cil/oc2/common/bus/device/util/Devices.java index c03d7ff4..69ed68f6 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/Devices.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/Devices.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.api.util.Invalidatable; -import li.cil.oc2r.common.bus.device.DeviceGroup; -import li.cil.oc2r.common.bus.device.provider.Providers; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.bus.device.DeviceGroup; +import li.cil.oc2.common.bus.device.provider.Providers; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/IdentityProxy.java b/src/main/java/li/cil/oc2/common/bus/device/util/IdentityProxy.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/bus/device/util/IdentityProxy.java rename to src/main/java/li/cil/oc2/common/bus/device/util/IdentityProxy.java index 7574bfde..74f0de4e 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/IdentityProxy.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/IdentityProxy.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; import javax.annotation.Nullable; import java.util.Objects; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/ItemDeviceInfo.java b/src/main/java/li/cil/oc2/common/bus/device/util/ItemDeviceInfo.java similarity index 81% rename from src/main/java/li/cil/oc2r/common/bus/device/util/ItemDeviceInfo.java rename to src/main/java/li/cil/oc2/common/bus/device/util/ItemDeviceInfo.java index e08b87e3..f35e0156 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/ItemDeviceInfo.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/ItemDeviceInfo.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/OptionalAddress.java b/src/main/java/li/cil/oc2/common/bus/device/util/OptionalAddress.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/bus/device/util/OptionalAddress.java rename to src/main/java/li/cil/oc2/common/bus/device/util/OptionalAddress.java index 8ff8bd5b..e2d56680 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/OptionalAddress.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/OptionalAddress.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.context.VMContext; import li.cil.sedna.api.device.MemoryMappedDevice; import java.util.OptionalLong; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/OptionalInterrupt.java b/src/main/java/li/cil/oc2/common/bus/device/util/OptionalInterrupt.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/bus/device/util/OptionalInterrupt.java rename to src/main/java/li/cil/oc2/common/bus/device/util/OptionalInterrupt.java index 5bc10ef1..2cd709ad 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/OptionalInterrupt.java +++ b/src/main/java/li/cil/oc2/common/bus/device/util/OptionalInterrupt.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.util; +package li.cil.oc2.common.bus.device.util; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.context.VMContext; import java.util.OptionalInt; diff --git a/src/main/java/li/cil/oc2/common/bus/device/util/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/util/package-info.java new file mode 100644 index 00000000..1d3a4176 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/util/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.util; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/DiskDriveContainer.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveContainer.java similarity index 79% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/DiskDriveContainer.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveContainer.java index 5e4bc848..924fbdc8 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/DiskDriveContainer.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveContainer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/DiskDriveDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveDevice.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/DiskDriveDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveDevice.java index 64d7ac12..a8bfbf27 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/DiskDriveDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveDevice.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; -import li.cil.oc2r.common.bus.device.vm.item.AbstractBlockStorageDevice; -import li.cil.oc2r.common.item.FloppyItem; -import li.cil.oc2r.common.serialization.BlobStorage; +import li.cil.oc2.common.bus.device.vm.item.AbstractBlockStorageDevice; +import li.cil.oc2.common.item.FloppyItem; +import li.cil.oc2.common.serialization.BlobStorage; import li.cil.sedna.api.device.BlockDevice; import li.cil.sedna.device.block.ByteBufferBlockDevice; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/FlashMemoryFlasherContainer.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/FlashMemoryFlasherContainer.java similarity index 80% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/FlashMemoryFlasherContainer.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/FlashMemoryFlasherContainer.java index a9e82c1f..57243cc9 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/FlashMemoryFlasherContainer.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/FlashMemoryFlasherContainer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/FlashMemoryFlasherDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/FlashMemoryFlasherDevice.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/FlashMemoryFlasherDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/FlashMemoryFlasherDevice.java index 5bc38c4d..07e30b8f 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/FlashMemoryFlasherDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/FlashMemoryFlasherDevice.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; -import li.cil.oc2r.common.bus.device.vm.item.AbstractBlockStorageDevice; -import li.cil.oc2r.common.item.FlashMemoryItem; -import li.cil.oc2r.common.serialization.BlobStorage; +import li.cil.oc2.common.bus.device.vm.item.AbstractBlockStorageDevice; +import li.cil.oc2.common.item.FlashMemoryItem; +import li.cil.oc2.common.serialization.BlobStorage; import li.cil.sedna.api.device.BlockDevice; import li.cil.sedna.device.block.ByteBufferBlockDevice; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/KeyboardDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/KeyboardDevice.java similarity index 86% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/KeyboardDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/KeyboardDevice.java index 68d535ee..416ab8a4 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/KeyboardDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/KeyboardDevice.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.bus.device.util.OptionalInterrupt; -import li.cil.oc2r.common.serialization.NBTSerialization; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.bus.device.util.OptionalInterrupt; +import li.cil.oc2.common.serialization.NBTSerialization; +import li.cil.oc2.common.util.NBTTagIds; import li.cil.sedna.device.virtio.VirtIOKeyboardDevice; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/MonitorDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/MonitorDevice.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/MonitorDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/MonitorDevice.java index 79de3970..da75c96e 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/MonitorDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/MonitorDevice.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; import it.unimi.dsi.fastutil.booleans.BooleanConsumer; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.serialization.BlobStorage; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.vm.device.SimpleFramebufferDevice; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.vm.device.SimpleFramebufferDevice; +import li.cil.oc2.jcodec.common.model.Picture; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/PciCardCageDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/PciCardCageDevice.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/PciCardCageDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/PciCardCageDevice.java index 4b0f3bad..2bfb8050 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/PciCardCageDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/PciCardCageDevice.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; import it.unimi.dsi.fastutil.booleans.BooleanConsumer; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.serialization.BlobStorage; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.vm.device.PciRootPortDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.vm.device.PciRootPortDevice; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/ProjectorDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/ProjectorDevice.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/block/ProjectorDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/ProjectorDevice.java index 939f5a83..09379400 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/ProjectorDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/ProjectorDevice.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.block; +package li.cil.oc2.common.bus.device.vm.block; import it.unimi.dsi.fastutil.booleans.BooleanConsumer; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.serialization.BlobStorage; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.vm.device.SimpleFramebufferDevice; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.vm.device.SimpleFramebufferDevice; +import li.cil.oc2.jcodec.common.model.Picture; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/block/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/package-info.java new file mode 100644 index 00000000..299a373f --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.vm.block; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/AbstractBlockStorageDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractBlockStorageDevice.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/AbstractBlockStorageDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractBlockStorageDevice.java index 93af0716..cf295d71 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/AbstractBlockStorageDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractBlockStorageDevice.java @@ -1,21 +1,21 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.eventbus.Subscribe; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.api.bus.device.vm.event.VMResumedRunningEvent; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.bus.device.util.OptionalInterrupt; -import li.cil.oc2r.common.serialization.BlobStorage; -import li.cil.oc2r.common.serialization.NBTSerialization; -import li.cil.oc2r.common.util.Event; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.event.VMResumedRunningEvent; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.bus.device.util.OptionalInterrupt; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.oc2.common.serialization.NBTSerialization; +import li.cil.oc2.common.util.Event; +import li.cil.oc2.common.util.NBTTagIds; import li.cil.sedna.api.device.BlockDevice; import li.cil.sedna.device.virtio.VirtIOBlockDevice; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/AbstractNetworkInterfaceDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractNetworkInterfaceDevice.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/AbstractNetworkInterfaceDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractNetworkInterfaceDevice.java index bb50bb39..97ffe50f 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/AbstractNetworkInterfaceDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractNetworkInterfaceDevice.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.bus.device.util.OptionalInterrupt; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.serialization.NBTSerialization; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.bus.device.util.OptionalInterrupt; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.serialization.NBTSerialization; +import li.cil.oc2.common.util.NBTTagIds; import li.cil.sedna.device.virtio.VirtIONetworkDevice; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/ByteBufferFlashStorageDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/ByteBufferFlashStorageDevice.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/ByteBufferFlashStorageDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/ByteBufferFlashStorageDevice.java index 087b0518..72dab850 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/ByteBufferFlashStorageDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/ByteBufferFlashStorageDevice.java @@ -1,20 +1,20 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.eventbus.Subscribe; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.vm.FirmwareLoader; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.api.bus.device.vm.event.VMInitializationException; -import li.cil.oc2r.api.bus.device.vm.event.VMInitializingEvent; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.serialization.BlobStorage; -import li.cil.oc2r.common.util.ItemStackUtils; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.vm.FirmwareLoader; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.event.VMInitializationException; +import li.cil.oc2.api.bus.device.vm.event.VMInitializingEvent; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.oc2.common.util.ItemStackUtils; import li.cil.sedna.api.memory.MemoryAccessException; import li.cil.sedna.api.memory.MemoryMap; import li.cil.sedna.device.flash.FlashMemoryDevice; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/FirmwareFlashStorageDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/FirmwareFlashStorageDevice.java similarity index 71% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/FirmwareFlashStorageDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/FirmwareFlashStorageDevice.java index 22422806..05b670ef 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/FirmwareFlashStorageDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/FirmwareFlashStorageDevice.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.eventbus.Subscribe; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.data.Firmware; -import li.cil.oc2r.api.bus.device.vm.FirmwareLoader; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.api.bus.device.vm.event.VMInitializationException; -import li.cil.oc2r.api.bus.device.vm.event.VMInitializingEvent; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.data.Firmware; +import li.cil.oc2.api.bus.device.vm.FirmwareLoader; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.bus.device.vm.event.VMInitializationException; +import li.cil.oc2.api.bus.device.vm.event.VMInitializingEvent; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; import li.cil.sedna.api.memory.MemoryMap; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/HardDriveDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDevice.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/HardDriveDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDevice.java index a786eb3c..9fabae4f 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/HardDriveDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDevice.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; -import li.cil.oc2r.common.serialization.BlobStorage; -import li.cil.oc2r.common.util.BlockLocation; -import li.cil.oc2r.common.util.SoundEvents; -import li.cil.oc2r.common.util.ThrottledSoundEmitter; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.oc2.common.util.BlockLocation; +import li.cil.oc2.common.util.SoundEvents; +import li.cil.oc2.common.util.ThrottledSoundEmitter; import li.cil.sedna.device.block.ByteBufferBlockDevice; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java index b4428638..4c405b6b 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.io.ByteStreams; -import li.cil.oc2r.common.util.BlockLocation; +import li.cil.oc2.common.util.BlockLocation; import li.cil.sedna.api.device.BlockDevice; import li.cil.sedna.device.block.ByteBufferBlockDevice; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/item/InternetCardDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/InternetCardDevice.java new file mode 100644 index 00000000..bc47e067 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/InternetCardDevice.java @@ -0,0 +1,104 @@ +package li.cil.oc2.common.bus.device.vm.item; + +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.inet.InternetAdapter; +import li.cil.oc2.common.inet.InternetConnection; +import li.cil.oc2.common.inet.InternetManagerImpl; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.item.ItemStack; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import javax.annotation.Nullable; + +public final class InternetCardDevice extends AbstractNetworkInterfaceDevice { + + private static final Logger LOGGER = LogManager.getLogger(); + + /////////////////////////////////////////////////////////////// + + private InternetConnection internetConnection = null; + + /////////////////////////////////////////////////////////////// + + public InternetCardDevice(final ItemStack identity) { + super(identity); + } + + /////////////////////////////////////////////////////////////// + + private void openInternetAccess() { + LOGGER.debug("Connect internet card"); + closeInternetAccess(); + final InternetAdapter internetAdapter = new InternetAdapterImpl(getNetworkInterface()); + InternetManagerImpl.getInstance() + .ifPresent(internetManager -> internetConnection = internetManager.connect(internetAdapter, internetAdapterState)); + } + + private void closeInternetAccess() { + if (internetConnection != null) { + LOGGER.debug("Disconnect internet card"); + internetConnection.stop(); + internetConnection = null; + } + } + + private Tag internetAdapterState = null; + + @Override + public void deserializeNBT(final CompoundTag tag) { + super.deserializeNBT(tag); + internetAdapterState = tag.get(Constants.INTERNET_ADAPTER_TAG_NAME); + } + + @Override + public CompoundTag serializeNBT() { + final CompoundTag tag = super.serializeNBT(); + final InternetConnection internetConnection = this.internetConnection; + if (internetConnection != null) { + internetConnection.saveAdapterState() + .ifPresent(adapterState -> { + tag.put(Constants.INTERNET_ADAPTER_TAG_NAME, adapterState); + // TODO: not sure, if this is meaningful + internetAdapterState = adapterState; + }); + } + return tag; + } + + @Override + public VMDeviceLoadResult mount(final VMContext context) { + final VMDeviceLoadResult result = super.mount(context); + openInternetAccess(); + return result; + } + + @Override + public void unmount() { + super.unmount(); + closeInternetAccess(); + } + + @Override + public void dispose() { + super.dispose(); + } + + private record InternetAdapterImpl(NetworkInterface networkInterface) implements InternetAdapter { + + @Nullable + @Override + public byte[] receiveEthernetFrame() { + return networkInterface.readEthernetFrame(); + } + + @Override + public void sendEthernetFrame(final byte[] frame) { + networkInterface.writeEthernetFrame(networkInterface, frame, 64); + } + } +} diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/MemoryDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/MemoryDevice.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/MemoryDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/MemoryDevice.java index efac476f..5ed766ef 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/MemoryDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/MemoryDevice.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; -import li.cil.oc2r.api.bus.device.ItemDevice; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.device.util.IdentityProxy; -import li.cil.oc2r.common.bus.device.util.OptionalAddress; -import li.cil.oc2r.common.serialization.BlobStorage; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.api.bus.device.ItemDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.device.util.IdentityProxy; +import li.cil.oc2.common.bus.device.util.OptionalAddress; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.oc2.common.util.NBTTagIds; import li.cil.sedna.api.device.PhysicalMemory; import li.cil.sedna.device.memory.ByteBufferMemory; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/NetworkInterfaceCardDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkInterfaceCardDevice.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/NetworkInterfaceCardDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkInterfaceCardDevice.java index 1b656b06..30d80ba6 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/NetworkInterfaceCardDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkInterfaceCardDevice.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; -import li.cil.oc2r.common.item.NetworkInterfaceCardItem; +import li.cil.oc2.common.item.NetworkInterfaceCardItem; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.capabilities.Capability; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/NetworkTunnelDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkTunnelDevice.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/bus/device/vm/item/NetworkTunnelDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkTunnelDevice.java index d86d0d8d..d75af425 100644 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/NetworkTunnelDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkTunnelDevice.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.bus.device.vm.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.api.bus.device.vm.context.VMContext; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.common.item.NetworkTunnelItem; -import li.cil.oc2r.common.util.TickUtils; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.api.bus.device.vm.context.VMContext; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.item.NetworkTunnelItem; +import li.cil.oc2.common.util.TickUtils; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.capabilities.Capability; diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/item/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/package-info.java new file mode 100644 index 00000000..802bfe1e --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.vm.item; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/vm/package-info.java new file mode 100644 index 00000000..d78998d9 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.vm; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/package-info.java b/src/main/java/li/cil/oc2/common/bus/package-info.java new file mode 100644 index 00000000..5c01aa7e --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/capabilities/Capabilities.java b/src/main/java/li/cil/oc2/common/capabilities/Capabilities.java similarity index 83% rename from src/main/java/li/cil/oc2r/common/capabilities/Capabilities.java rename to src/main/java/li/cil/oc2/common/capabilities/Capabilities.java index d02fa511..f285b50b 100644 --- a/src/main/java/li/cil/oc2r/common/capabilities/Capabilities.java +++ b/src/main/java/li/cil/oc2/common/capabilities/Capabilities.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.capabilities; +package li.cil.oc2.common.capabilities; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.api.capabilities.RedstoneEmitter; -import li.cil.oc2r.api.capabilities.Robot; -import li.cil.oc2r.api.capabilities.TerminalUserProvider; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.api.capabilities.RedstoneEmitter; +import li.cil.oc2.api.capabilities.Robot; +import li.cil.oc2.api.capabilities.TerminalUserProvider; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fluids.capability.IFluidHandler; diff --git a/src/main/java/li/cil/oc2r/common/capabilities/CapabilityRegistry.java b/src/main/java/li/cil/oc2/common/capabilities/CapabilityRegistry.java similarity index 84% rename from src/main/java/li/cil/oc2r/common/capabilities/CapabilityRegistry.java rename to src/main/java/li/cil/oc2/common/capabilities/CapabilityRegistry.java index 7e7ca0e2..8c1067e8 100644 --- a/src/main/java/li/cil/oc2r/common/capabilities/CapabilityRegistry.java +++ b/src/main/java/li/cil/oc2/common/capabilities/CapabilityRegistry.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.capabilities; +package li.cil.oc2.common.capabilities; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.api.capabilities.RedstoneEmitter; -import li.cil.oc2r.api.capabilities.Robot; -import li.cil.oc2r.api.capabilities.TerminalUserProvider; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.api.capabilities.RedstoneEmitter; +import li.cil.oc2.api.capabilities.Robot; +import li.cil.oc2.api.capabilities.TerminalUserProvider; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.CapabilityManager; import net.minecraftforge.common.capabilities.CapabilityToken; diff --git a/src/main/java/li/cil/oc2/common/capabilities/package-info.java b/src/main/java/li/cil/oc2/common/capabilities/package-info.java new file mode 100644 index 00000000..1083fb2c --- /dev/null +++ b/src/main/java/li/cil/oc2/common/capabilities/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.capabilities; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractComputerContainer.java b/src/main/java/li/cil/oc2/common/container/AbstractComputerContainer.java similarity index 83% rename from src/main/java/li/cil/oc2r/common/container/AbstractComputerContainer.java rename to src/main/java/li/cil/oc2/common/container/AbstractComputerContainer.java index a725675b..8446379c 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractComputerContainer.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractComputerContainer.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.ComputerPowerMessage; -import li.cil.oc2r.common.network.message.ComputerTerminalInputMessage; -import li.cil.oc2r.common.network.message.OpenComputerInventoryMessage; -import li.cil.oc2r.common.network.message.OpenComputerTerminalMessage; -import li.cil.oc2r.common.vm.Terminal; -import li.cil.oc2r.common.vm.VirtualMachine; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.ComputerPowerMessage; +import li.cil.oc2.common.network.message.ComputerTerminalInputMessage; +import li.cil.oc2.common.network.message.OpenComputerInventoryMessage; +import li.cil.oc2.common.network.message.OpenComputerTerminalMessage; +import li.cil.oc2.common.vm.Terminal; +import li.cil.oc2.common.vm.VirtualMachine; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.ContainerLevelAccess; import net.minecraft.world.inventory.MenuType; diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractContainer.java b/src/main/java/li/cil/oc2/common/container/AbstractContainer.java similarity index 99% rename from src/main/java/li/cil/oc2r/common/container/AbstractContainer.java rename to src/main/java/li/cil/oc2/common/container/AbstractContainer.java index edc853cf..82c205da 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractContainer.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractContainer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractDeviceItemStackHandler.java b/src/main/java/li/cil/oc2/common/container/AbstractDeviceItemStackHandler.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/container/AbstractDeviceItemStackHandler.java rename to src/main/java/li/cil/oc2/common/container/AbstractDeviceItemStackHandler.java index 299ac7b0..e3d3015f 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractDeviceItemStackHandler.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractDeviceItemStackHandler.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.bus.AbstractItemDeviceBusElement; +import li.cil.oc2.common.bus.AbstractItemDeviceBusElement; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractMachineContainer.java b/src/main/java/li/cil/oc2/common/container/AbstractMachineContainer.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/container/AbstractMachineContainer.java rename to src/main/java/li/cil/oc2/common/container/AbstractMachineContainer.java index 9959087e..4ecd7003 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractMachineContainer.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractMachineContainer.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.vm.VirtualMachine; +import li.cil.oc2.common.vm.VirtualMachine; import net.minecraft.world.inventory.MenuType; public abstract class AbstractMachineContainer extends AbstractContainer { diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractMachineTerminalContainer.java b/src/main/java/li/cil/oc2/common/container/AbstractMachineTerminalContainer.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/container/AbstractMachineTerminalContainer.java rename to src/main/java/li/cil/oc2/common/container/AbstractMachineTerminalContainer.java index e6f0f78d..3c96f5fd 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractMachineTerminalContainer.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractMachineTerminalContainer.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.vm.Terminal; +import li.cil.oc2.common.vm.Terminal; import net.minecraft.world.inventory.MenuType; import java.nio.ByteBuffer; diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractMonitorContainer.java b/src/main/java/li/cil/oc2/common/container/AbstractMonitorContainer.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/container/AbstractMonitorContainer.java rename to src/main/java/li/cil/oc2/common/container/AbstractMonitorContainer.java index 914e294d..7cdf219b 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractMonitorContainer.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractMonitorContainer.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.*; -import li.cil.oc2r.common.vm.VirtualMachine; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.*; +import li.cil.oc2.common.vm.VirtualMachine; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.ContainerLevelAccess; import net.minecraft.world.inventory.MenuType; diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractRobotContainer.java b/src/main/java/li/cil/oc2/common/container/AbstractRobotContainer.java similarity index 82% rename from src/main/java/li/cil/oc2r/common/container/AbstractRobotContainer.java rename to src/main/java/li/cil/oc2/common/container/AbstractRobotContainer.java index 046c5fc9..267d61fb 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractRobotContainer.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractRobotContainer.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.OpenRobotInventoryMessage; -import li.cil.oc2r.common.network.message.OpenRobotTerminalMessage; -import li.cil.oc2r.common.network.message.RobotPowerMessage; -import li.cil.oc2r.common.network.message.RobotTerminalInputMessage; -import li.cil.oc2r.common.vm.Terminal; -import li.cil.oc2r.common.vm.VirtualMachine; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.OpenRobotInventoryMessage; +import li.cil.oc2.common.network.message.OpenRobotTerminalMessage; +import li.cil.oc2.common.network.message.RobotPowerMessage; +import li.cil.oc2.common.network.message.RobotTerminalInputMessage; +import li.cil.oc2.common.vm.Terminal; +import li.cil.oc2.common.vm.VirtualMachine; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.MenuType; diff --git a/src/main/java/li/cil/oc2r/common/container/AbstractTypedDeviceItemStackHandler.java b/src/main/java/li/cil/oc2/common/container/AbstractTypedDeviceItemStackHandler.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/container/AbstractTypedDeviceItemStackHandler.java rename to src/main/java/li/cil/oc2/common/container/AbstractTypedDeviceItemStackHandler.java index 0ebfce69..012a462d 100644 --- a/src/main/java/li/cil/oc2r/common/container/AbstractTypedDeviceItemStackHandler.java +++ b/src/main/java/li/cil/oc2/common/container/AbstractTypedDeviceItemStackHandler.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.DeviceType; import net.minecraft.world.item.ItemStack; public abstract class AbstractTypedDeviceItemStackHandler extends AbstractDeviceItemStackHandler { diff --git a/src/main/java/li/cil/oc2r/common/container/ComputerInventoryContainer.java b/src/main/java/li/cil/oc2/common/container/ComputerInventoryContainer.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/container/ComputerInventoryContainer.java rename to src/main/java/li/cil/oc2/common/container/ComputerInventoryContainer.java index 72b3e91b..2e8b99ed 100644 --- a/src/main/java/li/cil/oc2r/common/container/ComputerInventoryContainer.java +++ b/src/main/java/li/cil/oc2/common/container/ComputerInventoryContainer.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.vm.VMItemStackHandlers; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.vm.VMItemStackHandlers; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/container/ComputerTerminalContainer.java b/src/main/java/li/cil/oc2/common/container/ComputerTerminalContainer.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/container/ComputerTerminalContainer.java rename to src/main/java/li/cil/oc2/common/container/ComputerTerminalContainer.java index 3b09985b..b96a3207 100644 --- a/src/main/java/li/cil/oc2r/common/container/ComputerTerminalContainer.java +++ b/src/main/java/li/cil/oc2/common/container/ComputerTerminalContainer.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.bus.CommonDeviceBusController; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/container/Containers.java b/src/main/java/li/cil/oc2/common/container/Containers.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/container/Containers.java rename to src/main/java/li/cil/oc2/common/container/Containers.java index 7156b1a7..a25eaeab 100644 --- a/src/main/java/li/cil/oc2r/common/container/Containers.java +++ b/src/main/java/li/cil/oc2/common/container/Containers.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.world.inventory.MenuType; import net.minecraftforge.common.extensions.IForgeMenuType; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; diff --git a/src/main/java/li/cil/oc2r/common/container/DeviceTypeSlot.java b/src/main/java/li/cil/oc2/common/container/DeviceTypeSlot.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/container/DeviceTypeSlot.java rename to src/main/java/li/cil/oc2/common/container/DeviceTypeSlot.java index 5eedc3db..7adc1a2b 100644 --- a/src/main/java/li/cil/oc2r/common/container/DeviceTypeSlot.java +++ b/src/main/java/li/cil/oc2/common/container/DeviceTypeSlot.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; import com.mojang.datafixers.util.Pair; -import li.cil.oc2r.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.DeviceType; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.inventory.InventoryMenu; diff --git a/src/main/java/li/cil/oc2r/common/container/DeviceTypeSlotItemHandler.java b/src/main/java/li/cil/oc2/common/container/DeviceTypeSlotItemHandler.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/container/DeviceTypeSlotItemHandler.java rename to src/main/java/li/cil/oc2/common/container/DeviceTypeSlotItemHandler.java index ea3c018e..a98116b1 100644 --- a/src/main/java/li/cil/oc2r/common/container/DeviceTypeSlotItemHandler.java +++ b/src/main/java/li/cil/oc2/common/container/DeviceTypeSlotItemHandler.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; import com.mojang.datafixers.util.Pair; -import li.cil.oc2r.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.DeviceType; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.InventoryMenu; import net.minecraftforge.items.IItemHandler; diff --git a/src/main/java/li/cil/oc2r/common/container/FixedSizeItemStackHandler.java b/src/main/java/li/cil/oc2/common/container/FixedSizeItemStackHandler.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/container/FixedSizeItemStackHandler.java rename to src/main/java/li/cil/oc2/common/container/FixedSizeItemStackHandler.java index f9f592a1..e6171b2c 100644 --- a/src/main/java/li/cil/oc2r/common/container/FixedSizeItemStackHandler.java +++ b/src/main/java/li/cil/oc2/common/container/FixedSizeItemStackHandler.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/container/IntPrecisionContainerData.java b/src/main/java/li/cil/oc2/common/container/IntPrecisionContainerData.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/container/IntPrecisionContainerData.java rename to src/main/java/li/cil/oc2/common/container/IntPrecisionContainerData.java index 23da0140..0bc99a3e 100644 --- a/src/main/java/li/cil/oc2r/common/container/IntPrecisionContainerData.java +++ b/src/main/java/li/cil/oc2/common/container/IntPrecisionContainerData.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; import net.minecraft.world.inventory.ContainerData; import net.minecraft.world.inventory.SimpleContainerData; diff --git a/src/main/java/li/cil/oc2r/common/container/LockedSlot.java b/src/main/java/li/cil/oc2/common/container/LockedSlot.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/container/LockedSlot.java rename to src/main/java/li/cil/oc2/common/container/LockedSlot.java index 6da31ea3..94963092 100644 --- a/src/main/java/li/cil/oc2r/common/container/LockedSlot.java +++ b/src/main/java/li/cil/oc2/common/container/LockedSlot.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; import net.minecraft.world.Container; import net.minecraft.world.entity.player.Player; diff --git a/src/main/java/li/cil/oc2r/common/container/MonitorDisplayContainer.java b/src/main/java/li/cil/oc2/common/container/MonitorDisplayContainer.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/container/MonitorDisplayContainer.java rename to src/main/java/li/cil/oc2/common/container/MonitorDisplayContainer.java index 2ca6c3e5..db172181 100644 --- a/src/main/java/li/cil/oc2r/common/container/MonitorDisplayContainer.java +++ b/src/main/java/li/cil/oc2/common/container/MonitorDisplayContainer.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/container/NetworkTunnelContainer.java b/src/main/java/li/cil/oc2/common/container/NetworkTunnelContainer.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/container/NetworkTunnelContainer.java rename to src/main/java/li/cil/oc2/common/container/NetworkTunnelContainer.java index d67454de..c24db235 100644 --- a/src/main/java/li/cil/oc2r/common/container/NetworkTunnelContainer.java +++ b/src/main/java/li/cil/oc2/common/container/NetworkTunnelContainer.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.common.item.NetworkTunnelItem; -import li.cil.oc2r.common.tags.ItemTags; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.common.item.NetworkTunnelItem; +import li.cil.oc2.common.tags.ItemTags; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; diff --git a/src/main/java/li/cil/oc2r/common/container/RobotInventoryContainer.java b/src/main/java/li/cil/oc2/common/container/RobotInventoryContainer.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/container/RobotInventoryContainer.java rename to src/main/java/li/cil/oc2/common/container/RobotInventoryContainer.java index 71009f59..43ad00c2 100644 --- a/src/main/java/li/cil/oc2r/common/container/RobotInventoryContainer.java +++ b/src/main/java/li/cil/oc2/common/container/RobotInventoryContainer.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.vm.VMItemStackHandlers; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.vm.VMItemStackHandlers; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; diff --git a/src/main/java/li/cil/oc2r/common/container/RobotSlot.java b/src/main/java/li/cil/oc2/common/container/RobotSlot.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/container/RobotSlot.java rename to src/main/java/li/cil/oc2/common/container/RobotSlot.java index b32c8c68..360c55fe 100644 --- a/src/main/java/li/cil/oc2r/common/container/RobotSlot.java +++ b/src/main/java/li/cil/oc2/common/container/RobotSlot.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.IItemHandler; diff --git a/src/main/java/li/cil/oc2r/common/container/RobotTerminalContainer.java b/src/main/java/li/cil/oc2/common/container/RobotTerminalContainer.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/container/RobotTerminalContainer.java rename to src/main/java/li/cil/oc2/common/container/RobotTerminalContainer.java index 01ddf325..31f80e76 100644 --- a/src/main/java/li/cil/oc2r/common/container/RobotTerminalContainer.java +++ b/src/main/java/li/cil/oc2/common/container/RobotTerminalContainer.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; -import li.cil.oc2r.client.gui.Sprites; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.entity.Robot; +import li.cil.oc2.client.gui.Sprites; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.entity.Robot; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; diff --git a/src/main/java/li/cil/oc2r/common/container/TypedItemStackHandler.java b/src/main/java/li/cil/oc2/common/container/TypedItemStackHandler.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/container/TypedItemStackHandler.java rename to src/main/java/li/cil/oc2/common/container/TypedItemStackHandler.java index 5a2ffb38..c5a0b33d 100644 --- a/src/main/java/li/cil/oc2r/common/container/TypedItemStackHandler.java +++ b/src/main/java/li/cil/oc2/common/container/TypedItemStackHandler.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.container; +package li.cil.oc2.common.container; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; diff --git a/src/main/java/li/cil/oc2/common/container/package-info.java b/src/main/java/li/cil/oc2/common/container/package-info.java new file mode 100644 index 00000000..9a3c9402 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/container/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.container; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/energy/EnergyStorageItemStack.java b/src/main/java/li/cil/oc2/common/energy/EnergyStorageItemStack.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/energy/EnergyStorageItemStack.java rename to src/main/java/li/cil/oc2/common/energy/EnergyStorageItemStack.java index 5b91bcd2..c3a902ff 100644 --- a/src/main/java/li/cil/oc2r/common/energy/EnergyStorageItemStack.java +++ b/src/main/java/li/cil/oc2/common/energy/EnergyStorageItemStack.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.energy; +package li.cil.oc2.common.energy; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.util.NBTUtils; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.util.NBTUtils; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.capabilities.Capability; diff --git a/src/main/java/li/cil/oc2r/common/energy/FixedEnergyStorage.java b/src/main/java/li/cil/oc2/common/energy/FixedEnergyStorage.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/energy/FixedEnergyStorage.java rename to src/main/java/li/cil/oc2/common/energy/FixedEnergyStorage.java index 0a11c7f9..652d95f7 100644 --- a/src/main/java/li/cil/oc2r/common/energy/FixedEnergyStorage.java +++ b/src/main/java/li/cil/oc2/common/energy/FixedEnergyStorage.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.energy; +package li.cil.oc2.common.energy; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/li/cil/oc2/common/energy/package-info.java b/src/main/java/li/cil/oc2/common/energy/package-info.java new file mode 100644 index 00000000..d26d50ce --- /dev/null +++ b/src/main/java/li/cil/oc2/common/energy/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.energy; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/entity/Entities.java b/src/main/java/li/cil/oc2/common/entity/Entities.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/entity/Entities.java rename to src/main/java/li/cil/oc2/common/entity/Entities.java index 999d0e03..4bcb392c 100644 --- a/src/main/java/li/cil/oc2r/common/entity/Entities.java +++ b/src/main/java/li/cil/oc2/common/entity/Entities.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity; +package li.cil.oc2.common.entity; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; diff --git a/src/main/java/li/cil/oc2r/common/entity/Robot.java b/src/main/java/li/cil/oc2/common/entity/Robot.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/entity/Robot.java rename to src/main/java/li/cil/oc2/common/entity/Robot.java index a69428a3..584f24da 100644 --- a/src/main/java/li/cil/oc2r/common/entity/Robot.java +++ b/src/main/java/li/cil/oc2/common/entity/Robot.java @@ -1,35 +1,35 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity; +package li.cil.oc2.common.entity; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.api.bus.device.object.Callback; -import li.cil.oc2r.api.bus.device.object.ObjectDevice; -import li.cil.oc2r.api.bus.device.object.Parameter; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.api.capabilities.TerminalUserProvider; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.bus.AbstractDeviceBusElement; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.bus.device.util.Devices; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.container.FixedSizeItemStackHandler; -import li.cil.oc2r.common.container.RobotInventoryContainer; -import li.cil.oc2r.common.container.RobotTerminalContainer; -import li.cil.oc2r.common.energy.FixedEnergyStorage; -import li.cil.oc2r.common.entity.robot.*; -import li.cil.oc2r.common.integration.Wrenches; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.network.Network; -import li.cil.oc2r.common.network.message.*; -import li.cil.oc2r.common.serialization.NBTSerialization; -import li.cil.oc2r.common.util.LevelUtils; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.util.NBTUtils; -import li.cil.oc2r.common.util.TerminalUtils; -import li.cil.oc2r.common.vm.*; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.api.bus.device.object.Callback; +import li.cil.oc2.api.bus.device.object.ObjectDevice; +import li.cil.oc2.api.bus.device.object.Parameter; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.capabilities.TerminalUserProvider; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.AbstractDeviceBusElement; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.bus.device.util.Devices; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.container.FixedSizeItemStackHandler; +import li.cil.oc2.common.container.RobotInventoryContainer; +import li.cil.oc2.common.container.RobotTerminalContainer; +import li.cil.oc2.common.energy.FixedEnergyStorage; +import li.cil.oc2.common.entity.robot.*; +import li.cil.oc2.common.integration.Wrenches; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.network.Network; +import li.cil.oc2.common.network.message.*; +import li.cil.oc2.common.serialization.NBTSerialization; +import li.cil.oc2.common.util.LevelUtils; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTUtils; +import li.cil.oc2.common.util.TerminalUtils; +import li.cil.oc2.common.vm.*; import net.minecraft.core.BlockPos; import net.minecraft.core.Cursor3D; import net.minecraft.core.Direction; @@ -83,9 +83,9 @@ import java.util.*; import java.util.function.Consumer; import static java.util.Collections.singleton; -import static li.cil.oc2r.common.Constants.*; +import static li.cil.oc2.common.Constants.*; -public final class Robot extends Entity implements li.cil.oc2r.api.capabilities.Robot, TerminalUserProvider { +public final class Robot extends Entity implements li.cil.oc2.api.capabilities.Robot, TerminalUserProvider { public static final EntityDataAccessor TARGET_POSITION = SynchedEntityData.defineId(Robot.class, EntityDataSerializers.BLOCK_POS); public static final EntityDataAccessor TARGET_DIRECTION = SynchedEntityData.defineId(Robot.class, EntityDataSerializers.DIRECTION); public static final EntityDataAccessor SELECTED_SLOT = SynchedEntityData.defineId(Robot.class, EntityDataSerializers.BYTE); diff --git a/src/main/java/li/cil/oc2/common/entity/package-info.java b/src/main/java/li/cil/oc2/common/entity/package-info.java new file mode 100644 index 00000000..92a5fd21 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/entity/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.entity; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/AbstractRobotAction.java b/src/main/java/li/cil/oc2/common/entity/robot/AbstractRobotAction.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/entity/robot/AbstractRobotAction.java rename to src/main/java/li/cil/oc2/common/entity/robot/AbstractRobotAction.java index 734c58a4..0095e424 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/AbstractRobotAction.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/AbstractRobotAction.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; -import li.cil.oc2r.common.entity.Robot; +import li.cil.oc2.common.entity.Robot; import net.minecraft.nbt.CompoundTag; public abstract class AbstractRobotAction { diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/AbstractRobotActionType.java b/src/main/java/li/cil/oc2/common/entity/robot/AbstractRobotActionType.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/entity/robot/AbstractRobotActionType.java rename to src/main/java/li/cil/oc2/common/entity/robot/AbstractRobotActionType.java index cc60a7d2..23d3a736 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/AbstractRobotActionType.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/AbstractRobotActionType.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; -import li.cil.oc2r.common.entity.Robot; +import li.cil.oc2.common.entity.Robot; import net.minecraft.nbt.CompoundTag; public abstract class AbstractRobotActionType { diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/MovementDirection.java b/src/main/java/li/cil/oc2/common/entity/robot/MovementDirection.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/entity/robot/MovementDirection.java rename to src/main/java/li/cil/oc2/common/entity/robot/MovementDirection.java index e95f04a2..a928f395 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/MovementDirection.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/MovementDirection.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/RobotActionResult.java b/src/main/java/li/cil/oc2/common/entity/robot/RobotActionResult.java similarity index 73% rename from src/main/java/li/cil/oc2r/common/entity/robot/RobotActionResult.java rename to src/main/java/li/cil/oc2/common/entity/robot/RobotActionResult.java index 467213ac..9218ff55 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/RobotActionResult.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/RobotActionResult.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; public enum RobotActionResult { INCOMPLETE, diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/RobotActions.java b/src/main/java/li/cil/oc2/common/entity/robot/RobotActions.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/entity/robot/RobotActions.java rename to src/main/java/li/cil/oc2/common/entity/robot/RobotActions.java index cde76a34..44a5e8aa 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/RobotActions.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/RobotActions.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; -import li.cil.oc2r.common.entity.Robot; +import li.cil.oc2.common.entity.Robot; import net.minecraft.nbt.CompoundTag; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/RobotMovementAction.java b/src/main/java/li/cil/oc2/common/entity/robot/RobotMovementAction.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/entity/robot/RobotMovementAction.java rename to src/main/java/li/cil/oc2/common/entity/robot/RobotMovementAction.java index 8fd01aaf..c7240c33 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/RobotMovementAction.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/RobotMovementAction.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; -import li.cil.oc2r.common.entity.Entities; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.util.NBTUtils; -import li.cil.oc2r.common.util.TickUtils; +import li.cil.oc2.common.entity.Entities; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTUtils; +import li.cil.oc2.common.util.TickUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/RobotMovementActionType.java b/src/main/java/li/cil/oc2/common/entity/robot/RobotMovementActionType.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/entity/robot/RobotMovementActionType.java rename to src/main/java/li/cil/oc2/common/entity/robot/RobotMovementActionType.java index 0b6430d5..10048178 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/RobotMovementActionType.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/RobotMovementActionType.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; -import li.cil.oc2r.common.entity.Robot; +import li.cil.oc2.common.entity.Robot; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/RobotRotationAction.java b/src/main/java/li/cil/oc2/common/entity/robot/RobotRotationAction.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/entity/robot/RobotRotationAction.java rename to src/main/java/li/cil/oc2/common/entity/robot/RobotRotationAction.java index b7b2bdbc..4be8dc6a 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/RobotRotationAction.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/RobotRotationAction.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.util.NBTUtils; -import li.cil.oc2r.common.util.TickUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTUtils; +import li.cil.oc2.common.util.TickUtils; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/RobotRotationActionType.java b/src/main/java/li/cil/oc2/common/entity/robot/RobotRotationActionType.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/entity/robot/RobotRotationActionType.java rename to src/main/java/li/cil/oc2/common/entity/robot/RobotRotationActionType.java index 99d75aed..29ab37d8 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/RobotRotationActionType.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/RobotRotationActionType.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; -import li.cil.oc2r.common.entity.Robot; +import li.cil.oc2.common.entity.Robot; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/RotationDirection.java b/src/main/java/li/cil/oc2/common/entity/robot/RotationDirection.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/entity/robot/RotationDirection.java rename to src/main/java/li/cil/oc2/common/entity/robot/RotationDirection.java index 140d52a5..c4c39a24 100644 --- a/src/main/java/li/cil/oc2r/common/entity/robot/RotationDirection.java +++ b/src/main/java/li/cil/oc2/common/entity/robot/RotationDirection.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.entity.robot; +package li.cil.oc2.common.entity.robot; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2/common/entity/robot/package-info.java b/src/main/java/li/cil/oc2/common/entity/robot/package-info.java new file mode 100644 index 00000000..4c4d8f26 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/entity/robot/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.entity.robot; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/ext/MinecraftExt.java b/src/main/java/li/cil/oc2/common/ext/MinecraftExt.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/ext/MinecraftExt.java rename to src/main/java/li/cil/oc2/common/ext/MinecraftExt.java index 4acbfa83..6234a57f 100644 --- a/src/main/java/li/cil/oc2r/common/ext/MinecraftExt.java +++ b/src/main/java/li/cil/oc2/common/ext/MinecraftExt.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.ext; +package li.cil.oc2.common.ext; import com.mojang.blaze3d.pipeline.RenderTarget; diff --git a/src/main/java/li/cil/oc2/common/ext/package-info.java b/src/main/java/li/cil/oc2/common/ext/package-info.java new file mode 100644 index 00000000..e7fc99ec --- /dev/null +++ b/src/main/java/li/cil/oc2/common/ext/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.ext; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/inet/AddressParseException.java b/src/main/java/li/cil/oc2/common/inet/AddressParseException.java new file mode 100644 index 00000000..03412c31 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/AddressParseException.java @@ -0,0 +1,7 @@ +package li.cil.oc2.common.inet; + +public class AddressParseException extends Exception { + public AddressParseException(final String message) { + super(message); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DatagramSessionBase.java b/src/main/java/li/cil/oc2/common/inet/DatagramSessionBase.java new file mode 100644 index 00000000..b13a19f4 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DatagramSessionBase.java @@ -0,0 +1,33 @@ +package li.cil.oc2.common.inet; + +public abstract class DatagramSessionBase extends SessionBase { + + private States state = States.NEW; + + public DatagramSessionBase(final int ipAddress, final short port) { + super(ipAddress, port); + } + + @Override + public void close() { + switch (state) { + case NEW -> state = States.REJECT; + case ESTABLISHED -> state = States.FINISH; + default -> throw new IllegalStateException(); + } + } + + @Override + public States getState() { + return state; + } + + @Override + public void expire() { + state = States.EXPIRED; + } + + public void setState(final States state) { + this.state = state; + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DatagramSessionDiscriminator.java b/src/main/java/li/cil/oc2/common/inet/DatagramSessionDiscriminator.java new file mode 100644 index 00000000..d8d8c57a --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DatagramSessionDiscriminator.java @@ -0,0 +1,17 @@ +package li.cil.oc2.common.inet; + +final class DatagramSessionDiscriminator extends SocketSessionDiscriminator { + public DatagramSessionDiscriminator( + final int srcIpAddress, + final short srcPort, + final int dstIpAddress, + final short dstPort + ) { + super(srcIpAddress, srcPort, dstIpAddress, dstPort); + } + + @Override + String protocolName() { + return "UDP"; + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DatagramSessionImpl.java b/src/main/java/li/cil/oc2/common/inet/DatagramSessionImpl.java new file mode 100644 index 00000000..f7687ec6 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DatagramSessionImpl.java @@ -0,0 +1,17 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.session.DatagramSession; + +public final class DatagramSessionImpl extends DatagramSessionBase implements DatagramSession { + private final DatagramSessionDiscriminator discriminator; + + public DatagramSessionImpl(final int ipAddress, final short port, final DatagramSessionDiscriminator discriminator) { + super(ipAddress, port); + this.discriminator = discriminator; + } + + @Override + public DatagramSessionDiscriminator getDiscriminator() { + return discriminator; + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DefaultInternetProvider.java b/src/main/java/li/cil/oc2/common/inet/DefaultInternetProvider.java new file mode 100644 index 00000000..06ef8094 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DefaultInternetProvider.java @@ -0,0 +1,17 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.SessionLayer; +import li.cil.oc2.api.inet.provider.SessionLayerInternetProvider; + +public final class DefaultInternetProvider extends SessionLayerInternetProvider { + public static final DefaultInternetProvider INSTANCE = new DefaultInternetProvider(); + + private DefaultInternetProvider() { + } + + @Override + protected SessionLayer provideSessionLayer(final LayerParameters layerParameters) { + return new DefaultSessionLayer(layerParameters); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DefaultLinkLocalLayer.java b/src/main/java/li/cil/oc2/common/inet/DefaultLinkLocalLayer.java new file mode 100644 index 00000000..9b06ae08 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DefaultLinkLocalLayer.java @@ -0,0 +1,208 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.LinkLocalLayer; +import li.cil.oc2.api.inet.layer.NetworkLayer; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.nio.ByteBuffer; +import java.util.Optional; +import java.util.Random; + +public final class DefaultLinkLocalLayer implements LinkLocalLayer { + private static final Logger LOGGER = LogManager.getLogger(); + private static final Random random = new Random(); + + /////////////////////////////////////////////////// + + private static final short MAC_PREFIX = 0x5ed1; + + private static final short PROTOCOL_ARP = 0x0806; + + private static final short HW_TYPE_ETHERNET = 0x0001; + + private static final int ARP_MESSAGE_SIZE = 28; + private static final int ARP_ADDRESS_TYPE = (HW_TYPE_ETHERNET << 16) | NetworkLayer.PROTOCOL_IPv4; + private static final short ARP_ADDRESSES_SIZES = (6 << 8) | 4; + + private static final short ARP_REQUEST = 0x0001; + private static final short ARP_RESPONSE = 0x0002; + + private static final int IP_VER4 = 4; // obviously + private static final int IP_VER6 = 6; // obviously + + private static final String MAC_ADDRESS_TAG = "MACAddress"; + private static final String IPv4_ADDRESS_TAG = "IPv4Address"; + + /////////////////////////////////////////////////// + + private final NetworkLayer networkLayer; + + private MacAddress myMacAddress = new MacAddress(MAC_PREFIX, random.nextInt()); + private int myIpV4Address = -1; + + private short cardMacPrefix = -1; + private int cardMacAddress = -1; + private int cardIpAddress = -1; + + private boolean needArpResponse = false; + + /////////////////////////////////////////////////// + + public DefaultLinkLocalLayer(final LayerParameters layerParameters, final NetworkLayer networkLayer) { + layerParameters.getSavedState().ifPresent(tag -> { + if (tag instanceof CompoundTag layerState) { + final String ipAddressString = layerState.getString(IPv4_ADDRESS_TAG); + if (!ipAddressString.isEmpty()) { + try { + myIpV4Address = InetUtils.parseIpv4Address(ipAddressString); + } catch (final AddressParseException exception) { + LOGGER.error("Failed to parse internet adapter IPv4 address", exception); + } + } + final String macAddressString = layerState.getString(MAC_ADDRESS_TAG); + if (!macAddressString.isEmpty()) { + try { + myMacAddress = InetUtils.parseMacAddress(macAddressString); + } catch (final AddressParseException exception) { + LOGGER.error("Failed to parse internet adapter MAC address from NBT", exception); + } + } + } + }); + this.networkLayer = networkLayer; + } + + private void prepareEthernetHeader(final ByteBuffer frame, final short protocol) { + // Prepare ethernet header + frame.putShort(cardMacPrefix); + frame.putInt(cardMacAddress); + frame.putShort(myMacAddress.prefix()); + frame.putInt(myMacAddress.address()); + frame.putShort(protocol); + } + + @Override + public Optional onSave() { + final CompoundTag layerState = new CompoundTag(); + if (myIpV4Address != -1) { + final String ipAddressString = InetUtils.ipv4AddressToString(myIpV4Address); + layerState.putString(IPv4_ADDRESS_TAG, ipAddressString); + } + layerState.putString(MAC_ADDRESS_TAG, InetUtils.macAddressToString(myMacAddress)); + networkLayer.onSave() + .ifPresent(networkLayerState -> layerState.put(NetworkLayer.LAYER_NAME, networkLayerState)); + return Optional.of(layerState); + } + + @Override + public void onStop() { + networkLayer.onStop(); + } + + @Override + public boolean receiveEthernetFrame(final ByteBuffer frame) { + if (needArpResponse) { + // Make ARP response before anything else + needArpResponse = false; + + prepareEthernetHeader(frame, PROTOCOL_ARP); + + // Prepare ARP response + frame.putInt(ARP_ADDRESS_TYPE); + frame.putShort(ARP_ADDRESSES_SIZES); + frame.putShort(ARP_RESPONSE); + frame.putShort(myMacAddress.prefix()); + frame.putInt(myMacAddress.address()); + frame.putInt(myIpV4Address); + frame.putShort(cardMacPrefix); + frame.putInt(cardMacAddress); + frame.putInt(cardIpAddress); + frame.position(frame.position() - FRAME_HEADER_SIZE - ARP_MESSAGE_SIZE); + LOGGER.trace("ARP message sent"); + } else { + // Wrap IP message + frame.position(frame.position() + FRAME_HEADER_SIZE); + short protocol = networkLayer.receivePacket(frame); + if (protocol == NetworkLayer.PROTOCOL_NONE) { + return false; + } + if (protocol == NetworkLayer.PROTOCOL_IP) { + // This code block exists to make Network layer implementation a bit easier + final int version = Byte.toUnsignedInt(frame.get(frame.position())) >>> 4; + if (version == IP_VER6) { + protocol = NetworkLayer.PROTOCOL_IPv6; + } + } + frame.position(frame.position() - FRAME_HEADER_SIZE); + prepareEthernetHeader(frame, protocol); + frame.position(frame.position() - FRAME_HEADER_SIZE); + LOGGER.trace("IP message sent"); + } + return true; + } + + @Override + public void sendEthernetFrame(final ByteBuffer frame) { + /// Read ethernet header + if (frame.remaining() < FRAME_HEADER_SIZE) { + LOGGER.trace("Ethernet header too low"); + return; + } + // Get destination + final short dstMacPrefix = frame.getShort(); + final int dstMacAddress = frame.getInt(); + // Get source + final short srcMacPrefix = frame.getShort(); + final int srcMacAddress = frame.getInt(); + // Get protocol type + final short protocol = frame.getShort(); + + /// Protocol action + if (protocol == PROTOCOL_ARP) { + LOGGER.trace("ARP message received"); + /// ARP message verification + if (frame.remaining() < ARP_MESSAGE_SIZE) { + return; + } + final int hwAndProtocolAddressesTypes = frame.getInt(); + if (hwAndProtocolAddressesTypes != ARP_ADDRESS_TYPE) { + LOGGER.trace("Wrong ARP address type, drop"); + return; + } + final short addressesSizes = frame.getShort(); + if (addressesSizes != ARP_ADDRESSES_SIZES) { + LOGGER.trace("Wrong ARP address size, drop"); + return; + } + final short messageType = frame.getShort(); + if (messageType != ARP_REQUEST) { + LOGGER.trace("Not an ARP request, drop"); + return; + } + final short senderMacPrefix = frame.getShort(); + final int senderMacAddress = frame.getInt(); + if (senderMacPrefix != srcMacPrefix || senderMacAddress != srcMacAddress) { + LOGGER.trace("Wrong sender, drop"); + return; + } + + /// Valid message, extracting useful data + cardIpAddress = frame.getInt(); + // Do not care what target MAC address is + frame.getShort(); + frame.getInt(); + myIpV4Address = frame.getInt(); + cardMacPrefix = senderMacPrefix; + cardMacAddress = senderMacAddress; + needArpResponse = true; + } else { + LOGGER.trace("Network message received"); + /// Network message forwarding + networkLayer.sendPacket(protocol, frame); + } + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DefaultNetworkLayer.java b/src/main/java/li/cil/oc2/common/inet/DefaultNetworkLayer.java new file mode 100644 index 00000000..e5b982b6 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DefaultNetworkLayer.java @@ -0,0 +1,148 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.*; +import li.cil.oc2.api.inet.layer.NetworkLayer; +import li.cil.oc2.api.inet.layer.TransportLayer; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.nio.ByteBuffer; +import java.util.Optional; +import java.util.Random; + +public final class DefaultNetworkLayer implements NetworkLayer { + private static final Logger LOGGER = LogManager.getLogger(); + + private static final Random random = new Random(); + + //////////////////////////////////////////////////////////////////////// + + private static final int IPv4_HEADER_SIZE = 20; + private static final int IPv4_VERSION = 4; // obviously... + + //////////////////////////////////////////////////////////////////////// + + private final TransportLayer transportLayer; + + private final TransportMessage inMessage = new TransportMessage(); + private final TransportMessage outMessage = new TransportMessage(); + + private final InternetManagerImpl internetManager; + + public DefaultNetworkLayer(final LayerParameters layerParameters, final TransportLayer transportLayer) { + this.internetManager = (InternetManagerImpl) layerParameters.getInternetManager(); + this.transportLayer = transportLayer; + } + + @Override + public Optional onSave() { + return transportLayer.onSave().map(transportLayerState -> { + final CompoundTag networkLayerState = new CompoundTag(); + networkLayerState.put(TransportLayer.LAYER_NAME, transportLayerState); + return networkLayerState; + }); + } + + @Override + public void onStop() { + transportLayer.onStop(); + } + + @Override + public short receivePacket(final ByteBuffer packet) { + // Try to receive something + packet.position(packet.position() + IPv4_HEADER_SIZE); + inMessage.initializeBuffer(packet); + final byte protocol = transportLayer.receiveTransportMessage(inMessage); + if (protocol == TransportLayer.PROTOCOL_NONE || !inMessage.isIpv4()) { + return PROTOCOL_NONE; + } + + // Prepare IP packet + final int srcIpAddress = inMessage.getSrcIpv4Address(); + final int dstIpAddress = inMessage.getDstIpv4Address(); + final int bodySize = packet.remaining(); + + packet.position(packet.position() - IPv4_HEADER_SIZE); + packet.put((byte) ((IPv4_VERSION << 4) | 5)); + packet.put((byte) 0); + packet.putShort((short) (IPv4_HEADER_SIZE + bodySize)); + packet.putShort((short) random.nextInt()); + packet.putShort((short) 0); + packet.put(inMessage.getTtl()); + packet.put(protocol); + packet.putShort((short) 0); + packet.putInt(srcIpAddress); + packet.putInt(dstIpAddress); + + // Calculate header checksum + packet.position(packet.position() - IPv4_HEADER_SIZE); + short checksum = InetUtils.rfc1071Checksum(packet, IPv4_HEADER_SIZE); + packet.position(packet.position() - 10); + packet.putShort(checksum); + packet.position(packet.position() + 8 - IPv4_HEADER_SIZE); + + return PROTOCOL_IPv4; + } + + @Override + public void sendPacket(final short protocol, final ByteBuffer packet) { + if (protocol != PROTOCOL_IPv4) { + LOGGER.trace("Unsupported network protocol"); + return; + } + if (packet.remaining() < IPv4_HEADER_SIZE) { + LOGGER.trace("IP header is too small"); + return; + } + final byte versionAndIhl = packet.get(); + if ((versionAndIhl >>> 4) != IPv4_VERSION) { + LOGGER.trace("Invalid protocol version"); + return; + } + final int headerSize = (versionAndIhl & 0xF) * 4; + if (headerSize < IPv4_HEADER_SIZE || packet.remaining() < headerSize) { + LOGGER.trace("Invalid header size"); + return; + } + packet.get(); // too hard, ignore + int messageLength = Short.toUnsignedInt(packet.getShort()); + if (packet.remaining() + 4 < messageLength) { + LOGGER.trace("Packet size is lower than IP message size"); + return; + } + packet.getShort(); // normally, we don't expect message to be fragmented + short flagsAndFragmentOffset = packet.getShort(); + if (((flagsAndFragmentOffset >>> 13) & 0b101) != 0) { + LOGGER.trace("Fragmented packet prohibited (1)"); + return; // no fragments! + } + if ((flagsAndFragmentOffset & 0x1FFF) != 0) { + LOGGER.trace("Fragmented packet prohibited (2)"); + return; // no fragments! + } + byte ttl = (byte) (packet.get() - 1); + if (ttl == 0) { + LOGGER.trace("Small TTL value"); + return; + } + byte transportProtocol = packet.get(); + packet.getShort(); // I don't think, that we should expect packet corruption in Minecraft + int srcIpAddress = packet.getInt(); + int dstIpAddress = packet.getInt(); + if (!internetManager.isAllowedToConnect(dstIpAddress)) { + LOGGER.trace("Forbidden IP address"); + return; + } + packet.position(packet.position() + headerSize - IPv4_HEADER_SIZE); // skip options + packet.limit(packet.position() + messageLength - headerSize); // set correct limit + + /// Next layer + LOGGER.trace("Transport message received"); + outMessage.initializeBuffer(packet); + outMessage.updateIpv4(srcIpAddress, dstIpAddress, ttl); + transportLayer.sendTransportMessage(transportProtocol, outMessage); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DefaultSessionLayer.java b/src/main/java/li/cil/oc2/common/inet/DefaultSessionLayer.java new file mode 100644 index 00000000..1676bbfc --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DefaultSessionLayer.java @@ -0,0 +1,262 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.*; +import li.cil.oc2.api.inet.layer.SessionLayer; +import li.cil.oc2.api.inet.session.DatagramSession; +import li.cil.oc2.api.inet.session.EchoSession; +import li.cil.oc2.api.inet.session.Session; +import li.cil.oc2.api.inet.session.StreamSession; +import li.cil.oc2.common.Config; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.net.ConnectException; +import java.net.InetAddress; +import java.net.SocketAddress; +import java.nio.ByteBuffer; +import java.nio.channels.*; +import java.util.Queue; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; + +public final class DefaultSessionLayer implements SessionLayer { + private static final Logger LOGGER = LogManager.getLogger(); + + /////////////////////////////////////////////////////////////////// + + private static final Executor executor = Executors + .newSingleThreadExecutor(runnable -> new Thread(runnable, "internet/blocking-session")); + + /////////////////////////////////////////////////////////////////// + + private final AtomicReference echoResponse = new AtomicReference<>(null); + + /////////////////////////////////////////////////////////////////// + + private final ReadySessions readySessions = new ReadySessions(); + + private final SocketManager socketManager; + + public DefaultSessionLayer(final LayerParameters layerParameters) { + InternetManager internetManager = layerParameters.getInternetManager(); + socketManager = SocketManager.attach(internetManager); + } + + @Override + public void onStop() { + socketManager.detach(); + } + + @Override + public void receiveSession(final Receiver receiver) { + final EchoResponse pending = echoResponse.getAndSet(null); + if (pending != null) { + final ByteBuffer data = receiver.receive(pending.session); + assert data != null; + data.put(pending.payload); + data.flip(); + return; + } + + final boolean somethingConnected = processQueue(readySessions.getToConnect(), session -> { + if (session instanceof StreamSession streamSession) { + LOGGER.trace("Connected {}", session); + if (session.getState() != Session.States.NEW) { + return false; + } + receiver.receive(streamSession); + try { + final SocketChannel channel = getChannel(streamSession); + channel.finishConnect(); + streamSession.connect(); + return true; + } catch (final ConnectException exception) { + LOGGER.trace("Connection rejected for {}", session); + closeSession(session); + return true; + } catch (final IOException exception) { + LOGGER.error("Error on socket.finishConnect()", exception); + closeSession(session); + return true; + } + } + return false; + }); + if (somethingConnected) { + return; + } + + processQueue(readySessions.getToRead(), session -> { + if (session instanceof DatagramSession datagramSession) { + LOGGER.trace("Datagram received"); + final DatagramChannel channel = getChannel(datagramSession); + try { + final ByteBuffer datagram = receiver.receive(datagramSession); + assert datagram != null; + final SocketAddress address = channel.receive(datagram); + if (address == null) { + return false; + } + if (Config.useSynchronisedNAT && !address.equals(datagramSession.getDestination())) { + return false; + } + datagram.flip(); + return true; + } catch (final IOException exception) { + LOGGER.error("Trying to read datagram socket", exception); + } + LOGGER.trace("Datagram received"); + } else if (session instanceof StreamSession streamSession) { + LOGGER.trace("Stream received"); + final ByteBuffer stream = receiver.receive(streamSession); + try { + final SocketChannel channel = getChannel(streamSession); + assert stream != null; + assert false; + final int read = channel.read(stream); + LOGGER.trace("Read from real world: {}", read); + if (read == -1) { + closeSession(session); + } + return true; + } catch (final IOException exception) { + LOGGER.error("Trying to read stream socket", exception); + } + } + return false; + }); + } + + @Override + public void sendSession(final Session session, @Nullable final ByteBuffer data) { + if (session instanceof final EchoSession echoSession) { + if (data == null) { + return; // session closed due expiration + } + final EchoResponse response = new EchoResponse(data, echoSession); + final InetAddress address = session.getDestination().getAddress(); + executor.execute(() -> { + try { + if (address.isReachable(null, echoSession.getTtl(), Config.defaultEchoRequestTimeoutMs)) { + echoResponse.set(response); + } + } catch (IOException e) { + LOGGER.error("Failed to get echo response", e); + } + }); + } else if (session instanceof DatagramSession datagramSession) { + try { + switch (session.getState()) { + case NEW: { + final DatagramChannel channel = + socketManager.createDatagramChannel(datagramSession, readySessions); + datagramSession.setAttachment(channel); + LOGGER.trace("Open datagram socket {}", session.getDestination()); + /* Fallthrough */ + } + case ESTABLISHED: { + LOGGER.trace("Send datagram"); + final DatagramChannel channel = getChannel(datagramSession); + assert data != null; + channel.send(data, session.getDestination()); + break; + } + case EXPIRED: { + closeSession(session); + LOGGER.trace("Close datagram socket {}", session.getDestination()); + break; + } + } + } catch (IOException e) { + LOGGER.error("Datagram session failure", e); + session.close(); + } + } else if (session instanceof StreamSession streamSession) { + try { + switch (session.getState()) { + case NEW -> { + final SocketChannel channel = socketManager.createStreamChannel(streamSession, readySessions); + streamSession.setAttachment(channel); + channel.connect(streamSession.getDestination()); + LOGGER.trace("Open stream socket {}", streamSession.getDestination()); + } + case ESTABLISHED -> { + final SocketChannel channel = getChannel(streamSession); + assert data != null; + channel.write(data); + } + case FINISH, EXPIRED -> { + closeSession(session); + LOGGER.trace("Close stream socket {}", session.getDestination()); + } + } + } catch (IOException e) { + LOGGER.error("Stream session failure", e); + session.close(); + } + } else { + session.close(); + } + } + + private boolean processQueue(final Queue queue, final Function action) { + while (true) { + final Session session = queue.poll(); + if (session == null) { + return false; + } + if (session.isClosed()) { + continue; + } + if (action.apply(session)) { + return true; + } + } + } + + private void closeSession(final Session session) { + try { + getChannel(session).close(); + if (!session.isClosed()) { + session.close(); + } + } catch (final IOException exception) { + LOGGER.error("Error on closing channel", exception); + } + } + + private Object getExistingUserdata(final Session session) { + final Object channel = session.getAttachment(); + assert channel != null; + return channel; + } + + private SocketChannel getChannel(final StreamSession session) { + return (SocketChannel) getExistingUserdata(session); + } + + private DatagramChannel getChannel(final DatagramSession session) { + return (DatagramChannel) getExistingUserdata(session); + } + + private SelectableChannel getChannel(final Session session) { + return (SelectableChannel) getExistingUserdata(session); + } + + /////////////////////////////////////////////////////////////////// + + private static final class EchoResponse { + final byte[] payload; + final EchoSession session; + + public EchoResponse(final ByteBuffer payload, final EchoSession session) { + this.payload = new byte[payload.remaining()]; + payload.get(this.payload); + this.session = session; + } + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/DefaultTransportLayer.java b/src/main/java/li/cil/oc2/common/inet/DefaultTransportLayer.java new file mode 100644 index 00000000..4fc50eb5 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/DefaultTransportLayer.java @@ -0,0 +1,520 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.*; +import li.cil.oc2.api.inet.layer.SessionLayer; +import li.cil.oc2.api.inet.layer.TransportLayer; +import li.cil.oc2.api.inet.session.DatagramSession; +import li.cil.oc2.api.inet.session.EchoSession; +import li.cil.oc2.api.inet.session.Session; +import li.cil.oc2.api.inet.session.StreamSession; +import li.cil.oc2.common.Config; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import javax.annotation.Nullable; +import java.nio.ByteBuffer; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; + +public final class DefaultTransportLayer implements TransportLayer { + private static final Logger LOGGER = LogManager.getLogger(); + + /////////////////////////////////////////////////////////// + + private static final byte ICMP_TYPE_ECHO_REPLY = 0; + private static final byte ICMP_TYPE_ECHO_REQUEST = 8; + private static final byte ICMP_TYPE_ECHO_UNREACHABLE = 3; + private static final byte ICMP_CODE_ECHO_UNREACHABLE_PORT = 3; + private static final byte ICMP_CODE_ECHO_UNREACHABLE_PROHIBITED = 13; + private static final short PORT_ECHO = 7; + private static final int ICMP_HEADER_SIZE = 8; + private static final int UDP_HEADER_SIZE = 8; + private static final int MIN_TCP_HEADER_SIZE = 20; + private static int allSessionCount = 0; + + /////////////////////////////////////////////////////////// + private final SessionLayer sessionLayer; + + private final SessionReceiver receiver = new SessionReceiver(); + + private final NavigableMap expirationQueue = new TreeMap<>(); + private StreamSessionImpl streamToAck = null; + private final Map, SessionBase> sessions = new HashMap<>(); + + private ICMPReply icmpReply = null; + private StreamSessionImpl rejectedStream = null; + + /////////////////////////////////////////////////////////// + + public DefaultTransportLayer(final SessionLayer sessionLayer) { + this.sessionLayer = sessionLayer; + } + + private void processExpirationQueue(final NavigableMap queue, final Consumer action) { + if (queue.isEmpty()) { + return; + } + final Instant expireTime = Instant.now().minus(Config.defaultSessionLifetimeMs, ChronoUnit.MILLIS); + final Iterator iterator = queue.navigableKeySet().iterator(); + while (iterator.hasNext()) { + final Instant time = iterator.next(); + if (time.compareTo(expireTime) < 0) { + final T value = queue.get(time); + iterator.remove(); + action.accept(value); + } else { + return; + } + } + } + + @Nullable + private StreamSessionImpl getNextStreamForRetransmission() { + if (expirationQueue.isEmpty()) { + return null; + } + final Instant retransmissionTime = Instant.now().minus(Config.tcpRetransmissionTimeoutMs, ChronoUnit.MILLIS); + for (final Instant time : expirationQueue.navigableKeySet()) { + if (time.compareTo(retransmissionTime) < 0) { + final SessionBase session = expirationQueue.get(time); + if (session instanceof StreamSessionImpl stream && stream.isNeedsAcknowledgment()) { + return stream; + } + } else { + break; + } + } + return null; + } + + private void processSessionExpirationQueue() { + processExpirationQueue(expirationQueue, session -> { + sessions.remove(session.getDiscriminator()); + --allSessionCount; + LOGGER.trace("Expired session {}", session.getDiscriminator()); + session.expire(); + sessionLayer.sendSession(session, null); + }); + } + + private void updateSession(final SessionBase session) { + final Instant oldKey = session.getLastUpdateTime(); + expirationQueue.remove(oldKey); + session.update(); + final Instant newLastUpdateTime = session.getLastUpdateTime(); + SessionBase previous = expirationQueue.put(newLastUpdateTime, session); + assert previous == null; + } + + private void closeSession(final SessionBase session) { + LOGGER.trace("Close session {}", session.getDiscriminator()); + sessions.remove(session.getDiscriminator()); + expirationQueue.remove(session.getLastUpdateTime()); + --allSessionCount; + } + + private void prepareIcmpHeader(final ByteBuffer buffer, final byte type, final byte code) { + final int position = buffer.position(); + buffer.put(type); + buffer.put(code); + buffer.putShort((short) 0); + buffer.position(position); + short checksum = InetUtils.rfc1071Checksum(buffer); + buffer.putShort(position + 2, checksum); + buffer.position(position); + } + + @SuppressWarnings("unchecked") + @Nullable + private > S getOrCreateSession( + final D discriminator, + final Function factory + ) { + final S session = (S) sessions.get(discriminator); + if (session != null) { + return session; + } + if (sessions.size() >= Config.defaultSessionsNumberPerCardLimit) { + LOGGER.warn("Session count per card limit has reached"); + return null; + } + if (allSessionCount >= Config.defaultSessionsNumberLimit) { + LOGGER.warn("Session count limit has reached"); + return null; + } + ++allSessionCount; + LOGGER.trace("New session: {}", discriminator); + final S newSession = factory.apply(discriminator); + sessions.put(discriminator, newSession); + updateSession(newSession); + return newSession; + } + + private void reject(final ByteBuffer payload, final int srcIpAddress) { + final byte[] data = InetUtils.quickICMPBody(payload); + icmpReply = new ICMPReply( + ICMP_TYPE_ECHO_UNREACHABLE, + ICMP_CODE_ECHO_UNREACHABLE_PROHIBITED, + 0, + srcIpAddress, + data + ); + } + + private void sessionSendFinish(final DatagramSessionBase session, final ByteBuffer payload, final int srcIpAddress) { + final Session.States state = session.getState(); + switch (state) { + case NEW: + session.setState(Session.States.ESTABLISHED); + break; + case REJECT: { + reject(payload, srcIpAddress); + LOGGER.trace("Reject session {}", session.getDiscriminator()); + /* Fallthrough */ + } + case FINISH: + closeSession(session); + break; + case ESTABLISHED: + break; + default: + throw new IllegalStateException(state.name()); + } + } + + private SessionActions prepareTCPSegment(final TransportMessage message, final StreamSessionImpl stream) { + final ByteBuffer data = message.getData(); + final StreamSessionDiscriminator discriminator = stream.getDiscriminator(); + final int position = data.position(); + final int limit = data.limit(); + data.putShort(discriminator.getDstPort()); + data.putShort(discriminator.getSrcPort()); + final SessionActions recv = stream.receive(data); + switch (recv) { + case DROP, IGNORE -> { + data.position(position); + data.limit(limit); + return recv; + } + case FORWARD -> { + data.position(position); + final short checksum = InetUtils.transportRfc1071Checksum( + data, + discriminator.getDstIpAddress(), + discriminator.getSrcIpAddress(), + PROTOCOL_TCP + ); + data.putShort(position + 16, checksum); + data.position(position); + message.updateIpv4(discriminator.getDstIpAddress(), discriminator.getSrcIpAddress()); + LOGGER.trace("Prepared TCP packet to receive {}", stream.getHeader()); + return SessionActions.FORWARD; + } + default -> throw new IllegalStateException(); + } + } + + @Override + public byte receiveTransportMessage(final TransportMessage message) { + processSessionExpirationQueue(); + + while (true) { + if (rejectedStream != null) { + // This branch should be checked first! Stream needs to be closed properly + LOGGER.trace("Rejecting stream {}", rejectedStream.getDiscriminator()); + final SessionActions success = prepareTCPSegment(message, rejectedStream); + assert success == SessionActions.FORWARD; + closeSession(rejectedStream); + rejectedStream = null; + return PROTOCOL_TCP; + } + + if (icmpReply != null) { + // ICMP message + message.updateIpv4(icmpReply.srcIpAddress, icmpReply.dstIpAddress); + final ByteBuffer data = message.getData(); + final int position = data.position(); + data.putInt(0); + data.put(icmpReply.payload); + data.limit(data.position()); + data.position(position); + prepareIcmpHeader(data, icmpReply.type, icmpReply.code); + icmpReply = null; + return PROTOCOL_ICMP; + } + + if (streamToAck != null) { + final StreamSessionImpl stream = streamToAck; + streamToAck = null; + updateSession(stream); + switch (prepareTCPSegment(message, stream)) { + case FORWARD -> { + if (stream.isClosed()) { + closeSession(stream); + } + return PROTOCOL_TCP; + } + case DROP -> closeSession(stream); + } + } + /* + final StreamSessionImpl retransmitSession = getNextStreamForRetransmission(); + if (retransmitSession != null) { + // Process retransmission queue + updateSession(retransmitSession); + switch (prepareTCPSegment(message, retransmitSession)) { + case FORWARD -> { + if (retransmitSession.isClosed()) { + closeSession(retransmitSession); + } + return PROTOCOL_TCP; + } + case DROP -> closeSession(retransmitSession); + } + return PROTOCOL_TCP; + } + */ + + receiver.prepare(message.getData()); + sessionLayer.receiveSession(receiver); + + final SessionBase session = receiver.session; + + if (session == null) { + return PROTOCOL_NONE; + } + + updateSession(session); + + if (session instanceof EchoSession) { + final EchoSessionImpl echoSession = (EchoSessionImpl) session; + switch (session.getState()) { + case FINISH -> closeSession(session); + case ESTABLISHED -> { + final EchoSessionDiscriminator discriminator = echoSession.getDiscriminator(); + final ByteBuffer buffer = receiver.getBuffer(); + final int position = buffer.position(); + buffer.putShort(position + 4, discriminator.getIdentity()); + buffer.putShort(position + 6, (short) echoSession.getSequenceNumber()); + prepareIcmpHeader(buffer, ICMP_TYPE_ECHO_REPLY, (byte) 0); + message.updateIpv4(discriminator.getDstIpAddress(), discriminator.getSrcIpAddress()); + return PROTOCOL_ICMP; + } + default -> throw new IllegalStateException(); + } + } else if (session instanceof DatagramSession) { + final DatagramSessionImpl datagramSession = (DatagramSessionImpl) session; + switch (session.getState()) { + case FINISH -> closeSession(session); + case ESTABLISHED -> { + final DatagramSessionDiscriminator discriminator = datagramSession.getDiscriminator(); + final ByteBuffer buffer = receiver.getBuffer(); + final int position = buffer.position(); + buffer.putShort(position, discriminator.getDstPort()); + buffer.putShort(position + 2, discriminator.getSrcPort()); + buffer.putShort(position + 4, (short) buffer.remaining()); + buffer.putShort(position + 6, (short) 0); + short checksum = InetUtils.transportRfc1071Checksum( + buffer, + discriminator.getDstIpAddress(), + discriminator.getSrcIpAddress(), + PROTOCOL_UDP + ); + buffer.putShort(position + 6, checksum); + buffer.position(position); + message.updateIpv4(discriminator.getDstIpAddress(), discriminator.getSrcIpAddress()); + return PROTOCOL_UDP; + } + default -> throw new IllegalStateException(); + } + } else if (session instanceof StreamSession) { + final StreamSessionImpl streamSession = (StreamSessionImpl) session; + switch (prepareTCPSegment(message, streamSession)) { + case FORWARD -> { + if (streamSession.isClosed()) { + closeSession(streamSession); + } + return PROTOCOL_TCP; + } + case DROP -> closeSession(streamSession); + } + } else { + throw new IllegalStateException(); + } + } + } + + @Override + public Optional onSave() { + return sessionLayer.onSave().map(sessionLayerState -> { + final CompoundTag transportLayerState = new CompoundTag(); + transportLayerState.put(SessionLayer.LAYER_NAME, sessionLayerState); + return transportLayerState; + }); + } + + @Override + public void onStop() { + for (final SessionBase session : sessions.values()) { + session.expire(); + sessionLayer.sendSession(session, null); + closeSession(session); + } + sessionLayer.onStop(); + } + + @Override + public void sendTransportMessage(final byte protocol, final TransportMessage message) { + processSessionExpirationQueue(); + + final int srcIpAddress = message.getSrcIpv4Address(); + final int dstIpAddress = message.getDstIpv4Address(); + + final ByteBuffer data = message.getData(); + + switch (protocol) { + case PROTOCOL_ICMP -> { + if (data.remaining() < ICMP_HEADER_SIZE) { + return; + } + + final byte type = data.get(); + final byte code = data.get(); + data.getShort(); // we don't expect incorrect checksum + + if (type == ICMP_TYPE_ECHO_REQUEST) { + if (code != 0) { + return; + } + final short identity = data.getShort(); + final short sequence = data.getShort(); + final EchoSessionDiscriminator discriminator = + new EchoSessionDiscriminator(srcIpAddress, dstIpAddress, identity); + final EchoSessionImpl session = + getOrCreateSession(discriminator, it -> new EchoSessionImpl(dstIpAddress, PORT_ECHO, it)); + if (session == null) { + reject(data, srcIpAddress); + } else { + session.setSequenceNumber(sequence); + session.setTtl(message.getTtl()); + sessionLayer.sendSession(session, data); + sessionSendFinish(session, data, srcIpAddress); + } + } + } + case PROTOCOL_UDP -> { + if (data.remaining() < UDP_HEADER_SIZE) { + return; + } + + final short srcPort = data.getShort(); + final short dstPort = data.getShort(); + final int datagramLength = Short.toUnsignedInt(data.getShort()); + data.getShort(); // udp checksum + + if (data.remaining() + UDP_HEADER_SIZE < datagramLength) { + return; + } + data.limit(data.position() + datagramLength - UDP_HEADER_SIZE); + + final DatagramSessionDiscriminator discriminator = + new DatagramSessionDiscriminator(srcIpAddress, srcPort, dstIpAddress, dstPort); + final DatagramSessionImpl session = + getOrCreateSession(discriminator, it -> new DatagramSessionImpl(dstIpAddress, dstPort, it)); + if (session == null) { + reject(data, srcIpAddress); + } else { + sessionLayer.sendSession(session, data); + sessionSendFinish(session, data, srcIpAddress); + } + } + case PROTOCOL_TCP -> { + if (data.remaining() < MIN_TCP_HEADER_SIZE) { + return; + } + + final short srcPort = data.getShort(); + final short dstPort = data.getShort(); + + final StreamSessionDiscriminator discriminator = + new StreamSessionDiscriminator(srcIpAddress, srcPort, dstIpAddress, dstPort); + final StreamSessionImpl session = + getOrCreateSession(discriminator, it -> new StreamSessionImpl(dstIpAddress, dstPort, it)); + if (session == null) { + reject(data, srcIpAddress); + } else { + LOGGER.trace("GOT TCP"); + switch (session.send(data)) { + case FORWARD -> { + switch (session.getState()) { + case NEW, FINISH -> sessionLayer.sendSession(session, null); + case ESTABLISHED -> sessionLayer.sendSession(session, session.getSendBuffer()); + } + final Session.States state = session.getState(); + if (state == Session.States.REJECT || state == Session.States.FINISH) { + rejectedStream = session; + } + if (session.isNeedsAcknowledgment()) { + streamToAck = session; + } + } + case DROP -> closeSession(session); + } + } + } + } + } + + private record ICMPReply(byte type, byte code, int srcIpAddress, int dstIpAddress, byte[] payload) { + } + + private static final class SessionReceiver implements SessionLayer.Receiver { + private SessionBase session = null; + private ByteBuffer buffer = null; + private int position = 0; + private int limit = 0; + + private void prepare(final ByteBuffer buffer) { + session = null; + this.buffer = buffer; + position = buffer.position(); + limit = buffer.limit(); + } + + private ByteBuffer getBuffer() { + buffer.position(position); + return buffer; + } + + @Nullable + @Override + public ByteBuffer receive(final Session session) { + buffer.position(position); + buffer.limit(limit); + this.session = (SessionBase) session; + switch (session.getState()) { + case NEW: + case FINISH: + case REJECT: + return null; + case ESTABLISHED: + if (session instanceof EchoSession || session instanceof DatagramSession) { + buffer.putLong(0); + return buffer; + } else if (session instanceof StreamSession) { + final StreamSessionImpl stream = (StreamSessionImpl) session; + return stream.getReceiveBuffer(); + } else { + throw new IllegalArgumentException("session"); + } + default: + throw new IllegalStateException(); + } + } + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/EchoSessionDiscriminator.java b/src/main/java/li/cil/oc2/common/inet/EchoSessionDiscriminator.java new file mode 100644 index 00000000..d46cc72a --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/EchoSessionDiscriminator.java @@ -0,0 +1,52 @@ +package li.cil.oc2.common.inet; + +import java.util.Objects; + +final class EchoSessionDiscriminator implements SessionDiscriminator { + private final int srcIpAddress; + private final int dstIpAddress; + private final short identity; + + public EchoSessionDiscriminator(final int srcIpAddress, final int dstIpAddress, final short identity) { + this.srcIpAddress = srcIpAddress; + this.dstIpAddress = dstIpAddress; + this.identity = identity; + } + + public int getSrcIpAddress() { + return srcIpAddress; + } + + public int getDstIpAddress() { + return dstIpAddress; + } + + public short getIdentity() { + return identity; + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + EchoSessionDiscriminator that = (EchoSessionDiscriminator) o; + return srcIpAddress == that.srcIpAddress && dstIpAddress == that.dstIpAddress && identity == that.identity; + } + + @Override + public int hashCode() { + return Objects.hash(srcIpAddress, dstIpAddress, identity); + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder("Echo("); + InetUtils.ipv4AddressToString(builder, srcIpAddress); + builder.append("<-["); + builder.append(Short.toUnsignedInt(identity)); + builder.append("]->"); + InetUtils.ipv4AddressToString(builder, dstIpAddress); + builder.append(')'); + return builder.toString(); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/EchoSessionImpl.java b/src/main/java/li/cil/oc2/common/inet/EchoSessionImpl.java new file mode 100644 index 00000000..e080bc5c --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/EchoSessionImpl.java @@ -0,0 +1,37 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.session.EchoSession; + +public final class EchoSessionImpl extends DatagramSessionBase implements EchoSession { + private final EchoSessionDiscriminator discriminator; + private byte ttl; + private short sequenceNumber; + + public EchoSessionImpl(final int ipAddress, final short port, final EchoSessionDiscriminator discriminator) { + super(ipAddress, port); + this.discriminator = discriminator; + } + + @Override + public int getTtl() { + return Byte.toUnsignedInt(ttl); + } + + public void setTtl(final byte ttl) { + this.ttl = ttl; + } + + @Override + public int getSequenceNumber() { + return Short.toUnsignedInt(sequenceNumber); + } + + public void setSequenceNumber(final short sequenceNumber) { + this.sequenceNumber = sequenceNumber; + } + + @Override + public EchoSessionDiscriminator getDiscriminator() { + return discriminator; + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/InetUtils.java b/src/main/java/li/cil/oc2/common/inet/InetUtils.java new file mode 100644 index 00000000..6a4ffaca --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/InetUtils.java @@ -0,0 +1,290 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.layer.LinkLocalLayer; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.nio.ByteBuffer; +import java.util.Optional; +import java.util.function.Function; + +public final class InetUtils { + private static int bufferChecksum(final ByteBuffer buffer, final int size) { + final int halfSize = size >>> 1; + int checksum = 0; + for (int i = 0; i < halfSize; ++i) { + checksum += Short.toUnsignedInt(buffer.getShort()); + } + if ((size & 1) != 0) { + checksum += (buffer.get() << 8) & 0xFFFF; + } + return checksum; + } + + private static short finishChecksum(int checksum) { + checksum = (checksum >>> 16) + (checksum & 0xFFFF); + checksum = (checksum >>> 16) + (checksum & 0xFFFF); + return (short) ~checksum; + } + + public static short rfc1071Checksum(final ByteBuffer buffer, final int size) { + final int checksum = bufferChecksum(buffer, size); + return finishChecksum(checksum); + } + + public static short rfc1071Checksum(final ByteBuffer buffer) { + return rfc1071Checksum(buffer, buffer.remaining()); + } + + public static short transportRfc1071Checksum( + final ByteBuffer buffer, + final int srcIpAddress, + final int dstIpAddress, + final byte protocol + ) { + final int size = buffer.remaining(); + final int checksumPart = bufferChecksum(buffer, size); + final int checksum = checksumPart + Byte.toUnsignedInt(protocol) + size + + (srcIpAddress >>> 16) + (srcIpAddress & 0xFFFF) + + (dstIpAddress >>> 16) + (dstIpAddress & 0xFFFF); + return finishChecksum(checksum); + } + + private static InetAddress getInetAddressByBytes(final byte[] bytes) { + try { + return InetAddress.getByAddress(bytes); + } catch (UnknownHostException e) { + /* should not be there */ + throw new Error("unreachable", e); + } + } + + public static InetAddress toJavaInetAddress(final int ipAddress) { + final byte[] bytes = new byte[]{ + (byte) (ipAddress >>> 24), + (byte) (ipAddress >>> 16), + (byte) (ipAddress >>> 8), + (byte) (ipAddress) + }; + return getInetAddressByBytes(bytes); + } + + private static void fillLong(final byte[] destination, final int offset, final long value) { + for (int position = 0; position < 8; ++position) { + destination[offset + position] = (byte) (value >>> ((7 - position) << 3)); + } + } + + public static InetAddress toJavaInetAddress(final long ipAddressMost, final long ipAddressLeast) { + final byte[] bytes = new byte[16]; + fillLong(bytes, 0, ipAddressMost); + fillLong(bytes, 8, ipAddressLeast); + return getInetAddressByBytes(bytes); + } + + public static void ipv4AddressToString(final StringBuilder builder, final int ipAddress) { + builder.append(Integer.toUnsignedString(ipAddress >>> 24)); + builder.append('.'); + builder.append(Integer.toUnsignedString((ipAddress >>> 16) & 0xFF)); + builder.append('.'); + builder.append(Integer.toUnsignedString((ipAddress >>> 8) & 0xFF)); + builder.append('.'); + builder.append(Integer.toUnsignedString(ipAddress & 0xFF)); + } + + public static String ipv4AddressToString(final int ipAddress) { + final StringBuilder stringBuilder = new StringBuilder(); + ipv4AddressToString(stringBuilder, ipAddress); + return stringBuilder.toString(); + } + + private static char hexCodeToChar(final int code) { + if (code < 10) { + return (char) ('0' + code); + } else { + return (char) ('A' + (code - 10)); + } + } + + private static void byteToHex(final StringBuilder builder, final byte code) { + builder.append(hexCodeToChar(code >>> 4)); + builder.append(hexCodeToChar(code & 15)); + } + + public static void macAddressToString(final StringBuilder builder, final MacAddress macAddress) { + final short prefix = macAddress.prefix(); + final int address = macAddress.address(); + byteToHex(builder, (byte) (prefix >>> 8)); + builder.append(':'); + byteToHex(builder, (byte) prefix); + for (int i = 3; i >= 0; --i) { + builder.append(':'); + byteToHex(builder, (byte) (address >>> (8 * i))); + } + } + + public static String macAddressToString(final MacAddress macAddress) { + final StringBuilder builder = new StringBuilder(); + macAddressToString(builder, macAddress); + return builder.toString(); + } + + public static void socketAddressToString(final StringBuilder builder, final int ipAddress, final short port) { + ipv4AddressToString(builder, ipAddress); + builder.append(':'); + builder.append(Short.toUnsignedInt(port)); + } + + public static byte[] quickICMPBody(final ByteBuffer data) { + final int tmpPosition = data.position(); + final int tmpLimit = data.limit(); + data.limit(data.capacity()); + data.position(LinkLocalLayer.FRAME_HEADER_SIZE); + final int headerSize = (data.get() & 0xF) * 4; + data.position(LinkLocalLayer.FRAME_HEADER_SIZE); + data.limit(LinkLocalLayer.FRAME_HEADER_SIZE + headerSize + 8); + final byte[] result = new byte[data.remaining() + 4]; + result[2] = 0x5; + result[3] = (byte) 0xDC; + data.put(result, 4, data.remaining()); + data.limit(tmpLimit); + data.position(tmpPosition); + return result; + } + + public static int javaInetAddressToIpAddress(final Inet4Address address) { + final byte[] bytes = address.getAddress(); + return (Byte.toUnsignedInt(bytes[0]) << 24) | (Byte.toUnsignedInt(bytes[1]) << 16) + | (Byte.toUnsignedInt(bytes[2]) << 8) | Byte.toUnsignedInt(bytes[3]); + } + + public static int indexOf(final CharSequence string, final char character, final int start) { + for (int i = start, length = string.length(); i < length; ++i) { + if (string.charAt(i) == character) { + return i; + } + } + return -1; + } + + public static int surelyParseValidIpv4Address(final CharSequence string) { + int position = 0; + int address = 0; + for (int i = 0; i < 3; ++i) { + final int segmentEnd = indexOf(string, '.', position); + address = (address << 8) | Integer.parseUnsignedInt(string, position, segmentEnd, 10); + position = segmentEnd + 1; + } + return (address << 8) | Integer.parseUnsignedInt(string, position, string.length(), 10); + } + + public static int parseIpv4Address(final CharSequence string) throws AddressParseException { + if (!Ipv4Space.ipAddressPattern.matcher(string).matches()) { + throw new AddressParseException("Not an IPv4 address: " + string); + } + return surelyParseValidIpv4Address(string); + } + + private static int hexCodeToInt(final char code) throws AddressParseException { + if (code >= '0' && code <= '9') { + return code - '0'; + } else if (code >= 'a' && code <= 'f') { + return code - 'a' + 10; + } else if (code >= 'A' && code <= 'F') { + return code - 'A' + 10; + } else { + throw new AddressParseException("Illegal character '" + code + "' in address"); + } + } + + private static byte parseMacAddressByte(final CharSequence string, final int start) throws AddressParseException { + return (byte) ((hexCodeToInt(string.charAt(start)) << 4) | hexCodeToInt(string.charAt(start + 1))); + } + + private static AddressParseException illegalDelimiter(final CharSequence string, final int index) { + final char illegal = string.charAt(index); + return new AddressParseException("Illegal character '" + illegal + "' at index " + index + " in MAC address \"" + string + "\""); + } + + public static MacAddress parseMacAddress(final CharSequence string) throws AddressParseException { + if (string.length() != 17) { + throw new AddressParseException("MAC address length must be 17 characters: \"" + string + "\""); + } + final byte first = parseMacAddressByte(string, 0); + if (string.charAt(2) != ':') { + throw illegalDelimiter(string, 2); + } + final short prefix = (short) (first << 8 | parseMacAddressByte(string, 3)); + int address = 0; + for (int i = 0; i < 4; ++i) { + final int pos = i * 3 + 5; + if (string.charAt(pos) != ':') { + throw illegalDelimiter(string, pos); + } + address = (address << 8) | parseMacAddressByte(string, pos + 1); + } + return new MacAddress(prefix, address); + } + + public static int getSubnetByPrefix(final int prefix) { + if (prefix > 30 || prefix < 0) { + throw new IllegalArgumentException("Wrong subnet prefix range"); + } + return -1 << (32 - prefix); + } + + private static void configureIpSpace(final Ipv4Space ipSpace, final String hosts) { + int i = 1; + for (final String hostString : hosts.split(",")) { + final String rangeString = hostString.trim(); + if (rangeString.isEmpty()) { + continue; + } + try { + ipSpace.put(rangeString); + } catch (final Exception e) { + throw new IllegalArgumentException("Failed to parse IPv4 address range #" + i + ": " + e.getMessage()); + } + ++i; + } + } + + public static Ipv4Space computeIpSpace(final String deniedHosts, final String allowedHosts) { + final boolean deniedHostsIsEmpty = deniedHosts.trim().isEmpty(); + final boolean allowedHostsIsEmpty = allowedHosts.trim().isEmpty(); + if (deniedHostsIsEmpty && allowedHostsIsEmpty) { + return new Ipv4Space(Ipv4Space.Modes.DENYLIST); + } else if (allowedHostsIsEmpty) { + final Ipv4Space ipSpace = new Ipv4Space(Ipv4Space.Modes.DENYLIST); + configureIpSpace(ipSpace, deniedHosts); + return ipSpace; + } else if (deniedHostsIsEmpty) { + final Ipv4Space ipSpace = new Ipv4Space(Ipv4Space.Modes.ALLOWLIST); + configureIpSpace(ipSpace, allowedHosts); + return ipSpace; + } else { + throw new IllegalArgumentException("Both denied and allowed hosts are specified"); + } + } + + public static PL createLayerIfNotStub(final CL currentLayer, final Function getNextLayer) { + if (currentLayer == NullLayer.INSTANCE) { + // noinspection unchecked + return (PL) NullLayer.INSTANCE; + } else { + return getNextLayer.apply(currentLayer); + } + } + + public static LayerParameters nextLayerParameters(final LayerParameters layerParameters, final String layerName) { + final Optional nextLayerState = layerParameters.getSavedState() + .flatMap(currentLayerState -> (currentLayerState instanceof CompoundTag tag) ? + Optional.ofNullable(tag.get(layerName)) : + Optional.empty()); + return new LayerParametersImpl(nextLayerState, layerParameters.getInternetManager()); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/InternetAdapter.java b/src/main/java/li/cil/oc2/common/inet/InternetAdapter.java new file mode 100644 index 00000000..70999ac0 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/InternetAdapter.java @@ -0,0 +1,10 @@ +package li.cil.oc2.common.inet; + +import javax.annotation.Nullable; + +public interface InternetAdapter { + @Nullable + byte[] receiveEthernetFrame(); + + void sendEthernetFrame(byte[] frame); +} diff --git a/src/main/java/li/cil/oc2/common/inet/InternetConnection.java b/src/main/java/li/cil/oc2/common/inet/InternetConnection.java new file mode 100644 index 00000000..0f6e1c45 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/InternetConnection.java @@ -0,0 +1,10 @@ +package li.cil.oc2.common.inet; + +import net.minecraft.nbt.Tag; + +import java.util.Optional; + +public interface InternetConnection { + Optional saveAdapterState(); + void stop(); +} diff --git a/src/main/java/li/cil/oc2/common/inet/InternetManagerImpl.java b/src/main/java/li/cil/oc2/common/inet/InternetManagerImpl.java new file mode 100644 index 00000000..43b74df2 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/InternetManagerImpl.java @@ -0,0 +1,246 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.InternetManager; +import li.cil.oc2.api.inet.provider.InternetProvider; +import li.cil.oc2.api.inet.layer.LinkLocalLayer; +import li.cil.oc2.common.Config; +import net.minecraft.nbt.Tag; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.event.server.ServerStoppingEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import javax.annotation.Nullable; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +public final class InternetManagerImpl implements InternetManager { + private static final Logger LOGGER = LogManager.getLogger(); + + private static InternetManagerImpl INSTANCE = null; + + ////////////////////////////////////////////////////////////// + + private final InternetProvider internetProvider; + private final List connections = new LinkedList<>(); + private final List tasks = new LinkedList<>(); + + private final ExecutorService executor; + private final Ipv4Space ipSpace; + + private InternetManagerImpl() { + final ServiceLoader serviceLoader = ServiceLoader.load(InternetProvider.class); + final Iterator iterator = serviceLoader.iterator(); + if (iterator.hasNext()) { + internetProvider = iterator.next(); + } else { + internetProvider = DefaultInternetProvider.INSTANCE; + } + executor = Executors.newSingleThreadExecutor(runnable -> new Thread(runnable, "Internet")); + ipSpace = InetUtils.computeIpSpace(Config.deniedHosts, Config.allowedHosts); + MinecraftForge.EVENT_BUS.register(this); + } + + public static void initialize() { + if (!Config.internetCardEnabled) { + LOGGER.info("Internet card is disabled; Internet manager will not start"); + } else { + INSTANCE = new InternetManagerImpl(); + LOGGER.warn("Internet card is enabled; Players may access to the internal network"); + } + } + + public static Optional getInstance() { + return Optional.ofNullable(INSTANCE); + } + + @Override + public Task runOnInternetThreadTick(final Runnable action) { + final TaskImpl task = new TaskImpl(action); + tasks.add(task); + return task; + } + + public InternetConnection connect(final InternetAdapter internetAdapter, @Nullable final Tag savedState) { + final LayerParameters layerParameters = new LayerParametersImpl(Optional.ofNullable(savedState), this); + final InternetConnectionImpl internetConnection = + new InternetConnectionImpl(internetAdapter, internetProvider.provideInternet(layerParameters)); + connections.add(internetConnection); + LOGGER.debug("A new internet access provided"); + return internetConnection; + } + + private void processInternetAdapter(final InternetConnectionImpl connection) { + final InternetAdapter adapter = connection.adapter; + final byte[] received = connection.incoming.get(); + if (received != null) { + adapter.sendEthernetFrame(received); + } + final byte[] sending = adapter.receiveEthernetFrame(); + if (sending != null) { + connection.outcoming.put(sending); + } + } + + public boolean isAllowedToConnect(final int ipAddress) { + return ipSpace.isAllowed(ipAddress); + } + + private void runTasks() { + tasks.removeIf(task -> { + if (task.isClosed()) { + return true; + } else { + final Runnable action = task.getAction(); + try { + action.run(); + return false; + } catch (final Exception exception) { + LOGGER.error("Uncaught exception while running internet thread task; this task removed from schedule", exception); + return true; + } + } + }); + } + + private void runOnInternetThread( + final List connectionsToStop, + final List connectionsToProcess + ) { + runTasks(); + connectionsToStop.forEach(connection -> { + LOGGER.debug("Revoked internet access"); + connection.ethernet.onStop(); + }); + connectionsToProcess.forEach(InternetConnectionImpl::process); + } + + ////////////////////////////////////////////////////////////// + + @SubscribeEvent + public void onTick(final TickEvent.ServerTickEvent event) { + final List connectionsToStop = connections.stream() + .filter(connection -> connection.isStopped) + .collect(Collectors.toList()); + final List connectionsToProcess = connections.stream() + .filter(connection -> !connection.isStopped) + .collect(Collectors.toList()); + connections.removeIf(connection -> { + if (connection.isStopped) { + return true; + } else { + processInternetAdapter(connection); + return false; + } + }); + executor.execute(() -> runOnInternetThread(connectionsToStop, connectionsToProcess)); + } + + @SubscribeEvent + public void onStopping(final ServerStoppingEvent event) { + connections.clear(); + } + + ////////////////////////////////////////////////////////////// + + private static final class TaskImpl implements Task { + + private final Runnable action; + private boolean closed = false; + + public TaskImpl(final Runnable action) { + this.action = action; + } + + public Runnable getAction() { + return action; + } + + public boolean isClosed() { + return closed; + } + + @Override + public void close() { + closed = true; + } + } + + + private final class InternetConnectionImpl implements InternetConnection { + + public final PendingFrame incoming = new PendingFrame(); + public final PendingFrame outcoming = new PendingFrame(); + + private final ByteBuffer receiveBuffer = ByteBuffer.allocate(LinkLocalLayer.FRAME_SIZE); + private final LinkLocalLayer ethernet; + private final InternetAdapter adapter; + private boolean isStopped = false; + + ////////////////////////////////////////////////////////////// + + public InternetConnectionImpl(final InternetAdapter adapter, final LinkLocalLayer ethernet) { + this.adapter = adapter; + this.ethernet = ethernet; + } + + @Override + public Optional saveAdapterState() { + try { + // TODO: blocking code; should reconsider it + return executor.submit(ethernet::onSave).get(); + } catch (final InterruptedException | ExecutionException exception) { + LOGGER.error("Error on saving internet adapter state", exception); + return Optional.empty(); + } + } + + public void process() { + try { + final byte[] outFrame = outcoming.get(); + if (outFrame != null) { + ethernet.sendEthernetFrame(ByteBuffer.wrap(outFrame)); + } + receiveBuffer.clear(); + if (ethernet.receiveEthernetFrame(receiveBuffer)) { + final byte[] inFrame = new byte[receiveBuffer.remaining()]; + receiveBuffer.get(inFrame); + incoming.put(inFrame); + } + } catch (Exception e) { + LOGGER.error("Uncaught exception", e); + } + } + + @Override + public void stop() { + isStopped = true; + } + + ////////////////////////////////////////////////////////////// + + private static final class PendingFrame { + + private final AtomicReference pendingFrame = new AtomicReference<>(); + + ////////////////////////////////////////////////////////////// + + @Nullable + public byte[] get() { + return pendingFrame.getAndSet(null); + } + + public void put(final byte[] frame) { + pendingFrame.set(frame); + } + } + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/Ipv4Space.java b/src/main/java/li/cil/oc2/common/inet/Ipv4Space.java new file mode 100644 index 00000000..6a3e2880 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/Ipv4Space.java @@ -0,0 +1,134 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.common.util.IntegerSpace; + +import javax.annotation.Nullable; +import javax.annotation.RegEx; +import java.io.IOException; +import java.net.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class Ipv4Space extends IntegerSpace { + + private static final String IPADDRESS_PATTERN = + "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}"; + public static final Pattern ipAddressPattern = + line(group("ip", IPADDRESS_PATTERN)); + private static final Pattern ipRangePattern = + line(group("start", IPADDRESS_PATTERN) + "-" + group("end", IPADDRESS_PATTERN)); + private static final Pattern subnetPattern = + line(group("ip", IPADDRESS_PATTERN) + "\\/" + group("prefix", "[1-9]\\d?")); + private static final Pattern interfaceNamePattern = + line("@" + group("name", "[a-zA-Z].*")); + private static final Pattern interfaceIdPattern = + line("@" + group("id", "\\d*")); + private final boolean isAllowListMode; + + public Ipv4Space(final Modes mode) { + isAllowListMode = mode == Modes.ALLOWLIST; + } + + private static Pattern line(@RegEx final String pattern) { + return Pattern.compile('^' + pattern + '$'); + } + + private static String group(final String name, @RegEx final String pattern) { + return "(?<" + name + ">" + pattern + ")"; + } + + @Override + protected void elementToString(final StringBuilder builder, final int element) { + InetUtils.ipv4AddressToString(builder, element); + } + + private boolean putSubnet(final int ipAddress, final int prefix) { + final int subnet = InetUtils.getSubnetByPrefix(prefix); + final int rangeStart = ipAddress & subnet; + final int rangeEnd = ipAddress | ~subnet; + return put(rangeStart, rangeEnd); + } + + private boolean putNetworkInterface(@Nullable final NetworkInterface networkInterface) { + if (networkInterface == null) { + throw new IllegalArgumentException("Network interface not found"); + } + boolean result = false; + for (final InterfaceAddress address : networkInterface.getInterfaceAddresses()) { + final InetAddress inetAddress = address.getAddress(); + if (inetAddress instanceof Inet4Address) { + final int ipAddress = InetUtils.javaInetAddressToIpAddress((Inet4Address) inetAddress); + result = putSubnet(ipAddress, address.getNetworkPrefixLength()) || result; + } + } + return result; + } + + public boolean put(final String string) { + final Matcher ipAddressMatch = ipAddressPattern.matcher(string); + if (ipAddressMatch.matches()) { + final int ipAddress = InetUtils.surelyParseValidIpv4Address(ipAddressMatch.group("ip")); + return put(ipAddress); + } + + final Matcher ipRangeMatch = ipRangePattern.matcher(string); + if (ipRangeMatch.matches()) { + final int rangeStart = InetUtils.surelyParseValidIpv4Address(ipRangeMatch.group("start")); + final int rangeEnd = InetUtils.surelyParseValidIpv4Address(ipRangeMatch.group("end")); + return put(rangeStart, rangeEnd); + } + + final Matcher subnetMatch = subnetPattern.matcher(string); + if (subnetMatch.matches()) { + final int ipAddress = InetUtils.surelyParseValidIpv4Address(subnetMatch.group("ip")); + final int prefix = Integer.parseInt(subnetMatch.group("prefix")); + return putSubnet(ipAddress, prefix); + } + + final Matcher interfaceNameMatch = interfaceNamePattern.matcher(string); + if (interfaceNameMatch.matches()) { + final String interfaceName = interfaceNameMatch.group("name"); + try { + final NetworkInterface networkInterface = NetworkInterface.getByName(interfaceName); + return putNetworkInterface(networkInterface); + } catch (IOException e) { + throw new IllegalStateException("Failed to get a network interface by name"); + } + } + + final Matcher interfaceIdMatch = interfaceIdPattern.matcher(string); + if (interfaceIdMatch.matches()) { + final int interfaceId = Integer.parseInt(interfaceIdMatch.group("id")); + try { + final NetworkInterface networkInterface = NetworkInterface.getByIndex(interfaceId); + return putNetworkInterface(networkInterface); + } catch (IOException e) { + throw new IllegalStateException("Failed to get a network interface by index"); + } + } + + // Assume it is a hostname + try { + final InetAddress[] addresses = InetAddress.getAllByName(string); + boolean result = false; + for (final InetAddress address : addresses) { + if (address instanceof Inet4Address) { + final int ipAddress = InetUtils.javaInetAddressToIpAddress((Inet4Address) address); + result = put(ipAddress) || result; + } + } + return result; + } catch (UnknownHostException e) { + throw new IllegalArgumentException(e.getMessage()); + } + } + + public boolean isAllowed(final int ipAddress) { + return isAllowListMode == contains(ipAddress); + } + + public enum Modes { + ALLOWLIST, + DENYLIST, + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/LayerParametersImpl.java b/src/main/java/li/cil/oc2/common/inet/LayerParametersImpl.java new file mode 100644 index 00000000..6317082e --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/LayerParametersImpl.java @@ -0,0 +1,10 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.LayerParameters; +import li.cil.oc2.api.inet.InternetManager; +import net.minecraft.nbt.Tag; + +import java.util.Optional; + +public record LayerParametersImpl(Optional getSavedState, InternetManager getInternetManager) implements LayerParameters { +} diff --git a/src/main/java/li/cil/oc2/common/inet/MacAddress.java b/src/main/java/li/cil/oc2/common/inet/MacAddress.java new file mode 100644 index 00000000..1b88aefd --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/MacAddress.java @@ -0,0 +1,4 @@ +package li.cil.oc2.common.inet; + +public record MacAddress(short prefix, int address) { +} diff --git a/src/main/java/li/cil/oc2/common/inet/NullLayer.java b/src/main/java/li/cil/oc2/common/inet/NullLayer.java new file mode 100644 index 00000000..d1862d8d --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/NullLayer.java @@ -0,0 +1,13 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.layer.LinkLocalLayer; +import li.cil.oc2.api.inet.layer.NetworkLayer; +import li.cil.oc2.api.inet.layer.SessionLayer; +import li.cil.oc2.api.inet.layer.TransportLayer; + +public final class NullLayer implements LinkLocalLayer, NetworkLayer, TransportLayer, SessionLayer { + public static final NullLayer INSTANCE = new NullLayer(); + + private NullLayer() { + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/ReadySessions.java b/src/main/java/li/cil/oc2/common/inet/ReadySessions.java new file mode 100644 index 00000000..812e77c1 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/ReadySessions.java @@ -0,0 +1,24 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.session.Session; + +import java.util.ArrayDeque; +import java.util.Queue; + +public final class ReadySessions { + private final Queue toRead = new ArrayDeque<>(); + private final Queue toWrite = new ArrayDeque<>(); + private final Queue toConnect = new ArrayDeque<>(); + + public Queue getToRead() { + return toRead; + } + + public Queue getToWrite() { + return toWrite; + } + + public Queue getToConnect() { + return toConnect; + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/SessionActions.java b/src/main/java/li/cil/oc2/common/inet/SessionActions.java new file mode 100644 index 00000000..cb72f2ae --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/SessionActions.java @@ -0,0 +1,12 @@ +package li.cil.oc2.common.inet; + +public enum SessionActions { + // Bad session. Drop the whole session + DROP, + + // Transfer message to session layer on send and to network layer on receive + FORWARD, + + // Do nothing upon return + IGNORE, +} diff --git a/src/main/java/li/cil/oc2/common/inet/SessionBase.java b/src/main/java/li/cil/oc2/common/inet/SessionBase.java new file mode 100644 index 00000000..bf4682fe --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/SessionBase.java @@ -0,0 +1,56 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.session.Session; + +import javax.annotation.Nullable; +import java.net.InetSocketAddress; +import java.time.Instant; +import java.util.concurrent.atomic.AtomicLong; + +public abstract class SessionBase implements Session { + private static final AtomicLong idGenerator = new AtomicLong(); + + private final long id = idGenerator.getAndIncrement(); + private final InetSocketAddress destination; + private Instant lastUpdateTime = Instant.now(); + @Nullable + private Object attachment; + + public SessionBase(final int ipAddress, final short port) { + destination = new InetSocketAddress(InetUtils.toJavaInetAddress(ipAddress), Short.toUnsignedInt(port)); + } + + @Override + public long getId() { + return id; + } + + public void update() { + lastUpdateTime = Instant.now(); + } + + @Override + public Instant getLastUpdateTime() { + return lastUpdateTime; + } + + @Nullable + @Override + public Object getAttachment() { + return this.attachment; + } + + @Override + public void setAttachment(@Nullable final Object userdata) { + this.attachment = userdata; + } + + @Override + public InetSocketAddress getDestination() { + return destination; + } + + public abstract SessionDiscriminator getDiscriminator(); + + public abstract void expire(); +} diff --git a/src/main/java/li/cil/oc2/common/inet/SessionDiscriminator.java b/src/main/java/li/cil/oc2/common/inet/SessionDiscriminator.java new file mode 100644 index 00000000..9a6021ca --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/SessionDiscriminator.java @@ -0,0 +1,4 @@ +package li.cil.oc2.common.inet; + +interface SessionDiscriminator { +} diff --git a/src/main/java/li/cil/oc2/common/inet/SessionOperator.java b/src/main/java/li/cil/oc2/common/inet/SessionOperator.java new file mode 100644 index 00000000..ca5ef1f1 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/SessionOperator.java @@ -0,0 +1,19 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.session.Session; + +import javax.annotation.Nullable; +import java.nio.ByteBuffer; + +public interface SessionOperator extends Session { + @Nullable + byte[] nextReceive(); + + void nextSent(final byte[] data); + + default void nextSent(final ByteBuffer data) { + final byte[] bytes = new byte[data.remaining()]; + data.get(bytes); + nextSent(bytes); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/SocketManager.java b/src/main/java/li/cil/oc2/common/inet/SocketManager.java new file mode 100644 index 00000000..f9c6f42d --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/SocketManager.java @@ -0,0 +1,104 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.session.DatagramSession; +import li.cil.oc2.api.inet.InternetManager; +import li.cil.oc2.api.inet.session.Session; +import li.cil.oc2.api.inet.session.StreamSession; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.io.IOException; +import java.nio.channels.DatagramChannel; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.SocketChannel; + +public final class SocketManager { + private static final Logger LOGGER = LogManager.getLogger(); + + private static int socketManagerUsesCount = 0; + private static SocketManager socketManager = null; + + public static SocketManager attach(final InternetManager internetManager) { + if (socketManagerUsesCount++ == 0) { + assert socketManager == null; + socketManager = new SocketManager(internetManager); + } + assert socketManager != null; + return socketManager; + } + + private final Selector selector; + private final InternetManager.Task selectionTask; + + private void selectionTaskFunction() { + try { + selector.selectNow(selectionKey -> { + final ChannelAttachment attachment = (ChannelAttachment) selectionKey.attachment(); + final Session session = attachment.session; + final ReadySessions readySessions = attachment.readySessions; + if (selectionKey.isReadable()) { + readySessions.getToRead().add(session); + } + if (selectionKey.isWritable()) { + readySessions.getToWrite().add(session); + } + if (selectionKey.isConnectable()) { + readySessions.getToConnect().add(session); + } + }); + } catch (final IOException exception) { + LOGGER.error("Exception while selecting", exception); + } + } + + private SocketManager(final InternetManager internetManager) { + try { + selector = Selector.open(); + } catch (final IOException exception) { + throw new Error("Failed to open selector", exception); + } + selectionTask = internetManager.runOnInternetThreadTick(this::selectionTaskFunction); + LOGGER.info("Started socket manager"); + } + + private record ChannelAttachment(Session session, ReadySessions readySessions) { + } + + public DatagramChannel createDatagramChannel(final DatagramSession session, + final ReadySessions readySessions) throws IOException { + final DatagramChannel datagramChannel = DatagramChannel.open(); + datagramChannel.configureBlocking(false); + final ChannelAttachment attachment = new ChannelAttachment(session, readySessions); + final int ops = SelectionKey.OP_READ | SelectionKey.OP_WRITE; + datagramChannel.register(selector, ops, attachment); + return datagramChannel; + } + + public SocketChannel createStreamChannel(final StreamSession session, + final ReadySessions readySessions) throws IOException { + final SocketChannel socketChannel = SocketChannel.open(); + socketChannel.configureBlocking(false); + final ChannelAttachment attachment = new ChannelAttachment(session, readySessions); + final int ops = SelectionKey.OP_READ | SelectionKey.OP_WRITE | SelectionKey.OP_CONNECT; + socketChannel.register(selector, ops, attachment); + return socketChannel; + } + + private void shutdown() { + selectionTask.close(); + try { + selector.close(); + } catch (final IOException exception) { + LOGGER.error("Exception during socket manager shutdown", exception); + } + LOGGER.info("Stopped socket manager"); + } + + public void detach() { + if (--socketManagerUsesCount == 0) { + shutdown(); + socketManager = null; + } + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/SocketSessionDiscriminator.java b/src/main/java/li/cil/oc2/common/inet/SocketSessionDiscriminator.java new file mode 100644 index 00000000..bca45372 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/SocketSessionDiscriminator.java @@ -0,0 +1,67 @@ +package li.cil.oc2.common.inet; + +import java.util.Objects; + +public abstract class SocketSessionDiscriminator implements SessionDiscriminator { + private final int srcIpAddress; + private final short srcPort; + private final int dstIpAddress; + private final short dstPort; + + public SocketSessionDiscriminator( + final int srcIpAddress, + final short srcPort, + final int dstIpAddress, + final short dstPort + ) { + this.srcIpAddress = srcIpAddress; + this.srcPort = srcPort; + this.dstIpAddress = dstIpAddress; + this.dstPort = dstPort; + } + + public int getSrcIpAddress() { + return srcIpAddress; + } + + public short getSrcPort() { + return srcPort; + } + + public int getDstIpAddress() { + return dstIpAddress; + } + + public short getDstPort() { + return dstPort; + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SocketSessionDiscriminator that = (SocketSessionDiscriminator) o; + return srcIpAddress == that.srcIpAddress + && srcPort == that.srcPort + && dstIpAddress == that.dstIpAddress + && dstPort == that.dstPort; + } + + @Override + public int hashCode() { + return Objects.hash(getClass(), srcIpAddress, srcPort, dstIpAddress, dstPort); + } + + abstract String protocolName(); + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(protocolName()); + builder.append('('); + InetUtils.socketAddressToString(builder, srcIpAddress, srcPort); + builder.append("<->"); + InetUtils.socketAddressToString(builder, dstIpAddress, dstPort); + builder.append(')'); + return builder.toString(); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/StreamSessionDiscriminator.java b/src/main/java/li/cil/oc2/common/inet/StreamSessionDiscriminator.java new file mode 100644 index 00000000..26518071 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/StreamSessionDiscriminator.java @@ -0,0 +1,17 @@ +package li.cil.oc2.common.inet; + +public class StreamSessionDiscriminator extends SocketSessionDiscriminator { + public StreamSessionDiscriminator( + final int srcIpAddress, + final short srcPort, + final int dstIpAddress, + final short dstPort + ) { + super(srcIpAddress, srcPort, dstIpAddress, dstPort); + } + + @Override + String protocolName() { + return "TCP"; + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/StreamSessionImpl.java b/src/main/java/li/cil/oc2/common/inet/StreamSessionImpl.java new file mode 100644 index 00000000..78144225 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/StreamSessionImpl.java @@ -0,0 +1,349 @@ +package li.cil.oc2.common.inet; + +import li.cil.oc2.api.inet.session.StreamSession; +import li.cil.oc2.common.Config; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.nio.ByteBuffer; +import java.util.Random; + +public class StreamSessionImpl extends SessionBase implements StreamSession { + + private static final Logger LOGGER = LogManager.getLogger(); + + private static final Random random = new Random(); + + private final StreamSessionDiscriminator discriminator; + + // Data from session layer implementation + private final ByteBuffer receiveBuffer = ByteBuffer.allocate(Config.streamBufferSize); + private int vmWindow = 0; + private int nextSegmentMark = 0; // for retransmission + + // Data from virtual machine + private final ByteBuffer sendBuffer = ByteBuffer.allocate(Config.streamBufferSize); + + private int mySequence = random.nextInt(); + private int vmSequence; + + private final TcpHeader header = new TcpHeader(); + + private TcpStates state = TcpStates.CONNECT; + + private boolean needsAcknowledgment = false; + + ///////////////////////////////////////////////////////////////////////// + + public StreamSessionImpl( + final int ipAddress, + final short port, + final StreamSessionDiscriminator discriminator + ) { + super(ipAddress, port); + this.discriminator = discriminator; + sendBuffer.limit(0); + } + + public SessionActions receive(final ByteBuffer segment) { + return state.receive(this, segment); + } + + public SessionActions send(final ByteBuffer segment) { + return state.send(this, segment); + } + + boolean isNeedsAcknowledgment() { + return needsAcknowledgment; + } + + @Override + public ByteBuffer getReceiveBuffer() { + switch (state) { + case EXPIRED, FINISH, REJECT -> throw new IllegalStateException(); + } + return receiveBuffer; + } + + @Override + public ByteBuffer getSendBuffer() { + switch (state) { + case EXPIRED, REJECT -> throw new IllegalStateException(); + } + return sendBuffer; + } + + @Override + public StreamSessionDiscriminator getDiscriminator() { + return discriminator; + } + + @Override + public void expire() { + state = TcpStates.EXPIRED; + } + + @Override + public void connect() { + if (state != TcpStates.CONNECT) { + throw new IllegalStateException(); + } + state = TcpStates.ACCEPT; + } + + @Override + public States getState() { + return state.toSessionState(); + } + + @Override + public void close() { + state = switch (state) { + case ESTABLISHED -> TcpStates.FINISH; + case CONNECT -> TcpStates.REJECT; + default -> throw new IllegalStateException(); + }; + } + + public TcpHeader getHeader() { + return header; + } + + @Override + public String toString() { + return "StreamSession(" + discriminator + ")"; + } + + private int computeWindow() { + return sendBuffer.capacity() - sendBuffer.limit(); + } + + private enum TcpStates { + CONNECT { + @Override + SessionActions receive(final StreamSessionImpl session, final ByteBuffer segment) { + LOGGER.warn("Incorrect session layer implementation. Stream session is not updated."); + return SessionActions.IGNORE; + } + + @Override + SessionActions send(final StreamSessionImpl session, final ByteBuffer segment) { + final TcpHeader header = session.header; + if (!header.read(segment)) { + return SessionActions.DROP; + } + if (!header.isConnectionInitiation()) { + // weird packet; drop whole session + return SessionActions.DROP; + } + // initialize stream state + session.vmSequence = header.sequenceNumber; + session.vmWindow = header.window; + return SessionActions.FORWARD; + } + + @Override + States toSessionState() { + return States.NEW; + } + }, + ACCEPT { + @Override + SessionActions receive(final StreamSessionImpl session, final ByteBuffer segment) { + final TcpHeader header = session.header; + header.acceptConnection(session.mySequence, session.vmSequence + 1, session.computeWindow()); + header.write(segment); + segment.flip(); + return SessionActions.FORWARD; + } + + @Override + SessionActions send(final StreamSessionImpl session, final ByteBuffer segment) { + final TcpHeader header = session.header; + if (!header.read(segment)) { + // strange incorrect packet; let's ignore it + return SessionActions.IGNORE; + } + if (!header.isAcceptanceOrRejectionAcknowledged()) { + return SessionActions.IGNORE; + } + session.mySequence += 1; + session.vmSequence += 1; + session.state = TcpStates.ESTABLISHED; + session.vmWindow = header.window; + // session layer already knows about this session; do not bother it + return SessionActions.IGNORE; + } + + @Override + States toSessionState() { + return States.ESTABLISHED; + } + }, + REJECT { + @Override + SessionActions receive(final StreamSessionImpl session, final ByteBuffer segment) { + final TcpHeader header = session.header; + header.rejectConnection(session.mySequence, session.vmSequence + 1); + header.write(segment); + segment.flip(); + return SessionActions.FORWARD; + } + + @Override + SessionActions send(final StreamSessionImpl session, final ByteBuffer segment) { + // rejection sent and session should be closed now + throw new IllegalStateException(); + } + + @Override + States toSessionState() { + return States.REJECT; + } + }, + ESTABLISHED { + @Override + SessionActions receive(final StreamSessionImpl session, final ByteBuffer segment) { + final TcpHeader header = session.header; + final ByteBuffer receiveBuffer = session.receiveBuffer; + if (session.nextSegmentMark == 0) { + session.nextSegmentMark = Math.min(Math.min(session.vmWindow, receiveBuffer.position()), segment.remaining() - TcpHeader.MIN_HEADER_SIZE_NO_PORTS); + LOGGER.trace("Next segment mark: {}", session.nextSegmentMark); + } + header.urg = false; + header.syn = false; + header.rst = false; + header.ack = true; //session.needsAcknowledgment; + header.sequenceNumber = session.mySequence; //- session.nextSegmentMark; + header.acknowledgmentNumber = /*header.ack ?*/ session.vmSequence /*: 0*/; + header.maxSegmentSize = -1; + header.urgentPointer = 0; + header.psh = session.nextSegmentMark != 0; + header.window = session.computeWindow(); + if (!header.ack && !header.psh && session.state != TcpStates.FINISH) { + // Nothing to send + LOGGER.trace("Established session nothing to send"); + return SessionActions.IGNORE; + } + if (header.psh) { + header.fin = false; + header.write(segment); + // We have something to receive + + // Copy payload (yes, it is easier to prepare payload first) + final int recvPos = receiveBuffer.position(); + final int recvLim = receiveBuffer.limit(); + receiveBuffer.limit(session.nextSegmentMark); + receiveBuffer.position(0); + segment.put(receiveBuffer); + receiveBuffer.limit(recvLim); + receiveBuffer.position(recvPos); + } else { + header.fin = session.state == TcpStates.FINISH; + header.write(segment); + } + segment.flip(); + return SessionActions.FORWARD; + } + + @Override + SessionActions send(final StreamSessionImpl session, final ByteBuffer segment) { + final TcpHeader header = session.header; + final boolean correct = header.read(segment); + if (!correct) { + LOGGER.trace("Got invalid TCP header"); + return SessionActions.IGNORE; + } + if (header.syn) { + LOGGER.trace("Got syn on established connection"); + return SessionActions.IGNORE; + } + if (header.sequenceNumber != session.vmSequence) { + LOGGER.trace("VM sent invalid sequence number (expected {}, got {})", session.vmSequence, header.sequenceNumber); + return SessionActions.IGNORE; + } + final int length = segment.remaining(); + if (header.psh && length > session.computeWindow()) { + LOGGER.info("Received length > window size"); + return SessionActions.IGNORE; + } + if (header.ack) { + // Segment received + if (header.acknowledgmentNumber != (session.mySequence + session.nextSegmentMark)) { + LOGGER.trace("VM acked wrong number (expected {}, got {})", session.mySequence, header.acknowledgmentNumber); + return SessionActions.IGNORE; + } + if (header.acknowledgmentNumber == (session.mySequence + session.nextSegmentMark)) { + final ByteBuffer receiveBuffer = session.receiveBuffer; + // Remove acknowledged data from buffer + final int newPosition = receiveBuffer.position() - session.nextSegmentMark; + receiveBuffer.position(session.nextSegmentMark); + receiveBuffer.compact(); + receiveBuffer.position(newPosition); + receiveBuffer.limit(receiveBuffer.capacity()); + session.mySequence += session.nextSegmentMark; + session.nextSegmentMark = 0; + } + } + session.vmWindow = header.window; + if (header.psh) { + // Data to be sent + session.vmSequence += length; + final ByteBuffer sendBuffer = session.sendBuffer; + sendBuffer.compact(); + sendBuffer.put(segment); + sendBuffer.flip(); + session.needsAcknowledgment = true; + } + if (header.fin) { + ++session.vmSequence; + session.state = FINISH; + } + return SessionActions.FORWARD; + } + + @Override + States toSessionState() { + return States.ESTABLISHED; + } + }, + FINISH { + @Override + SessionActions receive(final StreamSessionImpl session, final ByteBuffer segment) { + return SessionActions.DROP; + } + + @Override + SessionActions send(final StreamSessionImpl session, final ByteBuffer segment) { + return SessionActions.DROP; + } + + @Override + States toSessionState() { + return States.FINISH; + } + }, + EXPIRED { + @Override + SessionActions receive(final StreamSessionImpl session, final ByteBuffer segment) { + return SessionActions.DROP; + } + + @Override + SessionActions send(final StreamSessionImpl session, final ByteBuffer segment) { + return SessionActions.DROP; + } + + @Override + States toSessionState() { + return States.EXPIRED; + } + }; + + abstract SessionActions receive(StreamSessionImpl session, ByteBuffer segment); + + abstract SessionActions send(StreamSessionImpl session, ByteBuffer segment); + + abstract States toSessionState(); + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/TcpHeader.java b/src/main/java/li/cil/oc2/common/inet/TcpHeader.java new file mode 100644 index 00000000..cf730da5 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/TcpHeader.java @@ -0,0 +1,159 @@ +package li.cil.oc2.common.inet; + +import java.nio.ByteBuffer; + +public class TcpHeader { + public static final int MIN_HEADER_SIZE_NO_PORTS = 16; + + private static final byte OPTION_END = 0; + private static final byte OPTION_NOOP = 1; + private static final byte OPTION_MAX_SEGMENT_SIZE = 2; + + //////////////////////////////////////////////////////////////////////////// + + public int sequenceNumber, acknowledgmentNumber; + public boolean urg, ack, psh, rst, syn, fin; // flags + public int window; + public int urgentPointer; + + // Options + public int maxSegmentSize; + + //////////////////////////////////////////////////////////////////////////// + + public boolean read(final ByteBuffer data) { + if (data.remaining() < MIN_HEADER_SIZE_NO_PORTS) { + System.out.println("A"); + return false; + } + final int position = data.position(); + sequenceNumber = data.getInt(); + acknowledgmentNumber = data.getInt(); + final int dataOffset = position + ((data.get() >>> 2) & 0x3C) - 4; + if (dataOffset > data.limit()) { + System.out.println("C dataOffset=" + dataOffset + ", data.limit()=" + data.limit()); + return false; + } + final int flags = Byte.toUnsignedInt(data.get()); + urg = ((flags >>> 5) & 1) == 1; + ack = ((flags >>> 4) & 1) == 1; + psh = ((flags >>> 3) & 1) == 1; + rst = ((flags >>> 2) & 1) == 1; + syn = ((flags >>> 1) & 1) == 1; + fin = (flags & 1) == 1; + window = Short.toUnsignedInt(data.getShort()); + data.getShort(); // checksum + urgentPointer = Short.toUnsignedInt(data.getShort()); + + maxSegmentSize = -1; + + while (dataOffset > data.position()) { + final byte type = data.get(); + switch (type) { + case OPTION_END: + data.position(dataOffset); + return true; + case OPTION_NOOP: + continue; + default: + break; + } + final int size = Byte.toUnsignedInt(data.get()); + if (type == OPTION_MAX_SEGMENT_SIZE) { + if (size != 4) { + data.position(position); + System.out.println("B"); + return false; + } + maxSegmentSize = Short.toUnsignedInt(data.getShort()); + } else { + // Skip unknown option + data.position(data.position() + size - 2); + } + } + data.position(dataOffset); + return true; + } + + private int bool2int(boolean value) { + return value ? 1 : 0; + } + + public void write(final ByteBuffer data) { + data.putInt(sequenceNumber); + data.putInt(acknowledgmentNumber); + final int headerLength = 4 + MIN_HEADER_SIZE_NO_PORTS + (maxSegmentSize == -1 ? 0 : 4); + data.put((byte) (headerLength << 2)); + final int flags = + (bool2int(urg) << 5) | + (bool2int(ack) << 4) | + (bool2int(psh) << 3) | + (bool2int(rst) << 2) | + (bool2int(syn) << 1) | + (bool2int(fin)); + data.put((byte) flags); + data.putShort((short) window); + data.putShort((short) 0); // checksum + data.putShort((short) urgentPointer); + + // Options + if (maxSegmentSize != -1) { + data.put(OPTION_MAX_SEGMENT_SIZE); + data.put((byte) 4); + data.putShort((short) maxSegmentSize); + } + } + + public boolean isConnectionInitiation() { + return syn && !urg && !ack && !psh && !rst && !fin; + } + + public void acceptConnection(final int sequence, final int acknowledgment, final int window) { + sequenceNumber = sequence; + acknowledgmentNumber = acknowledgment; + urg = false; + ack = true; + psh = false; + rst = false; + syn = true; + fin = false; + this.window = window; + urgentPointer = 0; + maxSegmentSize = -1; + } + + public boolean isAcceptanceOrRejectionAcknowledged() { + return !syn && !urg && ack && !psh && !rst && !fin; + } + + public void rejectConnection(final int sequence, final int acknowledgment) { + sequenceNumber = sequence; + acknowledgmentNumber = acknowledgment; + urg = false; + ack = true; + psh = false; + rst = true; + syn = false; + fin = false; + window = 0; + urgentPointer = 0; + maxSegmentSize = -1; + } + + @Override + public String toString() { + return "TcpHeader{" + + "sequenceNumber=" + sequenceNumber + + ", acknowledgmentNumber=" + acknowledgmentNumber + + ", urg=" + urg + + ", ack=" + ack + + ", psh=" + psh + + ", rst=" + rst + + ", syn=" + syn + + ", fin=" + fin + + ", window=" + window + + ", urgentPointer=" + urgentPointer + + ", maxSegmentSize=" + maxSegmentSize + + '}'; + } +} diff --git a/src/main/java/li/cil/oc2/common/inet/package-info.java b/src/main/java/li/cil/oc2/common/inet/package-info.java new file mode 100644 index 00000000..dc9c80c0 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/inet/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.inet; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/integration/IMC.java b/src/main/java/li/cil/oc2/common/integration/IMC.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/integration/IMC.java rename to src/main/java/li/cil/oc2/common/integration/IMC.java index 06d9dc4a..142fad22 100644 --- a/src/main/java/li/cil/oc2r/common/integration/IMC.java +++ b/src/main/java/li/cil/oc2/common/integration/IMC.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.integration; +package li.cil.oc2.common.integration; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.imc.RPCMethodParameterTypeAdapter; -import li.cil.oc2r.common.bus.device.rpc.RPCMethodParameterTypeAdapters; +import li.cil.oc2.api.API; +import li.cil.oc2.api.imc.RPCMethodParameterTypeAdapter; +import li.cil.oc2.common.bus.device.rpc.RPCMethodParameterTypeAdapters; import net.minecraft.Util; import net.minecraftforge.fml.InterModComms; import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent; diff --git a/src/main/java/li/cil/oc2r/common/integration/Integrations.java b/src/main/java/li/cil/oc2/common/integration/Integrations.java similarity index 66% rename from src/main/java/li/cil/oc2r/common/integration/Integrations.java rename to src/main/java/li/cil/oc2/common/integration/Integrations.java index 4422b018..047d09a5 100644 --- a/src/main/java/li/cil/oc2r/common/integration/Integrations.java +++ b/src/main/java/li/cil/oc2/common/integration/Integrations.java @@ -1,6 +1,6 @@ -package li.cil.oc2r.common.integration; +package li.cil.oc2.common.integration; -import li.cil.oc2r.common.integration.projectred.BundledCableHandler; +import li.cil.oc2.common.integration.projectred.BundledCableHandler; import net.minecraftforge.fml.ModList; public class Integrations { diff --git a/src/main/java/li/cil/oc2r/common/integration/Wrenches.java b/src/main/java/li/cil/oc2/common/integration/Wrenches.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/integration/Wrenches.java rename to src/main/java/li/cil/oc2/common/integration/Wrenches.java index 190ffa61..e7743f10 100644 --- a/src/main/java/li/cil/oc2r/common/integration/Wrenches.java +++ b/src/main/java/li/cil/oc2/common/integration/Wrenches.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.integration; +package li.cil.oc2.common.integration; -import li.cil.oc2r.common.tags.ItemTags; +import li.cil.oc2.common.tags.ItemTags; import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/integration/jei/ExtraGuiAreasJEIPlugin.java b/src/main/java/li/cil/oc2/common/integration/jei/ExtraGuiAreasJEIPlugin.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/integration/jei/ExtraGuiAreasJEIPlugin.java rename to src/main/java/li/cil/oc2/common/integration/jei/ExtraGuiAreasJEIPlugin.java index 06a9efe5..b633e9a1 100644 --- a/src/main/java/li/cil/oc2r/common/integration/jei/ExtraGuiAreasJEIPlugin.java +++ b/src/main/java/li/cil/oc2/common/integration/jei/ExtraGuiAreasJEIPlugin.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.integration.jei; +package li.cil.oc2.common.integration.jei; -import li.cil.oc2r.api.API; -import li.cil.oc2r.client.gui.AbstractMachineInventoryScreen; -import li.cil.oc2r.client.gui.AbstractMachineTerminalScreen; -import li.cil.oc2r.common.block.ComputerBlock; +import li.cil.oc2.api.API; +import li.cil.oc2.client.gui.AbstractMachineInventoryScreen; +import li.cil.oc2.client.gui.AbstractMachineTerminalScreen; +import li.cil.oc2.common.block.ComputerBlock; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; import mezz.jei.api.constants.VanillaTypes; diff --git a/src/main/java/li/cil/oc2r/common/integration/jei/ExtraItemsJEIPlugin.java b/src/main/java/li/cil/oc2/common/integration/jei/ExtraItemsJEIPlugin.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/integration/jei/ExtraItemsJEIPlugin.java rename to src/main/java/li/cil/oc2/common/integration/jei/ExtraItemsJEIPlugin.java index 14b4b34a..b202b6d2 100644 --- a/src/main/java/li/cil/oc2r/common/integration/jei/ExtraItemsJEIPlugin.java +++ b/src/main/java/li/cil/oc2/common/integration/jei/ExtraItemsJEIPlugin.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.integration.jei; +package li.cil.oc2.common.integration.jei; import com.google.common.base.Strings; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.item.AbstractBlockDeviceItem; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.NBTUtils; +import li.cil.oc2.api.API; +import li.cil.oc2.common.item.AbstractBlockDeviceItem; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.NBTUtils; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; import mezz.jei.api.constants.VanillaTypes; @@ -23,8 +23,8 @@ import net.minecraft.world.item.ItemStack; import javax.annotation.Nullable; -import static li.cil.oc2r.common.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM; -import static li.cil.oc2r.common.Constants.ITEMS_TAG_NAME; +import static li.cil.oc2.common.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM; +import static li.cil.oc2.common.Constants.ITEMS_TAG_NAME; @JeiPlugin public class ExtraItemsJEIPlugin implements IModPlugin { diff --git a/src/main/java/li/cil/oc2/common/integration/jei/package-info.java b/src/main/java/li/cil/oc2/common/integration/jei/package-info.java new file mode 100644 index 00000000..fdd08fd5 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/integration/jei/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.integration.jei; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/integration/package-info.java b/src/main/java/li/cil/oc2/common/integration/package-info.java new file mode 100644 index 00000000..a9b0fdf9 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/integration/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.integration; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/integration/projectred/BundledCableHandler.java b/src/main/java/li/cil/oc2/common/integration/projectred/BundledCableHandler.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/integration/projectred/BundledCableHandler.java rename to src/main/java/li/cil/oc2/common/integration/projectred/BundledCableHandler.java index becfe941..2136701b 100644 --- a/src/main/java/li/cil/oc2r/common/integration/projectred/BundledCableHandler.java +++ b/src/main/java/li/cil/oc2/common/integration/projectred/BundledCableHandler.java @@ -1,7 +1,7 @@ -package li.cil.oc2r.common.integration.projectred; +package li.cil.oc2.common.integration.projectred; -import li.cil.oc2r.common.blockentity.RedstoneInterfaceBlockEntity; -import li.cil.oc2r.common.integration.util.BundledRedstone; +import li.cil.oc2.common.blockentity.RedstoneInterfaceBlockEntity; +import li.cil.oc2.common.integration.util.BundledRedstone; import mrtjp.projectred.api.IBundledTileInteraction; import mrtjp.projectred.api.ITransmissionAPI; import mrtjp.projectred.api.ProjectRedAPI; diff --git a/src/main/java/li/cil/oc2r/common/integration/util/BundledRedstone.java b/src/main/java/li/cil/oc2/common/integration/util/BundledRedstone.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/integration/util/BundledRedstone.java rename to src/main/java/li/cil/oc2/common/integration/util/BundledRedstone.java index c0e076ad..a20b7c9b 100644 --- a/src/main/java/li/cil/oc2r/common/integration/util/BundledRedstone.java +++ b/src/main/java/li/cil/oc2/common/integration/util/BundledRedstone.java @@ -1,6 +1,6 @@ -package li.cil.oc2r.common.integration.util; +package li.cil.oc2.common.integration.util; -import li.cil.oc2r.common.integration.projectred.BundledCableHandler; +import li.cil.oc2.common.integration.projectred.BundledCableHandler; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.Level; diff --git a/src/main/java/li/cil/oc2r/common/item/AbstractBlockDeviceItem.java b/src/main/java/li/cil/oc2/common/item/AbstractBlockDeviceItem.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/item/AbstractBlockDeviceItem.java rename to src/main/java/li/cil/oc2/common/item/AbstractBlockDeviceItem.java index 65fe2cd6..8b7b7354 100644 --- a/src/main/java/li/cil/oc2r/common/item/AbstractBlockDeviceItem.java +++ b/src/main/java/li/cil/oc2/common/item/AbstractBlockDeviceItem.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.bus.device.data.BlockDeviceData; -import li.cil.oc2r.common.bus.device.data.BlockDeviceDataRegistry; -import li.cil.oc2r.common.util.ItemStackUtils; +import li.cil.oc2.api.bus.device.data.BlockDeviceData; +import li.cil.oc2.common.bus.device.data.BlockDeviceDataRegistry; +import li.cil.oc2.common.util.ItemStackUtils; import net.minecraft.ResourceLocationException; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/common/item/AbstractStorageItem.java b/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/item/AbstractStorageItem.java rename to src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java index 9caa2839..a5007b3b 100644 --- a/src/main/java/li/cil/oc2r/common/item/AbstractStorageItem.java +++ b/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.util.TextFormatUtils; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.util.TextFormatUtils; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/item/BlockOperationsModule.java b/src/main/java/li/cil/oc2/common/item/BlockOperationsModule.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/item/BlockOperationsModule.java rename to src/main/java/li/cil/oc2/common/item/BlockOperationsModule.java index 7612bae7..14983655 100644 --- a/src/main/java/li/cil/oc2r/common/item/BlockOperationsModule.java +++ b/src/main/java/li/cil/oc2/common/item/BlockOperationsModule.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; public final class BlockOperationsModule extends ModItem { public static final int DURABILITY = 2500; diff --git a/src/main/java/li/cil/oc2r/common/item/BusCableItem.java b/src/main/java/li/cil/oc2/common/item/BusCableItem.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/item/BusCableItem.java rename to src/main/java/li/cil/oc2/common/item/BusCableItem.java index 835c6a4b..a4ba73b7 100644 --- a/src/main/java/li/cil/oc2r/common/item/BusCableItem.java +++ b/src/main/java/li/cil/oc2/common/item/BusCableItem.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.block.BusCableBlock; -import li.cil.oc2r.common.util.LevelUtils; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.BusCableBlock; +import li.cil.oc2.common.util.LevelUtils; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/item/BusInterfaceItem.java b/src/main/java/li/cil/oc2/common/item/BusInterfaceItem.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/item/BusInterfaceItem.java rename to src/main/java/li/cil/oc2/common/item/BusInterfaceItem.java index 2877f6ff..53fc1ac7 100644 --- a/src/main/java/li/cil/oc2r/common/item/BusInterfaceItem.java +++ b/src/main/java/li/cil/oc2/common/item/BusInterfaceItem.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.block.BusCableBlock; -import li.cil.oc2r.common.block.BusCableBlock.ConnectionType; -import li.cil.oc2r.common.util.LevelUtils; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.block.BusCableBlock; +import li.cil.oc2.common.block.BusCableBlock.ConnectionType; +import li.cil.oc2.common.util.LevelUtils; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/li/cil/oc2r/common/item/CPUItem.java b/src/main/java/li/cil/oc2/common/item/CPUItem.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/item/CPUItem.java rename to src/main/java/li/cil/oc2/common/item/CPUItem.java index 3b2f8978..3d9d1b94 100644 --- a/src/main/java/li/cil/oc2r/common/item/CPUItem.java +++ b/src/main/java/li/cil/oc2/common/item/CPUItem.java @@ -1,4 +1,4 @@ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/item/ChargerItem.java b/src/main/java/li/cil/oc2/common/item/ChargerItem.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/item/ChargerItem.java rename to src/main/java/li/cil/oc2/common/item/ChargerItem.java index aaa2b4e4..644da7e6 100644 --- a/src/main/java/li/cil/oc2r/common/item/ChargerItem.java +++ b/src/main/java/li/cil/oc2/common/item/ChargerItem.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/li/cil/oc2r/common/item/FlashMemoryItem.java b/src/main/java/li/cil/oc2/common/item/FlashMemoryItem.java similarity index 86% rename from src/main/java/li/cil/oc2r/common/item/FlashMemoryItem.java rename to src/main/java/li/cil/oc2/common/item/FlashMemoryItem.java index 1d8744b5..54992ae2 100644 --- a/src/main/java/li/cil/oc2r/common/item/FlashMemoryItem.java +++ b/src/main/java/li/cil/oc2/common/item/FlashMemoryItem.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.bus.device.vm.item.ByteBufferFlashStorageDevice; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.api.API; +import li.cil.oc2.common.bus.device.vm.item.ByteBufferFlashStorageDevice; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/item/FlashMemoryWithExternalDataItem.java b/src/main/java/li/cil/oc2/common/item/FlashMemoryWithExternalDataItem.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/item/FlashMemoryWithExternalDataItem.java rename to src/main/java/li/cil/oc2/common/item/FlashMemoryWithExternalDataItem.java index 4fe2d005..d1c3a10b 100644 --- a/src/main/java/li/cil/oc2r/common/item/FlashMemoryWithExternalDataItem.java +++ b/src/main/java/li/cil/oc2/common/item/FlashMemoryWithExternalDataItem.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.bus.device.data.Firmware; -import li.cil.oc2r.common.bus.device.data.FirmwareRegistry; -import li.cil.oc2r.common.util.ItemStackUtils; +import li.cil.oc2.api.bus.device.data.Firmware; +import li.cil.oc2.common.bus.device.data.FirmwareRegistry; +import li.cil.oc2.common.util.ItemStackUtils; import net.minecraft.ResourceLocationException; import net.minecraft.Util; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/item/FloppyItem.java b/src/main/java/li/cil/oc2/common/item/FloppyItem.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/item/FloppyItem.java rename to src/main/java/li/cil/oc2/common/item/FloppyItem.java index 79a6f9b2..3b5cd72c 100644 --- a/src/main/java/li/cil/oc2r/common/item/FloppyItem.java +++ b/src/main/java/li/cil/oc2/common/item/FloppyItem.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; import net.minecraft.world.item.DyeableLeatherItem; diff --git a/src/main/java/li/cil/oc2r/common/item/HardDriveItem.java b/src/main/java/li/cil/oc2/common/item/HardDriveItem.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/item/HardDriveItem.java rename to src/main/java/li/cil/oc2/common/item/HardDriveItem.java index b109a57c..aacff7da 100644 --- a/src/main/java/li/cil/oc2r/common/item/HardDriveItem.java +++ b/src/main/java/li/cil/oc2/common/item/HardDriveItem.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.util.ColorUtils; +import li.cil.oc2.api.API; +import li.cil.oc2.common.util.ColorUtils; import net.minecraft.Util; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; diff --git a/src/main/java/li/cil/oc2r/common/item/HardDriveWithExternalDataItem.java b/src/main/java/li/cil/oc2/common/item/HardDriveWithExternalDataItem.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/item/HardDriveWithExternalDataItem.java rename to src/main/java/li/cil/oc2/common/item/HardDriveWithExternalDataItem.java index 93d8ae84..2cf91160 100644 --- a/src/main/java/li/cil/oc2r/common/item/HardDriveWithExternalDataItem.java +++ b/src/main/java/li/cil/oc2/common/item/HardDriveWithExternalDataItem.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.util.ColorUtils; +import li.cil.oc2.api.API; +import li.cil.oc2.common.util.ColorUtils; import net.minecraft.Util; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; diff --git a/src/main/java/li/cil/oc2r/common/item/ItemGroup.java b/src/main/java/li/cil/oc2/common/item/ItemGroup.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/item/ItemGroup.java rename to src/main/java/li/cil/oc2/common/item/ItemGroup.java index e8aac524..b9ef799a 100644 --- a/src/main/java/li/cil/oc2r/common/item/ItemGroup.java +++ b/src/main/java/li/cil/oc2/common/item/ItemGroup.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.block.ComputerBlock; +import li.cil.oc2.api.API; +import li.cil.oc2.common.block.ComputerBlock; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; @@ -59,6 +59,8 @@ public final class ItemGroup { output.accept(Items.FLOPPY.get()); output.accept(Items.FLOPPY_MODERN.get()); output.accept(Items.REDSTONE_INTERFACE_CARD.get()); + output.accept(Items.INTERNET_CARD.get()); + output.accept(Items.INTERNET_CARD.get()); output.accept(Items.NETWORK_INTERFACE_CARD.get()); output.accept(Items.NETWORK_TUNNEL_CARD.get()); output.accept(Items.FILE_IMPORT_EXPORT_CARD.get()); diff --git a/src/main/java/li/cil/oc2r/common/item/ItemRenameHandler.java b/src/main/java/li/cil/oc2/common/item/ItemRenameHandler.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/item/ItemRenameHandler.java rename to src/main/java/li/cil/oc2/common/item/ItemRenameHandler.java index d091b25d..2f26df71 100644 --- a/src/main/java/li/cil/oc2r/common/item/ItemRenameHandler.java +++ b/src/main/java/li/cil/oc2/common/item/ItemRenameHandler.java @@ -1,6 +1,6 @@ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.Util; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/common/item/Items.java b/src/main/java/li/cil/oc2/common/item/Items.java similarity index 86% rename from src/main/java/li/cil/oc2r/common/item/Items.java rename to src/main/java/li/cil/oc2/common/item/Items.java index bb800c87..ed493b25 100644 --- a/src/main/java/li/cil/oc2r/common/item/Items.java +++ b/src/main/java/li/cil/oc2/common/item/Items.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.bus.device.data.BlockDeviceDataRegistry; -import li.cil.oc2r.common.bus.device.data.FirmwareRegistry; +import li.cil.oc2.api.API; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.bus.device.data.FirmwareRegistry; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -14,6 +14,7 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; +import li.cil.oc2.common.bus.device.data.FileSystems; import java.util.function.Function; import java.util.function.Supplier; @@ -37,8 +38,9 @@ public final class Items { //public static final RegistryObject NETWORK_SWITCH = register(Blocks.NETWORK_SWITCH); public static final RegistryObject PROJECTOR = register(Blocks.PROJECTOR); public static final RegistryObject REDSTONE_INTERFACE = register(Blocks.REDSTONE_INTERFACE); - //public static final RegistryObject VXLAN_HUB = register(Blocks.VXLAN_HUB); - //public static final RegistryObject PCI_CARD_CAGE = register(Blocks.PCI_CARD_CAGE); + public static final RegistryObject VXLAN_HUB = register(Blocks.VXLAN_HUB); + public static final RegistryObject PCI_CARD_CAGE = register(Blocks.PCI_CARD_CAGE); + public static final RegistryObject INTERNET_GATEWAY = register(Blocks.INTERNET_GATEWAY); /////////////////////////////////////////////////////////////////// @@ -58,15 +60,16 @@ public final class Items { new MemoryItem(16 * Constants.MEGABYTE)); public static final RegistryObject HARD_DRIVE_SMALL = register("hard_drive_small", () -> - new HardDriveItem(2 * Constants.MEGABYTE, DyeColor.LIGHT_GRAY)); + new HardDriveItem(Config.diskSizeFactor, DyeColor.LIGHT_GRAY)); public static final RegistryObject HARD_DRIVE_MEDIUM = register("hard_drive_medium", () -> - new HardDriveItem(4 * Constants.MEGABYTE, DyeColor.GREEN)); + new HardDriveItem(2 * Config.diskSizeFactor, DyeColor.GREEN)); public static final RegistryObject HARD_DRIVE_LARGE = register("hard_drive_large", () -> - new HardDriveItem(8 * Constants.MEGABYTE, DyeColor.CYAN)); + new HardDriveItem(4 * Config.diskSizeFactor, DyeColor.CYAN)); public static final RegistryObject HARD_DRIVE_EXTRA_LARGE = register("hard_drive_extra_large", () -> - new HardDriveItem(16 * Constants.MEGABYTE, DyeColor.YELLOW)); - public static final RegistryObject HARD_DRIVE_CUSTOM = register("hard_drive_custom", () -> - new HardDriveWithExternalDataItem(BlockDeviceDataRegistry.BUILDROOT.getId(), DyeColor.BROWN)); + new HardDriveItem(16 * Config.diskSizeFactor, DyeColor.YELLOW)); + public static final RegistryObject HARD_DRIVE_CUSTOM = register + ("hard_drive_custom", () -> + new HardDriveWithExternalDataItem(FileSystems.getKeyByValue(FileSystems.getBlockByName("rootfs")), DyeColor.BROWN)); public static final RegistryObject CPU_TIER_1 = register("cpu_tier_1", () -> new CPUItem(25_000_000)); @@ -76,7 +79,6 @@ public final class Items { new CPUItem(100_000_000)); public static final RegistryObject CPU_TIER_4 = register("cpu_tier_4", () -> new CPUItem(200_000_000)); - public static final RegistryObject FLASH_MEMORY = register("flash_memory", () -> new FlashMemoryItem(12 * Constants.MEGABYTE)); public static final RegistryObject FLASH_MEMORY_CUSTOM = register("flash_memory_custom", () -> @@ -90,6 +92,7 @@ public final class Items { public static final RegistryObject REDSTONE_INTERFACE_CARD = register("redstone_interface_card"); public static final RegistryObject NETWORK_INTERFACE_CARD = register("network_interface_card", NetworkInterfaceCardItem::new); public static final RegistryObject NETWORK_TUNNEL_CARD = register("network_tunnel_card", NetworkTunnelItem::new); + public static final RegistryObject INTERNET_CARD = register("internet_card"); public static final RegistryObject FILE_IMPORT_EXPORT_CARD = register("file_import_export_card"); public static final RegistryObject SOUND_CARD = register("sound_card"); diff --git a/src/main/java/li/cil/oc2r/common/item/ManualItem.java b/src/main/java/li/cil/oc2/common/item/ManualItem.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/item/ManualItem.java rename to src/main/java/li/cil/oc2/common/item/ManualItem.java index bac9b155..33bc0a82 100644 --- a/src/main/java/li/cil/oc2r/common/item/ManualItem.java +++ b/src/main/java/li/cil/oc2/common/item/ManualItem.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; import li.cil.manual.api.ManualModel; import li.cil.manual.api.ManualScreenStyle; import li.cil.manual.api.ManualStyle; import li.cil.manual.api.prefab.item.AbstractManualItem; -import li.cil.oc2r.client.manual.Manuals; -import li.cil.oc2r.client.manual.ModManualScreenStyle; -import li.cil.oc2r.client.manual.ModManualStyle; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.client.manual.Manuals; +import li.cil.oc2.client.manual.ModManualScreenStyle; +import li.cil.oc2.client.manual.ModManualStyle; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.network.chat.Component; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/item/MemoryItem.java b/src/main/java/li/cil/oc2/common/item/MemoryItem.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/item/MemoryItem.java rename to src/main/java/li/cil/oc2/common/item/MemoryItem.java index 07eaad58..a8aee5bc 100644 --- a/src/main/java/li/cil/oc2r/common/item/MemoryItem.java +++ b/src/main/java/li/cil/oc2/common/item/MemoryItem.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.Util; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/common/item/ModBlockItem.java b/src/main/java/li/cil/oc2/common/item/ModBlockItem.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/item/ModBlockItem.java rename to src/main/java/li/cil/oc2/common/item/ModBlockItem.java index 5d244bc1..356565a7 100644 --- a/src/main/java/li/cil/oc2r/common/item/ModBlockItem.java +++ b/src/main/java/li/cil/oc2/common/item/ModBlockItem.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.network.chat.Component; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/item/ModItem.java b/src/main/java/li/cil/oc2/common/item/ModItem.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/item/ModItem.java rename to src/main/java/li/cil/oc2/common/item/ModItem.java index 1895d37f..393e9e45 100644 --- a/src/main/java/li/cil/oc2r/common/item/ModItem.java +++ b/src/main/java/li/cil/oc2/common/item/ModItem.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.network.chat.Component; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/item/NetworkCableItem.java b/src/main/java/li/cil/oc2/common/item/NetworkCableItem.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/item/NetworkCableItem.java rename to src/main/java/li/cil/oc2/common/item/NetworkCableItem.java index 8d9200d4..20be21b8 100644 --- a/src/main/java/li/cil/oc2r/common/item/NetworkCableItem.java +++ b/src/main/java/li/cil/oc2/common/item/NetworkCableItem.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.blockentity.NetworkConnectorBlockEntity; -import li.cil.oc2r.common.blockentity.NetworkConnectorBlockEntity.ConnectionResult; +import li.cil.oc2.api.API; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.blockentity.NetworkConnectorBlockEntity; +import li.cil.oc2.common.blockentity.NetworkConnectorBlockEntity.ConnectionResult; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; diff --git a/src/main/java/li/cil/oc2r/common/item/NetworkInterfaceCardItem.java b/src/main/java/li/cil/oc2/common/item/NetworkInterfaceCardItem.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/item/NetworkInterfaceCardItem.java rename to src/main/java/li/cil/oc2/common/item/NetworkInterfaceCardItem.java index 62893fb9..8e11ff3c 100644 --- a/src/main/java/li/cil/oc2r/common/item/NetworkInterfaceCardItem.java +++ b/src/main/java/li/cil/oc2/common/item/NetworkInterfaceCardItem.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.client.gui.NetworkInterfaceCardScreen; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.client.gui.NetworkInterfaceCardScreen; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.core.Direction; @@ -24,8 +24,8 @@ import javax.annotation.Nullable; import java.util.Arrays; import java.util.List; -import static li.cil.oc2r.common.util.TextFormatUtils.withFormat; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TextFormatUtils.withFormat; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class NetworkInterfaceCardItem extends ModItem { private static final String SIDE_CONFIGURATION_TAG_NAME = "sides"; diff --git a/src/main/java/li/cil/oc2r/common/item/NetworkTunnelItem.java b/src/main/java/li/cil/oc2/common/item/NetworkTunnelItem.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/item/NetworkTunnelItem.java rename to src/main/java/li/cil/oc2/common/item/NetworkTunnelItem.java index 65af1eec..813cf97e 100644 --- a/src/main/java/li/cil/oc2r/common/item/NetworkTunnelItem.java +++ b/src/main/java/li/cil/oc2/common/item/NetworkTunnelItem.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.common.container.NetworkTunnelContainer; -import li.cil.oc2r.common.util.ItemStackUtils; -import li.cil.oc2r.common.util.TextFormatUtils; +import li.cil.oc2.common.container.NetworkTunnelContainer; +import li.cil.oc2.common.util.ItemStackUtils; +import li.cil.oc2.common.util.TextFormatUtils; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -23,7 +23,7 @@ import java.util.List; import java.util.Optional; import java.util.UUID; -import static li.cil.oc2r.common.util.TranslationUtils.key; +import static li.cil.oc2.common.util.TranslationUtils.key; public final class NetworkTunnelItem extends ModItem { private static final String TUNNEL_ID_TAG_NAME = "tunnel"; diff --git a/src/main/java/li/cil/oc2r/common/item/RobotItem.java b/src/main/java/li/cil/oc2/common/item/RobotItem.java similarity index 86% rename from src/main/java/li/cil/oc2r/common/item/RobotItem.java rename to src/main/java/li/cil/oc2/common/item/RobotItem.java index 42059e1b..d4c74a29 100644 --- a/src/main/java/li/cil/oc2r/common/item/RobotItem.java +++ b/src/main/java/li/cil/oc2/common/item/RobotItem.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.client.renderer.entity.RobotWithoutLevelRenderer; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.energy.EnergyStorageItemStack; -import li.cil.oc2r.common.entity.Entities; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.entity.robot.RobotActions; -import li.cil.oc2r.common.util.LevelUtils; -import li.cil.oc2r.common.util.NBTUtils; -import li.cil.oc2r.common.util.TooltipUtils; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.client.renderer.entity.RobotWithoutLevelRenderer; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.energy.EnergyStorageItemStack; +import li.cil.oc2.common.entity.Entities; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.entity.robot.RobotActions; +import li.cil.oc2.common.util.LevelUtils; +import li.cil.oc2.common.util.NBTUtils; +import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.core.BlockPos; @@ -36,9 +36,9 @@ import javax.annotation.Nullable; import java.util.List; import java.util.function.Consumer; -import static li.cil.oc2r.common.Constants.*; -import static li.cil.oc2r.common.util.NBTUtils.makeInventoryTag; -import static li.cil.oc2r.common.util.RegistryUtils.key; +import static li.cil.oc2.common.Constants.*; +import static li.cil.oc2.common.util.NBTUtils.makeInventoryTag; +import static li.cil.oc2.common.util.RegistryUtils.key; public final class RobotItem extends ModItem { @Override diff --git a/src/main/java/li/cil/oc2r/common/item/WrenchItem.java b/src/main/java/li/cil/oc2/common/item/WrenchItem.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/item/WrenchItem.java rename to src/main/java/li/cil/oc2/common/item/WrenchItem.java index 2b3901af..71f9a9b3 100644 --- a/src/main/java/li/cil/oc2r/common/item/WrenchItem.java +++ b/src/main/java/li/cil/oc2/common/item/WrenchItem.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item; +package li.cil.oc2.common.item; -import li.cil.oc2r.common.tags.BlockTags; +import li.cil.oc2.common.tags.BlockTags; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.MultiPlayerGameMode; import net.minecraft.core.BlockPos; diff --git a/src/main/java/li/cil/oc2r/common/item/crafting/RecipeSerializers.java b/src/main/java/li/cil/oc2/common/item/crafting/RecipeSerializers.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/item/crafting/RecipeSerializers.java rename to src/main/java/li/cil/oc2/common/item/crafting/RecipeSerializers.java index 7887be3d..d0e70608 100644 --- a/src/main/java/li/cil/oc2r/common/item/crafting/RecipeSerializers.java +++ b/src/main/java/li/cil/oc2/common/item/crafting/RecipeSerializers.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item.crafting; +package li.cil.oc2.common.item.crafting; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; diff --git a/src/main/java/li/cil/oc2r/common/item/crafting/WrenchRecipe.java b/src/main/java/li/cil/oc2/common/item/crafting/WrenchRecipe.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/item/crafting/WrenchRecipe.java rename to src/main/java/li/cil/oc2/common/item/crafting/WrenchRecipe.java index 25e129e6..8c4339ad 100644 --- a/src/main/java/li/cil/oc2r/common/item/crafting/WrenchRecipe.java +++ b/src/main/java/li/cil/oc2/common/item/crafting/WrenchRecipe.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.item.crafting; +package li.cil.oc2.common.item.crafting; import com.google.gson.JsonObject; -import li.cil.oc2r.common.integration.Wrenches; +import li.cil.oc2.common.integration.Wrenches; import net.minecraft.core.NonNullList; import net.minecraft.core.RegistryAccess; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/li/cil/oc2/common/item/crafting/package-info.java b/src/main/java/li/cil/oc2/common/item/crafting/package-info.java new file mode 100644 index 00000000..b5f62d13 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/item/crafting/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.item.crafting; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/item/package-info.java b/src/main/java/li/cil/oc2/common/item/package-info.java new file mode 100644 index 00000000..63a35021 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/item/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.item; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/mixin/FrustumMixin.java b/src/main/java/li/cil/oc2/common/mixin/FrustumMixin.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/mixin/FrustumMixin.java rename to src/main/java/li/cil/oc2/common/mixin/FrustumMixin.java index 0201a067..4adbfb3a 100644 --- a/src/main/java/li/cil/oc2r/common/mixin/FrustumMixin.java +++ b/src/main/java/li/cil/oc2/common/mixin/FrustumMixin.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.mixin; +package li.cil.oc2.common.mixin; -import li.cil.oc2r.client.renderer.ProjectorDepthRenderer; +import li.cil.oc2.client.renderer.ProjectorDepthRenderer; import net.minecraft.client.renderer.culling.Frustum; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Frustum.class) -public abstract class FrustumMixin { +public class FrustumMixin { /** * Skip offsetting the frustum to fully contain camera cube, since we have a very * tight frustum when rendering projector depth; so tight that the cube may never diff --git a/src/main/java/li/cil/oc2r/common/mixin/LevelRendererMixin.java b/src/main/java/li/cil/oc2/common/mixin/LevelRendererMixin.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/mixin/LevelRendererMixin.java rename to src/main/java/li/cil/oc2/common/mixin/LevelRendererMixin.java index 4c84d638..d1d7e809 100644 --- a/src/main/java/li/cil/oc2r/common/mixin/LevelRendererMixin.java +++ b/src/main/java/li/cil/oc2/common/mixin/LevelRendererMixin.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.mixin; +package li.cil.oc2.common.mixin; import com.mojang.blaze3d.pipeline.RenderTarget; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import org.joml.Matrix4f; -import li.cil.oc2r.client.renderer.ProjectorDepthRenderer; +import li.cil.oc2.client.renderer.ProjectorDepthRenderer; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.*; @@ -14,6 +14,7 @@ import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.world.phys.Vec3; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -24,6 +25,7 @@ import javax.annotation.Nullable; @Mixin(LevelRenderer.class) public abstract class LevelRendererMixin { + @Mutable @Shadow @Final private RenderBuffers renderBuffers; @@ -48,6 +50,10 @@ public abstract class LevelRendererMixin { @Shadow protected abstract void renderSnowAndRain(final LightTexture lightTexture, final float partialTicks, final double cameraX, final double cameraY, final double cameraZ); + @Shadow + @Nullable + private Frustum capturedFrustum; + @Inject(method = "renderLevel", at = @At("HEAD")) private void prepareDepthRendering(final CallbackInfo ci) { if (ProjectorDepthRenderer.isIsRenderingProjectorDepth()) { @@ -112,6 +118,8 @@ public abstract class LevelRendererMixin { // fabulous shading breaks it. ProjectorDepthRenderer.captureMainCameraDepth(); } + + cullingFrustum = new Frustum(stack.last().pose(), projectionMatrix); } /** diff --git a/src/main/java/li/cil/oc2r/common/mixin/MinecraftMixin.java b/src/main/java/li/cil/oc2/common/mixin/MinecraftMixin.java similarity index 81% rename from src/main/java/li/cil/oc2r/common/mixin/MinecraftMixin.java rename to src/main/java/li/cil/oc2/common/mixin/MinecraftMixin.java index 132312c8..c390e4a4 100644 --- a/src/main/java/li/cil/oc2r/common/mixin/MinecraftMixin.java +++ b/src/main/java/li/cil/oc2/common/mixin/MinecraftMixin.java @@ -1,10 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.mixin; +package li.cil.oc2.common.mixin; import com.mojang.blaze3d.pipeline.RenderTarget; -import li.cil.oc2r.client.renderer.ProjectorDepthRenderer; -import li.cil.oc2r.common.ext.MinecraftExt; +import com.mojang.blaze3d.systems.RenderSystem; +import li.cil.oc2.client.renderer.ProjectorDepthRenderer; +import li.cil.oc2.common.ext.MinecraftExt; import net.minecraft.client.Minecraft; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; @@ -39,8 +40,10 @@ public abstract class MinecraftMixin implements MinecraftExt { */ @Inject(method = "useShaderTransparency", at = @At("HEAD"), cancellable = true) private static void noTransparencyWhileRenderingProjectorDepth(final CallbackInfoReturnable cir) { - if (ProjectorDepthRenderer.isIsRenderingProjectorDepth()) { - cir.setReturnValue(false); + if(RenderSystem.isOnRenderThread()) { + if (ProjectorDepthRenderer.isIsRenderingProjectorDepth()) { + cir.setReturnValue(false); + } } } } diff --git a/src/main/java/li/cil/oc2r/common/mixin/ServerChunkCacheMixin.java b/src/main/java/li/cil/oc2/common/mixin/ServerChunkCacheMixin.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/mixin/ServerChunkCacheMixin.java rename to src/main/java/li/cil/oc2/common/mixin/ServerChunkCacheMixin.java index 460113c5..a2aec04f 100644 --- a/src/main/java/li/cil/oc2r/common/mixin/ServerChunkCacheMixin.java +++ b/src/main/java/li/cil/oc2/common/mixin/ServerChunkCacheMixin.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.mixin; +package li.cil.oc2.common.mixin; -import li.cil.oc2r.common.util.ChunkUtils; +import li.cil.oc2.common.util.ChunkUtils; import net.minecraft.server.level.ServerChunkCache; import net.minecraft.world.level.chunk.ChunkSource; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/li/cil/oc2/common/mixin/package-info.java b/src/main/java/li/cil/oc2/common/mixin/package-info.java new file mode 100644 index 00000000..1811d92a --- /dev/null +++ b/src/main/java/li/cil/oc2/common/mixin/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.mixin; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/network/MessageUtils.java b/src/main/java/li/cil/oc2/common/network/MessageUtils.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/network/MessageUtils.java rename to src/main/java/li/cil/oc2/common/network/MessageUtils.java index 6f606268..14247c7b 100644 --- a/src/main/java/li/cil/oc2r/common/network/MessageUtils.java +++ b/src/main/java/li/cil/oc2/common/network/MessageUtils.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network; +package li.cil.oc2.common.network; -import li.cil.oc2r.common.util.LevelUtils; +import li.cil.oc2.common.util.LevelUtils; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; @@ -18,7 +18,7 @@ import java.util.function.Consumer; public final class MessageUtils { public static void withNearbyServerBlockEntityForInteraction(final NetworkEvent.Context context, final BlockPos pos, final Class type, final BiConsumer callback) { final ServerPlayer player = context.getSender(); - if (player == null || !pos.closerToCenterThan(player.position(), 8)) { + if (player == null) { // || !pos.closerToCenterThan(player.position(), 8)) { return; } diff --git a/src/main/java/li/cil/oc2r/common/network/MonitorLoadBalancer.java b/src/main/java/li/cil/oc2/common/network/MonitorLoadBalancer.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/network/MonitorLoadBalancer.java rename to src/main/java/li/cil/oc2/common/network/MonitorLoadBalancer.java index 2e29d5a1..5bcf6b4d 100644 --- a/src/main/java/li/cil/oc2r/common/network/MonitorLoadBalancer.java +++ b/src/main/java/li/cil/oc2/common/network/MonitorLoadBalancer.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network; +package li.cil.oc2.common.network; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.network.message.MonitorFramebufferMessage; +import li.cil.oc2.api.API; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.network.message.MonitorFramebufferMessage; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/li/cil/oc2r/common/network/Network.java b/src/main/java/li/cil/oc2/common/network/Network.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/network/Network.java rename to src/main/java/li/cil/oc2/common/network/Network.java index 984841a3..d49e3db0 100644 --- a/src/main/java/li/cil/oc2r/common/network/Network.java +++ b/src/main/java/li/cil/oc2/common/network/Network.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network; +package li.cil.oc2.common.network; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.network.message.*; +import li.cil.oc2.api.API; +import li.cil.oc2.common.network.message.*; import net.minecraft.core.BlockPos; import net.minecraft.core.SectionPos; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/li/cil/oc2r/common/network/ProjectorLoadBalancer.java b/src/main/java/li/cil/oc2/common/network/ProjectorLoadBalancer.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/network/ProjectorLoadBalancer.java rename to src/main/java/li/cil/oc2/common/network/ProjectorLoadBalancer.java index b338a7c7..ec0076d5 100644 --- a/src/main/java/li/cil/oc2r/common/network/ProjectorLoadBalancer.java +++ b/src/main/java/li/cil/oc2/common/network/ProjectorLoadBalancer.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network; +package li.cil.oc2.common.network; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.Config; -import li.cil.oc2r.common.blockentity.ProjectorBlockEntity; -import li.cil.oc2r.common.network.message.ProjectorFramebufferMessage; +import li.cil.oc2.api.API; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.blockentity.ProjectorBlockEntity; +import li.cil.oc2.common.network.message.ProjectorFramebufferMessage; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/li/cil/oc2r/common/network/message/AbstractMessage.java b/src/main/java/li/cil/oc2/common/network/message/AbstractMessage.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/network/message/AbstractMessage.java rename to src/main/java/li/cil/oc2/common/network/message/AbstractMessage.java index e7d7a0fb..88b06ce5 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/AbstractMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/AbstractMessage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.network.Network; +import li.cil.oc2.common.network.Network; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; import org.apache.commons.lang3.NotImplementedException; diff --git a/src/main/java/li/cil/oc2r/common/network/message/AbstractTerminalBlockMessage.java b/src/main/java/li/cil/oc2/common/network/message/AbstractTerminalBlockMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/AbstractTerminalBlockMessage.java rename to src/main/java/li/cil/oc2/common/network/message/AbstractTerminalBlockMessage.java index fba54677..8525452c 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/AbstractTerminalBlockMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/AbstractTerminalBlockMessage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/li/cil/oc2r/common/network/message/AbstractTerminalEntityMessage.java b/src/main/java/li/cil/oc2/common/network/message/AbstractTerminalEntityMessage.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/network/message/AbstractTerminalEntityMessage.java rename to src/main/java/li/cil/oc2/common/network/message/AbstractTerminalEntityMessage.java index 1e8594cf..3515b72c 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/AbstractTerminalEntityMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/AbstractTerminalEntityMessage.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/li/cil/oc2r/common/network/message/BusCableFacadeMessage.java b/src/main/java/li/cil/oc2/common/network/message/BusCableFacadeMessage.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/network/message/BusCableFacadeMessage.java rename to src/main/java/li/cil/oc2/common/network/message/BusCableFacadeMessage.java index 0098082b..b1568242 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/BusCableFacadeMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/BusCableFacadeMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.BusCableBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.BusCableBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/network/message/BusInterfaceNameMessage.java b/src/main/java/li/cil/oc2/common/network/message/BusInterfaceNameMessage.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/network/message/BusInterfaceNameMessage.java rename to src/main/java/li/cil/oc2/common/network/message/BusInterfaceNameMessage.java index 67164c45..782ee58d 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/BusInterfaceNameMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/BusInterfaceNameMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.BusCableBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.BusCableBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ClientCanceledImportFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/ClientCanceledImportFileMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/ClientCanceledImportFileMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ClientCanceledImportFileMessage.java index d4d0fc40..5f662e9d 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ClientCanceledImportFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ClientCanceledImportFileMessage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.bus.device.rpc.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ComputerBootErrorMessage.java b/src/main/java/li/cil/oc2/common/network/message/ComputerBootErrorMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/ComputerBootErrorMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ComputerBootErrorMessage.java index 759ebec9..5840e07e 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ComputerBootErrorMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ComputerBootErrorMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ComputerBusStateMessage.java b/src/main/java/li/cil/oc2/common/network/message/ComputerBusStateMessage.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/network/message/ComputerBusStateMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ComputerBusStateMessage.java index 8cfce9ba..2f3cb569 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ComputerBusStateMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ComputerBusStateMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ComputerPowerMessage.java b/src/main/java/li/cil/oc2/common/network/message/ComputerPowerMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/ComputerPowerMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ComputerPowerMessage.java index 0b127812..6a8bf3e7 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ComputerPowerMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ComputerPowerMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ComputerRunStateMessage.java b/src/main/java/li/cil/oc2/common/network/message/ComputerRunStateMessage.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/network/message/ComputerRunStateMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ComputerRunStateMessage.java index 3e217649..aeb821e2 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ComputerRunStateMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ComputerRunStateMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; -import li.cil.oc2r.common.vm.VMRunState; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.network.MessageUtils; +import li.cil.oc2.common.vm.VMRunState; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ComputerTerminalInputMessage.java b/src/main/java/li/cil/oc2/common/network/message/ComputerTerminalInputMessage.java similarity index 84% rename from src/main/java/li/cil/oc2r/common/network/message/ComputerTerminalInputMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ComputerTerminalInputMessage.java index 0254c72e..773e2fcd 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ComputerTerminalInputMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ComputerTerminalInputMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ComputerTerminalOutputMessage.java b/src/main/java/li/cil/oc2/common/network/message/ComputerTerminalOutputMessage.java similarity index 84% rename from src/main/java/li/cil/oc2r/common/network/message/ComputerTerminalOutputMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ComputerTerminalOutputMessage.java index d0103f62..c596e4ce 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ComputerTerminalOutputMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ComputerTerminalOutputMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/DiskDriveFloppyMessage.java b/src/main/java/li/cil/oc2/common/network/message/DiskDriveFloppyMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/DiskDriveFloppyMessage.java rename to src/main/java/li/cil/oc2/common/network/message/DiskDriveFloppyMessage.java index 6a5df7c1..b84df1a9 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/DiskDriveFloppyMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/DiskDriveFloppyMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.DiskDriveBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.DiskDriveBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ExportedFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/ExportedFileMessage.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/network/message/ExportedFileMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ExportedFileMessage.java index 1f03629e..c0b755bb 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ExportedFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ExportedFileMessage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.client.gui.FileChooserScreen; +import li.cil.oc2.client.gui.FileChooserScreen; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; import org.apache.logging.log4j.LogManager; diff --git a/src/main/java/li/cil/oc2r/common/network/message/FirmwareFlasherMessage.java b/src/main/java/li/cil/oc2/common/network/message/FirmwareFlasherMessage.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/network/message/FirmwareFlasherMessage.java rename to src/main/java/li/cil/oc2/common/network/message/FirmwareFlasherMessage.java index ca3dece1..7679ff33 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/FirmwareFlasherMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/FirmwareFlasherMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.FlashMemoryFlasherBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.FlashMemoryFlasherBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ImportedFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/ImportedFileMessage.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/network/message/ImportedFileMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ImportedFileMessage.java index 4f444fe9..6c463250 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ImportedFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ImportedFileMessage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.bus.device.rpc.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/KeyboardInputMessage.java b/src/main/java/li/cil/oc2/common/network/message/KeyboardInputMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/KeyboardInputMessage.java rename to src/main/java/li/cil/oc2/common/network/message/KeyboardInputMessage.java index be43d948..14f044bd 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/KeyboardInputMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/KeyboardInputMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.KeyboardBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.KeyboardBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/MonitorFramebufferMessage.java b/src/main/java/li/cil/oc2/common/network/message/MonitorFramebufferMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/MonitorFramebufferMessage.java rename to src/main/java/li/cil/oc2/common/network/message/MonitorFramebufferMessage.java index 8bd99d97..721413c7 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/MonitorFramebufferMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/MonitorFramebufferMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/MonitorInputMessage.java b/src/main/java/li/cil/oc2/common/network/message/MonitorInputMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/MonitorInputMessage.java rename to src/main/java/li/cil/oc2/common/network/message/MonitorInputMessage.java index e4d336be..817e6764 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/MonitorInputMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/MonitorInputMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/MonitorPowerMessage.java b/src/main/java/li/cil/oc2/common/network/message/MonitorPowerMessage.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/network/message/MonitorPowerMessage.java rename to src/main/java/li/cil/oc2/common/network/message/MonitorPowerMessage.java index 21997784..f4c26d5d 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/MonitorPowerMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/MonitorPowerMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; -import li.cil.oc2r.common.network.Network; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; +import li.cil.oc2.common.network.Network; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/MonitorPowerMessageForwarded.java b/src/main/java/li/cil/oc2/common/network/message/MonitorPowerMessageForwarded.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/MonitorPowerMessageForwarded.java rename to src/main/java/li/cil/oc2/common/network/message/MonitorPowerMessageForwarded.java index b67af8ee..afcf9445 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/MonitorPowerMessageForwarded.java +++ b/src/main/java/li/cil/oc2/common/network/message/MonitorPowerMessageForwarded.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/MonitorRequestFramebufferMessage.java b/src/main/java/li/cil/oc2/common/network/message/MonitorRequestFramebufferMessage.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/network/message/MonitorRequestFramebufferMessage.java rename to src/main/java/li/cil/oc2/common/network/message/MonitorRequestFramebufferMessage.java index 00e56345..a7f72ccc 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/MonitorRequestFramebufferMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/MonitorRequestFramebufferMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; -import li.cil.oc2r.common.network.MonitorLoadBalancer; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; +import li.cil.oc2.common.network.MonitorLoadBalancer; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/MonitorStateMessage.java b/src/main/java/li/cil/oc2/common/network/message/MonitorStateMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/MonitorStateMessage.java rename to src/main/java/li/cil/oc2/common/network/message/MonitorStateMessage.java index 3b67a328..bbdb3acf 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/MonitorStateMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/MonitorStateMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.MonitorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.MonitorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/MultipartMessage.java b/src/main/java/li/cil/oc2/common/network/message/MultipartMessage.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/network/message/MultipartMessage.java rename to src/main/java/li/cil/oc2/common/network/message/MultipartMessage.java index db5aeb06..f32be822 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/MultipartMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/MultipartMessage.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -8,8 +8,8 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.network.Network; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.network.Network; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; import org.apache.logging.log4j.LogManager; diff --git a/src/main/java/li/cil/oc2r/common/network/message/NetworkConnectorConnectionsMessage.java b/src/main/java/li/cil/oc2/common/network/message/NetworkConnectorConnectionsMessage.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/network/message/NetworkConnectorConnectionsMessage.java rename to src/main/java/li/cil/oc2/common/network/message/NetworkConnectorConnectionsMessage.java index ce27d87f..83fc70aa 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/NetworkConnectorConnectionsMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/NetworkConnectorConnectionsMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.NetworkConnectorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.NetworkConnectorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/NetworkInterfaceCardConfigurationMessage.java b/src/main/java/li/cil/oc2/common/network/message/NetworkInterfaceCardConfigurationMessage.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/network/message/NetworkInterfaceCardConfigurationMessage.java rename to src/main/java/li/cil/oc2/common/network/message/NetworkInterfaceCardConfigurationMessage.java index e0d257ba..d858d3c7 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/NetworkInterfaceCardConfigurationMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/NetworkInterfaceCardConfigurationMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.item.NetworkInterfaceCardItem; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.item.NetworkInterfaceCardItem; import net.minecraft.core.Direction; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; diff --git a/src/main/java/li/cil/oc2r/common/network/message/NetworkTunnelLinkMessage.java b/src/main/java/li/cil/oc2/common/network/message/NetworkTunnelLinkMessage.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/network/message/NetworkTunnelLinkMessage.java rename to src/main/java/li/cil/oc2/common/network/message/NetworkTunnelLinkMessage.java index 59db128c..a8df2b4e 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/NetworkTunnelLinkMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/NetworkTunnelLinkMessage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.container.NetworkTunnelContainer; +import li.cil.oc2.common.container.NetworkTunnelContainer; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.inventory.AbstractContainerMenu; diff --git a/src/main/java/li/cil/oc2r/common/network/message/OpenComputerInventoryMessage.java b/src/main/java/li/cil/oc2/common/network/message/OpenComputerInventoryMessage.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/network/message/OpenComputerInventoryMessage.java rename to src/main/java/li/cil/oc2/common/network/message/OpenComputerInventoryMessage.java index 351bb60d..04b3aa08 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/OpenComputerInventoryMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/OpenComputerInventoryMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/OpenComputerTerminalMessage.java b/src/main/java/li/cil/oc2/common/network/message/OpenComputerTerminalMessage.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/network/message/OpenComputerTerminalMessage.java rename to src/main/java/li/cil/oc2/common/network/message/OpenComputerTerminalMessage.java index 54fe452d..d16f165a 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/OpenComputerTerminalMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/OpenComputerTerminalMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ComputerBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ComputerBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/OpenRobotInventoryMessage.java b/src/main/java/li/cil/oc2/common/network/message/OpenRobotInventoryMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/OpenRobotInventoryMessage.java rename to src/main/java/li/cil/oc2/common/network/message/OpenRobotInventoryMessage.java index 8b38538a..b2bd15d4 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/OpenRobotInventoryMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/OpenRobotInventoryMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/OpenRobotTerminalMessage.java b/src/main/java/li/cil/oc2/common/network/message/OpenRobotTerminalMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/OpenRobotTerminalMessage.java rename to src/main/java/li/cil/oc2/common/network/message/OpenRobotTerminalMessage.java index eecf0f9b..f1411ffd 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/OpenRobotTerminalMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/OpenRobotTerminalMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ProjectorFramebufferMessage.java b/src/main/java/li/cil/oc2/common/network/message/ProjectorFramebufferMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/ProjectorFramebufferMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ProjectorFramebufferMessage.java index 605cb3bf..c1b9463c 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ProjectorFramebufferMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ProjectorFramebufferMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ProjectorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ProjectorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ProjectorRequestFramebufferMessage.java b/src/main/java/li/cil/oc2/common/network/message/ProjectorRequestFramebufferMessage.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/network/message/ProjectorRequestFramebufferMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ProjectorRequestFramebufferMessage.java index da1ac171..1ac3445e 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ProjectorRequestFramebufferMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ProjectorRequestFramebufferMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ProjectorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; -import li.cil.oc2r.common.network.ProjectorLoadBalancer; +import li.cil.oc2.common.blockentity.ProjectorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; +import li.cil.oc2.common.network.ProjectorLoadBalancer; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ProjectorStateMessage.java b/src/main/java/li/cil/oc2/common/network/message/ProjectorStateMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/ProjectorStateMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ProjectorStateMessage.java index a9e3c2a8..20a4c797 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ProjectorStateMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ProjectorStateMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.blockentity.ProjectorBlockEntity; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.blockentity.ProjectorBlockEntity; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RequestImportedFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/RequestImportedFileMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/RequestImportedFileMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RequestImportedFileMessage.java index 577195dc..2b03b5e5 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RequestImportedFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RequestImportedFileMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.client.gui.FileChooserScreen; -import li.cil.oc2r.common.bus.device.rpc.item.FileImportExportCardItemDevice; -import li.cil.oc2r.common.network.Network; +import li.cil.oc2.client.gui.FileChooserScreen; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.network.Network; import net.minecraft.client.Minecraft; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.TextColor; @@ -17,7 +17,7 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import static li.cil.oc2r.common.util.TranslationUtils.text; +import static li.cil.oc2.common.util.TranslationUtils.text; public final class RequestImportedFileMessage extends AbstractMessage { private static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotBootErrorMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotBootErrorMessage.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/network/message/RobotBootErrorMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotBootErrorMessage.java index 22619172..a3957c0f 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotBootErrorMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotBootErrorMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotBusStateMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotBusStateMessage.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/network/message/RobotBusStateMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotBusStateMessage.java index fafa8f51..880f4ce7 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotBusStateMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotBusStateMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotInitializationMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotInitializationMessage.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/network/message/RobotInitializationMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotInitializationMessage.java index f9180cb2..8704b329 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotInitializationMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotInitializationMessage.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; -import li.cil.oc2r.common.serialization.NBTSerialization; -import li.cil.oc2r.common.vm.VMRunState; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; +import li.cil.oc2.common.serialization.NBTSerialization; +import li.cil.oc2.common.vm.VMRunState; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotInitializationRequestMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotInitializationRequestMessage.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/network/message/RobotInitializationRequestMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotInitializationRequestMessage.java index f2df82d5..45b337e9 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotInitializationRequestMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotInitializationRequestMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotPowerMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotPowerMessage.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/network/message/RobotPowerMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotPowerMessage.java index 6fb45264..92d18945 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotPowerMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotPowerMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotRunStateMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotRunStateMessage.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/network/message/RobotRunStateMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotRunStateMessage.java index fca9d5c5..9846b74c 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotRunStateMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotRunStateMessage.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; -import li.cil.oc2r.common.vm.VMRunState; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; +import li.cil.oc2.common.vm.VMRunState; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotTerminalInputMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotTerminalInputMessage.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/network/message/RobotTerminalInputMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotTerminalInputMessage.java index d6a08abf..35765d98 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotTerminalInputMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotTerminalInputMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/RobotTerminalOutputMessage.java b/src/main/java/li/cil/oc2/common/network/message/RobotTerminalOutputMessage.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/network/message/RobotTerminalOutputMessage.java rename to src/main/java/li/cil/oc2/common/network/message/RobotTerminalOutputMessage.java index 3f652085..152f57ae 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/RobotTerminalOutputMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RobotTerminalOutputMessage.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.entity.Robot; -import li.cil.oc2r.common.network.MessageUtils; +import li.cil.oc2.common.entity.Robot; +import li.cil.oc2.common.network.MessageUtils; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2r/common/network/message/ServerCanceledImportFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/ServerCanceledImportFileMessage.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/network/message/ServerCanceledImportFileMessage.java rename to src/main/java/li/cil/oc2/common/network/message/ServerCanceledImportFileMessage.java index c5559458..6b8b19ca 100644 --- a/src/main/java/li/cil/oc2r/common/network/message/ServerCanceledImportFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ServerCanceledImportFileMessage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.network.message; +package li.cil.oc2.common.network.message; -import li.cil.oc2r.common.bus.device.rpc.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2/common/network/message/package-info.java b/src/main/java/li/cil/oc2/common/network/message/package-info.java new file mode 100644 index 00000000..2958dc13 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/network/message/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.network.message; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/network/package-info.java b/src/main/java/li/cil/oc2/common/network/package-info.java new file mode 100644 index 00000000..452145b8 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/network/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.network; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/package-info.java b/src/main/java/li/cil/oc2/common/package-info.java new file mode 100644 index 00000000..0670c71c --- /dev/null +++ b/src/main/java/li/cil/oc2/common/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/serialization/BlobStorage.java b/src/main/java/li/cil/oc2/common/serialization/BlobStorage.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/serialization/BlobStorage.java rename to src/main/java/li/cil/oc2/common/serialization/BlobStorage.java index d5c3d114..6f63d475 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/BlobStorage.java +++ b/src/main/java/li/cil/oc2/common/serialization/BlobStorage.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization; +package li.cil.oc2.common.serialization; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.server.MinecraftServer; import net.minecraft.world.level.storage.LevelResource; import net.minecraftforge.event.server.ServerAboutToStartEvent; diff --git a/src/main/java/li/cil/oc2r/common/serialization/NBTSerialization.java b/src/main/java/li/cil/oc2/common/serialization/NBTSerialization.java similarity index 99% rename from src/main/java/li/cil/oc2r/common/serialization/NBTSerialization.java rename to src/main/java/li/cil/oc2/common/serialization/NBTSerialization.java index 15eaaa50..2e704fd7 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/NBTSerialization.java +++ b/src/main/java/li/cil/oc2/common/serialization/NBTSerialization.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization; +package li.cil.oc2.common.serialization; import it.unimi.dsi.fastutil.ints.IntArrayList; import li.cil.ceres.Ceres; import li.cil.ceres.api.DeserializationVisitor; import li.cil.ceres.api.SerializationException; import li.cil.ceres.api.SerializationVisitor; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.nbt.*; import org.jetbrains.annotations.Contract; diff --git a/src/main/java/li/cil/oc2r/common/serialization/NBTToJsonConverter.java b/src/main/java/li/cil/oc2/common/serialization/NBTToJsonConverter.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/serialization/NBTToJsonConverter.java rename to src/main/java/li/cil/oc2/common/serialization/NBTToJsonConverter.java index b3cfb156..a6086037 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/NBTToJsonConverter.java +++ b/src/main/java/li/cil/oc2/common/serialization/NBTToJsonConverter.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization; +package li.cil.oc2.common.serialization; import com.google.gson.*; -import li.cil.oc2r.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.nbt.*; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/common/serialization/ceres/JsonArraySerializer.java b/src/main/java/li/cil/oc2/common/serialization/ceres/JsonArraySerializer.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/serialization/ceres/JsonArraySerializer.java rename to src/main/java/li/cil/oc2/common/serialization/ceres/JsonArraySerializer.java index e9b7ac24..1ef9534b 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/ceres/JsonArraySerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/ceres/JsonArraySerializer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.ceres; +package li.cil.oc2.common.serialization.ceres; import com.google.gson.JsonArray; import com.google.gson.JsonParser; diff --git a/src/main/java/li/cil/oc2r/common/serialization/ceres/MemoryRangeListSerializer.java b/src/main/java/li/cil/oc2/common/serialization/ceres/MemoryRangeListSerializer.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/serialization/ceres/MemoryRangeListSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/ceres/MemoryRangeListSerializer.java index f41bc32c..2ed366db 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/ceres/MemoryRangeListSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/ceres/MemoryRangeListSerializer.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.ceres; +package li.cil.oc2.common.serialization.ceres; import li.cil.ceres.api.DeserializationVisitor; import li.cil.ceres.api.SerializationException; import li.cil.ceres.api.SerializationVisitor; import li.cil.ceres.api.Serializer; -import li.cil.oc2r.common.vm.context.global.MemoryRangeList; +import li.cil.oc2.common.vm.context.global.MemoryRangeList; import li.cil.sedna.api.memory.MemoryRange; import javax.annotation.Nullable; diff --git a/src/main/java/li/cil/oc2r/common/serialization/ceres/MemoryRangeSerializer.java b/src/main/java/li/cil/oc2/common/serialization/ceres/MemoryRangeSerializer.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/serialization/ceres/MemoryRangeSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/ceres/MemoryRangeSerializer.java index 3f3024d1..9f65bd57 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/ceres/MemoryRangeSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/ceres/MemoryRangeSerializer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.ceres; +package li.cil.oc2.common.serialization.ceres; import li.cil.ceres.api.DeserializationVisitor; import li.cil.ceres.api.SerializationException; diff --git a/src/main/java/li/cil/oc2r/common/serialization/ceres/Serializers.java b/src/main/java/li/cil/oc2/common/serialization/ceres/Serializers.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/serialization/ceres/Serializers.java rename to src/main/java/li/cil/oc2/common/serialization/ceres/Serializers.java index 52289655..7dddaf78 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/ceres/Serializers.java +++ b/src/main/java/li/cil/oc2/common/serialization/ceres/Serializers.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.ceres; +package li.cil.oc2.common.serialization.ceres; import com.google.gson.JsonArray; import li.cil.ceres.Ceres; -import li.cil.oc2r.common.vm.context.global.MemoryRangeList; +import li.cil.oc2.common.vm.context.global.MemoryRangeList; import li.cil.sedna.api.memory.MemoryRange; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/serialization/ceres/TextComponentSerializer.java b/src/main/java/li/cil/oc2/common/serialization/ceres/TextComponentSerializer.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/serialization/ceres/TextComponentSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/ceres/TextComponentSerializer.java index ca797e67..f3ee6ed1 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/ceres/TextComponentSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/ceres/TextComponentSerializer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.ceres; +package li.cil.oc2.common.serialization.ceres; import li.cil.ceres.api.DeserializationVisitor; import li.cil.ceres.api.SerializationException; diff --git a/src/main/java/li/cil/oc2/common/serialization/ceres/package-info.java b/src/main/java/li/cil/oc2/common/serialization/ceres/package-info.java new file mode 100644 index 00000000..4ecb1685 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/serialization/ceres/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.serialization.ceres; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/DirectionJsonSerializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/DirectionJsonSerializer.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/serialization/gson/DirectionJsonSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/DirectionJsonSerializer.java index b4dbae05..a9741e73 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/DirectionJsonSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/DirectionJsonSerializer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.*; import net.minecraft.core.Direction; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/EmptyRPCMethodGroupSerializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/EmptyRPCMethodGroupSerializer.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/serialization/gson/EmptyRPCMethodGroupSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/EmptyRPCMethodGroupSerializer.java index e2622e30..df87b4cc 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/EmptyRPCMethodGroupSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/EmptyRPCMethodGroupSerializer.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.*; -import li.cil.oc2r.common.bus.RPCDeviceBusAdapter; +import li.cil.oc2.common.bus.RPCDeviceBusAdapter; import java.lang.reflect.Type; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/ItemStackJsonSerializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/ItemStackJsonSerializer.java similarity index 84% rename from src/main/java/li/cil/oc2r/common/serialization/gson/ItemStackJsonSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/ItemStackJsonSerializer.java index 92f30eaf..1bd59733 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/ItemStackJsonSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/ItemStackJsonSerializer.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.JsonElement; import com.google.gson.JsonNull; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; -import li.cil.oc2r.common.bus.device.rpc.RPCItemStackTagFilters; -import li.cil.oc2r.common.serialization.NBTToJsonConverter; +import li.cil.oc2.common.bus.device.rpc.RPCItemStackTagFilters; +import li.cil.oc2.common.serialization.NBTToJsonConverter; import net.minecraft.world.item.ItemStack; import java.lang.reflect.Type; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/MessageJsonDeserializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/MessageJsonDeserializer.java similarity index 72% rename from src/main/java/li/cil/oc2r/common/serialization/gson/MessageJsonDeserializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/MessageJsonDeserializer.java index 1ddba9c9..ecb41b50 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/MessageJsonDeserializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/MessageJsonDeserializer.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.*; -import li.cil.oc2r.common.bus.RPCDeviceBusAdapter; +import li.cil.oc2.common.bus.RPCDeviceBusAdapter; import java.lang.reflect.Type; import java.util.UUID; @@ -15,9 +15,11 @@ public final class MessageJsonDeserializer implements JsonDeserializer null; + case RPCDeviceBusAdapter.Message.MESSAGE_TYPE_SUBSCRIBE -> UUID.fromString(jsonObject.getAsJsonPrimitive("data").getAsString()); + case RPCDeviceBusAdapter.Message.MESSAGE_TYPE_UNSUBSCRIBE -> UUID.fromString(jsonObject.getAsJsonPrimitive("data").getAsString()); case RPCDeviceBusAdapter.Message.MESSAGE_TYPE_METHODS -> UUID.fromString(jsonObject.getAsJsonPrimitive("data").getAsString()); case RPCDeviceBusAdapter.Message.MESSAGE_TYPE_INVOKE_METHOD -> context.deserialize(jsonObject.getAsJsonObject("data"), RPCDeviceBusAdapter.MethodInvocation.class); - default -> throw new JsonParseException(RPCDeviceBusAdapter.ERROR_UNKNOWN_MESSAGE_TYPE); + default -> throw new JsonParseException(RPCDeviceBusAdapter.ERROR_UNKNOWN_MESSAGE_TYPE + messageType); }; return new RPCDeviceBusAdapter.Message(messageType, messageData); diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/MethodInvocationJsonDeserializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/MethodInvocationJsonDeserializer.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/serialization/gson/MethodInvocationJsonDeserializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/MethodInvocationJsonDeserializer.java index 9d38eaf6..b70bd859 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/MethodInvocationJsonDeserializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/MethodInvocationJsonDeserializer.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.*; -import li.cil.oc2r.common.bus.RPCDeviceBusAdapter; +import li.cil.oc2.common.bus.RPCDeviceBusAdapter; import java.lang.reflect.Type; import java.util.UUID; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/RPCDeviceWithIdentifierJsonSerializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/RPCDeviceWithIdentifierJsonSerializer.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/serialization/gson/RPCDeviceWithIdentifierJsonSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/RPCDeviceWithIdentifierJsonSerializer.java index b640d47c..f0995d9d 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/RPCDeviceWithIdentifierJsonSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/RPCDeviceWithIdentifierJsonSerializer.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; -import li.cil.oc2r.common.bus.RPCDeviceBusAdapter; +import li.cil.oc2.common.bus.RPCDeviceBusAdapter; import java.lang.reflect.Type; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/RPCMethodJsonSerializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/RPCMethodJsonSerializer.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/serialization/gson/RPCMethodJsonSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/RPCMethodJsonSerializer.java index 58b77b20..28fcd609 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/RPCMethodJsonSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/RPCMethodJsonSerializer.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.*; -import li.cil.oc2r.api.bus.device.rpc.RPCMethod; -import li.cil.oc2r.api.bus.device.rpc.RPCParameter; +import li.cil.oc2.api.bus.device.rpc.RPCMethod; +import li.cil.oc2.api.bus.device.rpc.RPCParameter; import java.lang.reflect.Type; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/SideJsonDeserializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/SideJsonDeserializer.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/serialization/gson/SideJsonDeserializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/SideJsonDeserializer.java index 851dd951..f2b483f9 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/SideJsonDeserializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/SideJsonDeserializer.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.*; import com.google.gson.internal.bind.TypeAdapters; import com.google.gson.reflect.TypeToken; -import li.cil.oc2r.api.util.Side; +import li.cil.oc2.api.util.Side; import java.lang.reflect.Type; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/UnsignedByteArrayJsonSerializer.java b/src/main/java/li/cil/oc2/common/serialization/gson/UnsignedByteArrayJsonSerializer.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/serialization/gson/UnsignedByteArrayJsonSerializer.java rename to src/main/java/li/cil/oc2/common/serialization/gson/UnsignedByteArrayJsonSerializer.java index 588eb6f9..8a901408 100644 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/UnsignedByteArrayJsonSerializer.java +++ b/src/main/java/li/cil/oc2/common/serialization/gson/UnsignedByteArrayJsonSerializer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.serialization.gson; +package li.cil.oc2.common.serialization.gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/src/main/java/li/cil/oc2/common/serialization/gson/package-info.java b/src/main/java/li/cil/oc2/common/serialization/gson/package-info.java new file mode 100644 index 00000000..1071e17e --- /dev/null +++ b/src/main/java/li/cil/oc2/common/serialization/gson/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.serialization.gson; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/serialization/package-info.java b/src/main/java/li/cil/oc2/common/serialization/package-info.java new file mode 100644 index 00000000..50764906 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/serialization/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.serialization; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/tags/BlockTags.java b/src/main/java/li/cil/oc2/common/tags/BlockTags.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/tags/BlockTags.java rename to src/main/java/li/cil/oc2/common/tags/BlockTags.java index e5add4c3..18fed1e6 100644 --- a/src/main/java/li/cil/oc2r/common/tags/BlockTags.java +++ b/src/main/java/li/cil/oc2/common/tags/BlockTags.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.tags; +package li.cil.oc2.common.tags; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; diff --git a/src/main/java/li/cil/oc2r/common/tags/ItemTags.java b/src/main/java/li/cil/oc2/common/tags/ItemTags.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/tags/ItemTags.java rename to src/main/java/li/cil/oc2/common/tags/ItemTags.java index a2cdc92f..6a96597b 100644 --- a/src/main/java/li/cil/oc2r/common/tags/ItemTags.java +++ b/src/main/java/li/cil/oc2/common/tags/ItemTags.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.tags; +package li.cil.oc2.common.tags; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; diff --git a/src/main/java/li/cil/oc2/common/tags/package-info.java b/src/main/java/li/cil/oc2/common/tags/package-info.java new file mode 100644 index 00000000..8c8a0e5f --- /dev/null +++ b/src/main/java/li/cil/oc2/common/tags/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.tags; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/util/BlockEntityUtils.java b/src/main/java/li/cil/oc2/common/util/BlockEntityUtils.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/util/BlockEntityUtils.java rename to src/main/java/li/cil/oc2/common/util/BlockEntityUtils.java index 567980df..044ec90a 100644 --- a/src/main/java/li/cil/oc2r/common/util/BlockEntityUtils.java +++ b/src/main/java/li/cil/oc2/common/util/BlockEntityUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; diff --git a/src/main/java/li/cil/oc2r/common/util/BlockLocation.java b/src/main/java/li/cil/oc2/common/util/BlockLocation.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/util/BlockLocation.java rename to src/main/java/li/cil/oc2/common/util/BlockLocation.java index 2b18ecab..71f79801 100644 --- a/src/main/java/li/cil/oc2r/common/util/BlockLocation.java +++ b/src/main/java/li/cil/oc2/common/util/BlockLocation.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/li/cil/oc2r/common/util/ChainableVertexConsumer.java b/src/main/java/li/cil/oc2/common/util/ChainableVertexConsumer.java similarity index 99% rename from src/main/java/li/cil/oc2r/common/util/ChainableVertexConsumer.java rename to src/main/java/li/cil/oc2/common/util/ChainableVertexConsumer.java index 85d47607..60d96aa5 100644 --- a/src/main/java/li/cil/oc2r/common/util/ChainableVertexConsumer.java +++ b/src/main/java/li/cil/oc2/common/util/ChainableVertexConsumer.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; diff --git a/src/main/java/li/cil/oc2r/common/util/ChunkLocation.java b/src/main/java/li/cil/oc2/common/util/ChunkLocation.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/util/ChunkLocation.java rename to src/main/java/li/cil/oc2/common/util/ChunkLocation.java index de5e1c98..78ed25a7 100644 --- a/src/main/java/li/cil/oc2r/common/util/ChunkLocation.java +++ b/src/main/java/li/cil/oc2/common/util/ChunkLocation.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.core.BlockPos; import net.minecraft.world.level.ChunkPos; diff --git a/src/main/java/li/cil/oc2r/common/util/ChunkUtils.java b/src/main/java/li/cil/oc2/common/util/ChunkUtils.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/util/ChunkUtils.java rename to src/main/java/li/cil/oc2/common/util/ChunkUtils.java index 817f21e6..694107a6 100644 --- a/src/main/java/li/cil/oc2r/common/util/ChunkUtils.java +++ b/src/main/java/li/cil/oc2/common/util/ChunkUtils.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.mixin.ServerChunkCacheMixin; +import li.cil.oc2.api.API; +import li.cil.oc2.common.mixin.ServerChunkCacheMixin; import net.minecraft.core.BlockPos; import net.minecraft.core.SectionPos; import net.minecraft.world.level.ChunkPos; diff --git a/src/main/java/li/cil/oc2r/common/util/ColorUtils.java b/src/main/java/li/cil/oc2/common/util/ColorUtils.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/util/ColorUtils.java rename to src/main/java/li/cil/oc2/common/util/ColorUtils.java index f3177d94..96a94d17 100644 --- a/src/main/java/li/cil/oc2r/common/util/ColorUtils.java +++ b/src/main/java/li/cil/oc2/common/util/ColorUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; public final class ColorUtils { public static int textureDiffuseColorsToRGB(final float[] colors) { diff --git a/src/main/java/li/cil/oc2r/common/util/Event.java b/src/main/java/li/cil/oc2/common/util/Event.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/util/Event.java rename to src/main/java/li/cil/oc2/common/util/Event.java index 3e113625..22a3aeee 100644 --- a/src/main/java/li/cil/oc2r/common/util/Event.java +++ b/src/main/java/li/cil/oc2/common/util/Event.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import java.util.HashSet; diff --git a/src/main/java/li/cil/oc2r/common/util/FakePlayerUtils.java b/src/main/java/li/cil/oc2/common/util/FakePlayerUtils.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/util/FakePlayerUtils.java rename to src/main/java/li/cil/oc2/common/util/FakePlayerUtils.java index 986814fc..74ff9a5b 100644 --- a/src/main/java/li/cil/oc2r/common/util/FakePlayerUtils.java +++ b/src/main/java/li/cil/oc2/common/util/FakePlayerUtils.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import com.mojang.authlib.GameProfile; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.Config; +import li.cil.oc2.api.API; +import li.cil.oc2.common.Config; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/li/cil/oc2r/common/util/HorizontalBlockUtils.java b/src/main/java/li/cil/oc2/common/util/HorizontalBlockUtils.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/util/HorizontalBlockUtils.java rename to src/main/java/li/cil/oc2/common/util/HorizontalBlockUtils.java index d1118a34..8a82d3f5 100644 --- a/src/main/java/li/cil/oc2r/common/util/HorizontalBlockUtils.java +++ b/src/main/java/li/cil/oc2/common/util/HorizontalBlockUtils.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.api.util.Side; +import li.cil.oc2.api.util.Side; import net.minecraft.core.Direction; import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/li/cil/oc2/common/util/IntegerSpace.java b/src/main/java/li/cil/oc2/common/util/IntegerSpace.java new file mode 100644 index 00000000..1d519203 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/util/IntegerSpace.java @@ -0,0 +1,124 @@ +package li.cil.oc2.common.util; + +import java.util.Iterator; +import java.util.Map; +import java.util.NavigableMap; +import java.util.TreeMap; + +/** + * A set of integers that is more effective with ranges of integers. + */ +public class IntegerSpace { + private final NavigableMap ranges = new TreeMap<>(); + + public final boolean put(final int element) { + return put(element, element); + } + + public final boolean put(final int begin, final int end) { + if (end < begin) { + return put(end, begin); + } + + ranges.subMap(begin, false, end, false).entrySet() + .removeIf(range -> range.getKey() > begin && range.getValue() < end); + + final Map.Entry floorBegin = ranges.floorEntry(begin); + final Map.Entry higherEnd = ranges.ceilingEntry(end); + + if (floorBegin != null + && floorBegin.getKey() <= begin && floorBegin.getValue() >= end) { + // Already exists in the space + // [---------] + // [---------] + // [---] + // [---------] + return false; + } else if (floorBegin != null && higherEnd != null + && floorBegin.getKey() <= begin && floorBegin.getValue() + 1 >= begin + && higherEnd.getKey() - 1 <= end && higherEnd.getValue() >= end) { + // Remove whitespace between 2 ranges + // [---------] [----------] + // [------] + // [------------] + // [---------] + // [---------] + ranges.entrySet().remove(higherEnd); + ranges.put(floorBegin.getKey(), higherEnd.getValue()); + } else if (higherEnd != null + && higherEnd.getKey() - 1 <= end && higherEnd.getValue() >= end) { + // Change higher range start position + // [---------] [---------] + // [----] + // [---------] + ranges.entrySet().remove(higherEnd); + ranges.put(begin, higherEnd.getValue()); + } else if (floorBegin != null + && floorBegin.getKey() <= begin && floorBegin.getValue() + 1 >= begin) { + // New range after some other range + // [---------] + // [--] + // [------] + ranges.put(floorBegin.getKey(), end); + } else { + // New range in empty space or new range before all others + // [---------] + // [-----] + ranges.put(begin, end); + } + return true; + } + + public final boolean contains(final int element) { + final Map.Entry floorRange = ranges.floorEntry(element); + return floorRange != null && element >= floorRange.getKey() && element <= floorRange.getValue(); + } + + public final boolean isEmpty() { + return ranges.isEmpty(); + } + + public final int rangeCount() { + return ranges.size(); + } + + public final int count() { + return ranges.entrySet().stream() + .map(range -> range.getValue() - range.getKey() + 1) + .reduce(0, Integer::sum); + } + + protected void elementToString(final StringBuilder builder, final int element) { + builder.append(element); + } + + private void appendRangeToString(final StringBuilder builder, final Map.Entry range) { + final int begin = range.getKey(); + final int end = range.getValue(); + elementToString(builder, begin); + if (begin != end) { + builder.append('-'); + elementToString(builder, range.getValue()); + } + } + + @Override + public String toString() { + final Iterator> iterator = ranges.entrySet().iterator(); + if (iterator.hasNext()) { + final StringBuilder builder = new StringBuilder(); + builder.append('['); + final Map.Entry first = iterator.next(); + appendRangeToString(builder, first); + while (iterator.hasNext()) { + builder.append(", "); + final Map.Entry range = iterator.next(); + appendRangeToString(builder, range); + } + builder.append(']'); + return builder.toString(); + } else { + return "[]"; + } + } +} diff --git a/src/main/java/li/cil/oc2r/common/util/ItemDeviceUtils.java b/src/main/java/li/cil/oc2/common/util/ItemDeviceUtils.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/util/ItemDeviceUtils.java rename to src/main/java/li/cil/oc2/common/util/ItemDeviceUtils.java index db7c5103..be531c89 100644 --- a/src/main/java/li/cil/oc2r/common/util/ItemDeviceUtils.java +++ b/src/main/java/li/cil/oc2/common/util/ItemDeviceUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2r/common/util/ItemStackUtils.java b/src/main/java/li/cil/oc2/common/util/ItemStackUtils.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/util/ItemStackUtils.java rename to src/main/java/li/cil/oc2/common/util/ItemStackUtils.java index 76e4b0f7..35474f72 100644 --- a/src/main/java/li/cil/oc2r/common/util/ItemStackUtils.java +++ b/src/main/java/li/cil/oc2/common/util/ItemStackUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -16,7 +16,7 @@ import net.minecraft.world.phys.Vec3; import javax.annotation.Nullable; import java.util.Optional; -import static li.cil.oc2r.common.Constants.MOD_TAG_NAME; +import static li.cil.oc2.common.Constants.MOD_TAG_NAME; public final class ItemStackUtils { public static CompoundTag getModDataTag(final ItemStack stack) { diff --git a/src/main/java/li/cil/oc2r/common/util/LazyOptionalUtils.java b/src/main/java/li/cil/oc2/common/util/LazyOptionalUtils.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/util/LazyOptionalUtils.java rename to src/main/java/li/cil/oc2/common/util/LazyOptionalUtils.java index 8bbb9dcf..fda70525 100644 --- a/src/main/java/li/cil/oc2r/common/util/LazyOptionalUtils.java +++ b/src/main/java/li/cil/oc2/common/util/LazyOptionalUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.common.util.NonNullConsumer; diff --git a/src/main/java/li/cil/oc2r/common/util/LevelUtils.java b/src/main/java/li/cil/oc2/common/util/LevelUtils.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/util/LevelUtils.java rename to src/main/java/li/cil/oc2/common/util/LevelUtils.java index a372e8d3..7cc7433c 100644 --- a/src/main/java/li/cil/oc2r/common/util/LevelUtils.java +++ b/src/main/java/li/cil/oc2/common/util/LevelUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/common/util/LocationSupplierUtils.java b/src/main/java/li/cil/oc2/common/util/LocationSupplierUtils.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/util/LocationSupplierUtils.java rename to src/main/java/li/cil/oc2/common/util/LocationSupplierUtils.java index a96a33d0..d83b008a 100644 --- a/src/main/java/li/cil/oc2r/common/util/LocationSupplierUtils.java +++ b/src/main/java/li/cil/oc2/common/util/LocationSupplierUtils.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceQuery; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/li/cil/oc2r/common/util/NBTTagIds.java b/src/main/java/li/cil/oc2/common/util/NBTTagIds.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/util/NBTTagIds.java rename to src/main/java/li/cil/oc2/common/util/NBTTagIds.java index ebcd3637..21bab57d 100644 --- a/src/main/java/li/cil/oc2r/common/util/NBTTagIds.java +++ b/src/main/java/li/cil/oc2/common/util/NBTTagIds.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.nbt.Tag; diff --git a/src/main/java/li/cil/oc2r/common/util/NBTUtils.java b/src/main/java/li/cil/oc2/common/util/NBTUtils.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/util/NBTUtils.java rename to src/main/java/li/cil/oc2/common/util/NBTUtils.java index 1888b66d..34d8efd8 100644 --- a/src/main/java/li/cil/oc2r/common/util/NBTUtils.java +++ b/src/main/java/li/cil/oc2/common/util/NBTUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/util/ParameterizedEvent.java b/src/main/java/li/cil/oc2/common/util/ParameterizedEvent.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/util/ParameterizedEvent.java rename to src/main/java/li/cil/oc2/common/util/ParameterizedEvent.java index 259dac94..11d8dc17 100644 --- a/src/main/java/li/cil/oc2r/common/util/ParameterizedEvent.java +++ b/src/main/java/li/cil/oc2/common/util/ParameterizedEvent.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import java.util.HashSet; import java.util.function.Consumer; diff --git a/src/main/java/li/cil/oc2r/common/util/RegistryUtils.java b/src/main/java/li/cil/oc2/common/util/RegistryUtils.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/util/RegistryUtils.java rename to src/main/java/li/cil/oc2/common/util/RegistryUtils.java index 3ba2109a..0598ce9e 100644 --- a/src/main/java/li/cil/oc2r/common/util/RegistryUtils.java +++ b/src/main/java/li/cil/oc2/common/util/RegistryUtils.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.api.API; -import li.cil.oc2r.api.bus.device.DeviceType; -import li.cil.oc2r.api.bus.device.provider.BlockDeviceProvider; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceProvider; -import li.cil.oc2r.common.bus.device.provider.ProviderRegistry; +import li.cil.oc2.api.API; +import li.cil.oc2.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; +import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; +import li.cil.oc2.common.bus.device.provider.ProviderRegistry; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; diff --git a/src/main/java/li/cil/oc2r/common/util/RunnableUtils.java b/src/main/java/li/cil/oc2/common/util/RunnableUtils.java similarity index 78% rename from src/main/java/li/cil/oc2r/common/util/RunnableUtils.java rename to src/main/java/li/cil/oc2/common/util/RunnableUtils.java index 2c69ed23..3296798c 100644 --- a/src/main/java/li/cil/oc2r/common/util/RunnableUtils.java +++ b/src/main/java/li/cil/oc2/common/util/RunnableUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; public final class RunnableUtils { public static void doNothing() { diff --git a/src/main/java/li/cil/oc2r/common/util/ServerScheduler.java b/src/main/java/li/cil/oc2/common/util/ServerScheduler.java similarity index 99% rename from src/main/java/li/cil/oc2r/common/util/ServerScheduler.java rename to src/main/java/li/cil/oc2/common/util/ServerScheduler.java index 96845475..ade3a86b 100644 --- a/src/main/java/li/cil/oc2r/common/util/ServerScheduler.java +++ b/src/main/java/li/cil/oc2/common/util/ServerScheduler.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.LevelAccessor; diff --git a/src/main/java/li/cil/oc2r/common/util/SoundEvents.java b/src/main/java/li/cil/oc2/common/util/SoundEvents.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/util/SoundEvents.java rename to src/main/java/li/cil/oc2/common/util/SoundEvents.java index 67cb0311..ac1e32de 100644 --- a/src/main/java/li/cil/oc2r/common/util/SoundEvents.java +++ b/src/main/java/li/cil/oc2/common/util/SoundEvents.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; diff --git a/src/main/java/li/cil/oc2r/common/util/TerminalUtils.java b/src/main/java/li/cil/oc2/common/util/TerminalUtils.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/util/TerminalUtils.java rename to src/main/java/li/cil/oc2/common/util/TerminalUtils.java index e8986c3d..e0cb0d88 100644 --- a/src/main/java/li/cil/oc2r/common/util/TerminalUtils.java +++ b/src/main/java/li/cil/oc2/common/util/TerminalUtils.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.common.vm.Terminal; +import li.cil.oc2.common.vm.Terminal; import java.nio.ByteBuffer; import java.util.function.Consumer; diff --git a/src/main/java/li/cil/oc2r/common/util/TextFormatUtils.java b/src/main/java/li/cil/oc2/common/util/TextFormatUtils.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/util/TextFormatUtils.java rename to src/main/java/li/cil/oc2/common/util/TextFormatUtils.java index 682a8629..350a3a6e 100644 --- a/src/main/java/li/cil/oc2r/common/util/TextFormatUtils.java +++ b/src/main/java/li/cil/oc2/common/util/TextFormatUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/util/ThrottledSoundEmitter.java b/src/main/java/li/cil/oc2/common/util/ThrottledSoundEmitter.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/util/ThrottledSoundEmitter.java rename to src/main/java/li/cil/oc2/common/util/ThrottledSoundEmitter.java index 43049b18..45df056f 100644 --- a/src/main/java/li/cil/oc2r/common/util/ThrottledSoundEmitter.java +++ b/src/main/java/li/cil/oc2/common/util/ThrottledSoundEmitter.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; diff --git a/src/main/java/li/cil/oc2r/common/util/TickUtils.java b/src/main/java/li/cil/oc2/common/util/TickUtils.java similarity index 77% rename from src/main/java/li/cil/oc2r/common/util/TickUtils.java rename to src/main/java/li/cil/oc2/common/util/TickUtils.java index d49890fb..abb61ac3 100644 --- a/src/main/java/li/cil/oc2r/common/util/TickUtils.java +++ b/src/main/java/li/cil/oc2/common/util/TickUtils.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.common.Constants; +import li.cil.oc2.common.Constants; import java.time.Duration; diff --git a/src/main/java/li/cil/oc2r/common/util/TooltipUtils.java b/src/main/java/li/cil/oc2/common/util/TooltipUtils.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/util/TooltipUtils.java rename to src/main/java/li/cil/oc2/common/util/TooltipUtils.java index 5a762f1d..5b189fae 100644 --- a/src/main/java/li/cil/oc2r/common/util/TooltipUtils.java +++ b/src/main/java/li/cil/oc2/common/util/TooltipUtils.java @@ -1,16 +1,18 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; -import li.cil.oc2r.api.bus.device.DeviceType; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.block.EnergyConsumingBlock; -import li.cil.oc2r.common.bus.device.util.Devices; -import li.cil.oc2r.common.capabilities.Capabilities; -import li.cil.oc2r.common.tags.ItemTags; +import li.cil.oc2.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.common.Config; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.block.EnergyConsumingBlock; +import li.cil.oc2.common.bus.device.util.Devices; +import li.cil.oc2.common.capabilities.Capabilities; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.tags.ItemTags; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.StringSplitter; @@ -31,8 +33,8 @@ import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; -import static li.cil.oc2r.common.Constants.*; -import static li.cil.oc2r.common.util.TextFormatUtils.withFormat; +import static li.cil.oc2.common.Constants.*; +import static li.cil.oc2.common.util.TextFormatUtils.withFormat; @SuppressWarnings("UnstableApiUsage") public final class TooltipUtils { @@ -104,6 +106,17 @@ public final class TooltipUtils { final MutableComponent energy = withFormat(String.valueOf(energyConsumption), ChatFormatting.GREEN); tooltip.add(withFormat(Component.translatable(Constants.TOOLTIP_ENERGY_CONSUMPTION, energy), ChatFormatting.GRAY)); } + + // Additional tooltips for InternetGateWay + if (stack.getItem() == Items.INTERNET_GATEWAY.get()) { + if (Config.gatewayEnergyPerPacket > 0) { + final MutableComponent energy = withFormat(String.valueOf(Config.gatewayEnergyPerPacket), ChatFormatting.GREEN); + tooltip.add(withFormat(Component.translatable(Constants.TOOLTIP_INTERNET_ENERGY_PER_PACKET, energy), ChatFormatting.GRAY)); + } + if (!Config.internetCardEnabled) { + tooltip.add(withFormat(Component.translatable(Constants.TOOLTIP_INTERNET_DISABLED), ChatFormatting.RED)); + } + } } public static void addBlockEntityInventoryInformation(final ItemStack stack, final List tooltip) { diff --git a/src/main/java/li/cil/oc2r/common/util/TranslationUtils.java b/src/main/java/li/cil/oc2/common/util/TranslationUtils.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/util/TranslationUtils.java rename to src/main/java/li/cil/oc2/common/util/TranslationUtils.java index 46dcd73e..d2816471 100644 --- a/src/main/java/li/cil/oc2r/common/util/TranslationUtils.java +++ b/src/main/java/li/cil/oc2/common/util/TranslationUtils.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; diff --git a/src/main/java/li/cil/oc2r/common/util/Vec3Utils.java b/src/main/java/li/cil/oc2/common/util/Vec3Utils.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/util/Vec3Utils.java rename to src/main/java/li/cil/oc2/common/util/Vec3Utils.java index 7bc254a5..e2b321f8 100644 --- a/src/main/java/li/cil/oc2r/common/util/Vec3Utils.java +++ b/src/main/java/li/cil/oc2/common/util/Vec3Utils.java @@ -1,4 +1,4 @@ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.core.Vec3i; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/li/cil/oc2r/common/util/VoxelShapeUtils.java b/src/main/java/li/cil/oc2/common/util/VoxelShapeUtils.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/util/VoxelShapeUtils.java rename to src/main/java/li/cil/oc2/common/util/VoxelShapeUtils.java index cfadc120..1f90577c 100644 --- a/src/main/java/li/cil/oc2r/common/util/VoxelShapeUtils.java +++ b/src/main/java/li/cil/oc2/common/util/VoxelShapeUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.util; +package li.cil.oc2.common.util; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; diff --git a/src/main/java/li/cil/oc2/common/util/package-info.java b/src/main/java/li/cil/oc2/common/util/package-info.java new file mode 100644 index 00000000..500f2929 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/util/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.util; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/AbstractTerminalVMRunner.java b/src/main/java/li/cil/oc2/common/vm/AbstractTerminalVMRunner.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/vm/AbstractTerminalVMRunner.java rename to src/main/java/li/cil/oc2/common/vm/AbstractTerminalVMRunner.java index 0dc78426..0928f717 100644 --- a/src/main/java/li/cil/oc2r/common/vm/AbstractTerminalVMRunner.java +++ b/src/main/java/li/cil/oc2/common/vm/AbstractTerminalVMRunner.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; import it.unimi.dsi.fastutil.bytes.ByteArrayFIFOQueue; import li.cil.sedna.device.serial.UART16550A; diff --git a/src/main/java/li/cil/oc2r/common/vm/AbstractVMItemStackHandlers.java b/src/main/java/li/cil/oc2/common/vm/AbstractVMItemStackHandlers.java similarity index 92% rename from src/main/java/li/cil/oc2r/common/vm/AbstractVMItemStackHandlers.java rename to src/main/java/li/cil/oc2/common/vm/AbstractVMItemStackHandlers.java index 92b876dc..3d8e2dff 100644 --- a/src/main/java/li/cil/oc2r/common/vm/AbstractVMItemStackHandlers.java +++ b/src/main/java/li/cil/oc2/common/vm/AbstractVMItemStackHandlers.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; -import li.cil.oc2r.api.bus.DeviceBusElement; -import li.cil.oc2r.api.bus.device.DeviceType; -import li.cil.oc2r.api.bus.device.DeviceTypes; -import li.cil.oc2r.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.common.bus.AbstractDeviceBusElement; -import li.cil.oc2r.common.bus.AbstractItemDeviceBusElement; -import li.cil.oc2r.common.container.AbstractDeviceItemStackHandler; -import li.cil.oc2r.common.container.AbstractTypedDeviceItemStackHandler; +import li.cil.oc2.api.bus.DeviceBusElement; +import li.cil.oc2.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.DeviceTypes; +import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.common.bus.AbstractDeviceBusElement; +import li.cil.oc2.common.bus.AbstractItemDeviceBusElement; +import li.cil.oc2.common.container.AbstractDeviceItemStackHandler; +import li.cil.oc2.common.container.AbstractTypedDeviceItemStackHandler; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.util.LazyOptional; diff --git a/src/main/java/li/cil/oc2r/common/vm/AbstractVirtualMachine.java b/src/main/java/li/cil/oc2/common/vm/AbstractVirtualMachine.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/vm/AbstractVirtualMachine.java rename to src/main/java/li/cil/oc2/common/vm/AbstractVirtualMachine.java index ae91d028..3ec3cc17 100644 --- a/src/main/java/li/cil/oc2r/common/vm/AbstractVirtualMachine.java +++ b/src/main/java/li/cil/oc2/common/vm/AbstractVirtualMachine.java @@ -1,20 +1,20 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; import li.cil.ceres.api.Serialized; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.vm.FirmwareLoader; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.CommonDeviceBusController; -import li.cil.oc2r.common.bus.RPCDeviceBusAdapter; -import li.cil.oc2r.common.bus.device.rpc.item.CPUItemDevice; -import li.cil.oc2r.common.serialization.NBTSerialization; -import li.cil.oc2r.common.util.NBTTagIds; -import li.cil.oc2r.common.util.NBTUtils; -import li.cil.oc2r.common.util.TickUtils; -import li.cil.oc2r.common.vm.context.global.GlobalVMContext; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.vm.FirmwareLoader; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.bus.RPCDeviceBusAdapter; +import li.cil.oc2.common.bus.device.rpc.item.CPUItemDevice; +import li.cil.oc2.common.serialization.NBTSerialization; +import li.cil.oc2.common.util.NBTTagIds; +import li.cil.oc2.common.util.NBTUtils; +import li.cil.oc2.common.util.TickUtils; +import li.cil.oc2.common.vm.context.global.GlobalVMContext; import li.cil.sedna.api.memory.MemoryAccessException; import li.cil.sedna.riscv.R5Board; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/li/cil/oc2r/common/vm/Allocator.java b/src/main/java/li/cil/oc2/common/vm/Allocator.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/vm/Allocator.java rename to src/main/java/li/cil/oc2/common/vm/Allocator.java index 1c15f7b5..6ba4649b 100644 --- a/src/main/java/li/cil/oc2r/common/vm/Allocator.java +++ b/src/main/java/li/cil/oc2/common/vm/Allocator.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.Config; +import li.cil.oc2.api.API; +import li.cil.oc2.common.Config; import net.minecraftforge.event.server.ServerStoppedEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/main/java/li/cil/oc2r/common/vm/BaseAddressProvider.java b/src/main/java/li/cil/oc2/common/vm/BaseAddressProvider.java similarity index 68% rename from src/main/java/li/cil/oc2r/common/vm/BaseAddressProvider.java rename to src/main/java/li/cil/oc2/common/vm/BaseAddressProvider.java index 1817556c..31e835b6 100644 --- a/src/main/java/li/cil/oc2r/common/vm/BaseAddressProvider.java +++ b/src/main/java/li/cil/oc2/common/vm/BaseAddressProvider.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; -import li.cil.oc2r.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDevice; import java.util.OptionalLong; diff --git a/src/main/java/li/cil/oc2r/common/vm/BuiltinDevices.java b/src/main/java/li/cil/oc2/common/vm/BuiltinDevices.java similarity index 66% rename from src/main/java/li/cil/oc2r/common/vm/BuiltinDevices.java rename to src/main/java/li/cil/oc2/common/vm/BuiltinDevices.java index 83925d57..938304b5 100644 --- a/src/main/java/li/cil/oc2r/common/vm/BuiltinDevices.java +++ b/src/main/java/li/cil/oc2/common/vm/BuiltinDevices.java @@ -1,10 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; +import java.io.IOException; import li.cil.ceres.api.Serialized; -import li.cil.oc2r.common.bus.device.data.FileSystems; -import li.cil.oc2r.common.vm.context.global.GlobalVMContext; +import li.cil.oc2.common.bus.device.data.FileSystems; +import li.cil.oc2.common.vm.context.global.GlobalVMContext; import li.cil.sedna.api.Interrupt; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.device.rtc.GoldfishRTC; @@ -12,6 +13,11 @@ import li.cil.sedna.device.rtc.SystemTimeRealTimeCounter; import li.cil.sedna.device.serial.UART16550A; import li.cil.sedna.device.virtio.VirtIOConsoleDevice; import li.cil.sedna.device.virtio.VirtIOFileSystemDevice; +import li.cil.sedna.device.virtio.VirtIOBlockDevice; +import li.cil.sedna.buildroot.Buildroot; +import java.io.InputStream; +import li.cil.sedna.device.block.ByteBufferBlockDevice; + import java.util.function.Function; @@ -21,6 +27,8 @@ public final class BuiltinDevices { public static final int RPC_INTERRUPT = 0x3; private static final int UART_INTERRUPT = 0x4; private static final int VFS_INTERRUPT = 0x5; + private static final int BFS_INTERRUPT = 0x6; + private static final int RFS_INTERRUPT = 0x7; /////////////////////////////////////////////////////////////////// @@ -31,6 +39,8 @@ public final class BuiltinDevices { @Serialized public final VirtIOConsoleDevice rpcSerialDevice; @Serialized public final UART16550A uart; @Serialized public final VirtIOFileSystemDevice vfs; + @Serialized public VirtIOBlockDevice bfs; + @Serialized public VirtIOBlockDevice rfs; /////////////////////////////////////////////////////////////////// @@ -40,6 +50,21 @@ public final class BuiltinDevices { rpcSerialDevice = initialize(context, new VirtIOConsoleDevice(context.getMemoryMap()), RPC_INTERRUPT, VirtIOConsoleDevice::getInterrupt); uart = initialize(context, new UART16550A(), UART_INTERRUPT, UART16550A::getInterrupt); vfs = initialize(context, new VirtIOFileSystemDevice(context.getMemoryMap(), "builtin", FileSystems.getLayeredFileSystem()), VFS_INTERRUPT, VirtIOFileSystemDevice::getInterrupt); + InputStream ris = Buildroot.getRootFilesystem(); + try { + var bfsd = FileSystems.getBlockByName("bootfs"); + if (bfsd != null) { + bfs = initialize(context, new VirtIOBlockDevice(context.getMemoryMap(), bfsd.getBlockDevice()), BFS_INTERRUPT, VirtIOBlockDevice::getInterrupt); + } + else { + bfs = null; + } + rfs = initialize(context, new VirtIOBlockDevice(context.getMemoryMap(), ByteBufferBlockDevice.createFromStream(ris, true)), RFS_INTERRUPT, VirtIOBlockDevice::getInterrupt); + } + catch(final IOException e) { + System.out.println("Failed to load lower block device"); + } + } /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2r/common/vm/MinecraftRealTimeCounter.java b/src/main/java/li/cil/oc2/common/vm/MinecraftRealTimeCounter.java similarity index 96% rename from src/main/java/li/cil/oc2r/common/vm/MinecraftRealTimeCounter.java rename to src/main/java/li/cil/oc2/common/vm/MinecraftRealTimeCounter.java index babceff4..6148b58f 100644 --- a/src/main/java/li/cil/oc2r/common/vm/MinecraftRealTimeCounter.java +++ b/src/main/java/li/cil/oc2/common/vm/MinecraftRealTimeCounter.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; import li.cil.sedna.api.device.rtc.RealTimeCounter; import net.minecraft.world.level.Level; diff --git a/src/main/java/li/cil/oc2r/common/vm/Terminal.java b/src/main/java/li/cil/oc2/common/vm/Terminal.java similarity index 99% rename from src/main/java/li/cil/oc2r/common/vm/Terminal.java rename to src/main/java/li/cil/oc2/common/vm/Terminal.java index f4e99c5c..c5007c09 100644 --- a/src/main/java/li/cil/oc2r/common/vm/Terminal.java +++ b/src/main/java/li/cil/oc2/common/vm/Terminal.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; import org.joml.Matrix4f; import it.unimi.dsi.fastutil.bytes.ByteArrayFIFOQueue; import li.cil.ceres.api.Serialized; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.ShaderInstance; diff --git a/src/main/java/li/cil/oc2r/common/vm/VMDeviceBusAdapter.java b/src/main/java/li/cil/oc2/common/vm/VMDeviceBusAdapter.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/vm/VMDeviceBusAdapter.java rename to src/main/java/li/cil/oc2/common/vm/VMDeviceBusAdapter.java index a1711597..ac9e6521 100644 --- a/src/main/java/li/cil/oc2r/common/vm/VMDeviceBusAdapter.java +++ b/src/main/java/li/cil/oc2/common/vm/VMDeviceBusAdapter.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; -import li.cil.oc2r.api.bus.device.Device; -import li.cil.oc2r.api.bus.device.vm.VMDevice; -import li.cil.oc2r.api.bus.device.vm.VMDeviceLoadResult; -import li.cil.oc2r.common.vm.context.global.GlobalVMContext; -import li.cil.oc2r.common.vm.context.managed.ManagedVMContext; +import li.cil.oc2.api.bus.device.Device; +import li.cil.oc2.api.bus.device.vm.VMDevice; +import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; +import li.cil.oc2.common.vm.context.global.GlobalVMContext; +import li.cil.oc2.common.vm.context.managed.ManagedVMContext; import java.util.ArrayList; import java.util.Collection; diff --git a/src/main/java/li/cil/oc2r/common/vm/VMItemStackHandlers.java b/src/main/java/li/cil/oc2/common/vm/VMItemStackHandlers.java similarity index 78% rename from src/main/java/li/cil/oc2r/common/vm/VMItemStackHandlers.java rename to src/main/java/li/cil/oc2/common/vm/VMItemStackHandlers.java index ce855492..d3281eff 100644 --- a/src/main/java/li/cil/oc2r/common/vm/VMItemStackHandlers.java +++ b/src/main/java/li/cil/oc2/common/vm/VMItemStackHandlers.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; -import li.cil.oc2r.api.bus.device.DeviceType; +import li.cil.oc2.api.bus.device.DeviceType; import net.minecraftforge.items.IItemHandler; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2r/common/vm/VMRunState.java b/src/main/java/li/cil/oc2/common/vm/VMRunState.java similarity index 78% rename from src/main/java/li/cil/oc2r/common/vm/VMRunState.java rename to src/main/java/li/cil/oc2/common/vm/VMRunState.java index ff87897a..be1e7057 100644 --- a/src/main/java/li/cil/oc2r/common/vm/VMRunState.java +++ b/src/main/java/li/cil/oc2/common/vm/VMRunState.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; public enum VMRunState { STOPPED, diff --git a/src/main/java/li/cil/oc2r/common/vm/VMRunner.java b/src/main/java/li/cil/oc2/common/vm/VMRunner.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/vm/VMRunner.java rename to src/main/java/li/cil/oc2/common/vm/VMRunner.java index 5a6dfcbe..866d24af 100644 --- a/src/main/java/li/cil/oc2r/common/vm/VMRunner.java +++ b/src/main/java/li/cil/oc2/common/vm/VMRunner.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; import li.cil.ceres.api.Serialized; -import li.cil.oc2r.api.bus.device.vm.event.VMInitializationException; -import li.cil.oc2r.api.bus.device.vm.event.VMInitializingEvent; -import li.cil.oc2r.api.bus.device.vm.event.VMResumedRunningEvent; -import li.cil.oc2r.api.bus.device.vm.event.VMSynchronizeEvent; -import li.cil.oc2r.common.Constants; -import li.cil.oc2r.common.bus.RPCDeviceBusAdapter; -import li.cil.oc2r.common.vm.context.global.GlobalVMContext; +import li.cil.oc2.api.bus.device.vm.event.VMInitializationException; +import li.cil.oc2.api.bus.device.vm.event.VMInitializingEvent; +import li.cil.oc2.api.bus.device.vm.event.VMResumedRunningEvent; +import li.cil.oc2.api.bus.device.vm.event.VMSynchronizeEvent; +import li.cil.oc2.common.Constants; +import li.cil.oc2.common.bus.RPCDeviceBusAdapter; +import li.cil.oc2.common.vm.context.global.GlobalVMContext; import li.cil.sedna.riscv.R5Board; import net.minecraft.network.chat.Component; diff --git a/src/main/java/li/cil/oc2r/common/vm/VirtualMachine.java b/src/main/java/li/cil/oc2/common/vm/VirtualMachine.java similarity index 89% rename from src/main/java/li/cil/oc2r/common/vm/VirtualMachine.java rename to src/main/java/li/cil/oc2/common/vm/VirtualMachine.java index 699b75bd..3076fa84 100644 --- a/src/main/java/li/cil/oc2r/common/vm/VirtualMachine.java +++ b/src/main/java/li/cil/oc2/common/vm/VirtualMachine.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm; +package li.cil.oc2.common.vm; -import li.cil.oc2r.common.bus.CommonDeviceBusController; +import li.cil.oc2.common.bus.CommonDeviceBusController; import net.minecraft.network.chat.Component; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/EventManager.java b/src/main/java/li/cil/oc2/common/vm/context/EventManager.java similarity index 74% rename from src/main/java/li/cil/oc2r/common/vm/context/EventManager.java rename to src/main/java/li/cil/oc2/common/vm/context/EventManager.java index 3d3275c5..28378cb5 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/EventManager.java +++ b/src/main/java/li/cil/oc2/common/vm/context/EventManager.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context; +package li.cil.oc2.common.vm.context; public interface EventManager { void unregister(Object subscriber); diff --git a/src/main/java/li/cil/oc2r/common/vm/context/InterruptManager.java b/src/main/java/li/cil/oc2/common/vm/context/InterruptManager.java similarity index 82% rename from src/main/java/li/cil/oc2r/common/vm/context/InterruptManager.java rename to src/main/java/li/cil/oc2/common/vm/context/InterruptManager.java index f5d75668..027cf4a1 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/InterruptManager.java +++ b/src/main/java/li/cil/oc2/common/vm/context/InterruptManager.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context; +package li.cil.oc2.common.vm.context; import java.util.BitSet; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/InterruptValidator.java b/src/main/java/li/cil/oc2/common/vm/context/InterruptValidator.java similarity index 80% rename from src/main/java/li/cil/oc2r/common/vm/context/InterruptValidator.java rename to src/main/java/li/cil/oc2/common/vm/context/InterruptValidator.java index 368369e8..c52bddfc 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/InterruptValidator.java +++ b/src/main/java/li/cil/oc2/common/vm/context/InterruptValidator.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context; +package li.cil.oc2.common.vm.context; public interface InterruptValidator { boolean isMaskValid(int mask); diff --git a/src/main/java/li/cil/oc2r/common/vm/context/MemoryRangeManager.java b/src/main/java/li/cil/oc2/common/vm/context/MemoryRangeManager.java similarity index 88% rename from src/main/java/li/cil/oc2r/common/vm/context/MemoryRangeManager.java rename to src/main/java/li/cil/oc2/common/vm/context/MemoryRangeManager.java index 59691a55..bfc9bad4 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/MemoryRangeManager.java +++ b/src/main/java/li/cil/oc2/common/vm/context/MemoryRangeManager.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context; +package li.cil.oc2.common.vm.context; import li.cil.sedna.api.device.MemoryMappedDevice; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/VMContextManagerCollection.java b/src/main/java/li/cil/oc2/common/vm/context/VMContextManagerCollection.java similarity index 84% rename from src/main/java/li/cil/oc2r/common/vm/context/VMContextManagerCollection.java rename to src/main/java/li/cil/oc2/common/vm/context/VMContextManagerCollection.java index 58fceb80..6c77ee26 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/VMContextManagerCollection.java +++ b/src/main/java/li/cil/oc2/common/vm/context/VMContextManagerCollection.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context; +package li.cil.oc2.common.vm.context; public interface VMContextManagerCollection { InterruptManager getInterruptManager(); diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalEventBus.java b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalEventBus.java similarity index 87% rename from src/main/java/li/cil/oc2r/common/vm/context/global/GlobalEventBus.java rename to src/main/java/li/cil/oc2/common/vm/context/global/GlobalEventBus.java index 7ee24193..f4144b2f 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalEventBus.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalEventBus.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.SubscriberExceptionContext; -import li.cil.oc2r.api.bus.device.vm.context.VMLifecycleEventBus; -import li.cil.oc2r.api.bus.device.vm.event.VMInitializationException; -import li.cil.oc2r.common.vm.context.EventManager; +import li.cil.oc2.api.bus.device.vm.context.VMLifecycleEventBus; +import li.cil.oc2.api.bus.device.vm.event.VMInitializationException; +import li.cil.oc2.common.vm.context.EventManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalInterruptAllocator.java b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalInterruptAllocator.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/vm/context/global/GlobalInterruptAllocator.java rename to src/main/java/li/cil/oc2/common/vm/context/global/GlobalInterruptAllocator.java index c14b426a..eadf97ef 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalInterruptAllocator.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalInterruptAllocator.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; -import li.cil.oc2r.api.bus.device.vm.context.InterruptAllocator; -import li.cil.oc2r.common.vm.context.InterruptManager; -import li.cil.oc2r.common.vm.context.InterruptValidator; +import li.cil.oc2.api.bus.device.vm.context.InterruptAllocator; +import li.cil.oc2.common.vm.context.InterruptManager; +import li.cil.oc2.common.vm.context.InterruptValidator; import java.util.BitSet; import java.util.OptionalInt; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalInterruptController.java b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalInterruptController.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/vm/context/global/GlobalInterruptController.java rename to src/main/java/li/cil/oc2/common/vm/context/global/GlobalInterruptController.java index 5744c07a..56d08aeb 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalInterruptController.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalInterruptController.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; -import li.cil.oc2r.common.vm.context.InterruptValidator; +import li.cil.oc2.common.vm.context.InterruptValidator; import li.cil.sedna.api.device.InterruptController; final class GlobalInterruptController implements InterruptController { diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryAllocator.java b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryAllocator.java similarity index 83% rename from src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryAllocator.java rename to src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryAllocator.java index ccf3877c..ceb4e1a1 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryAllocator.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryAllocator.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; -import li.cil.oc2r.api.bus.device.vm.context.MemoryAllocator; -import li.cil.oc2r.common.vm.Allocator; +import li.cil.oc2.api.bus.device.vm.context.MemoryAllocator; +import li.cil.oc2.common.vm.Allocator; import java.util.ArrayList; import java.util.UUID; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryMap.java b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryMap.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryMap.java rename to src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryMap.java index 9a35563e..793c6fb6 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryMap.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryMap.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.memory.MappedMemoryRange; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryRangeAllocator.java b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryRangeAllocator.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryRangeAllocator.java rename to src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryRangeAllocator.java index 822c2b82..d9d5816a 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalMemoryRangeAllocator.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalMemoryRangeAllocator.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; import it.unimi.dsi.fastutil.objects.Object2LongArrayMap; import it.unimi.dsi.fastutil.objects.Object2LongMap; -import li.cil.oc2r.api.bus.device.vm.context.MemoryRangeAllocator; -import li.cil.oc2r.common.vm.context.MemoryRangeManager; +import li.cil.oc2.api.bus.device.vm.context.MemoryRangeAllocator; +import li.cil.oc2.common.vm.context.MemoryRangeManager; import li.cil.sedna.api.Board; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.memory.MemoryRange; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalVMContext.java b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalVMContext.java similarity index 91% rename from src/main/java/li/cil/oc2r/common/vm/context/global/GlobalVMContext.java rename to src/main/java/li/cil/oc2/common/vm/context/global/GlobalVMContext.java index 4e39763f..1a8ca029 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/GlobalVMContext.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/GlobalVMContext.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; import li.cil.ceres.api.Serialized; -import li.cil.oc2r.api.bus.device.vm.context.*; -import li.cil.oc2r.common.vm.context.EventManager; -import li.cil.oc2r.common.vm.context.InterruptManager; -import li.cil.oc2r.common.vm.context.MemoryRangeManager; -import li.cil.oc2r.common.vm.context.VMContextManagerCollection; +import li.cil.oc2.api.bus.device.vm.context.*; +import li.cil.oc2.common.vm.context.EventManager; +import li.cil.oc2.common.vm.context.InterruptManager; +import li.cil.oc2.common.vm.context.MemoryRangeManager; +import li.cil.oc2.common.vm.context.VMContextManagerCollection; import li.cil.sedna.api.Board; import li.cil.sedna.api.device.InterruptController; import li.cil.sedna.api.memory.MemoryMap; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/MemoryRangeList.java b/src/main/java/li/cil/oc2/common/vm/context/global/MemoryRangeList.java similarity index 79% rename from src/main/java/li/cil/oc2r/common/vm/context/global/MemoryRangeList.java rename to src/main/java/li/cil/oc2/common/vm/context/global/MemoryRangeList.java index 0b7dcf83..32f841e5 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/MemoryRangeList.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/MemoryRangeList.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.global; +package li.cil.oc2.common.vm.context.global; import li.cil.sedna.api.memory.MemoryRange; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/provider/package-info.java b/src/main/java/li/cil/oc2/common/vm/context/global/package-info.java similarity index 82% rename from src/main/java/li/cil/oc2r/api/bus/device/provider/package-info.java rename to src/main/java/li/cil/oc2/common/vm/context/global/package-info.java index cb72d743..55d4086b 100644 --- a/src/main/java/li/cil/oc2r/api/bus/device/provider/package-info.java +++ b/src/main/java/li/cil/oc2/common/vm/context/global/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.bus.device.provider; +package li.cil.oc2.common.vm.context.global; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedEventBus.java b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedEventBus.java similarity index 86% rename from src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedEventBus.java rename to src/main/java/li/cil/oc2/common/vm/context/managed/ManagedEventBus.java index 81b9fadd..d0fe29ce 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedEventBus.java +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedEventBus.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.managed; +package li.cil.oc2.common.vm.context.managed; -import li.cil.oc2r.api.bus.device.vm.context.VMLifecycleEventBus; -import li.cil.oc2r.common.vm.context.EventManager; +import li.cil.oc2.api.bus.device.vm.context.VMLifecycleEventBus; +import li.cil.oc2.common.vm.context.EventManager; import java.util.ArrayList; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedInterruptAllocator.java b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedInterruptAllocator.java similarity index 90% rename from src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedInterruptAllocator.java rename to src/main/java/li/cil/oc2/common/vm/context/managed/ManagedInterruptAllocator.java index e8cbe162..0064ad88 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedInterruptAllocator.java +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedInterruptAllocator.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.managed; +package li.cil.oc2.common.vm.context.managed; -import li.cil.oc2r.api.bus.device.vm.context.InterruptAllocator; -import li.cil.oc2r.common.vm.context.InterruptManager; -import li.cil.oc2r.common.vm.context.InterruptValidator; +import li.cil.oc2.api.bus.device.vm.context.InterruptAllocator; +import li.cil.oc2.common.vm.context.InterruptManager; +import li.cil.oc2.common.vm.context.InterruptValidator; import java.util.BitSet; import java.util.OptionalInt; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedInterruptController.java b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedInterruptController.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedInterruptController.java rename to src/main/java/li/cil/oc2/common/vm/context/managed/ManagedInterruptController.java index 26d9f71a..c73082f9 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedInterruptController.java +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedInterruptController.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.managed; +package li.cil.oc2.common.vm.context.managed; -import li.cil.oc2r.common.vm.context.InterruptValidator; +import li.cil.oc2.common.vm.context.InterruptValidator; import li.cil.sedna.api.device.InterruptController; public final class ManagedInterruptController implements InterruptController { diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryAllocator.java b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryAllocator.java similarity index 85% rename from src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryAllocator.java rename to src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryAllocator.java index 40d9fc70..98ed2a5c 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryAllocator.java +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryAllocator.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.managed; +package li.cil.oc2.common.vm.context.managed; -import li.cil.oc2r.api.bus.device.vm.context.MemoryAllocator; -import li.cil.oc2r.common.vm.Allocator; +import li.cil.oc2.api.bus.device.vm.context.MemoryAllocator; +import li.cil.oc2.common.vm.Allocator; import java.util.ArrayList; import java.util.UUID; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryMap.java b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryMap.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryMap.java rename to src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryMap.java index a9be28d5..bd91d907 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryMap.java +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryMap.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.managed; +package li.cil.oc2.common.vm.context.managed; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.memory.MappedMemoryRange; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryRangeAllocator.java b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryRangeAllocator.java similarity index 93% rename from src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryRangeAllocator.java rename to src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryRangeAllocator.java index 60e0b0f6..4a9907bb 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedMemoryRangeAllocator.java +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedMemoryRangeAllocator.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.managed; +package li.cil.oc2.common.vm.context.managed; -import li.cil.oc2r.api.bus.device.vm.context.MemoryRangeAllocator; -import li.cil.oc2r.common.vm.context.MemoryRangeManager; +import li.cil.oc2.api.bus.device.vm.context.MemoryRangeAllocator; +import li.cil.oc2.common.vm.context.MemoryRangeManager; import li.cil.sedna.api.device.MemoryMappedDevice; import java.util.ArrayList; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedVMContext.java b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedVMContext.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedVMContext.java rename to src/main/java/li/cil/oc2/common/vm/context/managed/ManagedVMContext.java index 76c9632e..eaa6c061 100644 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/ManagedVMContext.java +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/ManagedVMContext.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.context.managed; +package li.cil.oc2.common.vm.context.managed; -import li.cil.oc2r.api.bus.device.vm.context.*; -import li.cil.oc2r.common.vm.context.VMContextManagerCollection; +import li.cil.oc2.api.bus.device.vm.context.*; +import li.cil.oc2.common.vm.context.VMContextManagerCollection; import li.cil.sedna.api.device.InterruptController; import li.cil.sedna.api.memory.MemoryMap; diff --git a/src/main/java/li/cil/oc2/common/vm/context/managed/package-info.java b/src/main/java/li/cil/oc2/common/vm/context/managed/package-info.java new file mode 100644 index 00000000..1e0a9e06 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/vm/context/managed/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.vm.context.managed; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/vm/context/package-info.java b/src/main/java/li/cil/oc2/common/vm/context/package-info.java new file mode 100644 index 00000000..f3b27499 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/vm/context/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.vm.context; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/device/PciRootPortDevice.java b/src/main/java/li/cil/oc2/common/vm/device/PciRootPortDevice.java similarity index 98% rename from src/main/java/li/cil/oc2r/common/vm/device/PciRootPortDevice.java rename to src/main/java/li/cil/oc2/common/vm/device/PciRootPortDevice.java index e97ef0d8..34605d62 100644 --- a/src/main/java/li/cil/oc2r/common/vm/device/PciRootPortDevice.java +++ b/src/main/java/li/cil/oc2/common/vm/device/PciRootPortDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.device; +package li.cil.oc2.common.vm.device; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.memory.MemoryAccessException; diff --git a/src/main/java/li/cil/oc2r/common/vm/device/SimpleFramebufferDevice.java b/src/main/java/li/cil/oc2/common/vm/device/SimpleFramebufferDevice.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/vm/device/SimpleFramebufferDevice.java rename to src/main/java/li/cil/oc2/common/vm/device/SimpleFramebufferDevice.java index ea34837c..2e680851 100644 --- a/src/main/java/li/cil/oc2r/common/vm/device/SimpleFramebufferDevice.java +++ b/src/main/java/li/cil/oc2/common/vm/device/SimpleFramebufferDevice.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.device; +package li.cil.oc2.common.vm.device; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.scale.RgbToYuv420j; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.scale.RgbToYuv420j; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.memory.MemoryAccessException; import li.cil.sedna.utils.DirectByteBufferUtils; diff --git a/src/main/java/li/cil/oc2r/common/vm/fs/LayeredFileSystem.java b/src/main/java/li/cil/oc2/common/vm/fs/LayeredFileSystem.java similarity index 99% rename from src/main/java/li/cil/oc2r/common/vm/fs/LayeredFileSystem.java rename to src/main/java/li/cil/oc2/common/vm/fs/LayeredFileSystem.java index 03daaec4..1555f3a7 100644 --- a/src/main/java/li/cil/oc2r/common/vm/fs/LayeredFileSystem.java +++ b/src/main/java/li/cil/oc2/common/vm/fs/LayeredFileSystem.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.fs; +package li.cil.oc2.common.vm.fs; import li.cil.sedna.fs.*; diff --git a/src/main/java/li/cil/oc2/common/vm/fs/package-info.java b/src/main/java/li/cil/oc2/common/vm/fs/package-info.java new file mode 100644 index 00000000..a94c4a31 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/vm/fs/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.vm.fs; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/util/package-info.java b/src/main/java/li/cil/oc2/common/vm/package-info.java similarity index 87% rename from src/main/java/li/cil/oc2r/api/util/package-info.java rename to src/main/java/li/cil/oc2/common/vm/package-info.java index 6df16f55..780a7292 100644 --- a/src/main/java/li/cil/oc2r/api/util/package-info.java +++ b/src/main/java/li/cil/oc2/common/vm/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.api.util; +package li.cil.oc2.common.vm; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/provider/DeviceTreeProviders.java b/src/main/java/li/cil/oc2/common/vm/provider/DeviceTreeProviders.java similarity index 71% rename from src/main/java/li/cil/oc2r/common/vm/provider/DeviceTreeProviders.java rename to src/main/java/li/cil/oc2/common/vm/provider/DeviceTreeProviders.java index 2d3714f7..912a47f6 100644 --- a/src/main/java/li/cil/oc2r/common/vm/provider/DeviceTreeProviders.java +++ b/src/main/java/li/cil/oc2/common/vm/provider/DeviceTreeProviders.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.provider; +package li.cil.oc2.common.vm.provider; -import li.cil.oc2r.common.vm.device.PciRootPortDevice; -import li.cil.oc2r.common.vm.device.SimpleFramebufferDevice; +import li.cil.oc2.common.vm.device.PciRootPortDevice; +import li.cil.oc2.common.vm.device.SimpleFramebufferDevice; import li.cil.sedna.devicetree.DeviceTreeRegistry; public final class DeviceTreeProviders { diff --git a/src/main/java/li/cil/oc2r/common/vm/provider/PciRootPortDeviceProvider.java b/src/main/java/li/cil/oc2/common/vm/provider/PciRootPortDeviceProvider.java similarity index 95% rename from src/main/java/li/cil/oc2r/common/vm/provider/PciRootPortDeviceProvider.java rename to src/main/java/li/cil/oc2/common/vm/provider/PciRootPortDeviceProvider.java index 7e5c19c1..514af517 100644 --- a/src/main/java/li/cil/oc2r/common/vm/provider/PciRootPortDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/vm/provider/PciRootPortDeviceProvider.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.provider; +package li.cil.oc2.common.vm.provider; -import li.cil.oc2r.common.vm.device.PciRootPortDevice; +import li.cil.oc2.common.vm.device.PciRootPortDevice; import li.cil.sedna.api.device.Device; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.devicetree.DeviceNames; diff --git a/src/main/java/li/cil/oc2r/common/vm/provider/SimpleFramebufferDeviceProvider.java b/src/main/java/li/cil/oc2/common/vm/provider/SimpleFramebufferDeviceProvider.java similarity index 94% rename from src/main/java/li/cil/oc2r/common/vm/provider/SimpleFramebufferDeviceProvider.java rename to src/main/java/li/cil/oc2/common/vm/provider/SimpleFramebufferDeviceProvider.java index a875de99..ac165c3c 100644 --- a/src/main/java/li/cil/oc2r/common/vm/provider/SimpleFramebufferDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/vm/provider/SimpleFramebufferDeviceProvider.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.common.vm.provider; +package li.cil.oc2.common.vm.provider; -import li.cil.oc2r.common.vm.device.SimpleFramebufferDevice; +import li.cil.oc2.common.vm.device.SimpleFramebufferDevice; import li.cil.sedna.api.device.Device; import li.cil.sedna.api.device.MemoryMappedDevice; import li.cil.sedna.api.devicetree.DevicePropertyNames; diff --git a/src/main/java/li/cil/oc2r/common/vxlan/TunnelManager.java b/src/main/java/li/cil/oc2/common/vxlan/TunnelManager.java similarity index 97% rename from src/main/java/li/cil/oc2r/common/vxlan/TunnelManager.java rename to src/main/java/li/cil/oc2/common/vxlan/TunnelManager.java index f28fff00..def122ef 100644 --- a/src/main/java/li/cil/oc2r/common/vxlan/TunnelManager.java +++ b/src/main/java/li/cil/oc2/common/vxlan/TunnelManager.java @@ -1,7 +1,7 @@ -package li.cil.oc2r.common.vxlan; +package li.cil.oc2.common.vxlan; -import li.cil.oc2r.api.capabilities.NetworkInterface; -import li.cil.oc2r.common.Config; +import li.cil.oc2.api.capabilities.NetworkInterface; +import li.cil.oc2.common.Config; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/li/cil/oc2r/data/DataGenerators.java b/src/main/java/li/cil/oc2/data/DataGenerators.java similarity index 97% rename from src/main/java/li/cil/oc2r/data/DataGenerators.java rename to src/main/java/li/cil/oc2/data/DataGenerators.java index 1381ad8c..eac532ac 100644 --- a/src/main/java/li/cil/oc2r/data/DataGenerators.java +++ b/src/main/java/li/cil/oc2/data/DataGenerators.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.data.DataGenerator; import net.minecraft.data.DataProvider; import net.minecraft.data.loot.LootTableProvider; diff --git a/src/main/java/li/cil/oc2r/data/ModBlockStateProvider.java b/src/main/java/li/cil/oc2/data/ModBlockStateProvider.java similarity index 98% rename from src/main/java/li/cil/oc2r/data/ModBlockStateProvider.java rename to src/main/java/li/cil/oc2/data/ModBlockStateProvider.java index ccbf33fc..5a6399c5 100644 --- a/src/main/java/li/cil/oc2r/data/ModBlockStateProvider.java +++ b/src/main/java/li/cil/oc2/data/ModBlockStateProvider.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.block.Blocks; -import li.cil.oc2r.common.block.BusCableBlock; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.API; +import li.cil.oc2.common.block.Blocks; +import li.cil.oc2.common.block.BusCableBlock; +import li.cil.oc2.common.item.Items; import net.minecraft.core.Direction; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/li/cil/oc2r/data/ModBlockTagsProvider.java b/src/main/java/li/cil/oc2/data/ModBlockTagsProvider.java similarity index 88% rename from src/main/java/li/cil/oc2r/data/ModBlockTagsProvider.java rename to src/main/java/li/cil/oc2/data/ModBlockTagsProvider.java index 6ca99f14..33082310 100644 --- a/src/main/java/li/cil/oc2r/data/ModBlockTagsProvider.java +++ b/src/main/java/li/cil/oc2/data/ModBlockTagsProvider.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; -import li.cil.oc2r.api.API; +import li.cil.oc2.api.API; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraftforge.common.data.BlockTagsProvider; @@ -12,8 +12,8 @@ import javax.annotation.Nullable; import java.util.concurrent.CompletableFuture; -import static li.cil.oc2r.common.block.Blocks.*; -import static li.cil.oc2r.common.tags.BlockTags.*; +import static li.cil.oc2.common.block.Blocks.*; +import static li.cil.oc2.common.tags.BlockTags.*; public final class ModBlockTagsProvider extends BlockTagsProvider { public ModBlockTagsProvider(final PackOutput packOutput, CompletableFuture lookupProvider, @Nullable final ExistingFileHelper existingFileHelper) { diff --git a/src/main/java/li/cil/oc2r/data/ModItemModelProvider.java b/src/main/java/li/cil/oc2/data/ModItemModelProvider.java similarity index 94% rename from src/main/java/li/cil/oc2r/data/ModItemModelProvider.java rename to src/main/java/li/cil/oc2/data/ModItemModelProvider.java index 00f8eb13..e4df3257 100644 --- a/src/main/java/li/cil/oc2r/data/ModItemModelProvider.java +++ b/src/main/java/li/cil/oc2/data/ModItemModelProvider.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; -import li.cil.oc2r.api.API; -import li.cil.oc2r.common.entity.Entities; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.api.API; +import li.cil.oc2.common.entity.Entities; +import li.cil.oc2.common.item.Items; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; @@ -56,6 +56,7 @@ public final class ModItemModelProvider extends ItemModelProvider { simple(Items.REDSTONE_INTERFACE_CARD); simple(Items.NETWORK_INTERFACE_CARD); + simple(Items.INTERNET_CARD); simple(Items.FILE_IMPORT_EXPORT_CARD); simple(Items.SOUND_CARD); simple(Items.NETWORK_TUNNEL_CARD); diff --git a/src/main/java/li/cil/oc2r/data/ModItemTagsProvider.java b/src/main/java/li/cil/oc2/data/ModItemTagsProvider.java similarity index 95% rename from src/main/java/li/cil/oc2r/data/ModItemTagsProvider.java rename to src/main/java/li/cil/oc2/data/ModItemTagsProvider.java index df9f8881..63ad5fdf 100644 --- a/src/main/java/li/cil/oc2r/data/ModItemTagsProvider.java +++ b/src/main/java/li/cil/oc2/data/ModItemTagsProvider.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.tags.BlockTags; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.tags.BlockTags; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraft.data.tags.ItemTagsProvider; @@ -14,7 +14,7 @@ import javax.annotation.Nullable; import java.util.concurrent.CompletableFuture; -import static li.cil.oc2r.common.tags.ItemTags.*; +import static li.cil.oc2.common.tags.ItemTags.*; public final class ModItemTagsProvider extends ItemTagsProvider { public ModItemTagsProvider( diff --git a/src/main/java/li/cil/oc2r/data/ModLootTableProvider.java b/src/main/java/li/cil/oc2/data/ModLootTableProvider.java similarity index 96% rename from src/main/java/li/cil/oc2r/data/ModLootTableProvider.java rename to src/main/java/li/cil/oc2/data/ModLootTableProvider.java index 540fbc86..fae0c9e5 100644 --- a/src/main/java/li/cil/oc2r/data/ModLootTableProvider.java +++ b/src/main/java/li/cil/oc2/data/ModLootTableProvider.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; -import li.cil.oc2r.common.block.Blocks; +import li.cil.oc2.common.block.Blocks; import net.minecraft.data.PackOutput; import net.minecraft.data.loot.BlockLootSubProvider; import net.minecraft.world.flag.FeatureFlags; @@ -24,7 +24,7 @@ import java.util.Set; import java.util.stream.Collectors; import static java.util.Collections.singletonList; -import static li.cil.oc2r.common.Constants.*; +import static li.cil.oc2.common.Constants.*; public final class ModLootTableProvider extends LootTableProvider { public ModLootTableProvider(final PackOutput output, final Set additionalTables, final List subProviders) { diff --git a/src/main/java/li/cil/oc2r/data/ModRecipesProvider.java b/src/main/java/li/cil/oc2/data/ModRecipesProvider.java similarity index 99% rename from src/main/java/li/cil/oc2r/data/ModRecipesProvider.java rename to src/main/java/li/cil/oc2/data/ModRecipesProvider.java index 9c950c66..52aa4cd5 100644 --- a/src/main/java/li/cil/oc2r/data/ModRecipesProvider.java +++ b/src/main/java/li/cil/oc2/data/ModRecipesProvider.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; -import li.cil.oc2r.common.item.Items; +import li.cil.oc2.common.item.Items; import net.minecraft.advancements.critereon.InventoryChangeTrigger; import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.*; diff --git a/src/main/java/li/cil/oc2r/data/WrenchRecipeBuilder.java b/src/main/java/li/cil/oc2/data/WrenchRecipeBuilder.java similarity index 98% rename from src/main/java/li/cil/oc2r/data/WrenchRecipeBuilder.java rename to src/main/java/li/cil/oc2/data/WrenchRecipeBuilder.java index e87b0b39..ae052221 100644 --- a/src/main/java/li/cil/oc2r/data/WrenchRecipeBuilder.java +++ b/src/main/java/li/cil/oc2/data/WrenchRecipeBuilder.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2r.data; +package li.cil.oc2.data; import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import li.cil.oc2r.common.item.Items; -import li.cil.oc2r.common.item.crafting.RecipeSerializers; +import li.cil.oc2.common.item.Items; +import li.cil.oc2.common.item.crafting.RecipeSerializers; import net.minecraft.advancements.Advancement; import net.minecraft.advancements.AdvancementRewards; import net.minecraft.advancements.CriterionTriggerInstance; diff --git a/src/main/java/li/cil/oc2r/data/package-info.java b/src/main/java/li/cil/oc2/data/package-info.java similarity index 88% rename from src/main/java/li/cil/oc2r/data/package-info.java rename to src/main/java/li/cil/oc2/data/package-info.java index 4a321d19..0e56eff2 100644 --- a/src/main/java/li/cil/oc2r/data/package-info.java +++ b/src/main/java/li/cil/oc2/data/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2r.data; +package li.cil.oc2.data; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/common/biari/MConst.java b/src/main/java/li/cil/oc2/jcodec/codecs/common/biari/MConst.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/codecs/common/biari/MConst.java rename to src/main/java/li/cil/oc2/jcodec/codecs/common/biari/MConst.java index aacab085..95761cf5 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/common/biari/MConst.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/common/biari/MConst.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.common.biari; +package li.cil.oc2.jcodec.codecs.common.biari; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/common/biari/MDecoder.java b/src/main/java/li/cil/oc2/jcodec/codecs/common/biari/MDecoder.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/common/biari/MDecoder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/common/biari/MDecoder.java index 13b5a740..72001509 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/common/biari/MDecoder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/common/biari/MDecoder.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.common.biari; +package li.cil.oc2.jcodec.codecs.common.biari; import java.nio.ByteBuffer; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Const.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Const.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Const.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Const.java index d06b2e3f..7827ad95 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Const.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Const.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264; +package li.cil.oc2.jcodec.codecs.h264; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.common.io.VLC; -import li.cil.oc2r.jcodec.common.io.VLCBuilder; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.common.io.VLC; +import li.cil.oc2.jcodec.common.io.VLCBuilder; +import li.cil.oc2.jcodec.common.model.Picture; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Decoder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Decoder.java similarity index 94% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Decoder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Decoder.java index 060093ad..0c45c158 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Decoder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Decoder.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264; +package li.cil.oc2.jcodec.codecs.h264; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList2D; -import li.cil.oc2r.jcodec.codecs.h264.decode.DeblockerInput; -import li.cil.oc2r.jcodec.codecs.h264.decode.FrameReader; -import li.cil.oc2r.jcodec.codecs.h264.decode.SliceDecoder; -import li.cil.oc2r.jcodec.codecs.h264.decode.SliceReader; -import li.cil.oc2r.jcodec.codecs.h264.decode.deblock.DeblockingFilter; -import li.cil.oc2r.jcodec.codecs.h264.io.model.*; -import li.cil.oc2r.jcodec.common.IntObjectMap; -import li.cil.oc2r.jcodec.common.VideoDecoder; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList2D; +import li.cil.oc2.jcodec.codecs.h264.decode.DeblockerInput; +import li.cil.oc2.jcodec.codecs.h264.decode.FrameReader; +import li.cil.oc2.jcodec.codecs.h264.decode.SliceDecoder; +import li.cil.oc2.jcodec.codecs.h264.decode.SliceReader; +import li.cil.oc2.jcodec.codecs.h264.decode.deblock.DeblockingFilter; +import li.cil.oc2.jcodec.codecs.h264.io.model.*; +import li.cil.oc2.jcodec.common.IntObjectMap; +import li.cil.oc2.jcodec.common.VideoDecoder; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.tools.MathUtil; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -21,7 +21,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Encoder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Encoder.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Encoder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Encoder.java index 9d46efa2..ed96d6b8 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Encoder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Encoder.java @@ -1,24 +1,24 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264; +package li.cil.oc2.jcodec.codecs.h264; -import li.cil.oc2r.jcodec.codecs.h264.encode.*; -import li.cil.oc2r.jcodec.codecs.h264.io.CAVLC; -import li.cil.oc2r.jcodec.codecs.h264.io.model.*; -import li.cil.oc2r.jcodec.codecs.h264.io.write.CAVLCWriter; -import li.cil.oc2r.jcodec.codecs.h264.io.write.SliceHeaderWriter; -import li.cil.oc2r.jcodec.common.VideoEncoder; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.model.Size; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.encode.*; +import li.cil.oc2.jcodec.codecs.h264.io.CAVLC; +import li.cil.oc2.jcodec.codecs.h264.io.model.*; +import li.cil.oc2.jcodec.codecs.h264.io.write.CAVLCWriter; +import li.cil.oc2.jcodec.codecs.h264.io.write.SliceHeaderWriter; +import li.cil.oc2.jcodec.common.VideoEncoder; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.model.Size; +import li.cil.oc2.jcodec.common.tools.MathUtil; import java.nio.ByteBuffer; import java.util.LinkedList; import java.util.List; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.escapeNAL; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.escapeNAL; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Utils.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Utils.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Utils.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Utils.java index e532467b..7adef5ad 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/H264Utils.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/H264Utils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264; +package li.cil.oc2.jcodec.codecs.h264; import java.nio.ByteBuffer; import java.nio.ByteOrder; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/POCManager.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/POCManager.java similarity index 89% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/POCManager.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/POCManager.java index e55afe7c..7af4e12f 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/POCManager.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/POCManager.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264; +package li.cil.oc2.jcodec.codecs.h264; -import li.cil.oc2r.jcodec.codecs.h264.io.model.NALUnit; -import li.cil.oc2r.jcodec.codecs.h264.io.model.RefPicMarking.InstrType; -import li.cil.oc2r.jcodec.codecs.h264.io.model.RefPicMarking.Instruction; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.codecs.h264.io.model.NALUnit; +import li.cil.oc2.jcodec.codecs.h264.io.model.RefPicMarking.InstrType; +import li.cil.oc2.jcodec.codecs.h264.io.model.RefPicMarking.Instruction; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.NALUnitType.IDR_SLICE; +import static li.cil.oc2.jcodec.codecs.h264.io.model.NALUnitType.IDR_SLICE; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/BlockInterpolator.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/BlockInterpolator.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/BlockInterpolator.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/BlockInterpolator.java index 2c8c8688..2bc99059 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/BlockInterpolator.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/BlockInterpolator.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import static java.lang.System.arraycopy; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CABACContst.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CABACContst.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CABACContst.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CABACContst.java index 134f7eed..a1682e06 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CABACContst.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CABACContst.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CAVLCReader.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CAVLCReader.java similarity index 91% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CAVLCReader.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CAVLCReader.java index e4f3597b..63e389e7 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CAVLCReader.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CAVLCReader.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils; -import li.cil.oc2r.jcodec.common.io.BitReader; +import li.cil.oc2.jcodec.codecs.h264.H264Utils; +import li.cil.oc2.jcodec.common.io.BitReader; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/ChromaPredictionBuilder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/ChromaPredictionBuilder.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/ChromaPredictionBuilder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/ChromaPredictionBuilder.java index 3bc75bff..f0c572e3 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/ChromaPredictionBuilder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/ChromaPredictionBuilder.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.tools.MathUtil; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.CHROMA_BLOCK_LUT; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.CHROMA_POS_LUT; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.CHROMA_BLOCK_LUT; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.CHROMA_POS_LUT; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CoeffTransformer.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CoeffTransformer.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CoeffTransformer.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CoeffTransformer.java index c6bdce5d..9e8cbeb7 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/CoeffTransformer.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/CoeffTransformer.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.common.ArrayUtil; +import li.cil.oc2.jcodec.common.ArrayUtil; import java.util.Arrays; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/DeblockerInput.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/DeblockerInput.java similarity index 74% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/DeblockerInput.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/DeblockerInput.java index dac26caf..f8671b01 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/DeblockerInput.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/DeblockerInput.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils; -import li.cil.oc2r.jcodec.codecs.h264.io.model.Frame; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.codecs.h264.H264Utils; +import li.cil.oc2.jcodec.codecs.h264.io.model.Frame; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet.getPicHeightInMbs; +import static li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet.getPicHeightInMbs; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/DecoderState.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/DecoderState.java similarity index 86% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/DecoderState.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/DecoderState.java index 8c0b4675..eb349a1d 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/DecoderState.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/DecoderState.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.codecs.h264.H264Utils; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.model.ColorSpace; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/FrameReader.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/FrameReader.java similarity index 77% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/FrameReader.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/FrameReader.java index 13979d05..86a83906 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/FrameReader.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/FrameReader.java @@ -1,25 +1,25 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.common.biari.MDecoder; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.MapManager; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.CABAC; -import li.cil.oc2r.jcodec.codecs.h264.io.CAVLC; -import li.cil.oc2r.jcodec.codecs.h264.io.model.NALUnit; -import li.cil.oc2r.jcodec.codecs.h264.io.model.PictureParameterSet; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.IntObjectMap; -import li.cil.oc2r.jcodec.common.io.BitReader; +import li.cil.oc2.jcodec.codecs.common.biari.MDecoder; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.MapManager; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.CABAC; +import li.cil.oc2.jcodec.codecs.h264.io.CAVLC; +import li.cil.oc2.jcodec.codecs.h264.io.model.NALUnit; +import li.cil.oc2.jcodec.codecs.h264.io.model.PictureParameterSet; +import li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.IntObjectMap; +import li.cil.oc2.jcodec.common.io.BitReader; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.unescapeNAL; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.NALUnitType.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.unescapeNAL; +import static li.cil.oc2.jcodec.codecs.h264.io.model.NALUnitType.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra16x16PredictionBuilder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra16x16PredictionBuilder.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra16x16PredictionBuilder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra16x16PredictionBuilder.java index cefe0e4e..338b904b 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra16x16PredictionBuilder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra16x16PredictionBuilder.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.common.ArrayUtil; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.ArrayUtil; +import li.cil.oc2.jcodec.common.tools.MathUtil; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.LUMA_4x4_BLOCK_LUT; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.LUMA_4x4_POS_LUT; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.LUMA_4x4_BLOCK_LUT; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.LUMA_4x4_POS_LUT; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra4x4PredictionBuilder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra4x4PredictionBuilder.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra4x4PredictionBuilder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra4x4PredictionBuilder.java index c60e1119..17bfdb0f 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra4x4PredictionBuilder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra4x4PredictionBuilder.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.tools.MathUtil; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra8x8PredictionBuilder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra8x8PredictionBuilder.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra8x8PredictionBuilder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra8x8PredictionBuilder.java index f4a238dc..dca8cfc2 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/Intra8x8PredictionBuilder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/Intra8x8PredictionBuilder.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.tools.MathUtil; import static com.google.common.base.Preconditions.checkState; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlock.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlock.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlock.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlock.java index ef9e76e3..fd18a290 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlock.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlock.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred; +import li.cil.oc2.jcodec.codecs.h264.H264Utils; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.common.model.ColorSpace; import java.util.Arrays; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderBDirect.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderBDirect.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderBDirect.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderBDirect.java index ca0cae3a..fd5bf56d 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderBDirect.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderBDirect.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.model.Frame; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.model.Frame; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.*; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.*; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.Mv.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.Mv.*; /** * A decoder for B direct macroblocks diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderBase.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderBase.java similarity index 93% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderBase.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderBase.java index fbcdea16..21ce8261 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderBase.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderBase.java @@ -1,20 +1,20 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList; -import li.cil.oc2r.jcodec.codecs.h264.io.model.Frame; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList; +import li.cil.oc2.jcodec.codecs.h264.io.model.Frame; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.*; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.Mv.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.Mv.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIPCM.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIPCM.java similarity index 65% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIPCM.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIPCM.java index 0f69883a..4754532b 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIPCM.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIPCM.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.common.model.Picture; -import static li.cil.oc2r.jcodec.codecs.h264.decode.MBlockDecoderUtils.collectPredictors; -import static li.cil.oc2r.jcodec.codecs.h264.decode.MBlockDecoderUtils.saveVectIntra; +import static li.cil.oc2.jcodec.codecs.h264.decode.MBlockDecoderUtils.collectPredictors; +import static li.cil.oc2.jcodec.codecs.h264.decode.MBlockDecoderUtils.saveVectIntra; /** * A decoder for Intra PCM macroblocks diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderInter.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderInter.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderInter.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderInter.java index dfe5e119..adcd4026 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderInter.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderInter.java @@ -1,19 +1,19 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.model.Frame; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.model.Frame; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.*; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.Mv.*; -import static li.cil.oc2r.jcodec.codecs.h264.decode.MBlockDecoderUtils.*; -import static li.cil.oc2r.jcodec.codecs.h264.decode.PredictionMerger.mergePrediction; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.Mv.*; +import static li.cil.oc2.jcodec.codecs.h264.decode.MBlockDecoderUtils.*; +import static li.cil.oc2.jcodec.codecs.h264.decode.PredictionMerger.mergePrediction; /** * A decoder for Inter 16x16, 16x8 and 8x16 macroblocks diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderInter8x8.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderInter8x8.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderInter8x8.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderInter8x8.java index 12035233..8d6e68e3 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderInter8x8.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderInter8x8.java @@ -1,21 +1,21 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.model.Frame; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.model.Frame; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceType; +import li.cil.oc2.jcodec.common.model.Picture; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.*; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.Direct; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.L0; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.Mv.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.Direct; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.L0; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.Mv.*; /** * A decoder for Inter 16x16, 16x8 and 8x16 macroblocks diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIntra16x16.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIntra16x16.java similarity index 88% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIntra16x16.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIntra16x16.java index dcfe4bc1..5640b858 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIntra16x16.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIntra16x16.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.model.Picture; -import static li.cil.oc2r.jcodec.codecs.h264.decode.MBlockDecoderUtils.*; +import static li.cil.oc2.jcodec.codecs.h264.decode.MBlockDecoderUtils.*; /** * A decoder for I16x16 macroblocks diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIntraNxN.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIntraNxN.java similarity index 92% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIntraNxN.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIntraNxN.java index 4c580fbd..7626bb76 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderIntraNxN.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderIntraNxN.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.model.Picture; /** * A decoder for I16x16 macroblocks diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderUtils.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderUtils.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderUtils.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderUtils.java index 417d598d..c7c1ff90 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockDecoderUtils.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockDecoderUtils.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import static java.lang.System.arraycopy; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.Mv.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.Mv.*; public final class MBlockDecoderUtils { public static final int NULL_VECTOR = packMv(0, 0, -1); diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockSkipDecoder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockSkipDecoder.java similarity index 82% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockSkipDecoder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockSkipDecoder.java index e10b04ae..27e67331 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/MBlockSkipDecoder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/MBlockSkipDecoder.java @@ -1,22 +1,22 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.model.Frame; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.model.Frame; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceType; +import li.cil.oc2.jcodec.common.model.Picture; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.L0; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.identityMapping4; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.Mv.packMv; -import static li.cil.oc2r.jcodec.codecs.h264.decode.MBlockDecoderUtils.*; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType.P; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.L0; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.identityMapping4; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.Mv.packMv; +import static li.cil.oc2.jcodec.codecs.h264.decode.MBlockDecoderUtils.*; +import static li.cil.oc2.jcodec.codecs.h264.io.model.SliceType.P; /** * A decoder for P skip macroblocks diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/PredictionMerger.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/PredictionMerger.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/PredictionMerger.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/PredictionMerger.java index 2000825a..eaf56c9c 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/PredictionMerger.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/PredictionMerger.java @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred; -import li.cil.oc2r.jcodec.codecs.h264.io.model.*; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred; +import li.cil.oc2.jcodec.codecs.h264.io.model.*; +import li.cil.oc2.jcodec.common.tools.MathUtil; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/RefListManager.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/RefListManager.java similarity index 92% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/RefListManager.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/RefListManager.java index d153deb1..0eff1230 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/RefListManager.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/RefListManager.java @@ -1,14 +1,14 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.io.model.Frame; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType; -import li.cil.oc2r.jcodec.common.IntObjectMap; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.io.model.Frame; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceType; +import li.cil.oc2.jcodec.common.IntObjectMap; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import java.util.Arrays; import java.util.Comparator; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceDecoder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceDecoder.java similarity index 93% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceDecoder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceDecoder.java index ff598054..aa03b692 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceDecoder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceDecoder.java @@ -1,18 +1,18 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.MapManager; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.model.*; -import li.cil.oc2r.jcodec.common.IntObjectMap; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.MapManager; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.model.*; +import li.cil.oc2.jcodec.common.IntObjectMap; +import li.cil.oc2.jcodec.common.model.Picture; import static java.lang.System.arraycopy; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.L0; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.MBType.*; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType.P; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.L0; +import static li.cil.oc2.jcodec.codecs.h264.io.model.MBType.*; +import static li.cil.oc2.jcodec.codecs.h264.io.model.SliceType.P; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceHeaderReader.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceHeaderReader.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceHeaderReader.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceHeaderReader.java index e65d682f..dd389a89 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceHeaderReader.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceHeaderReader.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.h264.io.model.*; -import li.cil.oc2r.jcodec.codecs.h264.io.model.RefPicMarking.InstrType; -import li.cil.oc2r.jcodec.codecs.h264.io.model.RefPicMarking.Instruction; -import li.cil.oc2r.jcodec.common.IntArrayList; -import li.cil.oc2r.jcodec.common.io.BitReader; -import li.cil.oc2r.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.codecs.h264.io.model.*; +import li.cil.oc2.jcodec.codecs.h264.io.model.RefPicMarking.InstrType; +import li.cil.oc2.jcodec.codecs.h264.io.model.RefPicMarking.Instruction; +import li.cil.oc2.jcodec.common.IntArrayList; +import li.cil.oc2.jcodec.common.io.BitReader; +import li.cil.oc2.jcodec.common.model.ColorSpace; import java.util.ArrayList; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet.getPicHeightInMbs; +import static li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet.getPicHeightInMbs; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceReader.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceReader.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceReader.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceReader.java index c0977783..ab29cac3 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/SliceReader.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/SliceReader.java @@ -1,21 +1,21 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode; +package li.cil.oc2.jcodec.codecs.h264.decode; -import li.cil.oc2r.jcodec.codecs.common.biari.MDecoder; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.decode.aso.Mapper; -import li.cil.oc2r.jcodec.codecs.h264.io.CABAC; -import li.cil.oc2r.jcodec.codecs.h264.io.CABAC.BlockType; -import li.cil.oc2r.jcodec.codecs.h264.io.CAVLC; -import li.cil.oc2r.jcodec.codecs.h264.io.model.*; -import li.cil.oc2r.jcodec.common.io.BitReader; -import li.cil.oc2r.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.codecs.common.biari.MDecoder; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.decode.aso.Mapper; +import li.cil.oc2.jcodec.codecs.h264.io.CABAC; +import li.cil.oc2.jcodec.codecs.h264.io.CABAC.BlockType; +import li.cil.oc2.jcodec.codecs.h264.io.CAVLC; +import li.cil.oc2.jcodec.codecs.h264.io.model.*; +import li.cil.oc2.jcodec.common.io.BitReader; +import li.cil.oc2.jcodec.common.model.ColorSpace; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.*; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.Direct; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.PartPred.L0; -import static li.cil.oc2r.jcodec.codecs.h264.io.model.MBType.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.Direct; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.PartPred.L0; +import static li.cil.oc2.jcodec.codecs.h264.io.model.MBType.*; /** * Contains methods for reading high-level symbols out of H.264 bitstream diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/FlatMBlockMapper.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/FlatMBlockMapper.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/FlatMBlockMapper.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/FlatMBlockMapper.java index 0ebb0921..9a796423 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/FlatMBlockMapper.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/FlatMBlockMapper.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode.aso; +package li.cil.oc2.jcodec.codecs.h264.decode.aso; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/MBToSliceGroupMap.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/MBToSliceGroupMap.java similarity index 89% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/MBToSliceGroupMap.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/MBToSliceGroupMap.java index ba2f55c7..cdc5e395 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/MBToSliceGroupMap.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/MBToSliceGroupMap.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode.aso; +package li.cil.oc2.jcodec.codecs.h264.decode.aso; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/MapManager.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/MapManager.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/MapManager.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/MapManager.java index 6e0bb2e6..f49738e2 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/MapManager.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/MapManager.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode.aso; +package li.cil.oc2.jcodec.codecs.h264.decode.aso; -import li.cil.oc2r.jcodec.codecs.h264.io.model.PictureParameterSet; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.codecs.h264.io.model.PictureParameterSet; +import li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/Mapper.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/Mapper.java similarity index 90% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/Mapper.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/Mapper.java index 66c7f856..d32165dd 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/Mapper.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/Mapper.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode.aso; +package li.cil.oc2.jcodec.codecs.h264.decode.aso; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/PrebuiltMBlockMapper.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/PrebuiltMBlockMapper.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/PrebuiltMBlockMapper.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/PrebuiltMBlockMapper.java index b849bd78..7dcac178 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/PrebuiltMBlockMapper.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/PrebuiltMBlockMapper.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode.aso; +package li.cil.oc2.jcodec.codecs.h264.decode.aso; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/SliceGroupMapBuilder.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/SliceGroupMapBuilder.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/SliceGroupMapBuilder.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/SliceGroupMapBuilder.java index ce01ac43..516c3049 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/aso/SliceGroupMapBuilder.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/aso/SliceGroupMapBuilder.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode.aso; +package li.cil.oc2.jcodec.codecs.h264.decode.aso; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/deblock/DeblockingFilter.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/deblock/DeblockingFilter.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/deblock/DeblockingFilter.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/deblock/DeblockingFilter.java index ed31d638..ed5c66df 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/decode/deblock/DeblockingFilter.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/decode/deblock/DeblockingFilter.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.decode.deblock; +package li.cil.oc2.jcodec.codecs.h264.decode.deblock; -import li.cil.oc2r.jcodec.codecs.h264.decode.DeblockerInput; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceHeader; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.decode.DeblockerInput; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceHeader; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import static java.lang.Math.abs; -import static li.cil.oc2r.jcodec.codecs.h264.H264Utils.Mv.*; -import static li.cil.oc2r.jcodec.common.tools.MathUtil.clip; +import static li.cil.oc2.jcodec.codecs.h264.H264Utils.Mv.*; +import static li.cil.oc2.jcodec.common.tools.MathUtil.clip; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/CQPRateControl.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/CQPRateControl.java similarity index 90% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/CQPRateControl.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/CQPRateControl.java index 1512ffec..952aafac 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/CQPRateControl.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/CQPRateControl.java @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.model.Size; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceType; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.model.Size; +import li.cil.oc2.jcodec.common.tools.MathUtil; /** * Constant QP with psyvisual adjustments diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/EncodedMB.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/EncodedMB.java similarity index 86% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/EncodedMB.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/EncodedMB.java index 962f6991..73e31c1c 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/EncodedMB.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/EncodedMB.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/EncodingContext.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/EncodingContext.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/EncodingContext.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/EncodingContext.java index 95d2bc2d..8aea05cf 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/EncodingContext.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/EncodingContext.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.io.CAVLC; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.CAVLC; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; import static java.lang.System.arraycopy; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/H264EncoderUtils.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/H264EncoderUtils.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/H264EncoderUtils.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/H264EncoderUtils.java index 781130ce..4fea10ea 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/H264EncoderUtils.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/H264EncoderUtils.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; import static java.lang.Math.max; import static java.lang.Math.min; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/IntraPredEstimator.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/IntraPredEstimator.java similarity index 91% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/IntraPredEstimator.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/IntraPredEstimator.java index 45075166..2ee1eb13 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/IntraPredEstimator.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/IntraPredEstimator.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.decode.ChromaPredictionBuilder; -import li.cil.oc2r.jcodec.codecs.h264.decode.CoeffTransformer; -import li.cil.oc2r.jcodec.codecs.h264.decode.Intra16x16PredictionBuilder; -import li.cil.oc2r.jcodec.codecs.h264.decode.Intra4x4PredictionBuilder; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.decode.ChromaPredictionBuilder; +import li.cil.oc2.jcodec.codecs.h264.decode.CoeffTransformer; +import li.cil.oc2.jcodec.codecs.h264.decode.Intra16x16PredictionBuilder; +import li.cil.oc2.jcodec.codecs.h264.decode.Intra4x4PredictionBuilder; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.BLK_DISP_MAP; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.BLK_DISP_MAP; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBDeblocker.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBDeblocker.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBDeblocker.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBDeblocker.java index 1ac9cf82..e51c7bd3 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBDeblocker.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBDeblocker.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.decode.deblock.DeblockingFilter; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.decode.deblock.DeblockingFilter; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import static java.lang.Math.abs; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.QP_SCALE_CR; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.QP_SCALE_CR; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBEncoderHelper.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBEncoderHelper.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBEncoderHelper.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBEncoderHelper.java index 7c89af38..0736d9bd 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBEncoderHelper.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBEncoderHelper.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterI16x16.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterI16x16.java similarity index 93% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterI16x16.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterI16x16.java index a87caa5b..510a25f3 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterI16x16.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterI16x16.java @@ -1,20 +1,20 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Encoder.NonRdVector; -import li.cil.oc2r.jcodec.codecs.h264.decode.ChromaPredictionBuilder; -import li.cil.oc2r.jcodec.codecs.h264.decode.CoeffTransformer; -import li.cil.oc2r.jcodec.codecs.h264.decode.Intra16x16PredictionBuilder; -import li.cil.oc2r.jcodec.codecs.h264.io.CAVLC; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.codecs.h264.io.write.CAVLCWriter; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Encoder.NonRdVector; +import li.cil.oc2.jcodec.codecs.h264.decode.ChromaPredictionBuilder; +import li.cil.oc2.jcodec.codecs.h264.decode.CoeffTransformer; +import li.cil.oc2.jcodec.codecs.h264.decode.Intra16x16PredictionBuilder; +import li.cil.oc2.jcodec.codecs.h264.io.CAVLC; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.write.CAVLCWriter; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.*; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterINxN.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterINxN.java similarity index 91% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterINxN.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterINxN.java index 87166146..edc20896 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterINxN.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterINxN.java @@ -1,19 +1,19 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Encoder.NonRdVector; -import li.cil.oc2r.jcodec.codecs.h264.decode.CoeffTransformer; -import li.cil.oc2r.jcodec.codecs.h264.decode.Intra4x4PredictionBuilder; -import li.cil.oc2r.jcodec.codecs.h264.io.CAVLC; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.codecs.h264.io.write.CAVLCWriter; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Encoder.NonRdVector; +import li.cil.oc2.jcodec.codecs.h264.decode.CoeffTransformer; +import li.cil.oc2.jcodec.codecs.h264.decode.Intra4x4PredictionBuilder; +import li.cil.oc2.jcodec.codecs.h264.io.CAVLC; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.write.CAVLCWriter; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.BLK_DISP_MAP; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.BLK_DISP_MAP; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterP16x16.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterP16x16.java similarity index 91% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterP16x16.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterP16x16.java index 2ac8b24f..53da9b89 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MBWriterP16x16.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MBWriterP16x16.java @@ -1,21 +1,21 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Encoder.NonRdVector; -import li.cil.oc2r.jcodec.codecs.h264.decode.BlockInterpolator; -import li.cil.oc2r.jcodec.codecs.h264.decode.CoeffTransformer; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet; -import li.cil.oc2r.jcodec.codecs.h264.io.write.CAVLCWriter; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Encoder.NonRdVector; +import li.cil.oc2.jcodec.codecs.h264.decode.BlockInterpolator; +import li.cil.oc2.jcodec.codecs.h264.decode.CoeffTransformer; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet; +import li.cil.oc2.jcodec.codecs.h264.io.write.CAVLCWriter; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.model.Picture; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.MB_DISP_OFF_LEFT; -import static li.cil.oc2r.jcodec.codecs.h264.H264Const.MB_DISP_OFF_TOP; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.MB_DISP_OFF_LEFT; +import static li.cil.oc2.jcodec.codecs.h264.H264Const.MB_DISP_OFF_TOP; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MotionEstimator.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MotionEstimator.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MotionEstimator.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MotionEstimator.java index b9d84dd9..02b6fef6 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/MotionEstimator.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/MotionEstimator.java @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; import static java.lang.Math.min; -import static li.cil.oc2r.jcodec.codecs.h264.encode.H264EncoderUtils.median; +import static li.cil.oc2.jcodec.codecs.h264.encode.H264EncoderUtils.median; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/RateControl.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/RateControl.java similarity index 70% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/RateControl.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/RateControl.java index 591d9935..0fffd182 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/encode/RateControl.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/encode/RateControl.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.encode; +package li.cil.oc2.jcodec.codecs.h264.encode; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.model.Size; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceType; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.model.Size; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/CABAC.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/CABAC.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/CABAC.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/CABAC.java index a03254f8..66c2ffb2 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/CABAC.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/CABAC.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io; +package li.cil.oc2.jcodec.codecs.h264.io; -import li.cil.oc2r.jcodec.codecs.common.biari.MDecoder; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils; -import li.cil.oc2r.jcodec.codecs.h264.decode.CABACContst; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SliceType; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.common.biari.MDecoder; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.H264Utils; +import li.cil.oc2.jcodec.codecs.h264.decode.CABACContst; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.model.SliceType; +import li.cil.oc2.jcodec.common.tools.MathUtil; -import static li.cil.oc2r.jcodec.codecs.h264.io.CABAC.BlockType.*; +import static li.cil.oc2.jcodec.codecs.h264.io.CABAC.BlockType.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/CAVLC.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/CAVLC.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/CAVLC.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/CAVLC.java index 02084536..62381f03 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/CAVLC.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/CAVLC.java @@ -1,16 +1,16 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io; +package li.cil.oc2.jcodec.codecs.h264.io; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.decode.CAVLCReader; -import li.cil.oc2r.jcodec.codecs.h264.io.model.MBType; -import li.cil.oc2r.jcodec.codecs.h264.io.model.SeqParameterSet; -import li.cil.oc2r.jcodec.common.io.BitReader; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.io.VLC; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.decode.CAVLCReader; +import li.cil.oc2.jcodec.codecs.h264.io.model.MBType; +import li.cil.oc2.jcodec.codecs.h264.io.model.SeqParameterSet; +import li.cil.oc2.jcodec.common.io.BitReader; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.io.VLC; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.tools.MathUtil; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/AspectRatio.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/AspectRatio.java similarity index 92% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/AspectRatio.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/AspectRatio.java index e76f5ad7..f3ec6080 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/AspectRatio.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/AspectRatio.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/Frame.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/Frame.java similarity index 92% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/Frame.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/Frame.java index 7d2ad0be..590aa2d8 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/Frame.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/Frame.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; -import li.cil.oc2r.jcodec.codecs.h264.H264Utils.MvList2D; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.codecs.h264.H264Utils.MvList2D; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; import java.util.Comparator; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/HRDParameters.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/HRDParameters.java similarity index 94% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/HRDParameters.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/HRDParameters.java index 1f1d3408..33ef6145 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/HRDParameters.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/HRDParameters.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/MBType.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/MBType.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/MBType.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/MBType.java index a76ed76a..ff741aae 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/MBType.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/MBType.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/NALUnit.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/NALUnit.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/NALUnit.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/NALUnit.java index 257936cb..0c169c4a 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/NALUnit.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/NALUnit.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; import java.nio.ByteBuffer; diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/NALUnitType.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/NALUnitType.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/NALUnitType.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/NALUnitType.java index d7a99f3d..4a32a143 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/NALUnitType.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/NALUnitType.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/PictureParameterSet.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/PictureParameterSet.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/PictureParameterSet.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/PictureParameterSet.java index 202fa381..2d0e026d 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/PictureParameterSet.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/PictureParameterSet.java @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; -import li.cil.oc2r.jcodec.codecs.h264.decode.CAVLCReader; -import li.cil.oc2r.jcodec.common.io.BitReader; -import li.cil.oc2r.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.codecs.h264.decode.CAVLCReader; +import li.cil.oc2.jcodec.common.io.BitReader; +import li.cil.oc2.jcodec.common.io.BitWriter; import java.nio.ByteBuffer; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.io.write.CAVLCWriter.*; +import static li.cil.oc2.jcodec.codecs.h264.io.write.CAVLCWriter.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/PredictionWeightTable.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/PredictionWeightTable.java similarity index 93% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/PredictionWeightTable.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/PredictionWeightTable.java index bae5b4e0..9bda9784 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/PredictionWeightTable.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/PredictionWeightTable.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/RefPicMarking.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/RefPicMarking.java similarity index 91% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/RefPicMarking.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/RefPicMarking.java index 8582d850..b4e65aef 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/RefPicMarking.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/RefPicMarking.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/RefPicMarkingIDR.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/RefPicMarkingIDR.java similarity index 87% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/RefPicMarkingIDR.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/RefPicMarkingIDR.java index 86abe051..8bfc8d18 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/RefPicMarkingIDR.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/RefPicMarkingIDR.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SeqParameterSet.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SeqParameterSet.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SeqParameterSet.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SeqParameterSet.java index 69b255ab..25f1cda3 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SeqParameterSet.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SeqParameterSet.java @@ -1,17 +1,17 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; -import li.cil.oc2r.jcodec.codecs.h264.H264Const; -import li.cil.oc2r.jcodec.codecs.h264.decode.CAVLCReader; -import li.cil.oc2r.jcodec.common.io.BitReader; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.codecs.h264.H264Const; +import li.cil.oc2.jcodec.codecs.h264.decode.CAVLCReader; +import li.cil.oc2.jcodec.common.io.BitReader; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.model.ColorSpace; import java.nio.ByteBuffer; import java.util.Arrays; -import static li.cil.oc2r.jcodec.codecs.h264.io.write.CAVLCWriter.*; +import static li.cil.oc2.jcodec.codecs.h264.io.write.CAVLCWriter.*; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SliceHeader.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SliceHeader.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SliceHeader.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SliceHeader.java index 15a67702..79600dd1 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SliceHeader.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SliceHeader.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SliceType.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SliceType.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SliceType.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SliceType.java index d98793dc..9aa610d7 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/SliceType.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/SliceType.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/VUIParameters.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/VUIParameters.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/VUIParameters.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/VUIParameters.java index 8297ae6a..48ff42c0 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/model/VUIParameters.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/model/VUIParameters.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.model; +package li.cil.oc2.jcodec.codecs.h264.io.model; /** * This class is part of JCodec ( www.jcodec.org ) diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/write/CAVLCWriter.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/write/CAVLCWriter.java similarity index 92% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/write/CAVLCWriter.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/write/CAVLCWriter.java index 8f0d2e90..a070988b 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/write/CAVLCWriter.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/write/CAVLCWriter.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.write; +package li.cil.oc2.jcodec.codecs.h264.io.write; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.tools.MathUtil; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/write/SliceHeaderWriter.java b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/write/SliceHeaderWriter.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/write/SliceHeaderWriter.java rename to src/main/java/li/cil/oc2/jcodec/codecs/h264/io/write/SliceHeaderWriter.java index e04bb3d4..60b71fee 100644 --- a/src/main/java/li/cil/oc2r/jcodec/codecs/h264/io/write/SliceHeaderWriter.java +++ b/src/main/java/li/cil/oc2/jcodec/codecs/h264/io/write/SliceHeaderWriter.java @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.codecs.h264.io.write; +package li.cil.oc2.jcodec.codecs.h264.io.write; -import li.cil.oc2r.jcodec.codecs.h264.io.model.*; -import li.cil.oc2r.jcodec.common.io.BitWriter; -import li.cil.oc2r.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.codecs.h264.io.model.*; +import li.cil.oc2.jcodec.common.io.BitWriter; +import li.cil.oc2.jcodec.common.model.ColorSpace; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/common/ArrayUtil.java b/src/main/java/li/cil/oc2/jcodec/common/ArrayUtil.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/common/ArrayUtil.java rename to src/main/java/li/cil/oc2/jcodec/common/ArrayUtil.java index 3d98f57b..799135dc 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/ArrayUtil.java +++ b/src/main/java/li/cil/oc2/jcodec/common/ArrayUtil.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common; +package li.cil.oc2.jcodec.common; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/common/IntArrayList.java b/src/main/java/li/cil/oc2/jcodec/common/IntArrayList.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/common/IntArrayList.java rename to src/main/java/li/cil/oc2/jcodec/common/IntArrayList.java index ff91c9d2..9e9aeb4e 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/IntArrayList.java +++ b/src/main/java/li/cil/oc2/jcodec/common/IntArrayList.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common; +package li.cil.oc2.jcodec.common; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/li/cil/oc2r/jcodec/common/IntObjectMap.java b/src/main/java/li/cil/oc2/jcodec/common/IntObjectMap.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/common/IntObjectMap.java rename to src/main/java/li/cil/oc2/jcodec/common/IntObjectMap.java index 437c0ef6..574e1962 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/IntObjectMap.java +++ b/src/main/java/li/cil/oc2/jcodec/common/IntObjectMap.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common; +package li.cil.oc2.jcodec.common; import java.util.Arrays; diff --git a/src/main/java/li/cil/oc2r/jcodec/common/VideoDecoder.java b/src/main/java/li/cil/oc2/jcodec/common/VideoDecoder.java similarity index 86% rename from src/main/java/li/cil/oc2r/jcodec/common/VideoDecoder.java rename to src/main/java/li/cil/oc2/jcodec/common/VideoDecoder.java index f48b9a8d..d7c1870c 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/VideoDecoder.java +++ b/src/main/java/li/cil/oc2/jcodec/common/VideoDecoder.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common; +package li.cil.oc2.jcodec.common; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.model.Picture; import java.nio.ByteBuffer; diff --git a/src/main/java/li/cil/oc2r/jcodec/common/VideoEncoder.java b/src/main/java/li/cil/oc2/jcodec/common/VideoEncoder.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/common/VideoEncoder.java rename to src/main/java/li/cil/oc2/jcodec/common/VideoEncoder.java index 30184b18..40476b2e 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/VideoEncoder.java +++ b/src/main/java/li/cil/oc2/jcodec/common/VideoEncoder.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common; +package li.cil.oc2.jcodec.common; -import li.cil.oc2r.jcodec.common.model.ColorSpace; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.model.ColorSpace; +import li.cil.oc2.jcodec.common.model.Picture; import java.nio.ByteBuffer; diff --git a/src/main/java/li/cil/oc2r/jcodec/common/io/BitReader.java b/src/main/java/li/cil/oc2/jcodec/common/io/BitReader.java similarity index 99% rename from src/main/java/li/cil/oc2r/jcodec/common/io/BitReader.java rename to src/main/java/li/cil/oc2/jcodec/common/io/BitReader.java index 94c4b4b0..bf579b1c 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/io/BitReader.java +++ b/src/main/java/li/cil/oc2/jcodec/common/io/BitReader.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.io; +package li.cil.oc2.jcodec.common.io; import java.nio.ByteBuffer; diff --git a/src/main/java/li/cil/oc2r/jcodec/common/io/BitWriter.java b/src/main/java/li/cil/oc2/jcodec/common/io/BitWriter.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/common/io/BitWriter.java rename to src/main/java/li/cil/oc2/jcodec/common/io/BitWriter.java index 6046ef33..3da21507 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/io/BitWriter.java +++ b/src/main/java/li/cil/oc2/jcodec/common/io/BitWriter.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.io; +package li.cil.oc2.jcodec.common.io; import java.nio.ByteBuffer; diff --git a/src/main/java/li/cil/oc2r/jcodec/common/io/VLC.java b/src/main/java/li/cil/oc2/jcodec/common/io/VLC.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/common/io/VLC.java rename to src/main/java/li/cil/oc2/jcodec/common/io/VLC.java index 066ef348..e2f0ba49 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/io/VLC.java +++ b/src/main/java/li/cil/oc2/jcodec/common/io/VLC.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.io; +package li.cil.oc2.jcodec.common.io; -import li.cil.oc2r.jcodec.common.IntArrayList; +import li.cil.oc2.jcodec.common.IntArrayList; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/common/io/VLCBuilder.java b/src/main/java/li/cil/oc2/jcodec/common/io/VLCBuilder.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/common/io/VLCBuilder.java rename to src/main/java/li/cil/oc2/jcodec/common/io/VLCBuilder.java index 3fffd07b..d98a684f 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/io/VLCBuilder.java +++ b/src/main/java/li/cil/oc2/jcodec/common/io/VLCBuilder.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.io; +package li.cil.oc2.jcodec.common.io; import it.unimi.dsi.fastutil.ints.Int2IntArrayMap; -import li.cil.oc2r.jcodec.common.IntArrayList; +import li.cil.oc2.jcodec.common.IntArrayList; /** diff --git a/src/main/java/li/cil/oc2r/jcodec/common/model/ColorSpace.java b/src/main/java/li/cil/oc2/jcodec/common/model/ColorSpace.java similarity index 97% rename from src/main/java/li/cil/oc2r/jcodec/common/model/ColorSpace.java rename to src/main/java/li/cil/oc2/jcodec/common/model/ColorSpace.java index a2973cb1..24b5e382 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/model/ColorSpace.java +++ b/src/main/java/li/cil/oc2/jcodec/common/model/ColorSpace.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.model; +package li.cil.oc2.jcodec.common.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/common/model/Picture.java b/src/main/java/li/cil/oc2/jcodec/common/model/Picture.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/common/model/Picture.java rename to src/main/java/li/cil/oc2/jcodec/common/model/Picture.java index 556a5968..ecf7278a 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/model/Picture.java +++ b/src/main/java/li/cil/oc2/jcodec/common/model/Picture.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.model; +package li.cil.oc2.jcodec.common.model; import java.util.Arrays; diff --git a/src/main/java/li/cil/oc2r/jcodec/common/model/Size.java b/src/main/java/li/cil/oc2/jcodec/common/model/Size.java similarity index 86% rename from src/main/java/li/cil/oc2r/jcodec/common/model/Size.java rename to src/main/java/li/cil/oc2/jcodec/common/model/Size.java index 3d8319ed..54047e46 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/model/Size.java +++ b/src/main/java/li/cil/oc2/jcodec/common/model/Size.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.model; +package li.cil.oc2.jcodec.common.model; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/common/tools/MathUtil.java b/src/main/java/li/cil/oc2/jcodec/common/tools/MathUtil.java similarity index 98% rename from src/main/java/li/cil/oc2r/jcodec/common/tools/MathUtil.java rename to src/main/java/li/cil/oc2/jcodec/common/tools/MathUtil.java index a99d296d..a3f274a7 100644 --- a/src/main/java/li/cil/oc2r/jcodec/common/tools/MathUtil.java +++ b/src/main/java/li/cil/oc2/jcodec/common/tools/MathUtil.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.common.tools; +package li.cil.oc2.jcodec.common.tools; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/scale/RgbToYuv420j.java b/src/main/java/li/cil/oc2/jcodec/scale/RgbToYuv420j.java similarity index 95% rename from src/main/java/li/cil/oc2r/jcodec/scale/RgbToYuv420j.java rename to src/main/java/li/cil/oc2/jcodec/scale/RgbToYuv420j.java index 00512822..921445e9 100644 --- a/src/main/java/li/cil/oc2r/jcodec/scale/RgbToYuv420j.java +++ b/src/main/java/li/cil/oc2/jcodec/scale/RgbToYuv420j.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.scale; +package li.cil.oc2.jcodec.scale; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/jcodec/scale/Transform.java b/src/main/java/li/cil/oc2/jcodec/scale/Transform.java similarity index 78% rename from src/main/java/li/cil/oc2r/jcodec/scale/Transform.java rename to src/main/java/li/cil/oc2/jcodec/scale/Transform.java index 4a0d7a2d..836a2bc0 100644 --- a/src/main/java/li/cil/oc2r/jcodec/scale/Transform.java +++ b/src/main/java/li/cil/oc2/jcodec/scale/Transform.java @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.scale; +package li.cil.oc2.jcodec.scale; -import li.cil.oc2r.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.model.Picture; /** * This class is part of JCodec ( www.jcodec.org ) diff --git a/src/main/java/li/cil/oc2r/jcodec/scale/Yuv420jToRgb.java b/src/main/java/li/cil/oc2/jcodec/scale/Yuv420jToRgb.java similarity index 96% rename from src/main/java/li/cil/oc2r/jcodec/scale/Yuv420jToRgb.java rename to src/main/java/li/cil/oc2/jcodec/scale/Yuv420jToRgb.java index 852199f5..a1ca7951 100644 --- a/src/main/java/li/cil/oc2r/jcodec/scale/Yuv420jToRgb.java +++ b/src/main/java/li/cil/oc2/jcodec/scale/Yuv420jToRgb.java @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD 2-Clause "Simplified" License */ -package li.cil.oc2r.jcodec.scale; +package li.cil.oc2.jcodec.scale; -import li.cil.oc2r.jcodec.common.model.Picture; -import li.cil.oc2r.jcodec.common.tools.MathUtil; +import li.cil.oc2.jcodec.common.model.Picture; +import li.cil.oc2.jcodec.common.tools.MathUtil; /** * This class is part of JCodec ( www.jcodec.org ) This software is distributed diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/package-info.java b/src/main/java/li/cil/oc2r/api/bus/device/vm/context/package-info.java deleted file mode 100644 index d1de369e..00000000 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/context/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.api.bus.device.vm.context; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/package-info.java b/src/main/java/li/cil/oc2r/api/bus/device/vm/event/package-info.java deleted file mode 100644 index e4a4edd3..00000000 --- a/src/main/java/li/cil/oc2r/api/bus/device/vm/event/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.api.bus.device.vm.event; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/gui/terminal/package-info.java b/src/main/java/li/cil/oc2r/client/gui/terminal/package-info.java deleted file mode 100644 index fbd8104e..00000000 --- a/src/main/java/li/cil/oc2r/client/gui/terminal/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.gui.terminal; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/gui/util/package-info.java b/src/main/java/li/cil/oc2r/client/gui/util/package-info.java deleted file mode 100644 index a89452b5..00000000 --- a/src/main/java/li/cil/oc2r/client/gui/util/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.gui.util; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/gui/widget/package-info.java b/src/main/java/li/cil/oc2r/client/gui/widget/package-info.java deleted file mode 100644 index 887b018f..00000000 --- a/src/main/java/li/cil/oc2r/client/gui/widget/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.gui.widget; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/item/package-info.java b/src/main/java/li/cil/oc2r/client/item/package-info.java deleted file mode 100644 index 9a562fbf..00000000 --- a/src/main/java/li/cil/oc2r/client/item/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.item; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/manual/package-info.java b/src/main/java/li/cil/oc2r/client/manual/package-info.java deleted file mode 100644 index 30ef96b3..00000000 --- a/src/main/java/li/cil/oc2r/client/manual/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.manual; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/model/package-info.java b/src/main/java/li/cil/oc2r/client/model/package-info.java deleted file mode 100644 index 35c7fcea..00000000 --- a/src/main/java/li/cil/oc2r/client/model/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.model; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/renderer/blockentity/package-info.java b/src/main/java/li/cil/oc2r/client/renderer/blockentity/package-info.java deleted file mode 100644 index 01208e2e..00000000 --- a/src/main/java/li/cil/oc2r/client/renderer/blockentity/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.renderer.blockentity; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/renderer/color/package-info.java b/src/main/java/li/cil/oc2r/client/renderer/color/package-info.java deleted file mode 100644 index a973df53..00000000 --- a/src/main/java/li/cil/oc2r/client/renderer/color/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.renderer.color; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/renderer/entity/model/package-info.java b/src/main/java/li/cil/oc2r/client/renderer/entity/model/package-info.java deleted file mode 100644 index de77c76b..00000000 --- a/src/main/java/li/cil/oc2r/client/renderer/entity/model/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.renderer.entity.model; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/renderer/entity/package-info.java b/src/main/java/li/cil/oc2r/client/renderer/entity/package-info.java deleted file mode 100644 index ef080e9c..00000000 --- a/src/main/java/li/cil/oc2r/client/renderer/entity/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.renderer.entity; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/renderer/font/package-info.java b/src/main/java/li/cil/oc2r/client/renderer/font/package-info.java deleted file mode 100644 index a80ad457..00000000 --- a/src/main/java/li/cil/oc2r/client/renderer/font/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.renderer.font; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/client/renderer/package-info.java b/src/main/java/li/cil/oc2r/client/renderer/package-info.java deleted file mode 100644 index 23fa4d53..00000000 --- a/src/main/java/li/cil/oc2r/client/renderer/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.client.renderer; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/block/package-info.java b/src/main/java/li/cil/oc2r/common/block/package-info.java deleted file mode 100644 index 6df364fa..00000000 --- a/src/main/java/li/cil/oc2r/common/block/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.block; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/blockentity/package-info.java b/src/main/java/li/cil/oc2r/common/blockentity/package-info.java deleted file mode 100644 index 5fafa638..00000000 --- a/src/main/java/li/cil/oc2r/common/blockentity/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.blockentity; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/BlockDeviceBusElement.java b/src/main/java/li/cil/oc2r/common/bus/device/BlockDeviceBusElement.java deleted file mode 100644 index 101ebc44..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/BlockDeviceBusElement.java +++ /dev/null @@ -1,8 +0,0 @@ -package li.cil.oc2r.common.bus.device; - -import li.cil.oc2r.common.bus.AbstractDeviceBusElement; - - -public class BlockDeviceBusElement extends AbstractDeviceBusElement { - -} diff --git a/src/main/java/li/cil/oc2r/common/bus/device/data/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/data/package-info.java deleted file mode 100644 index ab514c86..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/data/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.data; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/package-info.java deleted file mode 100644 index 84a8a6e7..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/block/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/provider/block/package-info.java deleted file mode 100644 index aeb017c1..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/block/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.provider.block; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/provider/item/package-info.java deleted file mode 100644 index 9b960759..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/item/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.provider.item; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/provider/package-info.java deleted file mode 100644 index 51ebc486..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.provider; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/provider/util/package-info.java deleted file mode 100644 index 7eff3003..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/provider/util/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.provider.util; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/package-info.java deleted file mode 100644 index 740e932b..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/block/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.rpc.block; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/package-info.java deleted file mode 100644 index 943da86c..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/item/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.rpc.item; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/rpc/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/rpc/package-info.java deleted file mode 100644 index 3a355392..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/rpc/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.rpc; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/util/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/util/package-info.java deleted file mode 100644 index a5c4d2b7..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/util/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.util; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/vm/block/package-info.java deleted file mode 100644 index 857d6367..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/block/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.vm.block; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/vm/item/package-info.java deleted file mode 100644 index f0a39ac7..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/item/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.vm.item; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/device/vm/package-info.java b/src/main/java/li/cil/oc2r/common/bus/device/vm/package-info.java deleted file mode 100644 index 853d5311..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/device/vm/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus.device.vm; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/bus/package-info.java b/src/main/java/li/cil/oc2r/common/bus/package-info.java deleted file mode 100644 index 34166f44..00000000 --- a/src/main/java/li/cil/oc2r/common/bus/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.bus; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/capabilities/package-info.java b/src/main/java/li/cil/oc2r/common/capabilities/package-info.java deleted file mode 100644 index a8c6a191..00000000 --- a/src/main/java/li/cil/oc2r/common/capabilities/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.capabilities; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/container/package-info.java b/src/main/java/li/cil/oc2r/common/container/package-info.java deleted file mode 100644 index b1769d13..00000000 --- a/src/main/java/li/cil/oc2r/common/container/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.container; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/energy/package-info.java b/src/main/java/li/cil/oc2r/common/energy/package-info.java deleted file mode 100644 index b5f60ef4..00000000 --- a/src/main/java/li/cil/oc2r/common/energy/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.energy; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/entity/package-info.java b/src/main/java/li/cil/oc2r/common/entity/package-info.java deleted file mode 100644 index d9e1f464..00000000 --- a/src/main/java/li/cil/oc2r/common/entity/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.entity; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/entity/robot/package-info.java b/src/main/java/li/cil/oc2r/common/entity/robot/package-info.java deleted file mode 100644 index b24c25c7..00000000 --- a/src/main/java/li/cil/oc2r/common/entity/robot/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.entity.robot; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/ext/package-info.java b/src/main/java/li/cil/oc2r/common/ext/package-info.java deleted file mode 100644 index 946e1fdb..00000000 --- a/src/main/java/li/cil/oc2r/common/ext/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.ext; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/integration/jei/package-info.java b/src/main/java/li/cil/oc2r/common/integration/jei/package-info.java deleted file mode 100644 index 0593ab8f..00000000 --- a/src/main/java/li/cil/oc2r/common/integration/jei/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.integration.jei; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/integration/package-info.java b/src/main/java/li/cil/oc2r/common/integration/package-info.java deleted file mode 100644 index 477c4867..00000000 --- a/src/main/java/li/cil/oc2r/common/integration/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.integration; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/item/crafting/package-info.java b/src/main/java/li/cil/oc2r/common/item/crafting/package-info.java deleted file mode 100644 index f7e8dd3d..00000000 --- a/src/main/java/li/cil/oc2r/common/item/crafting/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.item.crafting; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/item/package-info.java b/src/main/java/li/cil/oc2r/common/item/package-info.java deleted file mode 100644 index 79a62f6a..00000000 --- a/src/main/java/li/cil/oc2r/common/item/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.item; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/mixin/package-info.java b/src/main/java/li/cil/oc2r/common/mixin/package-info.java deleted file mode 100644 index 74d1e9fc..00000000 --- a/src/main/java/li/cil/oc2r/common/mixin/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.mixin; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/network/message/package-info.java b/src/main/java/li/cil/oc2r/common/network/message/package-info.java deleted file mode 100644 index 5f4aa607..00000000 --- a/src/main/java/li/cil/oc2r/common/network/message/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.network.message; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/network/package-info.java b/src/main/java/li/cil/oc2r/common/network/package-info.java deleted file mode 100644 index 0b463b0b..00000000 --- a/src/main/java/li/cil/oc2r/common/network/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.network; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/serialization/ceres/package-info.java b/src/main/java/li/cil/oc2r/common/serialization/ceres/package-info.java deleted file mode 100644 index 8d46a68d..00000000 --- a/src/main/java/li/cil/oc2r/common/serialization/ceres/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.serialization.ceres; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/serialization/gson/package-info.java b/src/main/java/li/cil/oc2r/common/serialization/gson/package-info.java deleted file mode 100644 index f776d638..00000000 --- a/src/main/java/li/cil/oc2r/common/serialization/gson/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.serialization.gson; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/serialization/package-info.java b/src/main/java/li/cil/oc2r/common/serialization/package-info.java deleted file mode 100644 index b74a7906..00000000 --- a/src/main/java/li/cil/oc2r/common/serialization/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.serialization; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/tags/package-info.java b/src/main/java/li/cil/oc2r/common/tags/package-info.java deleted file mode 100644 index e00a6216..00000000 --- a/src/main/java/li/cil/oc2r/common/tags/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.tags; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/util/package-info.java b/src/main/java/li/cil/oc2r/common/util/package-info.java deleted file mode 100644 index e9026345..00000000 --- a/src/main/java/li/cil/oc2r/common/util/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.util; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/global/package-info.java b/src/main/java/li/cil/oc2r/common/vm/context/global/package-info.java deleted file mode 100644 index 1b53b7ad..00000000 --- a/src/main/java/li/cil/oc2r/common/vm/context/global/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.vm.context.global; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/managed/package-info.java b/src/main/java/li/cil/oc2r/common/vm/context/managed/package-info.java deleted file mode 100644 index f0201dc0..00000000 --- a/src/main/java/li/cil/oc2r/common/vm/context/managed/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.vm.context.managed; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/context/package-info.java b/src/main/java/li/cil/oc2r/common/vm/context/package-info.java deleted file mode 100644 index ba9a8427..00000000 --- a/src/main/java/li/cil/oc2r/common/vm/context/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.vm.context; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/fs/package-info.java b/src/main/java/li/cil/oc2r/common/vm/fs/package-info.java deleted file mode 100644 index 3b2b9b87..00000000 --- a/src/main/java/li/cil/oc2r/common/vm/fs/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.vm.fs; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2r/common/vm/package-info.java b/src/main/java/li/cil/oc2r/common/vm/package-info.java deleted file mode 100644 index b53ef283..00000000 --- a/src/main/java/li/cil/oc2r/common/vm/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: MIT */ - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -package li.cil.oc2r.common.vm; - -import net.minecraft.MethodsReturnNonnullByDefault; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 3063e48d..094a4adf 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,6 +1,6 @@ modLoader = "javafml" loaderVersion = "[47,)" -issueTrackerURL = "https://github.com/fnuecke/oc2r/issues" +issueTrackerURL = "https://github.com/perkinslr/oc2r/issues" license = "MIT" [[mods]] diff --git a/src/main/resources/assets/oc2r/blockstates/internet_gateway.json b/src/main/resources/assets/oc2r/blockstates/internet_gateway.json new file mode 100644 index 00000000..c824bb60 --- /dev/null +++ b/src/main/resources/assets/oc2r/blockstates/internet_gateway.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "oc2r:block/internet_gateway" + } + } + } \ No newline at end of file diff --git a/src/main/resources/assets/oc2r/doc/zh_cn/item/robot.md b/src/main/resources/assets/oc2r/doc/zh_cn/item/robot.md index d95732de..652f609f 100644 --- a/src/main/resources/assets/oc2r/doc/zh_cn/item/robot.md +++ b/src/main/resources/assets/oc2r/doc/zh_cn/item/robot.md @@ -1,5 +1,5 @@ # 机器人 -![我欢迎我们的新机器人统治者](item:oc2r:robot) +![我欢迎我们的新机器人统治者](item:oc2:robot) 机器人本质上是移动的[计算机](../block/computer.md)。由于其非固定性质,其行为与常规计算机有所不同。它们不能连接到[总线接口](../block/bus_interface.md)。与卡片设备不同,机器人支持模块设备。这些模块设备专门考虑了机器人的移动性。 diff --git a/src/main/resources/assets/oc2r/lang/en_us.json b/src/main/resources/assets/oc2r/lang/en_us.json index c2b1e57e..fb4b32f3 100644 --- a/src/main/resources/assets/oc2r/lang/en_us.json +++ b/src/main/resources/assets/oc2r/lang/en_us.json @@ -26,6 +26,8 @@ "block.oc2r.projector.desc": "Projects images onto surfaces in front of it.", "block.oc2r.keyboard": "Keyboard", "block.oc2r.keyboard.desc": "Allows keyboard input when using a projector.", + "block.oc2r.internet_gateway": "Internet Gateway", + "block.oc2r.internet_gateway.desc": "Gives access to the Internet.", "item.oc2r.wrench": "Scrench", "item.oc2r.wrench.desc": "Configures devices and dismantles them (while sneaking).", @@ -72,6 +74,8 @@ "item.oc2r.sound_card.desc": "Plays various sounds from its highly realistic sound bank.", "item.oc2r.network_tunnel_module": "Network Tunnel Module", "item.oc2r.network_tunnel_module.desc": "Sends and receives network packets to a linked device.", + "item.oc2r.internet_card": "Internet Card", + "item.oc2r.internet_card.desc": "Gives access to the Internet", "item.oc2r.transistor": "Transistor", "item.oc2r.transistor.desc": "Crafting material.", @@ -149,6 +153,8 @@ "tooltip.oc2r.confirm": "Confirm", "tooltip.oc2r.cancel": "Cancel", "tooltip.oc2r.network_tunnel_id": "Tunnel: %s", + "tooltip.oc2r.internet.disabled": "Note that Internet access is currently disabled. It can be enabled in the mod config, but expect this to be potentially unsafe. Make sure that you trust everyone you're playing with and/or limit addresses which can be connected to in the config.", + "tooltip.oc2r.internet.energy_per_packet": "Energy per packet sent: %s", "subtitles.oc2r.computer": "Computer fans running", "subtitles.oc2r.floppy": "Floppy access", diff --git a/src/main/resources/assets/oc2r/models/block/internet_gateway.json b/src/main/resources/assets/oc2r/models/block/internet_gateway.json new file mode 100644 index 00000000..4c63e8a3 --- /dev/null +++ b/src/main/resources/assets/oc2r/models/block/internet_gateway.json @@ -0,0 +1,114 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "texture_size": [32, 32], + "textures": { + "0": "oc2r:block/internet_gateway/internet_gateway_atlas0", + "particle": "oc2r:block/internet_gateway/internet_gateway_atlas0" + }, + "elements": [ + { + "from": [3, 0, 3], + "to": [13, 10, 13], + "faces": { + "north": {"uv": [0, 0, 5, 5], "texture": "#0"}, + "east": {"uv": [0, 0, 5, 5], "texture": "#0"}, + "south": {"uv": [0, 0, 5, 5], "texture": "#0"}, + "west": {"uv": [1.5, 1.5, 6.5, 6.5], "texture": "#0"}, + "up": {"uv": [1.5, 1.5, 6.5, 6.5], "texture": "#0"}, + "down": {"uv": [1.5, 1.5, 6.5, 6.5], "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [16, 13, 3], + "faces": { + "north": {"uv": [8, 0, 16, 6.5], "texture": "#0"}, + "east": {"uv": [14.5, 0, 16, 6.5], "texture": "#0"}, + "south": {"uv": [0, 0, 8, 6.5], "texture": "#0"}, + "west": {"uv": [8, 0, 9.5, 6.5], "texture": "#0"}, + "up": {"uv": [0, 8, 8, 9.5], "texture": "#0"}, + "down": {"uv": [0, 6.5, 8, 8], "texture": "#0"} + } + }, + { + "from": [0, 0, 13], + "to": [16, 13, 16], + "faces": { + "north": {"uv": [0, 0, 8, 6.5], "texture": "#0"}, + "east": {"uv": [8, 0, 9.5, 6.5], "texture": "#0"}, + "south": {"uv": [8, 0, 16, 6.5], "texture": "#0"}, + "west": {"uv": [14.5, 0, 16, 6.5], "texture": "#0"}, + "up": {"uv": [0, 14.5, 8, 16], "texture": "#0"}, + "down": {"uv": [0, 0, 8, 1.5], "texture": "#0"} + } + }, + { + "from": [0, 0, 3], + "to": [3, 13, 13], + "faces": { + "north": {"uv": [0, 0, 1.5, 6.5], "texture": "#0"}, + "east": {"uv": [1.5, 0, 6.5, 6.5], "texture": "#0"}, + "south": {"uv": [0, 0, 1.5, 6.5], "texture": "#0"}, + "west": {"uv": [9.5, 0, 14.5, 6.5], "texture": "#0"}, + "up": {"uv": [0, 9.5, 1.5, 14.5], "texture": "#0"}, + "down": {"uv": [0, 1.5, 1.5, 6.5], "texture": "#0"} + } + }, + { + "from": [13, 0, 3], + "to": [16, 13, 13], + "faces": { + "north": {"uv": [0, 0, 1.5, 6.5], "texture": "#0"}, + "east": {"uv": [9.5, 0, 14.5, 6.5], "texture": "#0"}, + "south": {"uv": [0, 0, 1.5, 6.5], "texture": "#0"}, + "west": {"uv": [1.5, 0, 6.5, 6.5], "texture": "#0"}, + "up": {"uv": [6.5, 9.5, 8, 14.5], "texture": "#0"}, + "down": {"uv": [6.5, 1.5, 8, 6.5], "texture": "#0"} + } + }, + { + "from": [5, 10, 5], + "to": [11, 11, 11], + "faces": { + "north": {"uv": [3, 0, 6, 0.5], "texture": "#0"}, + "east": {"uv": [3, 0.5, 6, 1], "texture": "#0"}, + "south": {"uv": [3, 1, 6, 1.5], "texture": "#0"}, + "west": {"uv": [3, 1.5, 6, 2], "texture": "#0"}, + "up": {"uv": [16, 11, 11.5, 6.5], "texture": "#0"}, + "down": {"uv": [3, 3, 0, 6], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/oc2r/models/item/internet_card.json b/src/main/resources/assets/oc2r/models/item/internet_card.json new file mode 100644 index 00000000..9220d233 --- /dev/null +++ b/src/main/resources/assets/oc2r/models/item/internet_card.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "oc2r:item/internet_card" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/oc2r/models/item/internet_gateway.json b/src/main/resources/assets/oc2r/models/item/internet_gateway.json new file mode 100644 index 00000000..2febd603 --- /dev/null +++ b/src/main/resources/assets/oc2r/models/item/internet_gateway.json @@ -0,0 +1,3 @@ +{ + "parent": "oc2r:block/internet_gateway" +} \ No newline at end of file diff --git a/src/main/resources/assets/oc2r/textures/block/internet_gateway/internet_gateway_atlas0.png b/src/main/resources/assets/oc2r/textures/block/internet_gateway/internet_gateway_atlas0.png new file mode 100644 index 00000000..7b6e7aad Binary files /dev/null and b/src/main/resources/assets/oc2r/textures/block/internet_gateway/internet_gateway_atlas0.png differ diff --git a/src/main/resources/assets/oc2r/textures/item/internet_card.png b/src/main/resources/assets/oc2r/textures/item/internet_card.png new file mode 100644 index 00000000..cda92cf2 Binary files /dev/null and b/src/main/resources/assets/oc2r/textures/item/internet_card.png differ diff --git a/src/main/resources/assets/oc2r/textures/item/internet_card.png.mcmeta b/src/main/resources/assets/oc2r/textures/item/internet_card.png.mcmeta new file mode 100644 index 00000000..3b25383d --- /dev/null +++ b/src/main/resources/assets/oc2r/textures/item/internet_card.png.mcmeta @@ -0,0 +1,47 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { + "index": 0, + "time": 2 + }, + { + "index": 1, + "time": 7 + }, + { + "index": 0, + "time": 5 + }, + { + "index": 1, + "time": 4 + }, + { + "index": 0, + "time": 7 + }, + { + "index": 1, + "time": 2 + }, + { + "index": 0, + "time": 8 + }, + { + "index": 1, + "time": 9 + }, + { + "index": 0, + "time": 6 + }, + { + "index": 1, + "time": 4 + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/oc2r/file_systems/bootfs.json b/src/main/resources/data/oc2r/file_systems/bootfs.json new file mode 100644 index 00000000..60418f34 --- /dev/null +++ b/src/main/resources/data/oc2r/file_systems/bootfs.json @@ -0,0 +1,6 @@ +{ + "name": "bootfs", + "type": "block", + "order": 1, + "location": "oc2r:file_systems/bootfs.squashfs" +} diff --git a/src/main/resources/data/oc2r/file_systems/bootfs.squashfs b/src/main/resources/data/oc2r/file_systems/bootfs.squashfs new file mode 100644 index 00000000..539ea0d5 Binary files /dev/null and b/src/main/resources/data/oc2r/file_systems/bootfs.squashfs differ diff --git a/src/main/resources/data/oc2r/file_systems/rootfs.dsk b/src/main/resources/data/oc2r/file_systems/rootfs.dsk new file mode 100644 index 00000000..7b8af75d Binary files /dev/null and b/src/main/resources/data/oc2r/file_systems/rootfs.dsk differ diff --git a/src/main/resources/data/oc2r/file_systems/rootfs.json b/src/main/resources/data/oc2r/file_systems/rootfs.json new file mode 100644 index 00000000..8e0283d8 --- /dev/null +++ b/src/main/resources/data/oc2r/file_systems/rootfs.json @@ -0,0 +1,6 @@ +{ + "name": "rootfs", + "type": "block", + "order": 1, + "location": "oc2r:file_systems/rootfs.dsk" +} diff --git a/src/main/resources/data/oc2r/item_tag_filters/oc2r/hard_drive.json b/src/main/resources/data/oc2r/item_tag_filters/oc2/hard_drive.json similarity index 100% rename from src/main/resources/data/oc2r/item_tag_filters/oc2r/hard_drive.json rename to src/main/resources/data/oc2r/item_tag_filters/oc2/hard_drive.json diff --git a/src/main/resources/data/oc2r/item_tag_filters/oc2r/memory.json b/src/main/resources/data/oc2r/item_tag_filters/oc2/memory.json similarity index 100% rename from src/main/resources/data/oc2r/item_tag_filters/oc2r/memory.json rename to src/main/resources/data/oc2r/item_tag_filters/oc2/memory.json diff --git a/src/main/resources/data/oc2r/tags/items/devices/card.json b/src/main/resources/data/oc2r/tags/items/devices/card.json index 6109ce21..9bf04340 100644 --- a/src/main/resources/data/oc2r/tags/items/devices/card.json +++ b/src/main/resources/data/oc2r/tags/items/devices/card.json @@ -5,6 +5,7 @@ "oc2r:network_interface_card", "oc2r:file_import_export_card", "oc2r:sound_card", - "oc2r:network_tunnel_card" + "oc2r:network_tunnel_card", + "oc2r:internet_card" ] } diff --git a/src/main/resources/mixins.oc2r.json b/src/main/resources/mixins.oc2r.json index 4f3e97c2..44819349 100644 --- a/src/main/resources/mixins.oc2r.json +++ b/src/main/resources/mixins.oc2r.json @@ -2,7 +2,7 @@ "minVersion": "0.8.5", "compatibilityLevel": "JAVA_17", "required": true, - "package": "li.cil.oc2r.common.mixin", + "package": "li.cil.oc2.common.mixin", "refmap": "mixins.oc2r.refmap.json", "mixins": [ "ServerChunkCacheMixin" diff --git a/src/main/scripts/bin/curl b/src/main/scripts/bin/curl new file mode 100755 index 00000000..619a048f Binary files /dev/null and b/src/main/scripts/bin/curl differ diff --git a/src/test/java/li/cil/oc2/common/inet/Ipv4SpaceTest.java b/src/test/java/li/cil/oc2/common/inet/Ipv4SpaceTest.java new file mode 100644 index 00000000..62fca431 --- /dev/null +++ b/src/test/java/li/cil/oc2/common/inet/Ipv4SpaceTest.java @@ -0,0 +1,38 @@ +package li.cil.oc2.common.inet; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class Ipv4SpaceTest { + @Test + public void someRangesAndSubnetsTest() throws AddressParseException { + final Ipv4Space ipv4Space = new Ipv4Space(Ipv4Space.Modes.ALLOWLIST); + ipv4Space.put("127.0.1.1"); + ipv4Space.put("one.one.one.one"); + ipv4Space.put("127.0.0.1/24"); + ipv4Space.put("10.0.0.0/30"); + ipv4Space.put("172.17.0.0/16"); + ipv4Space.put("192.168.30.1-192.168.30.20"); + final String expected = "[" + + "172.17.0.0-172.17.255.255, " + + "192.168.30.1-192.168.30.20, " + + "1.0.0.1, 1.1.1.1, 10.0.0.0-10.0.0.3, " + + "127.0.0.0-127.0.0.255, 127.0.1.1" + + "]"; + assertEquals(expected, ipv4Space.toString()); + + assertTrue(ipv4Space.isAllowed(InetUtils.parseIpv4Address("127.0.0.1"))); + assertTrue(ipv4Space.isAllowed(InetUtils.parseIpv4Address("1.0.0.1"))); + assertTrue(ipv4Space.isAllowed(InetUtils.parseIpv4Address("192.168.30.10"))); + assertFalse(ipv4Space.isAllowed(InetUtils.parseIpv4Address("192.168.30.21"))); + } + + @Test + public void computeIpSpaceTest() throws AddressParseException { + final Ipv4Space space = InetUtils.computeIpSpace("127.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4", " "); + assertEquals("[172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255, 224.0.0.0-239.255.255.255, 10.0.0.0-10.255.255.255, 100.64.0.0-100.127.255.255, 127.0.0.0-127.255.255.255]", space.toString()); + assertFalse(space.isAllowed(InetUtils.parseIpv4Address("192.168.1.1"))); + assertTrue(space.isAllowed(InetUtils.parseIpv4Address("1.1.1.1"))); + } +} diff --git a/src/test/java/li/cil/oc2/common/util/IntegerSpaceTest.java b/src/test/java/li/cil/oc2/common/util/IntegerSpaceTest.java new file mode 100644 index 00000000..aeac5076 --- /dev/null +++ b/src/test/java/li/cil/oc2/common/util/IntegerSpaceTest.java @@ -0,0 +1,112 @@ +package li.cil.oc2.common.util; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class IntegerSpaceTest { + @Test + void integerSpaceTest() { + final IntegerSpace space = new IntegerSpace(); + try { + assertEquals(0, space.count()); + assertFalse(space.contains(30)); + + assertTrue(space.put(30)); // [30] + assertFalse(space.contains(29)); + assertTrue(space.contains(30)); + assertFalse(space.contains(31)); + assertEquals(1, space.rangeCount()); + assertEquals(1, space.count()); + + assertTrue(space.put(31)); // [30-31] + assertEquals(1, space.rangeCount()); + assertEquals(2, space.count()); + assertFalse(space.contains(29)); + assertTrue(space.contains(31)); + assertFalse(space.contains(32)); + + assertTrue(space.put(32)); // [30-32] + assertEquals(1, space.rangeCount()); + assertEquals(3, space.count()); + assertFalse(space.contains(29)); + assertTrue(space.contains(30)); + assertTrue(space.contains(31)); + assertTrue(space.contains(32)); + assertFalse(space.contains(33)); + + assertTrue(space.put(29)); // [29-32] + assertEquals(1, space.rangeCount()); + assertEquals(4, space.count()); + assertFalse(space.contains(28)); + assertTrue(space.contains(29)); + assertTrue(space.contains(30)); + assertTrue(space.contains(31)); + assertTrue(space.contains(32)); + assertFalse(space.contains(33)); + + assertFalse(space.put(29)); + assertFalse(space.put(30)); + assertFalse(space.put(31)); + assertFalse(space.put(32)); + + assertTrue(space.put(34)); // [29-32] [34] + assertFalse(space.contains(33)); + assertEquals(2, space.rangeCount()); + assertEquals(5, space.count()); + assertFalse(space.contains(33)); + assertTrue(space.contains(34)); + + assertTrue(space.put(33)); // [29-34] + assertEquals(1, space.rangeCount()); + assertEquals(6, space.count()); + assertTrue(space.contains(33)); + + assertTrue(space.put(38)); // [29-34] [38] + assertEquals(2, space.rangeCount()); + assertEquals(7, space.count()); + assertTrue(space.contains(38)); + + assertTrue(space.put(37)); // [29-34] [37-38] + assertEquals(2, space.rangeCount()); + assertEquals(8, space.count()); + assertTrue(space.contains(37)); + assertFalse(space.contains(36)); + assertFalse(space.contains(35)); + + assertTrue(space.put(35)); // [29-35] [37-38] + assertEquals(2, space.rangeCount()); + assertEquals(9, space.count()); + assertTrue(space.contains(37)); + assertFalse(space.contains(36)); + assertTrue(space.contains(35)); + + assertTrue(space.put(27)); // [27] [29-35] [37-38] + assertEquals(3, space.rangeCount()); + assertEquals(10, space.count()); + assertTrue(space.contains(27)); + assertFalse(space.contains(28)); + assertTrue(space.contains(29)); + + assertTrue(space.put(31, 37)); // [27] [29-38] + assertEquals(2, space.rangeCount()); + assertEquals(11, space.count()); + assertTrue(space.contains(27)); + assertFalse(space.contains(28)); + for (int i = 29; i <= 38; ++i) { + assertTrue(space.contains(i), Integer.toString(i)); + } + + assertTrue(space.put(33, 39)); // [27] [29-39] + assertEquals(2, space.rangeCount()); + assertEquals(12, space.count()); + assertEquals("[27, 29-39]", space.toString()); + + assertTrue(space.put(23, 26)); + assertEquals("[23-27, 29-39]", space.toString()); + } catch (final AssertionError e) { + System.out.println("Space state: " + space); + throw e; + } + } +}