created "copy" argument for ManageEmitters command
This commit is contained in:
@@ -2,7 +2,7 @@ package com.bytedice.bde_particles
|
|||||||
|
|
||||||
import com.bytedice.bde_particles.commands.GiveEmitterTool
|
import com.bytedice.bde_particles.commands.GiveEmitterTool
|
||||||
import com.bytedice.bde_particles.commands.ManageEmitters
|
import com.bytedice.bde_particles.commands.ManageEmitters
|
||||||
import com.bytedice.bde_particles.items.getToolDetails
|
import com.bytedice.bde_particles.items.ParticleEmitterTool
|
||||||
import com.bytedice.bde_particles.math.raycastFromPlayer
|
import com.bytedice.bde_particles.math.raycastFromPlayer
|
||||||
import com.bytedice.bde_particles.particle.*
|
import com.bytedice.bde_particles.particle.*
|
||||||
import net.fabricmc.api.ModInitializer
|
import net.fabricmc.api.ModInitializer
|
||||||
@@ -75,7 +75,7 @@ fun tick() {
|
|||||||
|
|
||||||
fun onRightClick(player: PlayerEntity, world: ServerWorld, hand: Hand) : TypedActionResult<ItemStack> {
|
fun onRightClick(player: PlayerEntity, world: ServerWorld, hand: Hand) : TypedActionResult<ItemStack> {
|
||||||
val handItem = player.getStackInHand(hand)
|
val handItem = player.getStackInHand(hand)
|
||||||
val (isEmitterTool, emitterId) = getToolDetails(handItem)
|
val (isEmitterTool, emitterId) = ParticleEmitterTool.getToolDetails(handItem)
|
||||||
val hitResult = raycastFromPlayer(player as ServerPlayerEntity, 50.0)
|
val hitResult = raycastFromPlayer(player as ServerPlayerEntity, 50.0)
|
||||||
val emitterParams = getParticleEmitterParams(emitterId)
|
val emitterParams = getParticleEmitterParams(emitterId)
|
||||||
|
|
||||||
@@ -91,4 +91,41 @@ fun onRightClick(player: PlayerEntity, world: ServerWorld, hand: Hand) : TypedAc
|
|||||||
ALL_PARTICLE_EMITTERS += emitter
|
ALL_PARTICLE_EMITTERS += emitter
|
||||||
|
|
||||||
return TypedActionResult(ActionResult.PASS, handItem)
|
return TypedActionResult(ActionResult.PASS, handItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun emitterParamsToJSON(params: ParticleEmitterParams) : Map<String, Any> {
|
||||||
|
val allParticleParamsJSON: MutableList<Map<String, Any?>> = mutableListOf()
|
||||||
|
|
||||||
|
for (particle in params.particleTypes) {
|
||||||
|
val particleParamsJSON = mapOf(
|
||||||
|
"shape" to particle.shape,
|
||||||
|
"blockCurve" to particle.blockCurve,
|
||||||
|
"rotRandom" to particle.rotRandom,
|
||||||
|
"rotVelRandom" to particle.rotVelRandom,
|
||||||
|
"rotVelCurve" to particle.rotVelCurve,
|
||||||
|
"sizeRandom" to particle.sizeRandom,
|
||||||
|
"uniformSize" to particle.uniformSize,
|
||||||
|
"sizeCurve" to particle.sizeCurve,
|
||||||
|
"velRandom" to particle.velRandom,
|
||||||
|
"forceFields" to particle.forceFields,
|
||||||
|
"gravity" to particle.gravity,
|
||||||
|
"drag" to particle.drag,
|
||||||
|
"minVel" to particle.minVel,
|
||||||
|
"lifeTime" to particle.lifeTime
|
||||||
|
)
|
||||||
|
|
||||||
|
allParticleParamsJSON.add(particleParamsJSON)
|
||||||
|
}
|
||||||
|
|
||||||
|
val emitterParamsJSON = mapOf(
|
||||||
|
"maxCount" to params.maxCount,
|
||||||
|
"spawnsPerTick" to params.spawnsPerTick,
|
||||||
|
"loopDur" to params.loopDur,
|
||||||
|
"loopDelay" to params.loopDelay,
|
||||||
|
"loopCount" to params.loopCount,
|
||||||
|
"particleTypes" to allParticleParamsJSON
|
||||||
|
)
|
||||||
|
|
||||||
|
return emitterParamsJSON
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.bytedice.bde_particles.commands
|
package com.bytedice.bde_particles.commands
|
||||||
|
|
||||||
import com.bytedice.bde_particles.items.makeData
|
import com.bytedice.bde_particles.items.ParticleEmitterTool
|
||||||
import com.bytedice.bde_particles.particle.emitterIdRegister
|
import com.bytedice.bde_particles.particle.emitterIdRegister
|
||||||
import com.mojang.brigadier.Command
|
import com.mojang.brigadier.Command
|
||||||
import com.mojang.brigadier.CommandDispatcher
|
import com.mojang.brigadier.CommandDispatcher
|
||||||
@@ -44,10 +44,10 @@ object GiveEmitterTool {
|
|||||||
val item = ItemStackArgumentType.getItemStackArgument(context, "Item Type")
|
val item = ItemStackArgumentType.getItemStackArgument(context, "Item Type")
|
||||||
val emitterId = StringArgumentType.getString(context, "Emitter ID")
|
val emitterId = StringArgumentType.getString(context, "Emitter ID")
|
||||||
|
|
||||||
val feedback = Text.literal("BPS - You like fancy particles. Don't you?\nBPS - gave particle emitter, bound to ID: \"${emitterId}\"")
|
val feedback = Text.literal("BPS - You like fancy particles. Don't you?\nBPS - gave particle emitter, bound to ID: \"${emitterId}\".")
|
||||||
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)).withItalic(true))
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)).withItalic(true))
|
||||||
|
|
||||||
context.source.player?.inventory?.insertStack(makeData(item.item, name, emitterId))
|
context.source.player?.inventory?.insertStack(ParticleEmitterTool.makeData(item.item, name, emitterId))
|
||||||
context.source.sendFeedback({ feedback }, false)
|
context.source.sendFeedback({ feedback }, false)
|
||||||
Command.SINGLE_SUCCESS
|
Command.SINGLE_SUCCESS
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
package com.bytedice.bde_particles.commands
|
package com.bytedice.bde_particles.commands
|
||||||
|
|
||||||
import com.bytedice.bde_particles.particle.addToEmitterRegister
|
import com.bytedice.bde_particles.emitterParamsToJSON
|
||||||
import com.bytedice.bde_particles.particle.emitterIdRegister
|
import com.bytedice.bde_particles.particle.*
|
||||||
import com.bytedice.bde_particles.particle.getParticleEmitterParams
|
|
||||||
import com.mojang.brigadier.Command
|
import com.mojang.brigadier.Command
|
||||||
import com.mojang.brigadier.CommandDispatcher
|
import com.mojang.brigadier.CommandDispatcher
|
||||||
import com.mojang.brigadier.arguments.StringArgumentType
|
import com.mojang.brigadier.arguments.StringArgumentType
|
||||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder
|
import com.mojang.brigadier.builder.LiteralArgumentBuilder
|
||||||
import com.mojang.brigadier.suggestion.SuggestionsBuilder
|
import com.mojang.brigadier.suggestion.SuggestionsBuilder
|
||||||
|
import net.minecraft.component.DataComponentTypes
|
||||||
|
import net.minecraft.component.type.LoreComponent
|
||||||
|
import net.minecraft.component.type.NbtComponent
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.item.Items
|
||||||
|
import net.minecraft.nbt.NbtCompound
|
||||||
import net.minecraft.server.command.CommandManager
|
import net.minecraft.server.command.CommandManager
|
||||||
import net.minecraft.server.command.ServerCommandSource
|
import net.minecraft.server.command.ServerCommandSource
|
||||||
import net.minecraft.text.MutableText
|
import net.minecraft.text.MutableText
|
||||||
@@ -15,6 +20,8 @@ import net.minecraft.text.Style
|
|||||||
import net.minecraft.text.Text
|
import net.minecraft.text.Text
|
||||||
import net.minecraft.text.TextColor
|
import net.minecraft.text.TextColor
|
||||||
import java.awt.Color
|
import java.awt.Color
|
||||||
|
import java.awt.TextComponent
|
||||||
|
import java.io.Serializable
|
||||||
import java.util.concurrent.CompletableFuture
|
import java.util.concurrent.CompletableFuture
|
||||||
|
|
||||||
|
|
||||||
@@ -29,7 +36,7 @@ import java.util.concurrent.CompletableFuture
|
|||||||
// [emitter id]
|
// [emitter id]
|
||||||
// output -> removes the particle with that id
|
// output -> removes the particle with that id
|
||||||
|
|
||||||
// config
|
// config // TODO
|
||||||
// [emitter id]
|
// [emitter id]
|
||||||
// <[particle index] / EMITTER>
|
// <[particle index] / EMITTER>
|
||||||
|
|
||||||
@@ -47,6 +54,7 @@ import java.util.concurrent.CompletableFuture
|
|||||||
// output -> all registered emitters
|
// output -> all registered emitters
|
||||||
|
|
||||||
// copy
|
// copy
|
||||||
|
// [emitter id]
|
||||||
// output -> give player a command block with the particle params (should be paste-able in kotlin)
|
// output -> give player a command block with the particle params (should be paste-able in kotlin)
|
||||||
|
|
||||||
|
|
||||||
@@ -93,21 +101,25 @@ fun argCreate() : LiteralArgumentBuilder<ServerCommandSource> {
|
|||||||
val emitterPresetVal = StringArgumentType.getString(context, "Registered Emitter ID") ?: "DEFAULT"
|
val emitterPresetVal = StringArgumentType.getString(context, "Registered Emitter ID") ?: "DEFAULT"
|
||||||
val emitterPresetParams = getParticleEmitterParams(emitterPresetVal)
|
val emitterPresetParams = getParticleEmitterParams(emitterPresetVal)
|
||||||
|
|
||||||
var newEmitterId = "NULL_EMITTER_ID"
|
var newEmitterId = "NULL"
|
||||||
if (emitterPresetParams != null) {
|
val emitterRegisterData: Pair<String, Boolean>
|
||||||
newEmitterId = addToEmitterRegister(emitterIdVal, emitterPresetParams).second
|
|
||||||
}
|
|
||||||
|
|
||||||
val feedback = if (newEmitterId in allEmitterIds) {
|
if (emitterPresetParams != null) {
|
||||||
Text.literal("BPS - Emitter ID \"$newEmitterId\" already exists!\n" +
|
emitterRegisterData = addToEmitterRegister(emitterIdVal, emitterPresetParams)
|
||||||
"BPS - Use \"/ManageEmitters list\" to view all Emitter ID's.")
|
newEmitterId = emitterRegisterData.first
|
||||||
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(255, 0, 0).rgb)))
|
|
||||||
}
|
}
|
||||||
else {
|
else { emitterRegisterData = Pair("NULL", false) }
|
||||||
Text.literal("BPS - created particle emitter with ID \"$newEmitterId\".\n" +
|
|
||||||
|
val feedback = if (emitterRegisterData.second) {
|
||||||
|
Text.literal("BPS - Created particle emitter with ID \"$newEmitterId\".\n" +
|
||||||
"BPS - This emitter will be removed on server restart! Use \"/ManageEmitters copy\" to save the data to your clipboard!")
|
"BPS - This emitter will be removed on server restart! Use \"/ManageEmitters copy\" to save the data to your clipboard!")
|
||||||
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)))
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)))
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
Text.literal("BPS - Emitter ID \"$newEmitterId\" already exists!\n" +
|
||||||
|
"BPS - Use \"/ManageEmitters list\" to view all Emitter ID's.")
|
||||||
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(200, 0, 0).rgb)))
|
||||||
|
}
|
||||||
|
|
||||||
context.source.sendFeedback( { feedback }, false )
|
context.source.sendFeedback( { feedback }, false )
|
||||||
Command.SINGLE_SUCCESS
|
Command.SINGLE_SUCCESS
|
||||||
@@ -119,11 +131,26 @@ fun argCreate() : LiteralArgumentBuilder<ServerCommandSource> {
|
|||||||
|
|
||||||
fun argRemove() : LiteralArgumentBuilder<ServerCommandSource> {
|
fun argRemove() : LiteralArgumentBuilder<ServerCommandSource> {
|
||||||
return CommandManager.literal("remove")
|
return CommandManager.literal("remove")
|
||||||
.executes { context ->
|
.then(
|
||||||
val feedback = Text.literal("remove")
|
emitterIdSuggestion
|
||||||
context.source.sendFeedback({ feedback }, false)
|
.executes { context ->
|
||||||
Command.SINGLE_SUCCESS
|
val emitterIdVal = StringArgumentType.getString(context, "Registered Emitter ID") ?: "NULL"
|
||||||
}
|
val isRemoved = removeFromEmitterRegister(emitterIdVal)
|
||||||
|
|
||||||
|
val feedback = if (isRemoved) {
|
||||||
|
Text.literal("BPS - Removed particle emitter with ID \"$emitterIdVal\".")
|
||||||
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)))
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Text.literal("BPS - Emitter ID \"$emitterIdVal\" doesn't exist or is reserved!\n" +
|
||||||
|
"BPS - Use \"/ManageEmitters list\" to view all Emitter ID's.")
|
||||||
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(200, 0, 0).rgb)))
|
||||||
|
}
|
||||||
|
|
||||||
|
context.source.sendFeedback( { feedback }, false )
|
||||||
|
Command.SINGLE_SUCCESS
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -140,7 +167,16 @@ fun argConfig() : LiteralArgumentBuilder<ServerCommandSource> {
|
|||||||
fun argList() : LiteralArgumentBuilder<ServerCommandSource> {
|
fun argList() : LiteralArgumentBuilder<ServerCommandSource> {
|
||||||
return CommandManager.literal("list")
|
return CommandManager.literal("list")
|
||||||
.executes { context ->
|
.executes { context ->
|
||||||
val feedback = Text.literal("remove")
|
val allEmittersString = allEmitterIds.joinToString(", ")
|
||||||
|
|
||||||
|
val feedbackStatic = Text.literal("BPS - List of all available Emitter IDs:\n")
|
||||||
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)))
|
||||||
|
|
||||||
|
val feedbackVar = Text.literal(allEmittersString)
|
||||||
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(255, 255, 255).rgb)))
|
||||||
|
|
||||||
|
val feedback = feedbackStatic.append(feedbackVar)
|
||||||
|
|
||||||
context.source.sendFeedback({ feedback }, false)
|
context.source.sendFeedback({ feedback }, false)
|
||||||
Command.SINGLE_SUCCESS
|
Command.SINGLE_SUCCESS
|
||||||
}
|
}
|
||||||
@@ -149,16 +185,57 @@ fun argList() : LiteralArgumentBuilder<ServerCommandSource> {
|
|||||||
|
|
||||||
fun argCopy() : LiteralArgumentBuilder<ServerCommandSource> {
|
fun argCopy() : LiteralArgumentBuilder<ServerCommandSource> {
|
||||||
return CommandManager.literal("copy")
|
return CommandManager.literal("copy")
|
||||||
.executes { context ->
|
.then(
|
||||||
val feedback = Text.literal("remove")
|
emitterIdSuggestion
|
||||||
context.source.sendFeedback({ feedback }, false)
|
.executes { context ->
|
||||||
Command.SINGLE_SUCCESS
|
val emitterIdVal = StringArgumentType.getString(context, "Registered Emitter ID")
|
||||||
}
|
val commandBlock = makeCommandBlock(
|
||||||
|
emitterParamsToJSON(
|
||||||
|
getParticleEmitterParams(
|
||||||
|
emitterIdVal
|
||||||
|
)!!
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
val feedback: MutableText
|
||||||
|
|
||||||
|
if (context.source.server.areCommandBlocksEnabled()) {
|
||||||
|
feedback = Text.literal("BPS - Copied Emitter data as a JSON. Place down the command block and copy it to your clipboard to use the value.")
|
||||||
|
.setStyle(Style.EMPTY.withColor(Color(0, 200, 0).rgb))
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
feedback = Text.literal("BPS - Could not copy Emitter data: Command blocks aren't enabled. Go to server.properties and enable command blocks before retrying.")
|
||||||
|
.setStyle(Style.EMPTY.withColor(Color(200, 0, 0).rgb))
|
||||||
|
|
||||||
|
Command.SINGLE_SUCCESS
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
context.source.player?.inventory?.insertStack(commandBlock)
|
||||||
|
context.source.sendFeedback({ feedback }, false)
|
||||||
|
Command.SINGLE_SUCCESS
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
fun makeCommandBlock(emitterData: Map<String, Any>): ItemStack {
|
||||||
fun argCopyPasta() : LiteralArgumentBuilder<ServerCommandSource> {
|
val i = ItemStack(Items.COMMAND_BLOCK)
|
||||||
return
|
|
||||||
}
|
val nbt = NbtCompound()
|
||||||
*/
|
nbt.putString("Command", emitterData.toString())
|
||||||
|
nbt.putString("id", "minecraft:command_block")
|
||||||
|
nbt.putByte("powered", 0)
|
||||||
|
nbt.putByte("auto", 0)
|
||||||
|
nbt.putByte("UpdateLastExecution", 1)
|
||||||
|
nbt.putByte("conditionMet", 0)
|
||||||
|
nbt.putByte("TrackOutput", 1)
|
||||||
|
nbt.putInt("SuccessCount", 0)
|
||||||
|
|
||||||
|
|
||||||
|
val component: NbtComponent = NbtComponent.of(nbt)
|
||||||
|
|
||||||
|
i.set(DataComponentTypes.BLOCK_ENTITY_DATA, component)
|
||||||
|
|
||||||
|
return i
|
||||||
|
}
|
||||||
@@ -12,41 +12,41 @@ import net.minecraft.text.TextColor
|
|||||||
import java.awt.Color
|
import java.awt.Color
|
||||||
|
|
||||||
|
|
||||||
fun makeData(itemId: Item, name: String, emitterId: String): ItemStack {
|
object ParticleEmitterTool {
|
||||||
val i = ItemStack(itemId)
|
fun makeData(itemId: Item, name: String, emitterId: String): ItemStack {
|
||||||
|
val i = ItemStack(itemId)
|
||||||
|
|
||||||
val nbt = NbtCompound()
|
val nbt = NbtCompound()
|
||||||
nbt.putByte("BPS_particleTool", 1)
|
nbt.putByte("BPS_particleTool", 1)
|
||||||
nbt.putString("BPS_emitterID", emitterId)
|
nbt.putString("BPS_emitterID", emitterId)
|
||||||
|
|
||||||
val component: NbtComponent = NbtComponent.of(nbt)
|
val component: NbtComponent = NbtComponent.of(nbt)
|
||||||
|
|
||||||
val displayName = Text.literal(name)
|
val displayName = Text.literal(name)
|
||||||
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)).withItalic(true))
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)).withItalic(true))
|
||||||
|
|
||||||
val loreLines = Text.literal("BPS - Bound to ID \"$emitterId\"")
|
val loreLines = Text.literal("BPS - Bound to ID \"$emitterId\".")
|
||||||
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)).withItalic(true))
|
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(Color(0, 200, 0).rgb)).withItalic(true))
|
||||||
|
|
||||||
val lore = LoreComponent(listOf(loreLines))
|
val lore = LoreComponent(listOf(loreLines))
|
||||||
|
|
||||||
i.set(DataComponentTypes.ITEM_NAME, displayName)
|
i.set(DataComponentTypes.ITEM_NAME, displayName)
|
||||||
i.set(DataComponentTypes.CUSTOM_DATA, component)
|
i.set(DataComponentTypes.CUSTOM_DATA, component)
|
||||||
i.set(DataComponentTypes.LORE, lore)
|
i.set(DataComponentTypes.LORE, lore)
|
||||||
|
|
||||||
return i
|
return i
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fun getToolDetails(item: ItemStack) : Pair<Boolean, String> {
|
|
||||||
val customData = item.get(DataComponentTypes.CUSTOM_DATA)
|
|
||||||
val isParticleEmitterTool = customData?.nbt?.getByte("BPS_particleTool") == 1.toByte()
|
|
||||||
val emitterId = customData?.nbt?.getString("BPS_emitterID")
|
|
||||||
|
|
||||||
return if (emitterId == null) {
|
|
||||||
Pair(isParticleEmitterTool, "")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
|
||||||
Pair(isParticleEmitterTool, emitterId)
|
fun getToolDetails(item: ItemStack): Pair<Boolean, String> {
|
||||||
|
val customData = item.get(DataComponentTypes.CUSTOM_DATA)
|
||||||
|
val isParticleEmitterTool = customData?.nbt?.getByte("BPS_particleTool") == 1.toByte()
|
||||||
|
val emitterId = customData?.nbt?.getString("BPS_emitterID")
|
||||||
|
|
||||||
|
return if (emitterId == null) {
|
||||||
|
Pair(isParticleEmitterTool, "")
|
||||||
|
} else {
|
||||||
|
Pair(isParticleEmitterTool, emitterId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,31 +1,26 @@
|
|||||||
package com.bytedice.bde_particles.particle
|
package com.bytedice.bde_particles.particle
|
||||||
|
|
||||||
val emitterIdRegister: MutableMap<String, ParticleEmitterParams> = mutableMapOf()
|
val emitterIdRegister: MutableMap<String, ParticleEmitterParams> = mutableMapOf()
|
||||||
|
val forbiddenIds = arrayOf("", "DEFAULT", "NULL")
|
||||||
|
|
||||||
fun returnParticleFunction(id: String) : ParticleEmitterParams? {
|
|
||||||
if (emitterIdRegister.containsKey(id)) {
|
|
||||||
return emitterIdRegister[id]
|
|
||||||
}
|
|
||||||
|
|
||||||
return null
|
fun addToEmitterRegister(id: String, params: ParticleEmitterParams) : Pair<String, Boolean> {
|
||||||
|
val newId = id.replace(" ", "_")
|
||||||
|
|
||||||
|
if (newId in forbiddenIds && newId != "DEFAULT") {return Pair(newId, false) }
|
||||||
|
if (emitterIdRegister.containsKey(newId)) {return Pair(newId, false) }
|
||||||
|
|
||||||
|
emitterIdRegister[id] = params
|
||||||
|
return Pair(newId, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun addToEmitterRegister(id: String, params: ParticleEmitterParams) : Pair<String, String> {
|
fun removeFromEmitterRegister(id: String) : Boolean {
|
||||||
val newId = id.replace(" ", "_")
|
if (id in forbiddenIds) { return false }
|
||||||
|
if (!emitterIdRegister.containsKey(id)) { return false }
|
||||||
|
|
||||||
if (!emitterIdRegister.containsKey(id)) {
|
emitterIdRegister.remove(id)
|
||||||
emitterIdRegister[id] = params
|
return true
|
||||||
|
|
||||||
val msg = "BPS - Successfully added Emitter ID \"$newId\" to register"
|
|
||||||
println(msg)
|
|
||||||
return Pair(msg, newId)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
val msg = "BPS - Emitter ID \"$newId\" is already registered, please choose another ID!"
|
|
||||||
println(msg)
|
|
||||||
return Pair(msg, newId)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user