Skip to content

Commit 9df3dd6

Browse files
authored
Added TileEntities to EntityList HUD scope
1 parent 16ad9e2 commit 9df3dd6

File tree

1 file changed

+42
-8
lines changed
  • src/main/kotlin/com/lambda/client/gui/hudgui/elements/world

1 file changed

+42
-8
lines changed

src/main/kotlin/com/lambda/client/gui/hudgui/elements/world/EntityList.kt

+42-8
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import net.minecraft.entity.player.EntityPlayer
1414
import net.minecraft.entity.projectile.EntityEgg
1515
import net.minecraft.entity.projectile.EntitySnowball
1616
import net.minecraft.entity.projectile.EntityWitherSkull
17+
import net.minecraft.tileentity.TileEntityLockable
1718
import java.util.*
1819

1920
internal object EntityList : LabelHud(
@@ -26,10 +27,15 @@ internal object EntityList : LabelHud(
2627
private val passive by setting("Passive Mobs", true)
2728
private val neutral by setting("Neutral Mobs", true)
2829
private val hostile by setting("Hostile Mobs", true)
30+
private val tileEntities by setting("Tile Entities", true)
31+
private val onlyContainer by setting("Only Containers", true, { tileEntities })
2932
private val maxEntries by setting("Max Entries", 8, 4..32, 1)
3033
private val range by setting("Range", 64, 16..256, 16, fineStep = 1)
3134

32-
private val cacheMap by AsyncCachedValue(50L) {
35+
private var remainingEntriesEntity = 0
36+
private var remainingEntriesTileEntity = 0
37+
38+
private val entityCacheMap by AsyncCachedValue(50L) {
3339
val map = TreeMap<String, Int>()
3440

3541
runSafe {
@@ -54,18 +60,46 @@ internal object EntityList : LabelHud(
5460
}
5561
}
5662

57-
remainingEntries = map.size - maxEntries
63+
remainingEntriesEntity = map.size - maxEntries
64+
map.entries.take(maxEntries)
65+
}
66+
67+
private val tileEntityCacheMap by AsyncCachedValue(50L) {
68+
val map = TreeMap<String, Int>()
69+
70+
runSafe {
71+
if (tileEntities) world.loadedTileEntityList.filter {
72+
if (onlyContainer) it is TileEntityLockable else true
73+
}.mapNotNull {
74+
map[it.blockType.localizedName] = map.getOrDefault(it.blockType.localizedName, 0) + 1
75+
}
76+
}
77+
78+
remainingEntriesTileEntity = map.size - maxEntries
5879
map.entries.take(maxEntries)
5980
}
60-
private var remainingEntries = 0
6181

6282
override fun SafeClientEvent.updateText() {
63-
for ((name, count) in cacheMap) {
64-
displayText.add(name, primaryColor)
65-
displayText.addLine("x$count", secondaryColor)
83+
if (entityCacheMap.isNotEmpty()) {
84+
if (tileEntities) displayText.addLine("Entities", secondaryColor)
85+
for ((name, count) in entityCacheMap) {
86+
displayText.add(name, primaryColor)
87+
displayText.addLine("x$count", secondaryColor)
88+
}
89+
if (remainingEntriesEntity > 0) {
90+
displayText.addLine("...and $remainingEntriesEntity more")
91+
}
6692
}
67-
if (remainingEntries > 0) {
68-
displayText.addLine("...and $remainingEntries more")
93+
94+
if (tileEntityCacheMap.isNotEmpty()) {
95+
displayText.addLine("TileEntities", secondaryColor)
96+
for ((name, count) in tileEntityCacheMap) {
97+
displayText.add(name, primaryColor)
98+
displayText.addLine("x$count", secondaryColor)
99+
}
100+
if (remainingEntriesTileEntity > 0) {
101+
displayText.addLine("...and $remainingEntriesTileEntity more")
102+
}
69103
}
70104
}
71105

0 commit comments

Comments
 (0)