Skip to content

Commit a7cf17d

Browse files
committed
toggles for the different entity types
1 parent 340d967 commit a7cf17d

2 files changed

Lines changed: 43 additions & 25 deletions

File tree

src/main/kotlin/com/lambda/config/groups/EntitySelectionConfig.kt

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,22 @@ package com.lambda.config.groups
1919

2020
interface EntitySelectionConfig {
2121
val self: Boolean
22+
val enablePlayerEntities: Boolean
2223
val playerEntities: Collection<String>
23-
val bossEntities: Collection<String>
24-
val decorationEntities: Collection<String>
24+
val enableMobEntities: Boolean
2525
val mobEntities: Collection<String>
26+
val enablePassiveEntities: Boolean
2627
val passiveEntities: Collection<String>
27-
val projectileEntities: Collection<String>
28+
val enableVehicleEntities: Boolean
2829
val vehicleEntities: Collection<String>
29-
val miscEntities: Collection<String>
30+
val enableProjectileEntities: Boolean
31+
val projectileEntities: Collection<String>
32+
val enableBossEntities: Boolean
33+
val bossEntities: Collection<String>
34+
val enableDecorationEntities: Boolean
35+
val decorationEntities: Collection<String>
36+
val enableBlockEntities: Boolean
3037
val blockEntities: Collection<String>
38+
val enableMiscEntities: Boolean
39+
val miscEntities: Collection<String>
3140
}

