Archived
0

Add interactable api

This commit is contained in:
Dico
2018-08-17 10:59:19 +01:00
parent 5bd0970c54
commit 48e1d86fcb
4 changed files with 166 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import io.dico.dicore.Formatting
import io.dico.parcels2.*
import io.dico.parcels2.util.Vec2i
import io.dico.parcels2.util.alsoIfTrue
import org.bukkit.Material
import org.bukkit.OfflinePlayer
import org.joda.time.DateTime
import kotlin.reflect.KProperty
@@ -90,6 +91,29 @@ class ParcelImpl(override val world: ParcelWorld,
data.allowInteractInventory = value
}
private var _interactableConfig: InteractableConfiguration? = null
override var interactableConfig: InteractableConfiguration
get() {
if (_interactableConfig == null) {
_interactableConfig = object : InteractableConfiguration {
override fun isInteractable(material: Material): Boolean = data.interactableConfig.isInteractable(material)
override fun isInteractable(clazz: Interactables): Boolean = data.interactableConfig.isInteractable(clazz)
override fun setInteractable(clazz: Interactables, interactable: Boolean): Boolean = data.interactableConfig.setInteractable(clazz, interactable).alsoIfTrue {
// TODO update storage
}
override fun clear(): Boolean = data.interactableConfig.clear().alsoIfTrue {
// TODO update storage
}
}
}
return _interactableConfig!!
}
set(value) {
data.interactableConfig.copyFrom(value)
// TODO update storage
}
}