diff --git a/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityFactory.kt b/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityFactory.kt index e5cb24080..88663d3a1 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityFactory.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityFactory.kt @@ -13,11 +13,9 @@ package de.bixilon.minosoft.data.entities.block -import de.bixilon.minosoft.data.mappings.ResourceLocation +import de.bixilon.minosoft.data.mappings.CompanionResourceLocation import de.bixilon.minosoft.protocol.network.connection.PlayConnection -interface BlockEntityFactory { - val RESOURCE_LOCATION: ResourceLocation - +interface BlockEntityFactory : CompanionResourceLocation { fun build(connection: PlayConnection): T } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/CompanionResourceLocation.kt b/src/main/java/de/bixilon/minosoft/data/mappings/CompanionResourceLocation.kt new file mode 100644 index 000000000..0a31687f1 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/data/mappings/CompanionResourceLocation.kt @@ -0,0 +1,21 @@ +/* + * Minosoft + * Copyright (C) 2021 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.mappings + +interface CompanionResourceLocation : ResourceLocationAble { + val RESOURCE_LOCATION: ResourceLocation + + override val resourceLocation: ResourceLocation + get() = RESOURCE_LOCATION +} diff --git a/src/main/java/de/bixilon/minosoft/util/ResourceLocationAble.kt b/src/main/java/de/bixilon/minosoft/data/mappings/ResourceLocationAble.kt similarity index 85% rename from src/main/java/de/bixilon/minosoft/util/ResourceLocationAble.kt rename to src/main/java/de/bixilon/minosoft/data/mappings/ResourceLocationAble.kt index 0d38767f2..c60e9af25 100644 --- a/src/main/java/de/bixilon/minosoft/util/ResourceLocationAble.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/ResourceLocationAble.kt @@ -11,10 +11,8 @@ * This software is not affiliated with Mojang AB, the original developer of Minecraft. */ -package de.bixilon.minosoft.util - -import de.bixilon.minosoft.data.mappings.ResourceLocation +package de.bixilon.minosoft.data.mappings interface ResourceLocationAble { - val RESOURCE_LOCATION: ResourceLocation + val resourceLocation: ResourceLocation } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityFactory.kt b/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityFactory.kt index dfa7f681b..87cc6591d 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityFactory.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityFactory.kt @@ -16,12 +16,12 @@ package de.bixilon.minosoft.data.mappings.entities import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.data.entities.meta.EntityMetaData +import de.bixilon.minosoft.data.mappings.CompanionResourceLocation import de.bixilon.minosoft.data.mappings.ResourceLocation import de.bixilon.minosoft.protocol.network.connection.PlayConnection -import de.bixilon.minosoft.util.ResourceLocationAble import glm_.vec3.Vec3 -interface EntityFactory : ResourceLocationAble { +interface EntityFactory : CompanionResourceLocation { /** * Tweaks the entity resource location. Used for pre flattening versions. diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/handlers/GameEventHandler.kt b/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/handlers/GameEventHandler.kt index 49eabf35a..13af6cef8 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/handlers/GameEventHandler.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/handlers/GameEventHandler.kt @@ -13,11 +13,9 @@ package de.bixilon.minosoft.data.mappings.other.game.event.handlers -import de.bixilon.minosoft.data.mappings.ResourceLocation +import de.bixilon.minosoft.data.mappings.CompanionResourceLocation import de.bixilon.minosoft.protocol.network.connection.PlayConnection -interface GameEventHandler { - val RESOURCE_LOCATION: ResourceLocation - +interface GameEventHandler : CompanionResourceLocation { fun handle(data: Float, connection: PlayConnection) } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/registry/RegistryItem.kt b/src/main/java/de/bixilon/minosoft/data/mappings/registry/RegistryItem.kt index a34e82dbc..23bffcac4 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/registry/RegistryItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/registry/RegistryItem.kt @@ -13,11 +13,10 @@ package de.bixilon.minosoft.data.mappings.registry -import de.bixilon.minosoft.data.mappings.ResourceLocation +import de.bixilon.minosoft.data.mappings.ResourceLocationAble import de.bixilon.minosoft.data.mappings.versions.VersionMapping -interface RegistryItem { - val resourceLocation: ResourceLocation +interface RegistryItem : ResourceLocationAble { fun postInit(versionMapping: VersionMapping) {} } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/RenderBuilder.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/RenderBuilder.kt index 2de8c29f6..45f29e5fd 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/RenderBuilder.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/RenderBuilder.kt @@ -13,10 +13,10 @@ package de.bixilon.minosoft.gui.rendering +import de.bixilon.minosoft.data.mappings.CompanionResourceLocation import de.bixilon.minosoft.protocol.network.connection.PlayConnection -import de.bixilon.minosoft.util.ResourceLocationAble -interface RenderBuilder : ResourceLocationAble { +interface RenderBuilder : CompanionResourceLocation { fun build(connection: PlayConnection, renderWindow: RenderWindow): Renderer } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderBuilder.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderBuilder.kt index ad08a6c04..401df527e 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderBuilder.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/HUDRenderBuilder.kt @@ -13,11 +13,10 @@ package de.bixilon.minosoft.gui.rendering.hud -import de.bixilon.minosoft.data.mappings.ResourceLocation +import de.bixilon.minosoft.data.mappings.CompanionResourceLocation import de.bixilon.minosoft.gui.rendering.hud.nodes.HUDElement -interface HUDRenderBuilder { - val RESOURCE_LOCATION: ResourceLocation +interface HUDRenderBuilder : CompanionResourceLocation { val DEFAULT_PROPERTIES: HUDElementProperties fun build(hudRenderer: HUDRenderer): T