1
0
Fork 0

Make glass destroyable by guns

This commit is contained in:
Moritz Ruth 2020-06-13 14:39:22 +02:00
parent ce133148f7
commit 983e4b32a5
No known key found for this signature in database
GPG key ID: AFD57E23E753841B
4 changed files with 29 additions and 8 deletions

View file

@ -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 {

View file

@ -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

View file

@ -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) {

View file

@ -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)
}