Make glass destroyable by guns
This commit is contained in:
parent
ce133148f7
commit
983e4b32a5
4 changed files with 29 additions and 8 deletions
|
@ -15,7 +15,6 @@ repositories {
|
|||
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
||||
maven("https://oss.sonatype.org/content/repositories/snapshots")
|
||||
maven("https://oss.sonatype.org/content/repositories/central")
|
||||
maven("https://repo.dmulloy2.net/nexus/repository/public/")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -39,9 +38,6 @@ tasks.withType<ShadowJar> {
|
|||
}
|
||||
|
||||
archiveFileName.set("TTT.jar")
|
||||
dependencies {
|
||||
exclude(dependency("org.spigotmc:spigot-api"))
|
||||
}
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
|
|
@ -12,6 +12,8 @@ import de.moritzruth.spigot_ttt.game.players.Role
|
|||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.call
|
||||
import org.bukkit.GameRule
|
||||
import org.bukkit.Location
|
||||
import org.bukkit.Material
|
||||
import kotlin.random.Random
|
||||
|
||||
object GameManager {
|
||||
|
@ -23,6 +25,8 @@ object GameManager {
|
|||
|
||||
val world = plugin.server.getWorld("world")!!
|
||||
|
||||
val destroyedBlocks = mutableMapOf<Location, Material>()
|
||||
|
||||
fun initialize() {
|
||||
adjustWorld()
|
||||
|
||||
|
@ -79,6 +83,11 @@ object GameManager {
|
|||
CorpseManager.destroyAll()
|
||||
ItemManager.reset()
|
||||
|
||||
destroyedBlocks.forEach { (location, material) ->
|
||||
world.getBlockAt(location).type = material
|
||||
}
|
||||
destroyedBlocks.clear()
|
||||
|
||||
world.run {
|
||||
setStorm(false)
|
||||
time = 0
|
||||
|
|
|
@ -5,8 +5,8 @@ import de.moritzruth.spigot_ttt.TTTItemListener
|
|||
import de.moritzruth.spigot_ttt.game.GameEndEvent
|
||||
import de.moritzruth.spigot_ttt.game.GameManager
|
||||
import de.moritzruth.spigot_ttt.game.GamePhase
|
||||
import de.moritzruth.spigot_ttt.game.players.*
|
||||
import de.moritzruth.spigot_ttt.game.items.*
|
||||
import de.moritzruth.spigot_ttt.game.players.*
|
||||
import de.moritzruth.spigot_ttt.utils.applyMeta
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import de.moritzruth.spigot_ttt.utils.startItemDamageProgress
|
||||
|
@ -88,6 +88,22 @@ abstract class Gun(
|
|||
) { it !== tttPlayer.player }
|
||||
|
||||
if (rayTraceResult !== null) {
|
||||
val hitBlock = rayTraceResult.hitBlock
|
||||
|
||||
if (hitBlock != null) {
|
||||
if (hitBlock.type.toString().contains("glass", true)) {
|
||||
GameManager.destroyedBlocks[hitBlock.location] = hitBlock.type
|
||||
hitBlock.type = Material.AIR
|
||||
GameManager.world.playSound(
|
||||
hitBlock.location,
|
||||
Sound.BLOCK_GLASS_BREAK,
|
||||
SoundCategory.BLOCKS,
|
||||
1F,
|
||||
1F
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
val entity = rayTraceResult.hitEntity
|
||||
|
||||
if (entity is Player) {
|
||||
|
|
|
@ -2,9 +2,9 @@ package de.moritzruth.spigot_ttt.game.items.impl.weapons.guns
|
|||
|
||||
import de.moritzruth.spigot_ttt.Resourcepack
|
||||
import de.moritzruth.spigot_ttt.game.GameManager
|
||||
import de.moritzruth.spigot_ttt.game.players.TTTPlayer
|
||||
import de.moritzruth.spigot_ttt.game.items.Spawning
|
||||
import de.moritzruth.spigot_ttt.game.items.TTTItem
|
||||
import de.moritzruth.spigot_ttt.game.players.TTTPlayer
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.heartsToHealth
|
||||
import de.moritzruth.spigot_ttt.utils.secondsToTicks
|
||||
|
@ -38,8 +38,8 @@ object Shotgun: Gun(
|
|||
val distance = tttPlayer.player.location.distance(receiver.location)
|
||||
|
||||
return when {
|
||||
distance <= 1 -> heartsToHealth(8.0)
|
||||
distance >= 14 -> 0.0
|
||||
distance <= 1 -> heartsToHealth(10.0)
|
||||
distance >= 14 -> 0.5
|
||||
distance > 8 -> heartsToHealth(1.5)
|
||||
else -> heartsToHealth(damage)
|
||||
}
|
||||
|
|
Reference in a new issue