From ed5f002edc88e09e2c2a40cf74537ccfbf5bff33 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sun, 11 Jun 2023 13:57:33 +0300 Subject: [PATCH] How many seconds in eternity? --- .../assets/tardim_ic/lang/en_uk.json | 3 +- .../assets/tardim_ic/lang/en_us.json | 9 +- .../assets/tardim_ic/lang/ru_ru.json | 3 +- .../tardim_ic/models/block/food_machine.json | 104 ++++++++++++++++++ .../tardim_ic/models/item/food_machine.json | 23 ++++ .../models/item/location_jammer.json | 6 + .../textures/blocks/food_machine.png | Bin 0 -> 4164 bytes Fabric/build.gradle | 3 + .../a71/tardim_ic/tardim_ic/Registration.java | 24 +--- .../fuel_storage/FuelLevelDisplaySource.java | 60 ++++++++++ .../RequiredFuelDisplaySource.java | 54 +++++++++ .../tardim_ic/mixin/JammerMixin.java | 20 ++-- .../tardim_ic/registration/CreateCompat.java | 21 ++++ Fabric/src/main/resources/fabric.mod.json | 1 - SWD_MOMENT.txt | 7 +- 15 files changed, 304 insertions(+), 34 deletions(-) create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json index c0f8968..db7410f 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -4,5 +4,6 @@ "block.tardim_ic.tardim_dock": "TARDIM Dock", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", - "subtitles.tardim_ic.cloister": "Cloister bell rings" + "subtitles.tardim_ic.cloister": "Cloister bell rings", + "display_source.fuel_level": "TARDIM fuel level" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json index c0f8968..51aef28 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -1,8 +1,9 @@ { - "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", - "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", - "block.tardim_ic.tardim_dock": "TARDIM Dock", + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM interface", + "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM input", + "block.tardim_ic.tardim_dock": "TARDIM dock", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", - "subtitles.tardim_ic.cloister": "Cloister bell rings" + "subtitles.tardim_ic.cloister": "Cloister bell rings", + "display_source.fuel_level": "TARDIM fuel level" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json index 27ccb07..a37d071 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -4,5 +4,6 @@ "block.tardim_ic.tardim_dock": "Стыковочная станция для TARDIM", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", - "subtitles.tardim_ic.cloister": "Звон монастырского колокола" + "subtitles.tardim_ic.cloister": "Звон монастырского колокола", + "display_source.fuel_level": "Уровень топлива в TARDIM" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json b/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json new file mode 100644 index 0000000..c4b5c76 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json @@ -0,0 +1,104 @@ +{ + "credit": "Made by karoter2 (Feulim)", + "texture_size": [128, 128], + "textures": { + "0": "tardim_ic:blocks/food_machine", + "particle": "tardim_ic:blocks/food_machine" + }, + "elements": [ + { + "from": [0, 0, 1], + "to": [16, 10, 16], + "faces": { + "north": {"uv": [1.875, 1.875, 3.875, 3.125], "texture": "#0"}, + "east": {"uv": [0, 1.875, 1.875, 3.125], "texture": "#0"}, + "south": {"uv": [5.75, 1.875, 7.75, 3.125], "texture": "#0"}, + "west": {"uv": [3.875, 1.875, 5.75, 3.125], "texture": "#0"}, + "up": {"uv": [3.875, 1.875, 1.875, 0], "texture": "#0"}, + "down": {"uv": [5.875, 0, 3.875, 1.875], "texture": "#0"} + } + }, + { + "from": [0.5, 1, 16.02], + "to": [15.5, 15, 16.02], + "faces": { + "north": {"uv": [8.25, 1.625, 10.125, 3.375], "texture": "#0"}, + "east": {"uv": [8.25, 1.625, 8.25, 3.375], "texture": "#0"}, + "south": {"uv": [10.125, 1.625, 12, 3.375], "texture": "#0"}, + "west": {"uv": [10.125, 1.625, 10.125, 3.375], "texture": "#0"}, + "up": {"uv": [10.125, 1.625, 8.25, 1.625], "texture": "#0"}, + "down": {"uv": [12, 1.625, 10.125, 1.625], "texture": "#0"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 12, 16], + "faces": { + "north": {"uv": [2, 5.125, 4, 5.375], "texture": "#0"}, + "east": {"uv": [0, 5.125, 2, 5.375], "texture": "#0"}, + "south": {"uv": [6, 5.125, 8, 5.375], "texture": "#0"}, + "west": {"uv": [4, 5.125, 6, 5.375], "texture": "#0"}, + "up": {"uv": [4, 5.125, 2, 3.125], "texture": "#0"}, + "down": {"uv": [6, 3.125, 4, 5.125], "texture": "#0"} + } + }, + { + "from": [0, 12, 9], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0.875, 6.25, 2.875, 6.75], "texture": "#0"}, + "east": {"uv": [0, 6.25, 0.875, 6.75], "texture": "#0"}, + "south": {"uv": [3.75, 6.25, 5.75, 6.75], "texture": "#0"}, + "west": {"uv": [2.875, 6.25, 3.75, 6.75], "texture": "#0"}, + "up": {"uv": [2.875, 6.25, 0.875, 5.375], "texture": "#0"}, + "down": {"uv": [4.875, 5.375, 2.875, 6.25], "texture": "#0"} + } + }, + { + "from": [5, 11, 4], + "to": [11, 14, 10], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 12, 8]}, + "faces": { + "north": {"uv": [6.5, 6.125, 7.25, 6.5], "texture": "#0"}, + "east": {"uv": [5.75, 6.125, 6.5, 6.5], "texture": "#0"}, + "south": {"uv": [8, 6.125, 8.75, 6.5], "texture": "#0"}, + "west": {"uv": [7.25, 6.125, 8, 6.5], "texture": "#0"}, + "up": {"uv": [7.25, 6.125, 6.5, 5.375], "texture": "#0"}, + "down": {"uv": [8, 5.375, 7.25, 6.125], "texture": "#0"} + } + }, + { + "from": [1, 12, 3], + "to": [4, 13, 6], + "faces": { + "north": {"uv": [0.375, 0.875, 0.75, 1], "texture": "#0"}, + "east": {"uv": [0, 0.875, 0.375, 1], "texture": "#0"}, + "south": {"uv": [1.125, 0.875, 1.5, 1], "texture": "#0"}, + "west": {"uv": [0.75, 0.875, 1.125, 1], "texture": "#0"}, + "up": {"uv": [0.75, 0.875, 0.375, 0.5], "texture": "#0"}, + "down": {"uv": [1.125, 0.5, 0.75, 0.875], "texture": "#0"} + } + }, + { + "from": [12, 12, 3], + "to": [15, 13, 6], + "faces": { + "north": {"uv": [0.375, 0.375, 0.75, 0.5], "texture": "#0"}, + "east": {"uv": [0, 0.375, 0.375, 0.5], "texture": "#0"}, + "south": {"uv": [1.125, 0.375, 1.5, 0.5], "texture": "#0"}, + "west": {"uv": [0.75, 0.375, 1.125, 0.5], "texture": "#0"}, + "up": {"uv": [0.75, 0.375, 0.375, 0], "texture": "#0"}, + "down": {"uv": [1.125, 0, 0.75, 0.375], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [8, 8, 8], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json b/Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json new file mode 100644 index 0000000..68b0612 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json @@ -0,0 +1,23 @@ +{ + "parent": "tardim_ic:block/food_machine", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json b/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json new file mode 100644 index 0000000..1a1fcc4 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tardim_ic:item/location_jammer" + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png b/Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png new file mode 100644 index 0000000000000000000000000000000000000000..8d355f7e3ffc09cb1041e5ed0af64d6efa757e30 GIT binary patch literal 4164 zcmYjUXE>Zu(|(kY=p|8Cm*|89tM97OONbi1CPA=zTfO&|=%V)^x%WhzaNj001CXej%@ek??=xJ|5=ZD{V1?5m;_I zO0q!BIA|9DNPjBJLv_8f_j5Gu>Gc^0yMz`8v_vANn3hhad-&w%J~bz z>T=|C42D<=cpqfRHAPIz4Hx{JEVkgQxZ-yeR?obzG(AwMRkNi#eu= zg5rE9k_P+>(aW(J-%};J+4^mNX8Gw+=U?6dfh%3BzLYqd`<^uh&K+XGhh03Id3Rn9 zmE;2+{Kv3?htVw?9<`!$Iz)Sh^qF$p%zU|&c z&*Xw?jQRAQ3NE-GKPMwvyE;V1-$`su&+g4ZtK+vd^ZI^KWmK)}QY0|_$e@!Ie->&Y zLdf`l6`Km z^mu~X)+wsnqWU*lJ#`kQWbX*yK-m%j(ZE2d9UsAN5lox}*zGTFx(|s?qm6jwa~K&h zwOTqSJ$u?zkI|^{f-DO^WCNUWf8U>!!0XUF#`hK%^!&Ny7Tg@OjWzx|SXP?l)q^&2 z8vX)Wh>Pzt#eH~d|Km!diu@J?E#@>$e5(*p2--w%i+uG zlyM>!zECvAqpHYP?3`^wZSJQXZBd!y_h*4JJ_tFSxxYL-%v+!I{oLs{xqN+HrqaWAu*ocQ659>Rv# z&UNF!*_|oOxsv_N-^a}&0&RrATUIBoV`YpmIUq@OhcZ9DSndWYs{c%Qz`*z<5< z${Z8L>h|-h072{}0K~Yvp7sDGm89aU81wX}s_imATZZt6?b7$4SPWD{wpR2Qnh#bQ zO#K?drs{adyKKO$L|j=)5&yqBmK^7C!vU=ZejI8bL(meJus3;VLn#-@d5dyg74smI zmnL#rM%W>K2$;io3G*F({xj90onmqxs9jlPh7M z(e!#|Z^dMeMi4ZAjB`^BwZ5JPl^NlzIm`0q(Dv*Y?DXGP`#~c(`E;hq-N$=6KdBE| z0G}#6nv~WSo?|Hj)rpvNz99^CUiKPNnyh}F5 zX0JoQECUIL?;K%2;3O$nC(+@%QhOd+m4y}}Odh@Oh?g#t(uPkb0uKERD#eN7k1g8+KjwnD}E4R~#@r$@9O~{+E_>m%r&&eDCCV%sBInD$H*;By;_5 zh#=311N_~IDN|ZIl^qg9M}5|Gc^DNXlxKb`N{{+RsI#UiioaCq)PnG5H5QKdS(8NR z(p|`6?T%`h#aW`l9_2n6y27&iQjiPf&)TOy#Q%bIhC3V0fyh)YoU(sT7pFKw4O?ct zIlbWG@h*9`a5>SvYW8R6)v+LjipuxHfV;MvRu42md0*|~csWBSHZWLs*%d&riOS^P zSp<^pGLbi5ubJQ_g4f%tuKg!gc5(BQ4nHSDl{g9IUR*#%W^9hEOcdSxLUrza3$)D} zdD9;~2*U*j$f^7jivU zMQi~Q)8gk{{Ig-dG79#j(M->_c>#tnSTxNyD)8G5Tc*urg*ppm;uli!lTwa6A?Q1N z&pW()M4e)swBhT+K{9!cKq@6E?V@B@BT&%ov~%JnApa!vRc% zGYjJbFZZggxJHz_8>pFUmY-pgEg0`Ms|9t~f5qU4Oav#qWpI=FK9{gG#X`H`Kekw$ELOJE?6K z-c_FV+iYc0)!><@kHyouVJP83PQMWqlFRgW1!^)oODGp)I)6|Sqr6lDRKFguhlUdv zC6szHIFe_$|Me1$PpF>?p==Mk_H;=d-(Otz5VW}>tZe#}Wo%O4LBt;2hh?X)ITy#4 zpy#-wc7(u2J6F8*Y(T^=RoYwQO3848ng<{tKZ^!riqY^jVd# z;K$w-C&mi>4ze>6h|IQ!tG~K)k_Mi-+OMbL>HRBCD}Rd!&$45TeQToV@ zbNm)8)Pik>(fM5e$H+D*Y8b>Q)57G7DW+8|2#349FOnQ_P2BLF$E0Z(;|6B08z#tm z!RvPPucox9UZrCwWxc)IlK*Q`4`^${hH5YHm~O9f>ez#Jnj0c4HNy03D{H=JyVcvR zQP(BZ?6#d=h}N)&z*}G+sXWlsoaKoaz+A0DZF>sssKbB-;1;9WgdgR;)q@n8{#YP# z?=<4~E8>>n;dsgpae`!M9~+gkQsjI-x7C|p*d@07@&{X~j^ySRHmzgrI|awoOh<0l zoZ+akjNz%yOYRo~&Y6p+rJ9zXSoP|^9Tf&57S%hOJ5 z0?;^x6ZQBQGwVLtoo))r=P5s^^8)yVb4NsLxd^$rCwa3v>EBrj_tcWR;{o2ws@3*- zo-y=6_x0Ix^!fC<_Y4d}1xHGR2+9r~_r5icqSyImbi?X_yJm{Knhq7T1b5KDtpKH1 z+*zGsM>1PKpEYWG0Mkp zXtJw2&O9GU;d0xpOIl+gViwBoLy5RmYoY^Zj4cXiermQQFVgj?Odq=L_Z}1y5E6>_ z(j>TosWavbbt7uX6*d4+t;i;(AYBC|pEyt@vSM)=;&GX&-EuNAoYRT?8cOY7BGlCo zlB__&)4!J2KxZlL__#N*Ty%tpGc?qG{aH8H0ntW0*S7YVOP+1O&5NPl{=U27)Pk^1 zQX&-+`Q4A!%jd<$;$xHA?~7T=s#DdkHTJXB%-$-D&5s(+zV~H-(7sJCO|Z|#8m*Vi zD_)*hjdf;auU)*EBU|365x!=NyG*9Y8Lt9946SL7InVMVFXqikk!Qxy8mmkp*OD02*U#nJV!nF2az!; z(Hz?PgqYqIOWQBr6K`o@4JI=vOaC?L))| zXJ9=|^n1C<C`zg8VqVn6*w8Xev z9wWV;gtly*XrCvou=G)Ah;4{oE%-7N2SzpN%2 z8*ERuNvjB-@@&8Icq2NgnE3Ms>cJs3=G7_jow&L4%f8`E!yJZ@4t(|hQ9)H?Nl@!> zYnYQumN9uJWpu4W z?(2ZY8^6tN<^W6f4yjA$(7N(cleT$69!BEqU)_+^7m-z5Z3~PydkY_$Mv=B*-bB4; zRsIR#hRtq-Ezo;On_IA@+pt5=zH_FNyAK)y9`tZ${9f{Aivl-$QIe@%dr{H_59fz9 ztrWv(U02Dzlx#0E@si+JP7LeVYzMwfWeau$p6@AUJxh}9b2I=r)4Dx35*-meTf4ci z*Z|5cH0o)^)#cX0{KV5hm(G1g?FACW@RMo_(_kmlneq;m`1#XMC(4STwA9)2jlb?$ zkpFfB|0~8Ew(q{a%i@==e1yO}{z+^Mlx@}30dCCvK4$#;reCJ~6Uqu2@-?#N!T$&A CWfElo literal 0 HcmV?d00001 diff --git a/Fabric/build.gradle b/Fabric/build.gradle index f2f9c97..15c4d4b 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -25,6 +25,9 @@ dependencies { //.. maybe? modApi "curse.maven:cc-restitched-462672:3908334" modCompileOnly "curse.maven:cc-restitched-462672:3908334" + + // Create! + modCompileOnly "curse.maven:create-fabric-624165:4537370" } loom { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 882ac92..4d792e5 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,34 +1,18 @@ package su.a71.tardim_ic.tardim_ic; -import com.swdteam.tardim.common.block.BlockTardimDoors; -import com.swdteam.tardim.common.block.BlockTardimFloor; -import com.swdteam.tardim.common.block.BlockTardimRoof; -import com.swdteam.tardim.common.init.TardimRegistry; -import com.swdteam.tardim.tileentity.TileEntityTardim; - - -import com.mojang.datafixers.types.Type; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.Util; -import net.minecraft.core.BlockPos; + import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; -import net.minecraft.util.datafix.fixes.References; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.*; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.core.Registry; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import su.a71.tardim_ic.tardim_ic.jammer.LocationJammerMaterial; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; @@ -36,12 +20,11 @@ import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; +import su.a71.tardim_ic.tardim_ic.registration.CreateCompat; import su.a71.tardim_ic.tardim_ic.registration.Exteriors; -import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; public class Registration { // Blocks - public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); // Tile Entities @@ -70,6 +53,9 @@ public class Registration { if (FabricLoader.getInstance().isModLoaded("computercraft")) { ComputerCraftCompat.register(); // Register ComputerCraft-related features } + if (FabricLoader.getInstance().isModLoaded("create")) { + CreateCompat.register(); // Register Create-related features + } Exteriors.register(); // Register custom TARDIM exteriors Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java new file mode 100644 index 0000000..43bc8fc --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java @@ -0,0 +1,60 @@ +package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; + +import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; +import com.simibubi.create.content.logistics.block.display.source.PercentOrProgressBarDisplaySource; +import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; +import com.simibubi.create.foundation.utility.Lang; + +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; + +import net.minecraft.world.level.block.entity.BlockEntity; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +import static su.a71.tardim_ic.tardim_ic.Constants.LOG; + +public class FuelLevelDisplaySource extends PercentOrProgressBarDisplaySource { + @Override + protected Float getProgress(DisplayLinkContext context) { + if (context.level() != context.level().getServer().getLevel(TRDDimensions.TARDIS)) { + return null; + } + BlockEntity te = context.getSourceTE(); + if (!(te instanceof TileEntityFuelStorage fuelStorage)) + return null; + TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos()); + LOG.info(String.valueOf((float) (data.getFuel()))); + return (float) (data.getFuel() / 100); + } + + @Override + protected boolean progressBarActive(DisplayLinkContext context) { + return context.sourceConfig() + .getInt("Mode") != 0; + } + + @Override + protected String getTranslationKey() { + return "fuel_level"; + } + + @Override + @Environment(EnvType.CLIENT) + public void initConfigurationWidgets(DisplayLinkContext context, ModularGuiLineBuilder builder, boolean isFirstLine) { + super.initConfigurationWidgets(context, builder, isFirstLine); + if (isFirstLine) + return; + builder.addSelectionScrollInput(0, 120, + (si, l) -> si.forOptions(Lang.translatedOptions("display_source.fuel_level", "percent", "progress_bar")) + .titled(Lang.translateDirect("display_source.fuel_level.display")), + "Mode"); + } + + @Override + protected boolean allowsLabeling(DisplayLinkContext context) { + return true; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java new file mode 100644 index 0000000..056c2a5 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java @@ -0,0 +1,54 @@ +package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; + +import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; +import com.simibubi.create.content.logistics.block.display.source.NumericSingleLineDisplaySource; +import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; +import com.simibubi.create.foundation.utility.Components; + +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; + +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.phys.Vec3; + +public class RequiredFuelDisplaySource extends NumericSingleLineDisplaySource { + @Override + protected MutableComponent provideLine(DisplayLinkContext displayLinkContext, DisplayTargetStats displayTargetStats) { + if (displayLinkContext.level() != displayLinkContext.level().getServer().getLevel(TRDDimensions.TARDIS)) + return null; + BlockEntity te = displayLinkContext.getSourceTE(); + if (!(te instanceof TileEntityFuelStorage fuelStorage)) + return null; + TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos()); + + if (data.getTravelLocation() == null) return ZERO.copy(); + + TardimData.Location curr = data.getCurrentLocation(); + TardimData.Location dest = data.getTravelLocation(); + + double fuel = 0.0; + + if (curr.getLevel() != dest.getLevel()) + { + fuel = 10.0; + } + + Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ()); + Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ()); + fuel += posA.distanceTo(posB) / 100.0; + if (fuel > 100.0) fuel = 100.0; + + return Components.literal(String.valueOf(fuel)); + } + + protected String getTranslationKey() { + return "required_fuel"; + } + + protected boolean allowsLabeling(DisplayLinkContext context) { + return true; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java index cf6eb09..633b6a6 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java @@ -2,7 +2,10 @@ package su.a71.tardim_ic.tardim_ic.mixin; import com.swdteam.tardim.common.command.tardim.CommandLocate; import com.swdteam.tardim.common.command.tardim.CommandTardimBase; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; import dan200.computercraft.api.lua.LuaException; +import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -14,16 +17,19 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import static com.swdteam.tardim.common.command.tardim.CommandTardimBase.sendResponse; +import static su.a71.tardim_ic.tardim_ic.Constants.LOG; import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; @Mixin(value = CommandLocate.class, remap = false) public class JammerMixin { - @Inject(method="execute([Ljava/lang/String;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/core/BlockPos;Lcom/swdteam/tardim/common/command/tardim/CommandTardimBase/CommandSource;)V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData/Location)V"), locals = LocalCapture.CAPTURE_FAILHARD) - private static void init(CallbackInfo ci, Player player, Player otherPlayer, CommandTardimBase.CommandSource source) { - for (ItemStack armour : player.getArmorSlots()) { - if (armour.is(LOCATION_JAMMER)) { - sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source); - }; - } + @Inject(method="execute()V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData$Location;)V")) + public void execute(CallbackInfo ci) { + LOG.info("test"); +// for (ItemStack armour : player.getArmorSlots()) { +// if (armour.is(LOCATION_JAMMER)) { +// sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source); +// ci.cancel(); +// }; +// } } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java new file mode 100644 index 0000000..d5d4222 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java @@ -0,0 +1,21 @@ +package su.a71.tardim_ic.tardim_ic.registration; + +import com.simibubi.create.content.logistics.block.display.AllDisplayBehaviours; +import net.minecraft.resources.ResourceLocation; +import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.FuelLevelDisplaySource; +import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.RequiredFuelDisplaySource; + +import static com.swdteam.tardim.common.init.TRDTiles.TILE_FUEL_STORAGE; + +public class CreateCompat { + + public static void register() { + Constants.LOG.info("Loaded Create compatibility!"); +// Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); +// Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB))); + + AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_storage_display_source"), new FuelLevelDisplaySource()), TILE_FUEL_STORAGE); + AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_required_display_source"), new RequiredFuelDisplaySource()), TILE_FUEL_STORAGE); + } +} diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index dec8061..2da5547 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -22,7 +22,6 @@ ] }, "mixins": [ - "mixins.tardim_ic.json" ], "depends": { diff --git a/SWD_MOMENT.txt b/SWD_MOMENT.txt index 40aaade..a9ac663 100644 --- a/SWD_MOMENT.txt +++ b/SWD_MOMENT.txt @@ -1,4 +1,9 @@ === HOW MANY PROBLEMS TARDIM HAS?! === 1. A few log messages definitely left from testing (e.g. aklfjsjsfw) 2. isValidFlightPath is private on Fabric -3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS \ No newline at end of file +3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS +4. [FIXED] Adding custom commands was private for literally 0 reason +5. com.swdteam.tardim.common.data.DimensionMapReloadListener has modid tutorial in + public ResourceLocation getFabricId() { + return new ResourceLocation("tutorial", "tardim_dimension_lookup"); + } \ No newline at end of file