From e4798f5ba4fcb94a1d038ae4bcba2594b7f1f327 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 13 Dec 2022 10:53:09 +0100 Subject: [PATCH] item registry: buckets --- .../integrated/IntegratedRegistryIT.kt | 8 +++ .../data/registries/items/AppleTest.kt | 9 ++-- .../data/registries/items/ItemTest.kt | 9 ++++ .../data/registries/items/LavaBucketTest.kt | 8 +-- .../data/registries/items/WaterBucketTest.kt | 8 +-- .../data/container/slots/FuelSlotType.kt | 5 +- .../data/registries/fluid/EmptyFluid.kt | 4 +- .../data/registries/fluid/FluidFactory.kt | 5 +- .../data/registries/fluid/lava/LavaFluid.kt | 2 + .../data/registries/fluid/water/WaterFluid.kt | 2 + .../data/registries/item/ItemRegistry.kt | 7 +++ .../data/registries/item/MinecraftItems.kt | 3 -- .../registries/item/factory/ItemFactories.kt | 6 +++ .../item/factory/PixLyzerItemFactories.kt | 2 - .../item/items/bucket/BucketItem.kt | 25 ++++----- .../item/items/bucket/FilledBucketItem.kt | 54 +++++++++++++++++++ .../item/items/fluid/FluidDrainable.kt | 16 ++++++ .../registries/item/items/fluid/FluidItem.kt | 20 +++++++ 18 files changed, 155 insertions(+), 38 deletions(-) create mode 100644 src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/FilledBucketItem.kt create mode 100644 src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidDrainable.kt create mode 100644 src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidItem.kt diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/integrated/IntegratedRegistryIT.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/integrated/IntegratedRegistryIT.kt index 3c135d1d2..341d2dfe3 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/integrated/IntegratedRegistryIT.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/integrated/IntegratedRegistryIT.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.data.registries.integrated import de.bixilon.minosoft.data.registries.enchantment.tool.WeaponEnchantment +import de.bixilon.minosoft.data.registries.item.items.food.AppleItem import de.bixilon.minosoft.test.IT import de.bixilon.minosoft.util.KUtil.toResourceLocation import org.testng.Assert @@ -27,4 +28,11 @@ class IntegratedRegistryIT { val current = IT.VERSION.registries!!.enchantmentRegistry["minecraft:sharpness".toResourceLocation()] Assert.assertSame(current, expected) } + + fun goldenApple() { + val current = IT.VERSION.registries!!.itemRegistry["minecraft:golden_apple".toResourceLocation()] + if (current !is AppleItem.GoldenAppleItem) { + Assert.fail("Not an golden apple: $current") + } + } } diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/AppleTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/AppleTest.kt index c68bb0f4f..1b1cc97cf 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/AppleTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/AppleTest.kt @@ -14,19 +14,20 @@ package de.bixilon.minosoft.data.registries.items import de.bixilon.kutil.cast.CastUtil.unsafeNull -import de.bixilon.minosoft.data.registries.item.MinecraftItems -import de.bixilon.minosoft.data.registries.item.items.Item +import de.bixilon.minosoft.data.registries.item.items.food.AppleItem +import org.testng.Assert import org.testng.annotations.Test @Test(groups = ["item"]) -class AppleTest : ItemTest() { +class AppleTest : ItemTest() { init { AppleTestO = this } fun getApple() { - super.retrieveItem(MinecraftItems.APPLE) + super.retrieveItem(AppleItem) + Assert.assertTrue(this.item is AppleItem) } } diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/ItemTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/ItemTest.kt index b97ec8e59..d0019c204 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/ItemTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/ItemTest.kt @@ -16,6 +16,7 @@ package de.bixilon.minosoft.data.registries.items import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeNull import de.bixilon.minosoft.data.registries.ResourceLocation +import de.bixilon.minosoft.data.registries.item.factory.ItemFactory import de.bixilon.minosoft.data.registries.item.items.Item import de.bixilon.minosoft.test.IT import de.bixilon.minosoft.test.IT.reference @@ -36,4 +37,12 @@ abstract class ItemTest { assertEquals(item.resourceLocation, name) this.item = item.unsafeCast() } + + fun retrieveItem(factory: ItemFactory) { + val item = IT.VERSION.registries!!.itemRegistry[factory] + Assert.assertNotNull(item) + item!! + assertEquals(item.resourceLocation, factory.resourceLocation) + this.item = item + } } diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/LavaBucketTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/LavaBucketTest.kt index ed950a1b6..fbe9e2810 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/LavaBucketTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/LavaBucketTest.kt @@ -15,20 +15,20 @@ package de.bixilon.minosoft.data.registries.items import de.bixilon.kutil.cast.CastUtil.unsafeNull import de.bixilon.minosoft.data.registries.fluid.lava.LavaFluid -import de.bixilon.minosoft.data.registries.item.MinecraftItems -import de.bixilon.minosoft.data.registries.item.items.bucket.BucketItem +import de.bixilon.minosoft.data.registries.item.items.bucket.FilledBucketItem import org.testng.Assert.assertTrue import org.testng.annotations.Test @Test(groups = ["item"]) -class LavaBucketTest : ItemTest() { +class LavaBucketTest : ItemTest() { init { LavaBucketTest0 = this } fun getLava() { - super.retrieveItem(MinecraftItems.LAVA_BUCKET) + super.retrieveItem(FilledBucketItem.LavaBucketItem) + assertTrue(item is FilledBucketItem.LavaBucketItem) assertTrue(item.fluid is LavaFluid) } } diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/WaterBucketTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/WaterBucketTest.kt index 311df26df..45883add6 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/WaterBucketTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/data/registries/items/WaterBucketTest.kt @@ -15,20 +15,20 @@ package de.bixilon.minosoft.data.registries.items import de.bixilon.kutil.cast.CastUtil.unsafeNull import de.bixilon.minosoft.data.registries.fluid.water.WaterFluid -import de.bixilon.minosoft.data.registries.item.MinecraftItems -import de.bixilon.minosoft.data.registries.item.items.bucket.BucketItem +import de.bixilon.minosoft.data.registries.item.items.bucket.FilledBucketItem import org.testng.Assert.assertTrue import org.testng.annotations.Test @Test(groups = ["item"]) -class WaterBucketTest : ItemTest() { +class WaterBucketTest : ItemTest() { init { WaterBucketTest0 = this } fun getWater() { - super.retrieveItem(MinecraftItems.WATER_BUCKET) + super.retrieveItem(FilledBucketItem.WaterBucketItem) + assertTrue(item is FilledBucketItem.WaterBucketItem) assertTrue(item.fluid is WaterFluid) } } diff --git a/src/main/java/de/bixilon/minosoft/data/container/slots/FuelSlotType.kt b/src/main/java/de/bixilon/minosoft/data/container/slots/FuelSlotType.kt index d3d2b3881..101abaae2 100644 --- a/src/main/java/de/bixilon/minosoft/data/container/slots/FuelSlotType.kt +++ b/src/main/java/de/bixilon/minosoft/data/container/slots/FuelSlotType.kt @@ -15,15 +15,14 @@ package de.bixilon.minosoft.data.container.slots import de.bixilon.minosoft.data.container.Container import de.bixilon.minosoft.data.container.stack.ItemStack -import de.bixilon.minosoft.data.registries.fluid.lava.LavaFluid -import de.bixilon.minosoft.data.registries.item.items.bucket.BucketItem +import de.bixilon.minosoft.data.registries.item.items.bucket.FilledBucketItem object FuelSlotType : SlotType { override fun canPut(container: Container, slot: Int, stack: ItemStack): Boolean { val item = stack.item.item - if (item is BucketItem && item.fluid is LavaFluid) { + if (item is FilledBucketItem.LavaBucketItem) { return true } val fuelTime = container.connection.registries.misc.getFuelTime(item) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/fluid/EmptyFluid.kt b/src/main/java/de/bixilon/minosoft/data/registries/fluid/EmptyFluid.kt index 79048a58b..a3d817e27 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/fluid/EmptyFluid.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/fluid/EmptyFluid.kt @@ -1,6 +1,6 @@ /* * Minosoft - * Copyright (C) 2021 Moritz Zwerger + * Copyright (C) 2020-2022 Moritz Zwerger * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * @@ -17,6 +17,7 @@ import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock import de.bixilon.minosoft.data.registries.registries.Registries +import de.bixilon.minosoft.util.KUtil.minecraft class EmptyFluid( resourceLocation: ResourceLocation, @@ -37,6 +38,7 @@ class EmptyFluid( } companion object : FluidFactory { + override val resourceLocation = minecraft("empty") override fun build(resourceLocation: ResourceLocation, registries: Registries, data: Map): EmptyFluid { return EmptyFluid(resourceLocation, registries, data) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/fluid/FluidFactory.kt b/src/main/java/de/bixilon/minosoft/data/registries/fluid/FluidFactory.kt index eed76bf63..04f21ae0c 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/fluid/FluidFactory.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/fluid/FluidFactory.kt @@ -1,6 +1,6 @@ /* * Minosoft - * Copyright (C) 2021 Moritz Zwerger + * Copyright (C) 2020-2022 Moritz Zwerger * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * @@ -14,9 +14,10 @@ package de.bixilon.minosoft.data.registries.fluid import de.bixilon.minosoft.data.registries.ResourceLocation +import de.bixilon.minosoft.data.registries.ResourceLocationAble import de.bixilon.minosoft.data.registries.factory.clazz.ClassFactory import de.bixilon.minosoft.data.registries.registries.Registries -interface FluidFactory : ClassFactory { +interface FluidFactory : ClassFactory, ResourceLocationAble { fun build(resourceLocation: ResourceLocation, registries: Registries, data: Map): T } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt b/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt index 528971ec0..9c70ebaf5 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt @@ -34,6 +34,7 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection +import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.toResourceLocation import java.util.* @@ -95,6 +96,7 @@ class LavaFluid( } companion object : FluidFactory, MultiClassFactory { + override val resourceLocation = KUtil.minecraft("lava") override val ALIASES: Set = setOf("LavaFluid\$Flowing", "LavaFluid\$Still") override fun build(resourceLocation: ResourceLocation, registries: Registries, data: Map): LavaFluid { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt b/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt index 30dcac0f8..1dc5fe3fd 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt @@ -34,6 +34,7 @@ import de.bixilon.minosoft.gui.rendering.tint.WaterTintProvider import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection +import de.bixilon.minosoft.util.KUtil.minecraft import de.bixilon.minosoft.util.KUtil.toResourceLocation import java.util.* import kotlin.math.min @@ -128,6 +129,7 @@ class WaterFluid( } companion object : FluidFactory, MultiClassFactory { + override val resourceLocation = minecraft("water") private const val VELOCITY_MULTIPLIER = 0.014 override val ALIASES: Set = setOf("WaterFluid\$Flowing", "WaterFluid\$Still") diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/ItemRegistry.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/ItemRegistry.kt index 698d02037..4c6c9c0de 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/item/ItemRegistry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/ItemRegistry.kt @@ -13,7 +13,9 @@ package de.bixilon.minosoft.data.registries.item +import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.minosoft.data.registries.item.factory.ItemFactories +import de.bixilon.minosoft.data.registries.item.factory.ItemFactory import de.bixilon.minosoft.data.registries.item.items.Item import de.bixilon.minosoft.data.registries.item.items.PixLyzerItem import de.bixilon.minosoft.data.registries.registries.registry.MetaTypes @@ -38,4 +40,9 @@ class ItemRegistry( super.getOrNull(id) } } + + operator fun get(factory: ItemFactory): T? { + val item = this[factory.resourceLocation] ?: return null + return item.unsafeCast() + } } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/MinecraftItems.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/MinecraftItems.kt index c37b757c8..86ef3852d 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/item/MinecraftItems.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/MinecraftItems.kt @@ -19,9 +19,6 @@ import de.bixilon.minosoft.util.KUtil.toResourceLocation object MinecraftItems { val LEATHER_BOOTS = "minecraft:leather_boots".toResourceLocation() val LAPISLAZULI = "minecraft:lapis_lazuli".toResourceLocation() - val APPLE = "minecraft:apple".toResourceLocation() val EGG = "minecraft:egg".toResourceLocation() - val LAVA_BUCKET = "minecraft:lava_bucket".toResourceLocation() - val WATER_BUCKET = "minecraft:water_bucket".toResourceLocation() val COAL = "minecraft:coal".toResourceLocation() } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/factory/ItemFactories.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/factory/ItemFactories.kt index 5841ebb35..d09e67828 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/item/factory/ItemFactories.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/factory/ItemFactories.kt @@ -17,6 +17,8 @@ import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.factory.DefaultFactory import de.bixilon.minosoft.data.registries.integrated.IntegratedRegistry import de.bixilon.minosoft.data.registries.item.items.Item +import de.bixilon.minosoft.data.registries.item.items.bucket.BucketItem +import de.bixilon.minosoft.data.registries.item.items.bucket.FilledBucketItem import de.bixilon.minosoft.data.registries.item.items.food.AppleItem import de.bixilon.minosoft.data.registries.registries.Registries @@ -24,6 +26,10 @@ object ItemFactories : DefaultFactory>( AppleItem, AppleItem.GoldenAppleItem, AppleItem.EnchantedGoldenAppleItem, + + BucketItem.EmptyBucketItem, + FilledBucketItem.LavaBucketItem, + FilledBucketItem.WaterBucketItem, ), IntegratedRegistry { override fun build(name: ResourceLocation, registries: Registries): Item? { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/factory/PixLyzerItemFactories.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/factory/PixLyzerItemFactories.kt index 910b4f010..1278566ef 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/item/factory/PixLyzerItemFactories.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/factory/PixLyzerItemFactories.kt @@ -17,7 +17,6 @@ import de.bixilon.minosoft.data.registries.factory.clazz.DefaultClassFactory import de.bixilon.minosoft.data.registries.item.items.* import de.bixilon.minosoft.data.registries.item.items.armor.* import de.bixilon.minosoft.data.registries.item.items.block.* -import de.bixilon.minosoft.data.registries.item.items.bucket.BucketItem import de.bixilon.minosoft.data.registries.item.items.throwable.* import de.bixilon.minosoft.data.registries.item.items.throwable.potion.LingeringPotionItem import de.bixilon.minosoft.data.registries.item.items.throwable.potion.PotionItem @@ -33,7 +32,6 @@ object PixLyzerItemFactories : DefaultClassFactory>( ScaffoldingItem, SpawnEggItem, - BucketItem, DyeItem, HorseArmorItem, ShieldItem, diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/BucketItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/BucketItem.kt index c7379438d..6337c0335 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/BucketItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/BucketItem.kt @@ -13,29 +13,24 @@ package de.bixilon.minosoft.data.registries.item.items.bucket -import de.bixilon.kutil.cast.CastUtil.unsafeNull import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.data.registries.fluid.Fluid -import de.bixilon.minosoft.data.registries.item.factory.PixLyzerItemFactory -import de.bixilon.minosoft.data.registries.item.items.PixLyzerItem +import de.bixilon.minosoft.data.registries.item.factory.ItemFactory +import de.bixilon.minosoft.data.registries.item.items.Item +import de.bixilon.minosoft.data.registries.item.items.fluid.FluidDrainable import de.bixilon.minosoft.data.registries.registries.Registries +import de.bixilon.minosoft.util.KUtil.minecraft -open class BucketItem( +abstract class BucketItem( resourceLocation: ResourceLocation, - registries: Registries, - data: Map, -) : PixLyzerItem(resourceLocation, registries, data) { - val fluid: Fluid = unsafeNull() +) : Item(resourceLocation) { - init { - this::fluid.inject(data["bucked_fluid_type"]) - } + open class EmptyBucketItem(resourceLocation: ResourceLocation = this.resourceLocation) : BucketItem(resourceLocation), FluidDrainable { - companion object : PixLyzerItemFactory { + companion object : ItemFactory { + override val resourceLocation = minecraft("bucket") - override fun build(resourceLocation: ResourceLocation, registries: Registries, data: Map): BucketItem { - return BucketItem(resourceLocation, registries, data) + override fun build(registries: Registries) = EmptyBucketItem() } } } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/FilledBucketItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/FilledBucketItem.kt new file mode 100644 index 000000000..829d25352 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/items/bucket/FilledBucketItem.kt @@ -0,0 +1,54 @@ +/* + * Minosoft + * Copyright (C) 2020-2022 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.data.registries.item.items.bucket + +import de.bixilon.kutil.cast.CastUtil +import de.bixilon.minosoft.data.registries.ResourceLocation +import de.bixilon.minosoft.data.registries.fluid.Fluid +import de.bixilon.minosoft.data.registries.fluid.FluidFactory +import de.bixilon.minosoft.data.registries.fluid.lava.LavaFluid +import de.bixilon.minosoft.data.registries.fluid.water.WaterFluid +import de.bixilon.minosoft.data.registries.item.factory.ItemFactory +import de.bixilon.minosoft.data.registries.item.items.fluid.FluidItem +import de.bixilon.minosoft.data.registries.registries.Registries +import de.bixilon.minosoft.util.KUtil.minecraft + +open class FilledBucketItem( + resourceLocation: ResourceLocation, + factory: FluidFactory, +) : BucketItem(resourceLocation), FluidItem { + override val fluid: Fluid = CastUtil.unsafeNull() + + init { + this::fluid.inject(factory.resourceLocation) + } + + open class LavaBucketItem(resourceLocation: ResourceLocation = this.resourceLocation) : FilledBucketItem(resourceLocation, LavaFluid) { + + companion object : ItemFactory { + override val resourceLocation = minecraft("lava_bucket") + + override fun build(registries: Registries) = LavaBucketItem() + } + } + + open class WaterBucketItem(resourceLocation: ResourceLocation = this.resourceLocation) : FilledBucketItem(resourceLocation, WaterFluid) { + + companion object : ItemFactory { + override val resourceLocation = minecraft("water_bucket") + + override fun build(registries: Registries) = WaterBucketItem() + } + } +} diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidDrainable.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidDrainable.kt new file mode 100644 index 000000000..47df1384e --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidDrainable.kt @@ -0,0 +1,16 @@ +/* + * Minosoft + * Copyright (C) 2020-2022 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.data.registries.item.items.fluid + +interface FluidDrainable diff --git a/src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidItem.kt new file mode 100644 index 000000000..8cacbaf82 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/data/registries/item/items/fluid/FluidItem.kt @@ -0,0 +1,20 @@ +/* + * Minosoft + * Copyright (C) 2020-2022 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.data.registries.item.items.fluid + +import de.bixilon.minosoft.data.registries.fluid.Fluid + +interface FluidItem { + val fluid: Fluid +}