aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPauline <git@ethanlibs.co>2025-02-27 16:04:19 +0100
committerLinnea Gräf <nea@nea.moe>2025-03-08 16:01:00 +0100
commitaf2a6d7a5509691abfd1b0a314e8d9c2d423aa21 (patch)
tree150916e374a045755acc48be2de00806e9a20757
parentd3930d3da3509909a8ce44e4e86605127cb1e992 (diff)
downloadFirmament-af2a6d7a5509691abfd1b0a314e8d9c2d423aa21.tar.gz
Firmament-af2a6d7a5509691abfd1b0a314e8d9c2d423aa21.tar.bz2
Firmament-af2a6d7a5509691abfd1b0a314e8d9c2d423aa21.zip
✨ feature: top ten synchronized java functuons
Signed-off-by: Pauline <git@ethanlibs.co>
-rw-r--r--src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolHandler.kt13
-rw-r--r--src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt32
-rw-r--r--src/compat/jade/java/moe/nea/firmament/compat/jade/SkyblockProgressProvider.kt2
3 files changed, 42 insertions, 5 deletions
diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolHandler.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolHandler.kt
index d3edb58..8bed40a 100644
--- a/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolHandler.kt
+++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolHandler.kt
@@ -1,22 +1,29 @@
package moe.nea.firmament.compat.jade
+import com.google.common.collect.Lists
import snownee.jade.addon.harvest.ToolHandler
import net.minecraft.block.BlockState
+import net.minecraft.item.Item
import net.minecraft.item.ItemStack
import net.minecraft.util.Identifier
import net.minecraft.util.math.BlockPos
import net.minecraft.world.World
-class DrillToolHandler : ToolHandler {
+class SimpleToolHandler(
+ private val uid: Identifier,
+ private val tools: MutableList<ItemStack>
+) : ToolHandler {
+ constructor(uid: Identifier, tools: MutableList<Item>) : this(uid, Lists.transform(tools, Item::getDefaultStack))
+
override fun test(state: BlockState, world: World, pos: BlockPos): ItemStack {
TODO("We need to override the existing tool handler tests because they use state.getHardness(world, pos) instead of using Breaking Power")
}
override fun getTools(): List<ItemStack> {
- TODO("Not yet implemented")
+ return this.tools
}
override fun getUid(): Identifier {
- TODO("Not yet implemented")
+ return this.uid
}
}
diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt
index 2517725..618ce4d 100644
--- a/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt
+++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt
@@ -1,12 +1,38 @@
package moe.nea.firmament.compat.jade
+import com.google.common.cache.Cache
+import com.google.common.cache.CacheBuilder
+import com.google.common.collect.ImmutableList
+import com.google.common.collect.Maps
+import java.util.concurrent.TimeUnit
+import snownee.jade.addon.harvest.ToolHandler
import snownee.jade.api.BlockAccessor
import snownee.jade.api.IBlockComponentProvider
import snownee.jade.api.ITooltip
import snownee.jade.api.config.IPluginConfig
+import net.minecraft.block.Block
+import net.minecraft.block.BlockState
+import net.minecraft.item.ItemStack
+import net.minecraft.resource.ResourceManager
+import net.minecraft.resource.SynchronousResourceReloader
+import net.minecraft.text.Text
import net.minecraft.util.Identifier
+import net.minecraft.util.math.Vec2f
+
+
+class DrillToolProvider : IBlockComponentProvider, SynchronousResourceReloader {
+ val resultCache: Cache<BlockState, ImmutableList<ItemStack>> = CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.MINUTES).build()
+ val toolHandlers: MutableMap<Identifier, ToolHandler> = Maps.newLinkedHashMap()
+ private val shearableBlocks: MutableList<Block> = mutableListOf()
+ private val checkIcon: Text = Text.literal("✔")
+ private val xIcon: Text = Text.literal("✕")
+ private val itemSize = Vec2f(10f, 0f)
+
+ @Synchronized
+ fun registerHandler(handler: ToolHandler) {
+ toolHandlers.put(handler.uid, handler)
+ }
-class DrillToolProvider : IBlockComponentProvider {
override fun appendTooltip(tooltip: ITooltip, accessor: BlockAccessor, config: IPluginConfig) {
TODO("Not yet implemented")
}
@@ -14,4 +40,8 @@ class DrillToolProvider : IBlockComponentProvider {
override fun getUid(): Identifier {
TODO("Not yet implemented")
}
+
+ override fun reload(manager: ResourceManager) {
+ TODO("Not yet implemented")
+ }
}
diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/SkyblockProgressProvider.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/SkyblockProgressProvider.kt
index fdb86ce..b0d809d 100644
--- a/src/compat/jade/java/moe/nea/firmament/compat/jade/SkyblockProgressProvider.kt
+++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/SkyblockProgressProvider.kt
@@ -28,7 +28,7 @@ class SkyblockProgressProvider : IClientExtensionProvider<ProgressView.Data, Pro
})
}
- override fun getUid(): Identifier? {
+ override fun getUid(): Identifier {
return "progress".jadeId()
}
}