diff options
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/SpawnPointSpawner.c4d/Script.c')
| -rw-r--r-- | TemplePushing.c4s/Misc.c4d/SpawnPointSpawner.c4d/Script.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/TemplePushing.c4s/Misc.c4d/SpawnPointSpawner.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/SpawnPointSpawner.c4d/Script.c new file mode 100644 index 0000000..380ee86 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/SpawnPointSpawner.c4d/Script.c @@ -0,0 +1,57 @@ +/*-- Spawn Point Spawner --*/ + +#strict 2 + +local locations, definitions, spawnInterval; +local sumProbability; +local gamma; + +public func CreateSpawnPoints() +{ + for (var pos in locations) + { + var spawnpoint = CreateObject(SNPT, pos[0], pos[1], NO_OWNER); + if (gamma) spawnpoint->SetGamma(gamma[0], gamma[1], gamma[2]); + spawnpoint->Enable(this); + } +} + +// [[x1, y1], [x2, y2], ...] +public func SetLocations(array locations) +{ + LocalN("locations") = locations; +} + +// [[FLNT, 50], [SFLN, 20], ...] +public func SetDefinitions(array definitions) +{ + LocalN("definitions") = definitions; + + sumProbability = 0; + for (var def in definitions) + { + sumProbability += def[1]; + } +} + +public func SetSpawnpointGamma(int color1, int color2, int color3) +{ + gamma = [color1, color2, color3]; +} + +public func GetSpawnInterval() { return spawnInterval; } + +public func SetSpawnInterval(int spawnInterval) +{ + LocalN("spawnInterval") = spawnInterval; +} + +public func GetRandomDefinition() +{ + var rnd = Random(sumProbability); + for (var def in definitions) + { + rnd -= def[1]; + if (rnd < 0) return def[0]; + } +} |
