diff options
author | Pauline <git@ethanlibs.co> | 2025-02-27 16:04:19 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2025-03-08 16:01:00 +0100 |
commit | af2a6d7a5509691abfd1b0a314e8d9c2d423aa21 (patch) | |
tree | 150916e374a045755acc48be2de00806e9a20757 | |
parent | d3930d3da3509909a8ce44e4e86605127cb1e992 (diff) | |
download | Firmament-af2a6d7a5509691abfd1b0a314e8d9c2d423aa21.tar.gz Firmament-af2a6d7a5509691abfd1b0a314e8d9c2d423aa21.tar.bz2 Firmament-af2a6d7a5509691abfd1b0a314e8d9c2d423aa21.zip |
✨ feature: top ten synchronized java functuons
Signed-off-by: Pauline <git@ethanlibs.co>
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() } } |