finished forceFields args
This commit is contained in:
@@ -28,6 +28,7 @@ import java.util.*
|
|||||||
|
|
||||||
|
|
||||||
// TODO: finish the particle ticking
|
// TODO: finish the particle ticking
|
||||||
|
// TODO: make custom commands to create particles easier (only temporarily saved)
|
||||||
|
|
||||||
|
|
||||||
var ALL_PARTICLE_EMITTERS: Array<ParticleEmitter> = emptyArray()
|
var ALL_PARTICLE_EMITTERS: Array<ParticleEmitter> = emptyArray()
|
||||||
|
|||||||
@@ -301,7 +301,8 @@ class ArgConfigParticleKeys {
|
|||||||
fun forceFields() : LiteralArgumentBuilder<ServerCommandSource> {
|
fun forceFields() : LiteralArgumentBuilder<ServerCommandSource> {
|
||||||
return CommandManager.literal("ForceFields")
|
return CommandManager.literal("ForceFields")
|
||||||
.then(argAddForceField())
|
.then(argAddForceField())
|
||||||
} // TODO
|
.then(argRemoveForceField())
|
||||||
|
}
|
||||||
fun gravity() : LiteralArgumentBuilder<ServerCommandSource> {
|
fun gravity() : LiteralArgumentBuilder<ServerCommandSource> {
|
||||||
return CommandManager.literal("gravity")
|
return CommandManager.literal("gravity")
|
||||||
.then(CommandManager.argument("X", FloatArgumentType.floatArg())
|
.then(CommandManager.argument("X", FloatArgumentType.floatArg())
|
||||||
@@ -498,6 +499,49 @@ fun argAddForceField() : LiteralArgumentBuilder<ServerCommandSource> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun argRemoveForceField() : LiteralArgumentBuilder<ServerCommandSource> {
|
||||||
|
return CommandManager.literal("remove")
|
||||||
|
.then(CommandManager.argument("Force Field Name", StringArgumentType.string())
|
||||||
|
.suggests { context, builder ->
|
||||||
|
val particleId = StringArgumentType.getString(context, "Registered Emitter ID")
|
||||||
|
val particleIndex = IntegerArgumentType.getInteger(context, "Particle Index")
|
||||||
|
val params = getEmitterParams(particleId)
|
||||||
|
val forceFields = params!!.particleTypes[particleIndex].forceFields
|
||||||
|
|
||||||
|
forceFields.iterator().forEach {
|
||||||
|
builder.suggest(it.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
CompletableFuture.completedFuture(builder.build())
|
||||||
|
}
|
||||||
|
.executes { context ->
|
||||||
|
val ffName = StringArgumentType.getString(context, "Force Field Name")
|
||||||
|
val particleId = StringArgumentType.getString(context, "Registered Emitter ID")
|
||||||
|
val particleIndex = IntegerArgumentType.getInteger(context, "Particle Index")
|
||||||
|
|
||||||
|
val params = getEmitterParams(particleId)
|
||||||
|
val forceFields = params!!.particleTypes[particleIndex].forceFields
|
||||||
|
val newForceFields: MutableList<ForceField> = forceFields.toMutableList()
|
||||||
|
|
||||||
|
for (forceField in forceFields) {
|
||||||
|
if (forceField.name == ffName) {
|
||||||
|
newForceFields.remove(forceField)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val feedback = argUpdateParticleParam(
|
||||||
|
context,
|
||||||
|
particleIndex,
|
||||||
|
"forceFields",
|
||||||
|
newForceFields
|
||||||
|
)
|
||||||
|
context.source.sendFeedback( { feedback }, false)
|
||||||
|
Command.SINGLE_SUCCESS
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fun forceFieldAddSphereExec(context: CommandContext<ServerCommandSource>) : Int {
|
fun forceFieldAddSphereExec(context: CommandContext<ServerCommandSource>) : Int {
|
||||||
val particleIndex = IntegerArgumentType.getInteger(context, "Particle Index")
|
val particleIndex = IntegerArgumentType.getInteger(context, "Particle Index")
|
||||||
val radius = FloatArgumentType.getFloat(context, "Radius")
|
val radius = FloatArgumentType.getFloat(context, "Radius")
|
||||||
@@ -562,7 +606,7 @@ fun forceFieldGenericParams(context: CommandContext<ServerCommandSource>, shape:
|
|||||||
val maxForce = FloatArgumentType.getFloat(context, "Max Force")
|
val maxForce = FloatArgumentType.getFloat(context, "Max Force")
|
||||||
|
|
||||||
return ForceField(
|
return ForceField(
|
||||||
name,
|
name.replace(" ", "_"),
|
||||||
Vector3f(posX, posY, posZ),
|
Vector3f(posX, posY, posZ),
|
||||||
Pair(minForce, maxForce),
|
Pair(minForce, maxForce),
|
||||||
shape
|
shape
|
||||||
|
|||||||
Reference in New Issue
Block a user