get building placing working properly
This commit is contained in:
@ -1,10 +1,7 @@
|
||||
package com.pobnellion.aoe.building
|
||||
|
||||
import com.pobnellion.aoe.ui.PlaceHint
|
||||
import com.pobnellion.aoe.ui.PlaceHintValidators
|
||||
import org.bukkit.Location
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.entity.Player
|
||||
|
||||
class Blacksmith(location: Location, variant: Int): Building(location, variant) {
|
||||
fun place(location: Location, sizeX: Float, sizeY: Float, sizeZ: Float, offsetY: Int) {
|
||||
|
||||
@ -3,13 +3,14 @@ package com.pobnellion.aoe.building
|
||||
import com.pobnellion.aoe.Aoe
|
||||
import com.pobnellion.aoe.ui.PlaceHintValidators
|
||||
import com.sk89q.worldedit.WorldEdit
|
||||
import com.sk89q.worldedit.bukkit.BukkitAdapter
|
||||
import com.sk89q.worldedit.extent.clipboard.Clipboard
|
||||
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats
|
||||
import com.sk89q.worldedit.function.operation.Operation
|
||||
import com.sk89q.worldedit.function.operation.Operations
|
||||
import com.sk89q.worldedit.math.BlockVector3
|
||||
import com.sk89q.worldedit.session.ClipboardHolder
|
||||
import com.sk89q.worldedit.world.World
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Location
|
||||
import java.io.File
|
||||
import java.io.FileInputStream
|
||||
@ -17,8 +18,8 @@ import java.io.FileInputStream
|
||||
|
||||
class TownCenter(location: Location, variant: Int): Building(location, variant) {
|
||||
companion object Info: BuildingInfo {
|
||||
override val buildingType: BuildingType = BuildingType.TOWN_CENTER
|
||||
override val schematicNames: List<String> = listOf("plains_towncenter")
|
||||
override val buildingType = BuildingType.TOWN_CENTER
|
||||
override val schematicNames = listOf("plains_towncenter")
|
||||
|
||||
override fun validate(location: Location): Boolean {
|
||||
return PlaceHintValidators.allReplaceable(location, 10f, 10f, 10f, -2)
|
||||
@ -38,12 +39,12 @@ class TownCenter(location: Location, variant: Int): Building(location, variant)
|
||||
clipboard = reader.read()
|
||||
}
|
||||
|
||||
clipboard.origin = BlockVector3.ZERO
|
||||
val offset = clipboard.region.minimumPoint.subtract(clipboard.origin)
|
||||
|
||||
WorldEdit.getInstance().newEditSession(location.world as World).use { editSession ->
|
||||
WorldEdit.getInstance().newEditSession(BukkitAdapter.adapt(location.world)).use { editSession ->
|
||||
val operation: Operation = ClipboardHolder(clipboard)
|
||||
.createPaste(editSession)
|
||||
.to(BlockVector3.at(location.x, location.y, location.z)) // configure here
|
||||
.to(BlockVector3.at(location.x, location.y, location.z).subtract(offset)) // configure here
|
||||
.build()
|
||||
Operations.complete(operation)
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ import com.pobnellion.aoe.building.TownCenter
|
||||
import org.bukkit.entity.Player
|
||||
|
||||
class Plains(players: List<Player>) : Team(players) {
|
||||
override val name: String = "Plains"
|
||||
override fun name(): String = "Plains"
|
||||
|
||||
override fun getBuildingInfo(type: BuildingType): BuildingInfo {
|
||||
return when (type) {
|
||||
|
||||
@ -12,11 +12,11 @@ abstract class Team(val players: List<Player>) {
|
||||
private val buildings: MutableList<Building> = mutableListOf()
|
||||
|
||||
init {
|
||||
players.forEach { player -> player.sendMessage("Joined team $name") }
|
||||
players.forEach { player -> player.sendMessage("Joined team ${name()}") }
|
||||
}
|
||||
|
||||
protected abstract fun getBuildingInfo(type: BuildingType): BuildingInfo
|
||||
protected abstract val name: String
|
||||
protected abstract fun name(): String
|
||||
|
||||
fun addBuilding(location: Location, building: BuildingInfo, variant: Int) {
|
||||
buildings.add(building.create(location, variant))
|
||||
|
||||
@ -10,7 +10,6 @@ import org.bukkit.Location
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.util.Vector
|
||||
import org.joml.Vector3f
|
||||
import java.io.File
|
||||
import java.io.FileInputStream
|
||||
import kotlin.math.floor
|
||||
|
||||
@ -50,8 +49,7 @@ class BuildingPlaceHint(
|
||||
|
||||
this.offset = Vector(
|
||||
-floor(clipboard.dimensions.x() / 2.0),
|
||||
// clipboard.minY.toDouble(),
|
||||
0.0,
|
||||
clipboard.minY.toDouble() + 1,
|
||||
-floor(clipboard.dimensions.z() / 2.0))
|
||||
}
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@ import com.comphenix.protocol.events.PacketContainer
|
||||
import com.comphenix.protocol.wrappers.*
|
||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher.Registry
|
||||
import com.destroystokyo.paper.MaterialSetTag
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Location
|
||||
import org.bukkit.block.data.BlockData
|
||||
import org.bukkit.entity.EntityType
|
||||
|
||||
Reference in New Issue
Block a user