diff --git a/README.md b/README.md index 5d14e56..d1aee01 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Atlas has three core systems that chain together to enable full automation. | **Lava Generator** | Burns lava for serious output. Feed it from your fluid pipeline | | **Small Battery** | Buffers power between generators and machines. Glowing charge indicator | | **Power Cable** | Moves power in one direction, block by block | -| **Multi Power Cable** | Transfers power across multiple directions at once | +| **Power Splitter** | Transfers power across multiple directions at once | | **Power Merger** | Funnels power from several sources into one output |
diff --git a/src/main/kotlin/com/coderjoe/atlas/Atlas.kt b/src/main/kotlin/com/coderjoe/atlas/Atlas.kt index 151f4c6..c17e83e 100644 --- a/src/main/kotlin/com/coderjoe/atlas/Atlas.kt +++ b/src/main/kotlin/com/coderjoe/atlas/Atlas.kt @@ -186,7 +186,7 @@ class Atlas : JavaPlugin() { com.coderjoe.atlas.power.block.PowerCable.descriptor, com.coderjoe.atlas.power.block.LavaGenerator.descriptor, com.coderjoe.atlas.utility.block.AutoSmelter.descriptor, - com.coderjoe.atlas.power.block.MultiPowerCable.descriptor, + com.coderjoe.atlas.power.block.PowerSplitter.descriptor, com.coderjoe.atlas.utility.block.CobblestoneFactory.descriptor, com.coderjoe.atlas.utility.block.ObsidianFactory.descriptor, com.coderjoe.atlas.power.block.PowerMerger.descriptor, diff --git a/src/main/kotlin/com/coderjoe/atlas/power/PowerBlockDialog.kt b/src/main/kotlin/com/coderjoe/atlas/power/PowerBlockDialog.kt index 9e0e5b7..6045fe8 100644 --- a/src/main/kotlin/com/coderjoe/atlas/power/PowerBlockDialog.kt +++ b/src/main/kotlin/com/coderjoe/atlas/power/PowerBlockDialog.kt @@ -3,9 +3,9 @@ package com.coderjoe.atlas.power import com.coderjoe.atlas.core.AtlasBlockDialog import com.coderjoe.atlas.core.BlockRegistry import com.coderjoe.atlas.power.block.LavaGenerator -import com.coderjoe.atlas.power.block.MultiPowerCable import com.coderjoe.atlas.power.block.PowerCable import com.coderjoe.atlas.power.block.PowerMerger +import com.coderjoe.atlas.power.block.PowerSplitter import com.coderjoe.atlas.power.block.SmallBattery import com.coderjoe.atlas.power.block.SmallSolarPanel import com.coderjoe.atlas.utility.block.AutoSmelter @@ -155,7 +155,7 @@ object PowerBlockDialog { is PowerCable -> "Power Cable (${powerBlock.facing.name.lowercase().replaceFirstChar { it.uppercase() }})" is LavaGenerator -> "Lava Generator" is AutoSmelter -> "Auto Smelter (${powerBlock.facing.name.lowercase().replaceFirstChar { it.uppercase() }})" - is MultiPowerCable -> "Multi Power Cable (${powerBlock.facing.name.lowercase().replaceFirstChar { it.uppercase() }})" + is PowerSplitter -> "Power Splitter (${powerBlock.facing.name.lowercase().replaceFirstChar { it.uppercase() }})" is CobblestoneFactory -> "Cobblestone Factory" is ObsidianFactory -> "Obsidian Factory" is PowerMerger -> "Power Merger (${powerBlock.facing.name.lowercase().replaceFirstChar { it.uppercase() }})" @@ -217,7 +217,7 @@ object PowerBlockDialog { is AutoSmelter -> Component.text("Machine - smelts items passing through, consumes ${AutoSmelter.POWER_PER_SMELT} power/item") .color(NamedTextColor.GRAY) - is MultiPowerCable -> + is PowerSplitter -> Component.text("Cable - distributes power to all adjacent faces") .color(NamedTextColor.GRAY) is CobblestoneFactory -> diff --git a/src/main/kotlin/com/coderjoe/atlas/power/block/MultiPowerCable.kt b/src/main/kotlin/com/coderjoe/atlas/power/block/PowerSplitter.kt similarity index 82% rename from src/main/kotlin/com/coderjoe/atlas/power/block/MultiPowerCable.kt rename to src/main/kotlin/com/coderjoe/atlas/power/block/PowerSplitter.kt index 3d3cd2b..bc04f07 100644 --- a/src/main/kotlin/com/coderjoe/atlas/power/block/MultiPowerCable.kt +++ b/src/main/kotlin/com/coderjoe/atlas/power/block/PowerSplitter.kt @@ -9,17 +9,17 @@ import com.coderjoe.atlas.power.PowerBlockRegistry import org.bukkit.Location import org.bukkit.block.BlockFace -class MultiPowerCable(location: Location, override val facing: BlockFace) : PowerBlock(location, maxStorage = 10) { +class PowerSplitter(location: Location, override val facing: BlockFace) : PowerBlock(location, maxStorage = 10) { companion object { - const val BLOCK_ID = "atlas:multi_power_cable" + const val BLOCK_ID = "atlas:power_splitter" val descriptor = BlockDescriptor( baseBlockId = BLOCK_ID, - displayName = "Multi Power Cable", + displayName = "Power Splitter", description = "Cable - distributes power to all adjacent faces", placementType = PlacementType.DIRECTIONAL, - constructor = { loc, facing -> MultiPowerCable(loc, facing) }, + constructor = { loc, facing -> PowerSplitter(loc, facing) }, ) } @@ -40,7 +40,7 @@ class MultiPowerCable(location: Location, override val facing: BlockFace) : Powe if (pulled > 0) { addPower(pulled) plugin.logger.atlasInfo( - "MultiPowerCable at ${location.blockX},${location.blockY},${location.blockZ} " + + "PowerSplitter at ${location.blockX},${location.blockY},${location.blockZ} " + "pulled $pulled power (now $currentPower/$maxStorage)", ) } @@ -59,7 +59,7 @@ class MultiPowerCable(location: Location, override val facing: BlockFace) : Powe if (pushed > 0) { target.addPower(pushed) plugin.logger.atlasInfo( - "MultiPowerCable at ${location.blockX},${location.blockY},${location.blockZ} " + + "PowerSplitter at ${location.blockX},${location.blockY},${location.blockZ} " + "pushed $pushed power to ${target::class.simpleName} at ${face.name}", ) } diff --git a/src/main/resources/atlas/configuration/multi_power_cable.yml b/src/main/resources/atlas/configuration/multi_power_cable.yml deleted file mode 100644 index e5901f2..0000000 --- a/src/main/resources/atlas/configuration/multi_power_cable.yml +++ /dev/null @@ -1,180 +0,0 @@ -items: - atlas:multi_power_cable: - material: paper - data: - item-name: "Multi Power Cable" - model: minecraft:block/custom/multi_power_cable - behavior: - type: block_item - block: - loot: - template: default:loot_table/self - settings: - hardness: 2.0 - resistance: 2.0 - is-suffocating: true - is-redstone-conductor: false - push-reaction: push_only - tags: ["minecraft:mineable/pickaxe"] - sounds: - break: minecraft:block.metal.break - step: minecraft:block.metal.step - place: minecraft:block.metal.place - hit: minecraft:block.metal.hit - fall: minecraft:block.metal.fall - states: - properties: - facing: - type: direction - default: north - powered: - type: boolean - default: false - appearances: - north: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable - generation: - parent: minecraft:block/cube - textures: - north: minecraft:block/custom/multi_power_cable_front - south: minecraft:block/custom/multi_power_cable_back - east: minecraft:block/custom/multi_power_cable_side - west: minecraft:block/custom/multi_power_cable_side - up: minecraft:block/custom/multi_power_cable_cap - down: minecraft:block/custom/multi_power_cable_cap - south: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable - y: 180 - east: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable - y: 90 - west: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable - y: 270 - up: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_up - generation: - parent: minecraft:block/cube - textures: - north: minecraft:block/custom/multi_power_cable_side - south: minecraft:block/custom/multi_power_cable_side - east: minecraft:block/custom/multi_power_cable_side - west: minecraft:block/custom/multi_power_cable_side - up: minecraft:block/custom/multi_power_cable_front - down: minecraft:block/custom/multi_power_cable_back - down: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_down - generation: - parent: minecraft:block/cube - textures: - north: minecraft:block/custom/multi_power_cable_side - south: minecraft:block/custom/multi_power_cable_side - east: minecraft:block/custom/multi_power_cable_side - west: minecraft:block/custom/multi_power_cable_side - up: minecraft:block/custom/multi_power_cable_back - down: minecraft:block/custom/multi_power_cable_front - north_powered: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_powered - generation: - parent: minecraft:block/cube - textures: - north: minecraft:block/custom/multi_power_cable_front_powered - south: minecraft:block/custom/multi_power_cable_back_powered - east: minecraft:block/custom/multi_power_cable_side_powered - west: minecraft:block/custom/multi_power_cable_side_powered - up: minecraft:block/custom/multi_power_cable_cap_powered - down: minecraft:block/custom/multi_power_cable_cap_powered - south_powered: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_powered - y: 180 - east_powered: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_powered - y: 90 - west_powered: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_powered - y: 270 - up_powered: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_up_powered - generation: - parent: minecraft:block/cube - textures: - north: minecraft:block/custom/multi_power_cable_side_powered - south: minecraft:block/custom/multi_power_cable_side_powered - east: minecraft:block/custom/multi_power_cable_side_powered - west: minecraft:block/custom/multi_power_cable_side_powered - up: minecraft:block/custom/multi_power_cable_front_powered - down: minecraft:block/custom/multi_power_cable_back_powered - down_powered: - auto-state: solid - model: - path: minecraft:block/custom/multi_power_cable_down_powered - generation: - parent: minecraft:block/cube - textures: - north: minecraft:block/custom/multi_power_cable_side_powered - south: minecraft:block/custom/multi_power_cable_side_powered - east: minecraft:block/custom/multi_power_cable_side_powered - west: minecraft:block/custom/multi_power_cable_side_powered - up: minecraft:block/custom/multi_power_cable_back_powered - down: minecraft:block/custom/multi_power_cable_front_powered - variants: - facing=north,powered=false: - appearance: north - facing=south,powered=false: - appearance: south - facing=east,powered=false: - appearance: east - facing=west,powered=false: - appearance: west - facing=up,powered=false: - appearance: up - facing=down,powered=false: - appearance: down - facing=north,powered=true: - appearance: north_powered - facing=south,powered=true: - appearance: south_powered - facing=east,powered=true: - appearance: east_powered - facing=west,powered=true: - appearance: west_powered - facing=up,powered=true: - appearance: up_powered - facing=down,powered=true: - appearance: down_powered - -recipes: - atlas:multi_power_cable: - type: shapeless - category: misc - unlock-on-ingredient-obtained: true - ingredients: - - minecraft:copper_ingot - - minecraft:copper_ingot - - minecraft:copper_ingot - - minecraft:copper_ingot - result: - id: atlas:multi_power_cable - count: 1 diff --git a/src/main/resources/atlas/configuration/power_splitter.yml b/src/main/resources/atlas/configuration/power_splitter.yml new file mode 100644 index 0000000..07d6dc0 --- /dev/null +++ b/src/main/resources/atlas/configuration/power_splitter.yml @@ -0,0 +1,180 @@ +items: + atlas:power_splitter: + material: paper + data: + item-name: "Power Splitter" + model: minecraft:block/custom/power_splitter + behavior: + type: block_item + block: + loot: + template: default:loot_table/self + settings: + hardness: 2.0 + resistance: 2.0 + is-suffocating: true + is-redstone-conductor: false + push-reaction: push_only + tags: ["minecraft:mineable/pickaxe"] + sounds: + break: minecraft:block.metal.break + step: minecraft:block.metal.step + place: minecraft:block.metal.place + hit: minecraft:block.metal.hit + fall: minecraft:block.metal.fall + states: + properties: + facing: + type: direction + default: north + powered: + type: boolean + default: false + appearances: + north: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter + generation: + parent: minecraft:block/cube + textures: + north: minecraft:block/custom/power_splitter_front + south: minecraft:block/custom/power_splitter_back + east: minecraft:block/custom/power_splitter_side + west: minecraft:block/custom/power_splitter_side + up: minecraft:block/custom/power_splitter_cap + down: minecraft:block/custom/power_splitter_cap + south: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter + y: 180 + east: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter + y: 90 + west: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter + y: 270 + up: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_up + generation: + parent: minecraft:block/cube + textures: + north: minecraft:block/custom/power_splitter_side + south: minecraft:block/custom/power_splitter_side + east: minecraft:block/custom/power_splitter_side + west: minecraft:block/custom/power_splitter_side + up: minecraft:block/custom/power_splitter_front + down: minecraft:block/custom/power_splitter_back + down: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_down + generation: + parent: minecraft:block/cube + textures: + north: minecraft:block/custom/power_splitter_side + south: minecraft:block/custom/power_splitter_side + east: minecraft:block/custom/power_splitter_side + west: minecraft:block/custom/power_splitter_side + up: minecraft:block/custom/power_splitter_back + down: minecraft:block/custom/power_splitter_front + north_powered: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_powered + generation: + parent: minecraft:block/cube + textures: + north: minecraft:block/custom/power_splitter_front_powered + south: minecraft:block/custom/power_splitter_back_powered + east: minecraft:block/custom/power_splitter_side_powered + west: minecraft:block/custom/power_splitter_side_powered + up: minecraft:block/custom/power_splitter_cap_powered + down: minecraft:block/custom/power_splitter_cap_powered + south_powered: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_powered + y: 180 + east_powered: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_powered + y: 90 + west_powered: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_powered + y: 270 + up_powered: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_up_powered + generation: + parent: minecraft:block/cube + textures: + north: minecraft:block/custom/power_splitter_side_powered + south: minecraft:block/custom/power_splitter_side_powered + east: minecraft:block/custom/power_splitter_side_powered + west: minecraft:block/custom/power_splitter_side_powered + up: minecraft:block/custom/power_splitter_front_powered + down: minecraft:block/custom/power_splitter_back_powered + down_powered: + auto-state: solid + model: + path: minecraft:block/custom/power_splitter_down_powered + generation: + parent: minecraft:block/cube + textures: + north: minecraft:block/custom/power_splitter_side_powered + south: minecraft:block/custom/power_splitter_side_powered + east: minecraft:block/custom/power_splitter_side_powered + west: minecraft:block/custom/power_splitter_side_powered + up: minecraft:block/custom/power_splitter_back_powered + down: minecraft:block/custom/power_splitter_front_powered + variants: + facing=north,powered=false: + appearance: north + facing=south,powered=false: + appearance: south + facing=east,powered=false: + appearance: east + facing=west,powered=false: + appearance: west + facing=up,powered=false: + appearance: up + facing=down,powered=false: + appearance: down + facing=north,powered=true: + appearance: north_powered + facing=south,powered=true: + appearance: south_powered + facing=east,powered=true: + appearance: east_powered + facing=west,powered=true: + appearance: west_powered + facing=up,powered=true: + appearance: up_powered + facing=down,powered=true: + appearance: down_powered + +recipes: + atlas:power_splitter: + type: shapeless + category: misc + unlock-on-ingredient-obtained: true + ingredients: + - minecraft:copper_ingot + - minecraft:copper_ingot + - minecraft:copper_ingot + - minecraft:copper_ingot + result: + id: atlas:power_splitter + count: 1 diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_back.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_back.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_back.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_back.png diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_back_powered.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_back_powered.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_back_powered.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_back_powered.png diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_cap.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_cap.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_cap.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_cap.png diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_cap_powered.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_cap_powered.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_cap_powered.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_cap_powered.png diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_front.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_front.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_front.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_front.png diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_front_powered.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_front_powered.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_front_powered.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_front_powered.png diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_side.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_side.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_side.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_side.png diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_side_powered.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_side_powered.png similarity index 100% rename from src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/multi_power_cable_side_powered.png rename to src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/power_splitter_side_powered.png diff --git a/src/test/kotlin/com/coderjoe/atlas/TestHelper.kt b/src/test/kotlin/com/coderjoe/atlas/TestHelper.kt index de43305..2e0efd3 100644 --- a/src/test/kotlin/com/coderjoe/atlas/TestHelper.kt +++ b/src/test/kotlin/com/coderjoe/atlas/TestHelper.kt @@ -13,9 +13,9 @@ import com.coderjoe.atlas.power.PowerBlock import com.coderjoe.atlas.power.PowerBlockFactory import com.coderjoe.atlas.power.PowerBlockRegistry import com.coderjoe.atlas.power.block.LavaGenerator -import com.coderjoe.atlas.power.block.MultiPowerCable import com.coderjoe.atlas.power.block.PowerCable import com.coderjoe.atlas.power.block.PowerMerger +import com.coderjoe.atlas.power.block.PowerSplitter import com.coderjoe.atlas.power.block.SmallBattery import com.coderjoe.atlas.power.block.SmallSolarPanel import com.coderjoe.atlas.transport.TransportBlock @@ -199,7 +199,7 @@ object TestHelper { SmallSolarPanel.descriptor, SmallDrill.descriptor, SmallBattery.descriptor, PowerCable.descriptor, LavaGenerator.descriptor, AutoSmelter.descriptor, - MultiPowerCable.descriptor, CobblestoneFactory.descriptor, + PowerSplitter.descriptor, CobblestoneFactory.descriptor, ObsidianFactory.descriptor, PowerMerger.descriptor, ), ) diff --git a/src/test/kotlin/com/coderjoe/atlas/power/PowerBlockInitializerTest.kt b/src/test/kotlin/com/coderjoe/atlas/power/PowerBlockInitializerTest.kt index b73d2d4..ac7cb10 100644 --- a/src/test/kotlin/com/coderjoe/atlas/power/PowerBlockInitializerTest.kt +++ b/src/test/kotlin/com/coderjoe/atlas/power/PowerBlockInitializerTest.kt @@ -34,7 +34,7 @@ class PowerBlockInitializerTest { // PowerCable: 1 // LavaGenerator: 2 (base + active) // AutoSmelter: 1 - // MultiPowerCable: 1 + // PowerSplitter: 1 // CobblestoneFactory: 2 (base + active) // ObsidianFactory: 2 (base + active) // PowerMerger: 1 diff --git a/src/test/kotlin/com/coderjoe/atlas/power/MultiPowerCableTest.kt b/src/test/kotlin/com/coderjoe/atlas/power/PowerSplitterTest.kt similarity index 62% rename from src/test/kotlin/com/coderjoe/atlas/power/MultiPowerCableTest.kt rename to src/test/kotlin/com/coderjoe/atlas/power/PowerSplitterTest.kt index 3928ec3..cc19d5f 100644 --- a/src/test/kotlin/com/coderjoe/atlas/power/MultiPowerCableTest.kt +++ b/src/test/kotlin/com/coderjoe/atlas/power/PowerSplitterTest.kt @@ -2,7 +2,7 @@ package com.coderjoe.atlas.power import com.coderjoe.atlas.TestHelper import com.coderjoe.atlas.TestHelper.callPowerUpdate -import com.coderjoe.atlas.power.block.MultiPowerCable +import com.coderjoe.atlas.power.block.PowerSplitter import com.coderjoe.atlas.power.block.SmallBattery import org.bukkit.block.BlockFace import org.junit.jupiter.api.AfterEach @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test -class MultiPowerCableTest { +class PowerSplitterTest { @BeforeEach fun setup() { TestHelper.setup() @@ -24,45 +24,45 @@ class MultiPowerCableTest { } @Test - fun `multi power cable has correct facing`() { - val cable = - MultiPowerCable(TestHelper.createLocation(), BlockFace.NORTH) - assertEquals(BlockFace.NORTH, cable.facing) + fun `power splitter has correct facing`() { + val splitter = + PowerSplitter(TestHelper.createLocation(), BlockFace.NORTH) + assertEquals(BlockFace.NORTH, splitter.facing) } @Test fun `visual state always returns BLOCK_ID`() { - val cable = - MultiPowerCable(TestHelper.createLocation(), BlockFace.NORTH) - cable.currentPower = 0 + val splitter = + PowerSplitter(TestHelper.createLocation(), BlockFace.NORTH) + splitter.currentPower = 0 assertEquals( - "atlas:multi_power_cable", - cable.getVisualStateBlockId(), + "atlas:power_splitter", + splitter.getVisualStateBlockId(), ) - cable.currentPower = 5 + splitter.currentPower = 5 assertEquals( - "atlas:multi_power_cable", - cable.getVisualStateBlockId(), + "atlas:power_splitter", + splitter.getVisualStateBlockId(), ) } @Test - fun `base block ID is atlas multi_power_cable`() { - val cable = - MultiPowerCable(TestHelper.createLocation(), BlockFace.SOUTH) - assertEquals("atlas:multi_power_cable", cable.baseBlockId) + fun `base block ID is atlas power_splitter`() { + val splitter = + PowerSplitter(TestHelper.createLocation(), BlockFace.SOUTH) + assertEquals("atlas:power_splitter", splitter.baseBlockId) } @Test fun `descriptor has correct properties`() { - val desc = MultiPowerCable.descriptor - assertEquals("atlas:multi_power_cable", desc.baseBlockId) - assertEquals("Multi Power Cable", desc.displayName) + val desc = PowerSplitter.descriptor + assertEquals("atlas:power_splitter", desc.baseBlockId) + assertEquals("Power Splitter", desc.displayName) } @Test fun `descriptor has directional placement`() { - val desc = MultiPowerCable.descriptor + val desc = PowerSplitter.descriptor assertEquals( com.coderjoe.atlas.core.PlacementType.DIRECTIONAL, desc.placementType, @@ -73,39 +73,39 @@ class MultiPowerCableTest { fun `base ID is registered`() { TestHelper.initPowerFactory() assertTrue( - PowerBlockFactory.isRegistered("atlas:multi_power_cable"), + PowerBlockFactory.isRegistered("atlas:power_splitter"), ) } @Test - fun `factory creates MultiPowerCable from base ID`() { + fun `factory creates PowerSplitter from base ID`() { TestHelper.initPowerFactory() val block = PowerBlockFactory.createPowerBlock( - "atlas:multi_power_cable", + "atlas:power_splitter", TestHelper.createLocation(), BlockFace.NORTH, ) - assertTrue(block is MultiPowerCable) + assertTrue(block is PowerSplitter) assertEquals(BlockFace.NORTH, block!!.facing) } @Test fun `max storage is 10`() { - val cable = - MultiPowerCable(TestHelper.createLocation(), BlockFace.NORTH) - assertEquals(10, cable.maxStorage) + val splitter = + PowerSplitter(TestHelper.createLocation(), BlockFace.NORTH) + assertEquals(10, splitter.maxStorage) } @Test fun `pulls power from behind`() { val registry = PowerBlockRegistry(TestHelper.mockPlugin) - val cableLoc = TestHelper.createLocation(0.0, 64.0, 0.0) - val cable = MultiPowerCable(cableLoc, BlockFace.NORTH) + val splitterLoc = TestHelper.createLocation(0.0, 64.0, 0.0) + val splitter = PowerSplitter(splitterLoc, BlockFace.NORTH) TestHelper.addToRegistry( registry, - cable, - "atlas:multi_power_cable", + splitter, + "atlas:power_splitter", ) val batteryLoc = TestHelper.createLocation(0.0, 64.0, 1.0) @@ -117,22 +117,22 @@ class MultiPowerCableTest { "atlas:small_battery", ) - cable.callPowerUpdate() + splitter.callPowerUpdate() - assertTrue(cable.currentPower > 0) + assertTrue(splitter.currentPower > 0) assertTrue(battery.currentPower < 5) } @Test fun `distributes power to multiple outputs`() { val registry = PowerBlockRegistry(TestHelper.mockPlugin) - val cableLoc = TestHelper.createLocation(0.0, 64.0, 0.0) - val cable = MultiPowerCable(cableLoc, BlockFace.NORTH) - cable.currentPower = 5 + val splitterLoc = TestHelper.createLocation(0.0, 64.0, 0.0) + val splitter = PowerSplitter(splitterLoc, BlockFace.NORTH) + splitter.currentPower = 5 TestHelper.addToRegistry( registry, - cable, - "atlas:multi_power_cable", + splitter, + "atlas:power_splitter", ) val eastBatteryLoc = @@ -163,24 +163,24 @@ class MultiPowerCableTest { "atlas:small_battery", ) - cable.callPowerUpdate() + splitter.callPowerUpdate() assertTrue(eastBattery.currentPower > 0) assertTrue(westBattery.currentPower > 0) assertTrue(northBattery.currentPower > 0) - assertEquals(2, cable.currentPower) + assertEquals(2, splitter.currentPower) } @Test fun `does not exceed max storage when pulling power`() { val registry = PowerBlockRegistry(TestHelper.mockPlugin) - val cableLoc = TestHelper.createLocation(0.0, 64.0, 0.0) - val cable = MultiPowerCable(cableLoc, BlockFace.NORTH) - cable.currentPower = 10 + val splitterLoc = TestHelper.createLocation(0.0, 64.0, 0.0) + val splitter = PowerSplitter(splitterLoc, BlockFace.NORTH) + splitter.currentPower = 10 TestHelper.addToRegistry( registry, - cable, - "atlas:multi_power_cable", + splitter, + "atlas:power_splitter", ) val batteryLoc = TestHelper.createLocation(0.0, 64.0, 1.0) @@ -192,20 +192,20 @@ class MultiPowerCableTest { "atlas:small_battery", ) - cable.callPowerUpdate() + splitter.callPowerUpdate() - assertEquals(10, cable.maxStorage) + assertEquals(10, splitter.maxStorage) assertEquals(5, battery.currentPower) } @Test fun `does not crash with no adjacent blocks`() { PowerBlockRegistry(TestHelper.mockPlugin) - val cable = - MultiPowerCable(TestHelper.createLocation(), BlockFace.NORTH) + val splitter = + PowerSplitter(TestHelper.createLocation(), BlockFace.NORTH) assertDoesNotThrow { - cable.callPowerUpdate() + splitter.callPowerUpdate() } } }