abstract with ResourceLocationAble

This commit is contained in:
Bixilon 2021-05-07 18:59:37 +02:00
parent 8e0400b08e
commit ff7dfe9cb0
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
8 changed files with 35 additions and 22 deletions

View File

@ -13,11 +13,9 @@
package de.bixilon.minosoft.data.entities.block 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 import de.bixilon.minosoft.protocol.network.connection.PlayConnection
interface BlockEntityFactory<T : BlockEntity> { interface BlockEntityFactory<T : BlockEntity> : CompanionResourceLocation {
val RESOURCE_LOCATION: ResourceLocation
fun build(connection: PlayConnection): T fun build(connection: PlayConnection): T
} }

View File

@ -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 <https://www.gnu.org/licenses/>.
*
* 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
}

View File

@ -11,10 +11,8 @@
* This software is not affiliated with Mojang AB, the original developer of Minecraft. * This software is not affiliated with Mojang AB, the original developer of Minecraft.
*/ */
package de.bixilon.minosoft.util package de.bixilon.minosoft.data.mappings
import de.bixilon.minosoft.data.mappings.ResourceLocation
interface ResourceLocationAble { interface ResourceLocationAble {
val RESOURCE_LOCATION: ResourceLocation val resourceLocation: ResourceLocation
} }

View File

@ -16,12 +16,12 @@ package de.bixilon.minosoft.data.mappings.entities
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.data.entities.entities.Entity
import de.bixilon.minosoft.data.entities.meta.EntityMetaData 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.data.mappings.ResourceLocation
import de.bixilon.minosoft.protocol.network.connection.PlayConnection import de.bixilon.minosoft.protocol.network.connection.PlayConnection
import de.bixilon.minosoft.util.ResourceLocationAble
import glm_.vec3.Vec3 import glm_.vec3.Vec3
interface EntityFactory<T : Entity> : ResourceLocationAble { interface EntityFactory<T : Entity> : CompanionResourceLocation {
/** /**
* Tweaks the entity resource location. Used for pre flattening versions. * Tweaks the entity resource location. Used for pre flattening versions.

View File

@ -13,11 +13,9 @@
package de.bixilon.minosoft.data.mappings.other.game.event.handlers 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 import de.bixilon.minosoft.protocol.network.connection.PlayConnection
interface GameEventHandler { interface GameEventHandler : CompanionResourceLocation {
val RESOURCE_LOCATION: ResourceLocation
fun handle(data: Float, connection: PlayConnection) fun handle(data: Float, connection: PlayConnection)
} }

View File

@ -13,11 +13,10 @@
package de.bixilon.minosoft.data.mappings.registry 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 import de.bixilon.minosoft.data.mappings.versions.VersionMapping
interface RegistryItem { interface RegistryItem : ResourceLocationAble {
val resourceLocation: ResourceLocation
fun postInit(versionMapping: VersionMapping) {} fun postInit(versionMapping: VersionMapping) {}
} }

View File

@ -13,10 +13,10 @@
package de.bixilon.minosoft.gui.rendering 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.protocol.network.connection.PlayConnection
import de.bixilon.minosoft.util.ResourceLocationAble
interface RenderBuilder : ResourceLocationAble { interface RenderBuilder : CompanionResourceLocation {
fun build(connection: PlayConnection, renderWindow: RenderWindow): Renderer fun build(connection: PlayConnection, renderWindow: RenderWindow): Renderer
} }

View File

@ -13,11 +13,10 @@
package de.bixilon.minosoft.gui.rendering.hud 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 import de.bixilon.minosoft.gui.rendering.hud.nodes.HUDElement
interface HUDRenderBuilder<T : HUDElement> { interface HUDRenderBuilder<T : HUDElement> : CompanionResourceLocation {
val RESOURCE_LOCATION: ResourceLocation
val DEFAULT_PROPERTIES: HUDElementProperties val DEFAULT_PROPERTIES: HUDElementProperties
fun build(hudRenderer: HUDRenderer): T fun build(hudRenderer: HUDRenderer): T