src/main/kotlin/com/lambda/config/groups/EntitySelectionSettings.kt

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,41 +41,50 @@ class EntitySelectionSettings(
4141
override val visibility: () -> Boolean = { true },
4242
) : EntitySelectionConfig, SettingGroup(c) {
4343
override val self by c.setting("${prefix}Self", false, "Render own player in third person").group(*baseGroup).index()
44-
override val playerEntities by c.setting("${prefix}Player Entities", playerEntityMap.values.toSet(), playerEntityMap.values.toSet(), "Player entities to omit from rendering").group(*baseGroup).index()
45-
override val mobEntities by c.setting("${prefix}Mob Entities", mobEntityMap.values.toSet(), mobEntityMap.values.toSet(), "Mob entities to omit from rendering").group(*baseGroup).index()
46-
override val passiveEntities by c.setting("${prefix}Passive Entities", emptySet(), passiveEntityMap.values.toSet(), "Passive entities to omit from rendering").group(*baseGroup).index()
47-
override val vehicleEntities by c.setting("${prefix}Vehicle Entities", emptySet(), vehicleEntityMap.values.toSet(), "Vehicle entities to omit from rendering").group(*baseGroup).index()
48-
override val projectileEntities by c.setting("${prefix}Projectile Entities", emptySet(), projectileEntityMap.values.toSet(), "Projectile entities to omit from rendering").group(*baseGroup).index()
49-
override val bossEntities by c.setting("${prefix}Boss Entities", bossEntityMap.values.toSet(), bossEntityMap.values.toSet(), "Boss entities to omit from rendering").group(*baseGroup).index()
50-
override val decorationEntities by c.setting("${prefix}Decoration Entities", emptySet(), decorationEntityMap.values.toSet(), "Decoration entities to omit from rendering").group(*baseGroup).index()
51-
override val blockEntities by c.setting("${prefix}Block Entities", emptySet(), blockEntityMap.values.toSet(), "Block entities to omit from rendering").group(*baseGroup).index()
52-
override val miscEntities by c.setting("${prefix}Misc Entities", emptySet(), miscEntityMap.values.toSet(), "Miscellaneous entities to omit from rendering").group(*baseGroup).index()
44+
override val enablePlayerEntities by c.setting("Enable Player Entities", true).group(*baseGroup).index()
45+
override val playerEntities by c.setting("${prefix}Player Entities", playerEntityMap.values.toSet(), playerEntityMap.values.toSet(), "Player entities to omit from rendering") { enablePlayerEntities }.group(*baseGroup).index()
46+
override val enableMobEntities by c.setting("Enable Mob Entities", true).group(*baseGroup).index()
47+
override val mobEntities by c.setting("${prefix}Mob Entities", mobEntityMap.values.toSet(), mobEntityMap.values.toSet(), "Mob entities to omit from rendering") { enableMobEntities }.group(*baseGroup).index()
48+
override val enablePassiveEntities by c.setting("Enable Passive Entities", true).group(*baseGroup).index()
49+
override val passiveEntities by c.setting("${prefix}Passive Entities", emptySet(), passiveEntityMap.values.toSet(), "Passive entities to omit from rendering") { enablePassiveEntities }.group(*baseGroup).index()
50+
override val enableVehicleEntities by c.setting("Enable Vehicle Entities", true).group(*baseGroup).index()
51+
override val vehicleEntities by c.setting("${prefix}Vehicle Entities", emptySet(), vehicleEntityMap.values.toSet(), "Vehicle entities to omit from rendering") { enableVehicleEntities }.group(*baseGroup).index()
52+
override val enableProjectileEntities by c.setting("Enable Projectile Entities", true).group(*baseGroup).index()
53+
override val projectileEntities by c.setting("${prefix}Projectile Entities", emptySet(), projectileEntityMap.values.toSet(), "Projectile entities to omit from rendering") { enableProjectileEntities }.group(*baseGroup).index()
54+
override val enableBossEntities by c.setting("Enable Boss Entities", true).group(*baseGroup).index()
55+
override val bossEntities by c.setting("${prefix}Boss Entities", bossEntityMap.values.toSet(), bossEntityMap.values.toSet(), "Boss entities to omit from rendering") { enableBossEntities }.group(*baseGroup).index()
56+
override val enableDecorationEntities by c.setting("Enable Decoration Entities", true).group(*baseGroup).index()
57+
override val decorationEntities by c.setting("${prefix}Decoration Entities", emptySet(), decorationEntityMap.values.toSet(), "Decoration entities to omit from rendering") { enableDecorationEntities }.group(*baseGroup).index()
58+
override val enableBlockEntities by c.setting("Enable Block Entities", true).group(*baseGroup).index()
59+
override val blockEntities by c.setting("${prefix}Block Entities", emptySet(), blockEntityMap.values.toSet(), "Block entities to omit from rendering") { enableBlockEntities }.group(*baseGroup).index()
60+
override val enableMiscEntities by c.setting("Enable Misc Entities", true).group(*baseGroup).index()
61+
override val miscEntities by c.setting("${prefix}Misc Entities", emptySet(), miscEntityMap.values.toSet(), "Miscellaneous entities to omit from rendering") { enableMiscEntities }.group(*baseGroup).index()
5362

5463
fun isSelected(entity: Entity): Boolean {
5564
val name = entity::class.simpleName
5665
return if (entity == mc.player) self
5766
else when (entity.type.spawnGroup) {
5867
SpawnGroup.MISC ->
59-
miscEntityMap[name] in miscEntities ||
60-
playerEntityMap[name] in playerEntities ||
61-
projectileEntityMap[name] in projectileEntities ||
62-
vehicleEntityMap[name] in vehicleEntities ||
63-
decorationEntityMap[name] in decorationEntities ||
64-
passiveEntityMap[name] in passiveEntities ||
65-
mobEntityMap[name] in mobEntities ||
66-
bossEntityMap[name] in bossEntities
68+
(enableMiscEntities && miscEntityMap[name] in miscEntities) ||
69+
(enablePlayerEntities && playerEntityMap[name] in playerEntities) ||
70+
(enableProjectileEntities && projectileEntityMap[name] in projectileEntities) ||
71+
(enableVehicleEntities && vehicleEntityMap[name] in vehicleEntities) ||
72+
(enableDecorationEntities && decorationEntityMap[name] in decorationEntities) ||
73+
(enablePassiveEntities && passiveEntityMap[name] in passiveEntities) ||
74+
(enableMobEntities && mobEntityMap[name] in mobEntities) ||
75+
(enableBossEntities && bossEntityMap[name] in bossEntities)
6776
SpawnGroup.WATER_AMBIENT,
6877
SpawnGroup.WATER_CREATURE,
6978
SpawnGroup.AMBIENT,
7079
SpawnGroup.AXOLOTLS,
7180
SpawnGroup.CREATURE,
72-
SpawnGroup.UNDERGROUND_WATER_CREATURE -> passiveEntityMap[name] in passiveEntities
81+
SpawnGroup.UNDERGROUND_WATER_CREATURE -> (enablePassiveEntities && passiveEntityMap[name] in passiveEntities)
7382
SpawnGroup.MONSTER ->
74-
mobEntityMap[name] in mobEntities ||
75-
bossEntityMap[name] in bossEntities
83+
(enableMobEntities && mobEntityMap[name] in mobEntities) ||
84+
(enableBossEntities && bossEntityMap[name] in bossEntities)
7685
}
7786
}
7887

7988
fun isSelected(blockEntity: BlockEntity) =
80-
blockEntityMap[blockEntity.javaClass.simpleName] in blockEntities
89+
(enableBlockEntities && blockEntityMap[blockEntity.javaClass.simpleName] in blockEntities)
8190
}

0 commit comments

Comments
 (0)