From 30fdd2fd28640716255896015bc065596afbde3b Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Tue, 11 Jul 2023 18:57:15 +0300 Subject: [PATCH 1/6] procedural battery energy bar --- .../mc/otm/item/ProceduralBatteryItem.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ProceduralBatteryItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ProceduralBatteryItem.kt index 42c68d400..19445751b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/ProceduralBatteryItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/ProceduralBatteryItem.kt @@ -15,6 +15,8 @@ import net.minecraftforge.common.capabilities.ICapabilityProvider import ru.dbotthepony.mc.otm.capability.FlowDirection import ru.dbotthepony.mc.otm.capability.energy.ItemEnergyStorageImpl import ru.dbotthepony.mc.otm.capability.energy.batteryLevel +import ru.dbotthepony.mc.otm.capability.energy.getBarColor +import ru.dbotthepony.mc.otm.capability.energy.getBarWidth import ru.dbotthepony.mc.otm.capability.matteryEnergy import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.math.Decimal @@ -47,6 +49,18 @@ class ProceduralBatteryItem : Item(Properties().stacksTo(1)) { get() = maxBatteryLevel } + override fun isBarVisible(p_150899_: ItemStack): Boolean { + return p_150899_.matteryEnergy != null + } + + override fun getBarWidth(p_150900_: ItemStack): Int { + return p_150900_.matteryEnergy?.getBarWidth() ?: super.getBarWidth(p_150900_) + } + + override fun getBarColor(p_150901_: ItemStack): Int { + return p_150901_.matteryEnergy?.getBarColor() ?: super.getBarColor(p_150901_) + } + override fun appendHoverText(p_41421_: ItemStack, p_41422_: Level?, p_41423_: MutableList, p_41424_: TooltipFlag) { super.appendHoverText(p_41421_, p_41422_, p_41423_, p_41424_) From 203f4e56c977b7918714bd2581786c97cfd33335 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Tue, 11 Jul 2023 19:02:32 +0300 Subject: [PATCH 2/6] =?UTF-8?q?YuRaNnNzZZ=20=E2=80=94=20=D0=92=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=B0,=20=D0=B2=2020:54=20=D0=BC=D0=BD=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=B0=D0=B6=D0=B5=D1=82=D1=81=D1=8F=20=D0=BD=D0=B0=D0=B4=D0=BE?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=82=D1=8C=20=D0=BC=D0=B0=D0=BA?= =?UTF-8?q?=D1=81=D0=B8=D0=BC=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=20=D1=81=D1=82=D0=B0=D0=BA=D0=B0?= =?UTF-8?q?=201=20=D0=B2=20=D0=B1=D0=B0=D0=BD=D0=BA=D0=B0=D1=85=20:WiseTre?= =?UTF-8?q?e:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt | 2 ++ .../mc/otm/block/entity/matter/PatternStorageBlockEntity.kt | 4 +--- .../mc/otm/block/entity/tech/BatteryBankBlockEntity.kt | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt index ba365952a..a45fd8958 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt @@ -126,6 +126,8 @@ class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) capacitorStatus[slot].boolean = new.getCapability(MatteryCapability.MATTER).isPresent gaugeLevel = (storedMatter / maxStoredMatter).toFloat() } + + override fun getMaxStackSize(): Int = 1 }.also(::addDroppableContainer) val itemConfig = ConfigurableItemHandler(inputOutput = container.handler(object : HandlerFilter { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt index 59230312f..1e4e0a821 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt @@ -54,9 +54,7 @@ class PatternStorageBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : super.setChanged(slot, new, old) } - override fun getMaxStackSize(): Int { - return 1 - } + override fun getMaxStackSize(): Int = 1 }.also(::addDroppableContainer) private fun updateBlockstate() { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt index f610bbe08..8e429535c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt @@ -35,6 +35,8 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte batteryStatus[slot].boolean = new.getCapability(ForgeCapabilities.ENERGY).isPresent gaugeLevel = batteryLevel.percentage(maxBatteryLevel) } + + override fun getMaxStackSize(): Int = 1 }.also(::addDroppableContainer) val batteryStatus = immutableList(CAPACITY) { From 027d6ef65f2be6e5731d6a5908ebcfa649510539 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Fri, 14 Jul 2023 22:25:48 +0300 Subject: [PATCH 3/6] exopack curios inventory button --- .../mc/otm/datagen/lang/English.kt | 1 + .../mc/otm/datagen/lang/Russian.kt | 1 + .../mc/otm/client/render/Widgets18.kt | 1 + .../client/screen/ExoPackInventoryScreen.kt | 10 +++++++++- .../mc/otm/compat/curios/CuriosCompat.kt | 9 +++++++++ .../textures/gui/widgets/misc18.png | Bin 815 -> 826 bytes .../textures/gui/widgets/misc18.xcf | Bin 3113 -> 3924 bytes 7 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt index 08a7414d8..99d467195 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt @@ -138,6 +138,7 @@ private fun misc(provider: MatteryLanguageProvider) { gui("exopack", "Exopack Inventory") gui("exopack.go_back", "Open vanilla inventory") gui("exopack.go_in", "Open Exopack inventory") + gui("exopack.go_curios", "Open Curios inventory") gui("exopack.toggle_visibility", "Toggle Exopack visibility") gui("exopack.probe1", "This little device feels unnatural to touch, it is almost certainly resilient to any possible attempt to break it open.") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index faecb219c..6b33fac1c 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -146,6 +146,7 @@ private fun misc(provider: MatteryLanguageProvider) { gui("exopack", "Инвентарь Экзопака") gui("exopack.go_back", "Открыть обычный инвентарь") gui("exopack.go_in", "Открыть инвентарь экзопака") + gui("exopack.go_curios", "Открыть инвентарь Curios") gui("exopack.toggle_visibility", "Переключить отображение Экзопака") gui("exopack.probe1", "Данное маленькое устройство необычно на ощупь, а так же неприступно для любых попыток вскрыть.") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt index 8a54ddce1..93e07d358 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/Widgets18.kt @@ -51,6 +51,7 @@ object Widgets18 { val CROSS = miscGrid.next() val FORWARD_SLASH = miscGrid.next() val RETURN_ARROW_LEFT = miscGrid.next() + val CURIOS_INVENTORY = miscGrid.next() private val slotBgGrid = WidgetLocation.SLOT_BACKGROUNDS.grid(4, 4) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoPackInventoryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoPackInventoryScreen.kt index 802182da8..9dc4547ee 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoPackInventoryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoPackInventoryScreen.kt @@ -23,6 +23,8 @@ import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel import ru.dbotthepony.mc.otm.client.screen.widget.TallHorizontalProfiledPowerGaugePanel import ru.dbotthepony.mc.otm.client.setMousePos import ru.dbotthepony.mc.otm.client.shouldOpenVanillaInventory +import ru.dbotthepony.mc.otm.compat.curios.isCuriosLoaded +import ru.dbotthepony.mc.otm.compat.curios.openCuriosScreen import ru.dbotthepony.mc.otm.core.math.integerDivisionDown import ru.dbotthepony.mc.otm.menu.ExoPackInventoryMenu import ru.dbotthepony.mc.otm.network.ExoPackMenuOpen @@ -235,7 +237,7 @@ class ExoPackInventoryScreen(menu: ExoPackInventoryMenu) : MatteryScreen frame.y += movePixels moveMousePosScaled(y = movePixels) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/curios/CuriosCompat.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/curios/CuriosCompat.kt index e99c1f020..50802c1be 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/curios/CuriosCompat.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/curios/CuriosCompat.kt @@ -4,7 +4,10 @@ import com.google.common.collect.Streams import net.minecraft.world.entity.player.Player import net.minecraft.world.inventory.Slot import net.minecraft.world.item.ItemStack +import net.minecraftforge.api.distmarker.Dist import net.minecraftforge.fml.ModList +import net.minecraftforge.fml.loading.FMLEnvironment +import net.minecraftforge.network.PacketDistributor import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.container.awareStream @@ -16,6 +19,8 @@ import top.theillusivec4.curios.api.CuriosApi import top.theillusivec4.curios.api.event.SlotModifiersUpdatedEvent import top.theillusivec4.curios.common.inventory.CosmeticCurioSlot import top.theillusivec4.curios.common.inventory.CurioSlot +import top.theillusivec4.curios.common.network.NetworkHandler +import top.theillusivec4.curios.common.network.client.CPacketOpenCurios import java.util.stream.Stream import kotlin.collections.ArrayList @@ -28,6 +33,10 @@ fun onCuriosSlotModifiersUpdated(event: SlotModifiersUpdatedEvent) { event.entity.matteryPlayer?.recreateExoPackMenu() } +fun openCuriosScreen(carriedStack: ItemStack = ItemStack.EMPTY) { + if (FMLEnvironment.dist.isClient) NetworkHandler.INSTANCE.send(PacketDistributor.SERVER.noArg(), CPacketOpenCurios(carriedStack)) +} + private fun Player.getCuriosSlotsImpl(): List> { val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return listOf() diff --git a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets/misc18.png b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets/misc18.png index 9a54260fbf9ee9815e6e266c7c3e632276a8b038..e8e91ae609122f954b900a2c7067d82e53a4673a 100644 GIT binary patch delta 778 zcmV+l1NHo`2D%22J%2zP#a~mUB2_^(9i@szuu$3xtvZ-o`UOoIk`xz5 z!L{Jv$70pN#aUMeS3wZ`0C9D3Qgo3L|Cbb6#CUMrk9YSTckck9S!Jr(GY6=eWuy~v zF_&Kz1Fr~R5W|QeDlt<}W)`#X9AEeF@%1jkv%Js!IR=!1$$tQ!NIb`M!y?`wp53%` z&ilk6R+bdvbK)t3E=c^yb=l=N&LxKho*6Q->3QN1u~_P2xrE-V!-}d=zL0ZS z;k?CJt=3ulp8SQug0_<3I?Zt;u!JO15Fw+E3aYRWp;aTrM4I;F9{w@MpCXq`t_m1A z7Epr<$?=2#!GG^=&0=)gO$x?=-WS{cm;eI1K&xTf-^aGyIsyF8z?IhV*P1}=lk`SM z3m*YP+rY(jN0aw}%N=0!NtX=Ck^D4;Vi9;hqi@OsBey{Rn%i4@AEysMmbzNL0S*p< z$r5F+d%U}^ySIPOwEO!3C(?57(?dC*00006VoOIv0Dk}g0002_L%V+f000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2j>S4696=-zQZK|00B2iL_t(|+U?rW4#FS|h2cSb z|5wHvO$Y(nLSaMy@6yc*XISRqbzz_MG5fyJIxD<*}4fs-3U>tdTma zM9*URWPda(AU`L6ueHwhfXb_8xr*A!wZd5)lC@UU6tNbSCMSinDx{IGY_KF;>ovVe z)`HN6GZN_R%Biko%|N8rdxLHb%sNr8kfgDe$D`(I&n$JRzpUB-S~a9^NO?SJ2Y>f= z>lu>kHa~mQCN=3hLUIczWM;!D>zopj*oa4)WPk5`kA~}6r`M#XcCnd(KOv-Y^@-cO z$9<4xz)xLC%XTsAKu_#Rk9gd%`||++hw46OuH8s!9&!A%Zved?nSZ~P=0W5LhZSUd z+yMe2AeuBy`d-aHFGx3v00000000000000000000fHS=TbW5+S+^SdJ00000NkvXX It^-0~g4MKWaR2}S delta 766 zcmVY4yF-8NJ4 zn3&D2iaoCgU<6@EkYr{ViS%LyzV&ra-Bfo`p5@>7XZ5Rji+=$Dk$8?7rcJy-JhN#V zocD<%tR$<%=fvYCU6A;Z>x##3oQp0CJTqcuQuD+SVzJo4N(Zx&sS!^TORA<*zL51; z<-EmNtJGNQp8SQOyuOm=I;~;Ev4jMY5TT%kGAghUrCle*LW<5~KK>!spCp$;t}+-o z7Epx-+4Y0}!GG`BT7{`eFDVoQx?ddUV-)Dw1)6oo`95}><_Qpd2CnqBzuEw1KS{5* zHR%WlZvz+CZB5w&E_Z;zCqp)6R|?V+3I*W(jJ_!c4BP^JYu?;i=Qw=;GBm5@8{ps& z7%Nity3f0NJLmRqPiuZZxTA8z1ijBF00006VoOIv0Du1g{{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2j>AF1UnGagScY=00AsXL_t(|+U?lM5`!QRMNuFB z|IeL`3oB`crXkVPJyk9oAo!Fa%FK=xBpv^#tgOsV*>bb>d@~?(w$^nYHyjCP=G-IS zAYJ;|$bZdUuep|u*7J*i)Y(smR10T!NYT1lU97dA3aJ;)u8_>k6r4@uwZCRncaw0fGi=v&k4VwnN=+e?66K)P(HaCdZiT1aJJif8E3_;l&$AI*pX>Iy$*^r_zoe>bg}7KEZWc~j7eo+a8@U@)H-L?6W68>QsRRd w0000000000000000000000000007+C3xodq3oa&mCIA2c07*qoM6N<$g8r9Zm;e9( diff --git a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets/misc18.xcf b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets/misc18.xcf index 3d5a11d54b733ece614ee6b950f5ea8662e481c8..f42db9b994b3fc280f69543f7e8326997086cf2f 100644 GIT binary patch delta 850 zcmZ1}aYb%|9-AZs1A_|VM16fmj*0QF6&rwDAYciE(Ci)%n#&VH^XP3(X5?XHY@J-d zB(1OzA_yjhfFuY50n<(h%`o{QXYu3&&L@*6FtcoCW2s@3odJ~rQ6fML(!m1aFfg!g znLM9Wobk-&?W{`}CnvMtVf3Bsz#*-W36TbqNS1IkLdB6RDcbD9#l^@N19Y5}6n6!7 zjocF^H*+sD1WLk8V+69LF6_9l_rj(NTQBUr*mPmT#fFPL3dyBKnfb*aQ<#8wazEn) zRuD&MvN@}@AP0zv0K6U`OY3=45JGVCfkM1BFmZ1N#{d5rnE(G}`2U}s;qQNj|IA>L zgW(@Y_#eZ64kS@z6}Z?)I_puiA}sP|psBTRTk9Esexkp%a9eA^!AdXR!mWkc3IOAf BDO&&l delta 178 zcmca2w^Cw)9;3)a6MaVZi7Broiy6Rx#RWpMTSI6rm(2x?JdBJLlM^|FCr@DFV4MPE zi7_#)*}ReI9us5tt}W?c(m9+`+vJ0PfKzwg3PC From f2e4c80d31caad3da5c6aa6ca4b7dc257d055db0 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Sat, 15 Jul 2023 07:48:59 +0300 Subject: [PATCH 4/6] jade compat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DBot — Сегодня, в 6:21 Не думай. --- build.gradle.kts | 2 +- gradle.properties | 2 +- .../mc/otm/datagen/lang/English.kt | 17 ++++ .../datagen/lang/MatteryLanguageProvider.kt | 4 + .../mc/otm/datagen/lang/Russian.kt | 16 ++++ .../mc/otm/compat/jade/JadeCompatData.kt | 22 +++++ .../mc/otm/compat/jade/JadePlugin.kt | 38 +++++++++ .../jade/providers/MatterBottlerProvider.kt | 67 +++++++++++++++ .../providers/MatterReconstructorProvider.kt | 62 ++++++++++++++ .../jade/providers/MatterStorageProvider.kt | 63 ++++++++++++++ .../jade/providers/MatteryEnergyProvider.kt | 61 ++++++++++++++ .../jade/providers/MatteryWorkerProvider.kt | 84 +++++++++++++++++++ 12 files changed, 436 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadePlugin.kt create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterBottlerProvider.kt create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterReconstructorProvider.kt create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryEnergyProvider.kt create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryWorkerProvider.kt diff --git a/build.gradle.kts b/build.gradle.kts index b08081996..de8377dc3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -193,7 +193,7 @@ dependencies { compileOnly(fg.deobf("mezz.jei:jei-${jei_mc_version}-forge-api:${jei_version}")) //runtimeOnly(fg.deobf("mezz.jei:jei-${jei_mc_version}-forge:${jei_version}")) - //runtimeOnly(fg.deobf("curse.maven:jade-324717:${jade_id}")) + implementation(fg.deobf("curse.maven:jade-324717:${jade_id}")) //runtimeOnly(fg.deobf("curse.maven:configured-457570:${configured_id}")) compileOnly(fg.deobf("curse.maven:resourceful-lib-570073:${resourceful_lib_id}")) diff --git a/gradle.properties b/gradle.properties index 36f394177..6029c59d9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,7 +30,7 @@ ad_astra_id=4594155 botarium_id=4594094 resourceful_lib_id=4598948 resourceful_config_id=4576455 -jade_id=4573193 +jade_id=4614153 configured_id=4462894 kotlin_for_forge_version=3.1.0 diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt index 99d467195..e74d098b3 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt @@ -777,6 +777,21 @@ private fun gui(provider: MatteryLanguageProvider) { } } +private fun jade(provider: MatteryLanguageProvider) { + with(provider.english) { + jadeloc("matter_storage", "Matter Storage") + jadeloc("mattery_energy", "Energy Storage") + jadeloc("mattery_worker", "Machine Job Progress") + jadeloc("matter_bottler", "Matter Bottler Mode") + jadeloc("matter_reconstructor", "Matter Reconstructor Progress") + + jade("mode", "Mode: %s") + + jade("matter_bottler.mode.fill", "Filling") + jade("matter_bottler.mode.drain", "Emptying") + } +} + fun AddEnglishLanguage(provider: MatteryLanguageProvider) { decoratives(provider) sounds(provider) @@ -791,6 +806,8 @@ fun AddEnglishLanguage(provider: MatteryLanguageProvider) { research(provider) gui(provider) + jade(provider) + with(provider.english) { add("itemGroup.otm", "Overdrive That Matters") add("itemGroup.otm_decorative", "Overdrive That Matters Decorative") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt index bd7aa1ec9..9da3b9f2a 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt @@ -21,6 +21,7 @@ import ru.dbotthepony.mc.otm.android.AndroidFeatureType import ru.dbotthepony.mc.otm.android.AndroidResearch import ru.dbotthepony.mc.otm.android.AndroidResearchType import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.datagen.DataGen import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock private fun researchString(key: AndroidResearchType): String { @@ -104,6 +105,9 @@ class MatteryLanguageProvider(private val gen: DataGenerator) { fun sound(key: String, value: String) = slave.add("otm.sound.$key", value) fun sound(key: SoundEvent, value: String) = slave.add("otm.sound.${key.location.path}", value) + fun jade(key: String, value: String) = slave.add("otm.jade.$key", value) + fun jadeloc(key: String, value: String) = slave.add("config.jade.plugin_${DataGen.MOD_ID}.$key", value) + inner class Prepended(path: String) { val path = "$path." constructor(vararg path: String) : this(path.joinToString(".")) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index 6b33fac1c..f2bd9a0e4 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -778,6 +778,21 @@ private fun gui(provider: MatteryLanguageProvider) { } } +private fun jade(provider: MatteryLanguageProvider) { + with(provider.russian) { + jadeloc("matter_storage", "Хранилище материи") + jadeloc("mattery_energy", "Хранилище энергии") + jadeloc("mattery_worker", "Прогресс работы механизма") + jadeloc("matter_bottler", "Режим бутилировщика материи") + jadeloc("matter_reconstructor", "Прогресс материального реконструктора") + + jade("mode", "Режим: %s") + + jade("matter_bottler.mode.fill", "Заполнение") + jade("matter_bottler.mode.drain", "Опустошение") + } +} + fun AddRussianLanguage(provider: MatteryLanguageProvider) { decoratives(provider) blocks(provider) @@ -789,4 +804,5 @@ fun AddRussianLanguage(provider: MatteryLanguageProvider) { research(provider) death(provider) androidFeatures(provider) + jade(provider) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt new file mode 100644 index 000000000..2423d7ffb --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt @@ -0,0 +1,22 @@ +package ru.dbotthepony.mc.otm.compat.jade + +import net.minecraft.resources.ResourceLocation +import ru.dbotthepony.mc.otm.OverdriveThatMatters.loc + +object JadeUids { + val MATTERY_ENERGY: ResourceLocation = loc("mattery_energy") + val MATTER_STORAGE: ResourceLocation = loc("matter_storage") + val MATTERY_WORKER: ResourceLocation = loc("mattery_worker") + + val MATTER_BOTTLER: ResourceLocation = loc("matter_bottler") + val MATTER_RECONSTRUCTOR: ResourceLocation = loc("matter_reconstructor") +} + +object JadeTagKeys { + val MATTERY_ENERGY_DATA = "otmJadeMatteryEnergyData" + val MATTER_STORAGE_DATA = "otmJadeMatterStorageData" + val MATTERY_WORKER_DATA = "otmJadeMatteryWorkerData" + + val MATTER_BOTTLER_DATA = "otmJadeMatterBottlerData" + val MATTER_RECONSTRUCTOR_DATA = "otmJadeMatterReconstructorData" +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadePlugin.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadePlugin.kt new file mode 100644 index 000000000..d5ca7cba5 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadePlugin.kt @@ -0,0 +1,38 @@ +package ru.dbotthepony.mc.otm.compat.jade + +import net.minecraft.world.level.block.Block +import net.minecraft.world.level.block.entity.BlockEntity +import ru.dbotthepony.mc.otm.block.MatteryBlock +import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity +import ru.dbotthepony.mc.otm.block.entity.matter.MatterBottlerBlockEntity +import ru.dbotthepony.mc.otm.block.entity.matter.MatterReconstructorBlockEntity +import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity +import ru.dbotthepony.mc.otm.block.entity.matter.MatterScannerBlockEntity +import ru.dbotthepony.mc.otm.block.matter.MatterBottlerBlock +import ru.dbotthepony.mc.otm.block.matter.MatterReconstructorBlock +import ru.dbotthepony.mc.otm.block.matter.MatterReplicatorBlock +import ru.dbotthepony.mc.otm.block.matter.MatterScannerBlock +import ru.dbotthepony.mc.otm.compat.jade.providers.* +import snownee.jade.api.IWailaClientRegistration +import snownee.jade.api.IWailaCommonRegistration +import snownee.jade.api.IWailaPlugin +import snownee.jade.api.WailaPlugin + +@WailaPlugin +class JadePlugin : IWailaPlugin { + override fun register(reg: IWailaCommonRegistration) { + reg.registerBlockDataProvider(MatterStorageProvider, BlockEntity::class.java) + reg.registerBlockDataProvider(MatteryEnergyProvider, BlockEntity::class.java) + reg.registerBlockDataProvider(MatteryWorkerProvider, MatteryWorkerBlockEntity::class.java) + reg.registerBlockDataProvider(MatterBottlerProvider, MatterBottlerBlockEntity::class.java) + reg.registerBlockDataProvider(MatterReconstructorProvider, MatterReconstructorBlockEntity::class.java) + } + + override fun registerClient(reg: IWailaClientRegistration) { + reg.registerBlockComponent(MatteryEnergyProvider, Block::class.java) + reg.registerBlockComponent(MatterStorageProvider, Block::class.java) + reg.registerBlockComponent(MatteryWorkerProvider, MatteryBlock::class.java) + reg.registerBlockComponent(MatterBottlerProvider, MatterBottlerBlock::class.java) + reg.registerBlockComponent(MatterReconstructorProvider, MatterReconstructorBlock::class.java) + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterBottlerProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterBottlerProvider.kt new file mode 100644 index 000000000..9ac8d29bf --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterBottlerProvider.kt @@ -0,0 +1,67 @@ +package ru.dbotthepony.mc.otm.compat.jade.providers + +import net.minecraft.nbt.CompoundTag +import net.minecraft.resources.ResourceLocation +import ru.dbotthepony.mc.otm.block.entity.WorkerState +import ru.dbotthepony.mc.otm.block.entity.matter.MatterBottlerBlockEntity +import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys +import ru.dbotthepony.mc.otm.compat.jade.JadeUids +import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.core.math.RGBAColor +import snownee.jade.api.BlockAccessor +import snownee.jade.api.IBlockComponentProvider +import snownee.jade.api.IServerDataProvider +import snownee.jade.api.ITooltip +import snownee.jade.api.config.IPluginConfig +import snownee.jade.api.ui.BoxStyle + +object MatterBottlerProvider : IBlockComponentProvider, IServerDataProvider { + override fun getUid(): ResourceLocation = JadeUids.MATTER_BOTTLER + + override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) { + if (accessor.blockEntity is MatterBottlerBlockEntity) { + val bottler = accessor.blockEntity as MatterBottlerBlockEntity + + val bottlerData = CompoundTag() + bottlerData.putBoolean("isBottling", bottler.isBottling) + bottlerData.putBoolean("isIdling", accessor.blockState.getValue(WorkerState.SEMI_WORKER_STATE) !== WorkerState.WORKING) + bottlerData.putFloat("workProgress", bottler.getWorkProgress()) + data.put(JadeTagKeys.MATTER_BOTTLER_DATA, bottlerData) + } + } + + override fun appendTooltip(tooltip: ITooltip, accessor: BlockAccessor, config: IPluginConfig) { + val data = accessor.serverData + + if (!data.contains(JadeTagKeys.MATTER_BOTTLER_DATA)) return + val bottlerData = data.getCompound(JadeTagKeys.MATTER_BOTTLER_DATA) + + val elementHelper = tooltip.elementHelper + tooltip.add( + elementHelper.text( + TranslatableComponent( + "otm.jade.mode", + if (bottlerData.getBoolean("isBottling")) + TranslatableComponent("otm.jade.matter_bottler.mode.fill") + else + TranslatableComponent("otm.jade.matter_bottler.mode.drain") + ) + ) + ) + + if (!data.getBoolean("isIdling")) { + val workProgress = data.getFloat("workProgress") + val style = elementHelper.progressStyle().color(RGBAColor.WHITE.toARGB()) + + tooltip.add( + elementHelper.progress( + workProgress, + null, + style, + BoxStyle.DEFAULT, + true + ) + ) + } + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterReconstructorProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterReconstructorProvider.kt new file mode 100644 index 000000000..bbe6cece3 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterReconstructorProvider.kt @@ -0,0 +1,62 @@ +package ru.dbotthepony.mc.otm.compat.jade.providers + +import net.minecraft.nbt.CompoundTag +import net.minecraft.resources.ResourceLocation +import ru.dbotthepony.mc.otm.block.entity.matter.MatterReconstructorBlockEntity +import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys +import ru.dbotthepony.mc.otm.compat.jade.JadeUids +import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.core.math.RGBAColor +import snownee.jade.api.BlockAccessor +import snownee.jade.api.IBlockComponentProvider +import snownee.jade.api.IServerDataProvider +import snownee.jade.api.ITooltip +import snownee.jade.api.config.IPluginConfig +import snownee.jade.api.ui.BoxStyle + +object MatterReconstructorProvider : IBlockComponentProvider, IServerDataProvider { + override fun getUid(): ResourceLocation = JadeUids.MATTER_RECONSTRUCTOR + + override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) { + if (accessor.blockEntity is MatterReconstructorBlockEntity) { + val reconstructor = accessor.blockEntity as MatterReconstructorBlockEntity + + val item = reconstructor.repairContainer.get(0) + + if (!item.isEmpty && item.isDamageableItem && item.maxDamage != 0) { + val reconstructorData = CompoundTag() + + reconstructorData.putInt("damage", item.maxDamage - item.damageValue) + reconstructorData.putInt("maxDamage", item.maxDamage) + + data.put(JadeTagKeys.MATTER_RECONSTRUCTOR_DATA, reconstructorData) + } + } + } + + override fun appendTooltip(tooltip: ITooltip, accessor: BlockAccessor, config: IPluginConfig) { + val data = accessor.serverData + + if (!data.contains(JadeTagKeys.MATTER_RECONSTRUCTOR_DATA)) return + val reconstructorData = data.getCompound(JadeTagKeys.MATTER_RECONSTRUCTOR_DATA) + + val damage = reconstructorData.getInt("damage") + val maxDamage = reconstructorData.getInt("maxDamage") + + val ratio = damage.toFloat() / maxDamage.toFloat() + + tooltip.add( + tooltip.elementHelper.progress( + ratio, + TranslatableComponent( + "item.durability", + damage, + maxDamage + ), + tooltip.elementHelper.progressStyle().color(RGBAColor.DARK_GREEN.toARGB()).textColor(RGBAColor.WHITE.toARGB()), + BoxStyle.DEFAULT, + true + ) + ) + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt new file mode 100644 index 000000000..43620216a --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt @@ -0,0 +1,63 @@ +package ru.dbotthepony.mc.otm.compat.jade.providers + +import net.minecraft.nbt.CompoundTag +import net.minecraft.resources.ResourceLocation +import ru.dbotthepony.mc.otm.capability.MatteryCapability +import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys +import ru.dbotthepony.mc.otm.compat.jade.JadeUids +import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.core.ifPresentK +import ru.dbotthepony.mc.otm.core.math.Decimal +import ru.dbotthepony.mc.otm.core.math.RGBAColor +import ru.dbotthepony.mc.otm.core.math.getDecimal +import ru.dbotthepony.mc.otm.core.math.putDecimal +import ru.dbotthepony.mc.otm.core.util.formatMatter +import snownee.jade.api.BlockAccessor +import snownee.jade.api.IBlockComponentProvider +import snownee.jade.api.IServerDataProvider +import snownee.jade.api.ITooltip +import snownee.jade.api.config.IPluginConfig +import snownee.jade.api.ui.BoxStyle + +object MatterStorageProvider : IBlockComponentProvider, IServerDataProvider { + override fun getUid(): ResourceLocation = JadeUids.MATTER_STORAGE + + override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) { + accessor.blockEntity?.getCapability(MatteryCapability.MATTER)?.ifPresentK { + val matterData = CompoundTag() + + matterData.putDecimal("storedMatter", it.storedMatter) + matterData.putDecimal("maxStoredMatter", it.maxStoredMatter) + + data.put(JadeTagKeys.MATTER_STORAGE_DATA, matterData) + } + } + + override fun appendTooltip(tooltip: ITooltip, accessor: BlockAccessor, config: IPluginConfig) { + val data = accessor.serverData + if (!data.contains(JadeTagKeys.MATTER_STORAGE_DATA)) return + + val matterData = data.getCompound(JadeTagKeys.MATTER_STORAGE_DATA) + val storedMatter = matterData.getDecimal("storedMatter") + val maxStoredMatter = matterData.getDecimal("maxStoredMatter") + + val ratio = if (maxStoredMatter.isZero) 0f else (storedMatter / maxStoredMatter).coerceIn(Decimal.ZERO, Decimal.ONE).toFloat() + val style = tooltip.elementHelper.progressStyle() + .color(RGBAColor.LOW_MATTER.linearInterpolation(ratio, RGBAColor.FULL_MATTER).toARGB()) + .textColor(RGBAColor.WHITE.toARGB()) + + tooltip.add( + tooltip.elementHelper.progress( + ratio, + TranslatableComponent( + "otm.gui.level", + storedMatter.formatMatter(), + maxStoredMatter.formatMatter() + ), + style, + BoxStyle.DEFAULT, + true + ) + ) + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryEnergyProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryEnergyProvider.kt new file mode 100644 index 000000000..56e6189ae --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryEnergyProvider.kt @@ -0,0 +1,61 @@ +package ru.dbotthepony.mc.otm.compat.jade.providers + +import net.minecraft.nbt.CompoundTag +import net.minecraft.resources.ResourceLocation +import ru.dbotthepony.mc.otm.capability.MatteryCapability +import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys +import ru.dbotthepony.mc.otm.compat.jade.JadeUids +import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.core.ifPresentK +import ru.dbotthepony.mc.otm.core.math.Decimal +import ru.dbotthepony.mc.otm.core.math.RGBAColor +import ru.dbotthepony.mc.otm.core.math.getDecimal +import ru.dbotthepony.mc.otm.core.math.putDecimal +import ru.dbotthepony.mc.otm.core.util.formatPower +import snownee.jade.api.* +import snownee.jade.api.config.IPluginConfig +import snownee.jade.api.ui.BoxStyle + +object MatteryEnergyProvider : IBlockComponentProvider, IServerDataProvider { + override fun getUid(): ResourceLocation = JadeUids.MATTERY_ENERGY + + override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) { + accessor.blockEntity?.getCapability(MatteryCapability.ENERGY)?.ifPresentK { + val energyData = CompoundTag() + + energyData.putDecimal("batteryLevel", it.batteryLevel) + energyData.putDecimal("maxBatteryLevel", it.maxBatteryLevel) + + data.put(JadeTagKeys.MATTERY_ENERGY_DATA, energyData) + } + } + + override fun appendTooltip(tooltip: ITooltip, accessor: BlockAccessor, config: IPluginConfig) { + val data = accessor.serverData + + if (!data.contains(JadeTagKeys.MATTERY_ENERGY_DATA)) return + val energyData = data.getCompound(JadeTagKeys.MATTERY_ENERGY_DATA) + + val batteryLevel = energyData.getDecimal("batteryLevel") + val maxBatteryLevel = energyData.getDecimal("maxBatteryLevel") + + val ratio = if (maxBatteryLevel.isZero) 0f else (batteryLevel / maxBatteryLevel).coerceIn(Decimal.ZERO, Decimal.ONE).toFloat() + val style = tooltip.elementHelper.progressStyle() + .color(RGBAColor.LOW_POWER.linearInterpolation(ratio, RGBAColor.FULL_POWER).toARGB()) + .textColor(RGBAColor.WHITE.toARGB()) + + tooltip.add( + tooltip.elementHelper.progress( + ratio, + TranslatableComponent( + "otm.gui.level", + batteryLevel.formatPower(), + maxBatteryLevel.formatPower() + ), + style, + BoxStyle.DEFAULT, + true + ) + ) + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryWorkerProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryWorkerProvider.kt new file mode 100644 index 000000000..a0b62cda3 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatteryWorkerProvider.kt @@ -0,0 +1,84 @@ +package ru.dbotthepony.mc.otm.compat.jade.providers + +import net.minecraft.nbt.CompoundTag +import net.minecraft.nbt.ListTag +import net.minecraft.resources.ResourceLocation +import ru.dbotthepony.mc.otm.block.entity.MachineItemJob +import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity +import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys +import ru.dbotthepony.mc.otm.compat.jade.JadeUids +import ru.dbotthepony.mc.otm.core.math.RGBAColor +import ru.dbotthepony.mc.otm.core.nbt.getCompoundList +import ru.dbotthepony.mc.otm.core.nbt.getItemStack +import ru.dbotthepony.mc.otm.core.nbt.set +import snownee.jade.api.BlockAccessor +import snownee.jade.api.IBlockComponentProvider +import snownee.jade.api.IServerDataProvider +import snownee.jade.api.ITooltip +import snownee.jade.api.config.IPluginConfig +import snownee.jade.api.ui.BoxStyle + +object MatteryWorkerProvider : IBlockComponentProvider, IServerDataProvider { + override fun getUid(): ResourceLocation = JadeUids.MATTERY_WORKER + + override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) { + if (accessor.blockEntity is MatteryWorkerBlockEntity<*>) { + val worker = accessor.blockEntity as MatteryWorkerBlockEntity<*> + + val workerData = CompoundTag() + + workerData["jobs"] = ListTag().also { + for (job in worker.jobEventLoops) { + val jobData = CompoundTag() + jobData.putFloat("workProgress", job.workProgress) + jobData.putBoolean("isIdling", job.isIdling) + jobData.putBoolean("isUnableToProcess", job.isUnableToProcess) + + if (job.currentJob is MachineItemJob) { + val currentJob = job.currentJob as MachineItemJob + jobData.put("itemStack", currentJob.itemStack.serializeNBT()) + } + + it.add(jobData) + } + } + + data.put(JadeTagKeys.MATTERY_WORKER_DATA, workerData) + } + } + + override fun appendTooltip(tooltip: ITooltip, accessor: BlockAccessor, config: IPluginConfig) { + val data = accessor.serverData + + if (!data.contains(JadeTagKeys.MATTERY_WORKER_DATA)) return + val workerData = data.getCompound(JadeTagKeys.MATTERY_WORKER_DATA) + + val elementHelper = tooltip.elementHelper + val style = elementHelper.progressStyle().color(RGBAColor.WHITE.toARGB()) + val styleError = elementHelper.progressStyle().color(RGBAColor.REDDISH.toARGB()) + + for (job in workerData.getCompoundList("jobs")) { + val progress = job.getFloat("workProgress") + val isIdling = job.getBoolean("isIdling") + val isUnableToProcess = job.getBoolean("isUnableToProcess") + val itemStack = job.getItemStack("itemStack") + + if (!isIdling) { + if (!itemStack.isEmpty) { + tooltip.add(elementHelper.smallItem(itemStack)) + tooltip.append(elementHelper.text(itemStack.hoverName)) + } + + tooltip.add( + elementHelper.progress( + progress, + null, + if (isUnableToProcess) styleError else style, + BoxStyle.DEFAULT, + true + ) + ) + } + } + } +} From d0334e761d3c5795bc232f452d0c672097b49c34 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Sat, 15 Jul 2023 21:02:47 +0300 Subject: [PATCH 5/6] better colors for jade bars --- .../ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt | 7 +++++++ .../mc/otm/compat/jade/providers/MatterStorageProvider.kt | 3 ++- .../mc/otm/compat/jade/providers/MatteryEnergyProvider.kt | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt index 2423d7ffb..7678283fb 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/JadeCompatData.kt @@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.compat.jade import net.minecraft.resources.ResourceLocation import ru.dbotthepony.mc.otm.OverdriveThatMatters.loc +import ru.dbotthepony.mc.otm.core.math.RGBAColor object JadeUids { val MATTERY_ENERGY: ResourceLocation = loc("mattery_energy") @@ -20,3 +21,9 @@ object JadeTagKeys { val MATTER_BOTTLER_DATA = "otmJadeMatterBottlerData" val MATTER_RECONSTRUCTOR_DATA = "otmJadeMatterReconstructorData" } + +object JadeColors { + val ENERGY_COLOR = RGBAColor(231, 232, 0) + val ENERGY_COLOR2 = RGBAColor(192, 193, 0) + val MATTER_COLOR = RGBAColor(71, 255, 187) +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt index 43620216a..1ed43911c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jade/providers/MatterStorageProvider.kt @@ -3,6 +3,7 @@ package ru.dbotthepony.mc.otm.compat.jade.providers import net.minecraft.nbt.CompoundTag import net.minecraft.resources.ResourceLocation import ru.dbotthepony.mc.otm.capability.MatteryCapability +import ru.dbotthepony.mc.otm.compat.jade.JadeColors import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys import ru.dbotthepony.mc.otm.compat.jade.JadeUids import ru.dbotthepony.mc.otm.core.TranslatableComponent @@ -43,7 +44,7 @@ object MatterStorageProvider : IBlockComponentProvider, IServerDataProvider Date: Sat, 15 Jul 2023 22:48:14 +0300 Subject: [PATCH 6/6] bump forge to recommended build --- gradle.properties | 2 +- src/main/resources/META-INF/mods.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 6029c59d9..eaa8ca684 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ jei_mc_version=1.20 curios_mc_version=1.20 forge_gradle_version=[6.0,6.2) -forge_version=47.0.19 +forge_version=47.1.0 mixingradle_version=0.7.33 mixin_version=0.8.5 diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index a3199ff6b..841489a93 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -43,7 +43,7 @@ Matter. Energy. Combined. # Does this dependency have to exist - if not, ordering below must be specified mandatory=true #mandatory # The version range of the dependency - versionRange="[47.0.1,)" #mandatory + versionRange="[47.1.0,)" #mandatory # An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory ordering="NONE" # Side this dependency is applied on - BOTH, CLIENT or SERVER