From af2a6d7a5509691abfd1b0a314e8d9c2d423aa21 Mon Sep 17 00:00:00 2001 From: Pauline Date: Thu, 27 Feb 2025 16:04:19 +0100 Subject: ✨ feature: top ten synchronized java functuons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pauline --- .../nea/firmament/compat/jade/DrillToolHandler.kt | 13 +++++++-- .../nea/firmament/compat/jade/DrillToolProvider.kt | 32 +++++++++++++++++++++- .../compat/jade/SkyblockProgressProvider.kt | 2 +- 3 files changed, 42 insertions(+), 5 deletions(-) (limited to 'src') 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 +) : ToolHandler { + constructor(uid: Identifier, tools: MutableList) : 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 { - 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> = CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.MINUTES).build() + val toolHandlers: MutableMap = Maps.newLinkedHashMap() + private val shearableBlocks: MutableList = 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