From 2328169f2a8ce47d3dac12c6df7adf8ad9763658 Mon Sep 17 00:00:00 2001 From: nicejs-is-cool Date: Tue, 7 Apr 2026 19:52:58 -0300 Subject: [PATCH] beginning of the neocomputer --- .gitignore | 3 +- README.md | 59 ++++------------- RenameTemplate.cs | 60 ------------------ Stonecutter-Arch-Template.csproj | 11 ---- build.gradle.kts | 40 ++++++++++-- gradle.properties | 7 +- gradle/wrapper/gradle-wrapper.jar | Bin 56921 -> 96608 bytes settings.gradle.kts | 12 ++-- .../com/example/template/TempLateInit.java | 16 ----- .../neoflock/neocomputers}/ConfigScreen.java | 2 +- .../neoflock/neocomputers}/ModPlatform.java | 2 +- .../neocomputers/NeoComputersInit.java | 19 ++++++ .../neocomputers}/mixin/ExampleMixin.java | 6 +- .../platforms/fabric/ModMenuIntegration.java | 6 +- .../platforms/fabric/NeoComputersFabric.java} | 12 ++-- .../platforms/forge/NeoComputersForge.java} | 17 ++--- .../neoforge/NeoComputersNeoForge.java} | 27 ++++---- .../neocomputers}/util/FileReadWrite.java | 2 +- .../org/neoflock/neocomputers/NeoComputers.kt | 19 ++++++ .../neoflock/neocomputers/block/BaseBlock.kt | 14 ++++ .../org/neoflock/neocomputers/block/Blocks.kt | 50 +++++++++++++++ src/main/resources/META-INF/mods.toml | 12 ++-- .../resources/META-INF/neoforge.mods.toml | 12 ++-- src/main/resources/architectury.common.json | 2 +- .../assets/neocomputers/lang/en_us.json | 4 ++ .../resources/assets/template/lang/en_us.json | 4 -- src/main/resources/fabric.mod.json | 13 ++-- ...s.json => neocomputers-common.mixins.json} | 2 +- ...s.json => neocomputers-fabric.mixins.json} | 2 +- ...ns.json => neocomputers-forge.mixins.json} | 2 +- ...json => neocomputers-neoforge.mixins.json} | 2 +- ...cesswidener => neocomputers.accesswidener} | 0 stonecutter.gradle.kts | 2 +- 33 files changed, 227 insertions(+), 214 deletions(-) delete mode 100644 RenameTemplate.cs delete mode 100644 Stonecutter-Arch-Template.csproj delete mode 100644 src/main/java/com/example/template/TempLateInit.java rename src/main/java/{com/example/template => org/neoflock/neocomputers}/ConfigScreen.java (95%) rename src/main/java/{com/example/template => org/neoflock/neocomputers}/ModPlatform.java (84%) create mode 100644 src/main/java/org/neoflock/neocomputers/NeoComputersInit.java rename src/main/java/{com/example/template => org/neoflock/neocomputers}/mixin/ExampleMixin.java (63%) rename src/main/java/{com/example/template => org/neoflock/neocomputers}/platforms/fabric/ModMenuIntegration.java (74%) rename src/main/java/{com/example/template/platforms/fabric/TempLateFabric.java => org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java} (60%) rename src/main/java/{com/example/template/platforms/forge/TempLateForge.java => org/neoflock/neocomputers/platforms/forge/NeoComputersForge.java} (54%) rename src/main/java/{com/example/template/platforms/neoforge/TempLateNeoForge.java => org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java} (61%) rename src/main/java/{com/example/template => org/neoflock/neocomputers}/util/FileReadWrite.java (96%) create mode 100644 src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt create mode 100644 src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt create mode 100644 src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt create mode 100644 src/main/resources/assets/neocomputers/lang/en_us.json delete mode 100644 src/main/resources/assets/template/lang/en_us.json rename src/main/resources/{template-common.mixins.json => neocomputers-common.mixins.json} (76%) rename src/main/resources/{template-neoforge.mixins.json => neocomputers-fabric.mixins.json} (65%) rename src/main/resources/{template-fabric.mixins.json => neocomputers-forge.mixins.json} (65%) rename src/main/resources/{template-forge.mixins.json => neocomputers-neoforge.mixins.json} (64%) rename src/main/resources/{template.accesswidener => neocomputers.accesswidener} (100%) diff --git a/.gitignore b/.gitignore index af3a5e4..6b7f99c 100644 --- a/.gitignore +++ b/.gitignore @@ -451,4 +451,5 @@ FodyWeavers.xsd *.msp # JetBrains Rider -*.sln.iml \ No newline at end of file +*.sln.iml +/.kotlin/ diff --git a/README.md b/README.md index 463fa1f..ae7d521 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,15 @@ -# Stonecutter template +# NeoComputers +A rewrite of OpenComputers for modern Minecraft, alongside our own additions. Based off of the https://github.com/JumperOnJava/Stonecutter-Arch-Template template. +### Project setup +This uses a combination of Architectury, Architectury API, Stonecutter, and Kotlin. Stonecutter is the most important one +to read about. Don't forget to Gradle -> Tasks -> stonecutter -> "Set active project to [version]-[loader]" before building/testing +the mod for that version! -If you have some issues with template ping me (@JavaJumper) in [Kiku's realm](https://discord.gg/TBgNUCfryS) or official fabric discord +Also, try reading about how stonecutter's conditional macros work (those can be seen as the `//?` statements in the code). +Stonecutter automatically comments and uncomments them when you switch between versions or loaders, you shouldn't do it yourself. -This template allows you create multiloader multversion mod using stonecutter and architectury +The minecraft version this mod is currently being developed on is 1.21.11 neoforge or fabric. Although the project stonecutter.gradle.kts +is currently using 1.21.9-fabric, you can easily change it with the gradle task. -It is based on my CustomCursor project - -## Setup - -To change versions check settings.gradle.kts -Currently default versions are these, -but you can easily add other versions if you need that -- 1.20.1, fabric, lexforge -- 1.20.4, fabric, neoforge -- 1.21.1, fabric, neoforge -- 1.21.3, fabric, neoforge -- 1.21.4, fabric, neoforge -- 1.21.5, fabric, neoforge -- 1.21.6, fabric, neoforge -- 1.21.7, fabric, neoforge -- 1.21.8, fabric, neoforge -- 1.21.9, fabric, neoforge -- 1.21.10, fabric, neoforge -- 1.21.11, fabric, neoforge - -You can use c# script to automatically change all template names. -Open RenameTemplate.cs, change names in replacements array and run "dotnet run" in this directory -I would highly recommend to do this before opening project in your IDE, and then remove all c# related files from project -(obj and bin folders, .csproj and script itself). Also you can remove c# stuff from .gitignore (there is comment for that) - - -## Build tools usage - -To start current active version use runActive task - -For testing all versions you can use chiseledRunAllClients, it runs all possible version and loader variants (in random(?) order) - -Also template had publishing set up, you need to specify project id for modrinth and curseforge in gradle.properties, and tokens for these sites in local.properties (it is gitignored, check local.properties.example). After that use chiseledPublishMods task - -## Template usage - -Template already has some code setup: -- common and platform specific entrypoints -- ModPlatform interface for platform specific code -- example config screen with mod menu integration -- example mixin (clientside) -- class for simple file IO -- common entrypoint with logger, modid, ModPlatform object instance -- en_us lang file +The recommended IDE for this is IntelliJ IDEA 2026.1, and the JDK used is Eclipse Temurin 25.0.2 (from Adoptium), although +you should be able to use any other build of OpenJDK 26. \ No newline at end of file diff --git a/RenameTemplate.cs b/RenameTemplate.cs deleted file mode 100644 index 69bedde..0000000 --- a/RenameTemplate.cs +++ /dev/null @@ -1,60 +0,0 @@ -List FindAllFiles(string directoryPath) -{ - return Directory.GetFiles(directoryPath, "*.*", SearchOption.AllDirectories) - .Select(file => Path.GetRelativePath(directoryPath, file)) - .ToList(); -} - -var replacements = new[] -{ - //ORDER MATTERS - new { Old = "com.example", New = "io.github.cooldev" }, //change mod package - new { Old = "template", New = "coolmod" }, //change modid - new { Old = "Template", New = "Cool Mod" }, //change mod display name - // ↕ <- Letter L is different case here - new { Old = "TempLate", New = "CoolMod" }, //change mod init class and other places where mod name is in PascalCase - new { Old = "AuthorExample", New = "CoolDev" } -}; - -var files = FindAllFiles(Directory.GetCurrentDirectory()); - -foreach (var file in files) -{ - var oldFile = file.Replace("\\", "/"); - var newFile = oldFile; - Console.WriteLine("checking: " + oldFile); - - if (oldFile.StartsWith(".")) - continue; - if (oldFile.Contains(".cs")) - continue; - if (oldFile.Contains(".git")) - continue; - if (oldFile.Contains(".gradle/")) - continue; - if (oldFile.Contains("build/")) - continue; - if (oldFile.Contains("LICENSE")) - continue; - if (oldFile.Contains("bin")) - continue; - if (oldFile.Contains("obj")) - continue; - - var fileContent = File.ReadAllText(oldFile); - - foreach (var replacement in replacements) - { - fileContent = fileContent.Replace(replacement.Old, replacement.New); - newFile = newFile.Replace(replacement.Old.Replace(".", "/"), replacement.New.Replace(".", "/")); - } - Console.WriteLine($"Moving \n\t< {oldFile} \n\t> {newFile}"); - File.Delete(oldFile); - try - { - Directory.CreateDirectory(Path.GetDirectoryName(newFile)); - } - catch { } - ; - File.WriteAllText(newFile, fileContent); -} \ No newline at end of file diff --git a/Stonecutter-Arch-Template.csproj b/Stonecutter-Arch-Template.csproj deleted file mode 100644 index abff4d8..0000000 --- a/Stonecutter-Arch-Template.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - Exe - net9.0 - Stonecutter_Arch_Template - enable - enable - - - diff --git a/build.gradle.kts b/build.gradle.kts index cc10e97..7296096 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ import java.util.* plugins { + kotlin("jvm") version "2.3.20" id("dev.architectury.loom") id("architectury-plugin") id("me.modmuss50.mod-publish-plugin") @@ -27,26 +28,33 @@ repositories { maven("https://maven.terraformersmc.com/") //placeholder api (modmenu depencency) maven("https://maven.nucleoid.xyz/") + maven { + name = "Kotlin for Forge" + setUrl("https://thedarkcolour.github.io/KotlinForForge/") + } } dependencies { minecraft("com.mojang:minecraft:$minecraft") mappings(loom.officialMojangMappings()) + modApi("dev.architectury:architectury:${mod.dep("architectury_version")}") if (loader == "fabric") { modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") // mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") modImplementation("com.terraformersmc:modmenu:${mod.dep("modmenu_version")}") - //some features (like automatic resource loading from non vanilla namespaces) work only with fabric API installed //for example translations from assets/modid/lang/en_us.json won't be working, same stuff with textures //but we keep runtime only to not accidentally depend on fabric's api, because it doesn't exist in neo/forge modRuntimeOnly("net.fabricmc.fabric-api:fabric-api:${mod.dep("fabric_version")}") - + modImplementation("net.fabricmc:fabric-language-kotlin:1.13.10+kotlin.2.3.20") + modApi("dev.architectury:architectury-fabric:${mod.dep("architectury_version")}") } if (loader == "forge") { "forge"("net.minecraftforge:forge:${minecraft}-${mod.dep("forge_loader")}") + //implementation("thedarkcolour:kotlinforforge:1.16.0") // mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") + modApi("dev.architectury:architectury-forge:${mod.dep("architectury_version")}") "io.github.llamalad7:mixinextras-forge:${mod.dep("mixin_extras")}".let { implementation(it) include(it) @@ -61,11 +69,17 @@ dependencies { // } // }) + modApi("dev.architectury:architectury-forge:${mod.dep("architectury_version")}") + implementation("thedarkcolour:kotlinforforge-neoforge:6.0.0") + } +} +buildscript { + dependencies { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0") } } - loom { - accessWidenerPath = rootProject.file("src/main/resources/template.accesswidener") + accessWidenerPath = rootProject.file("src/main/resources/neocomputers.accesswidener") decompilers { get("vineflower").apply { // Adds names to lambdas - useful for mixins @@ -74,13 +88,12 @@ loom { } if (loader == "forge") { forge.mixinConfigs( - "template-common.mixins.json", - "template-forge.mixins.json", + "neocomputers-common.mixins.json", + "neocomputers-forge.mixins.json", ) } } - val localProperties = Properties() val localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { @@ -108,8 +121,12 @@ publishMods { targets.forEach(minecraftVersions::add) if (loader == "fabric") { requires("fabric-api") + requires("fabric-language-kotlin") optional("modmenu") } + if (loader == "neoforge") { + requires("kotlinforforge-neoforge") + } } curseforge { @@ -118,8 +135,12 @@ publishMods { targets.forEach(minecraftVersions::add) if (loader == "fabric") { requires("fabric-api") + requires("fabric-language-kotlin") optional("modmenu") } + if (loader == "neoforge") { + requires("kotlinforforge-neoforge") + } } } @@ -130,6 +151,11 @@ java { sourceCompatibility = java } +kotlin { + val java = if (stonecutter.eval(minecraft, ">=1.20.5")) 21 else 17 + jvmToolchain(java) +} + val shadowBundle: Configuration by configurations.creating { isCanBeConsumed = false isCanBeResolved = true diff --git a/gradle.properties b/gradle.properties index 244c8f0..2e7a830 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,9 +8,9 @@ org.gradle.parallel=false # Mod properties mod.version=1.0.0 -mod.group=com.example -mod.id=template -mod.name=Template +mod.group=org.neoflock.neocomputers +mod.id=neocomputers +mod.name=NeoComputers # Used for the mod metadata mod.mc_dep_fabric=[VERSIONED] @@ -24,6 +24,7 @@ mod.mc_targets=[VERSIONED] deps.mixin_extras=0.4.1 deps.fabric_loader=0.18.3 deps.fabric_version=[VERSIONED] +deps.architectury_version=9.1.12 deps.forge_loader=[VERSIONED] deps.neoforge_loader=[VERSIONED] diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b498d2444600d918cbd5949508e2ade6fbef0301..757bb917f7341ab73f23ed39d480a215d3592e71 100644 GIT binary patch literal 96608 zcmbrn2bWycwKdu~=bUrSIR|ylIfv?8opa6&Ha0dkCKxao447=NF<`*hjDZjcp#(xm zAR*q(_xgI+@4Me0cype$b-KY^nK7QmTw$+sYM;GVI#tzGrRF+w3p*1N8xxbiz4OPE z{4SFt|7@W*RJ4~Q)-+ZoH{(PP6B`?wZ#mK9=!p#_jWv}OZS6@7m6);t1k~3hCP6sX zCB}*2-0xabpry-5cp^j%h>wY{Niem890LKpv0&bjG8ln)_chVMeL>44Q8km&Q5`bS5_8>S0|Gemlqa|%d1nymG~G;2h=tsaRope zHxMs67iy_p)L9H&^n}|#xNP|0WjB_G7jdQUa_NTT+In2%x_{()-@X_*HW-BK1gN$A zZy~n8@rC6HExP~PIri!tan%h^b^iLP@ahfoCiU-6FBw@`T^=4?EnAqI8=fDlpPDz8 zEzGYY8ph=$Ekf8`yJ5kt#G|myOLhuQty3Sx1w-uvshDN>HB@JoR`2%1v;?wR|L`{% zkkKF}U8y@GX$oSvEkQsv$b4lydF9-jV)zDkHfiEq!sT_^{^14T)7d=jE{NrvE@ zHJORNRvH4HlLc1k&);s8AG{uzmM2$S+^p1sBluy=(dqN)q=7IDp2?czhVd z@&dm4y-0B7vEt-?%SA>vZnET<91Md{X=3ztv+To=rNXHu8RINwG_d^Fw_g)Y=e*Sa zz3RD5aaLPm_ty{4maXPuFzlJlT3Qr) z;~r}P=uZPn1tqd5l#j|hxWA^vQSd3NlMJ+vYOqj&xG1n8pP6}j#}gE(WFDkn-l<W-{qq> zKmgC`0=01u&OQ-stmSbK@c!#yE1)^h=n$C4$@_V-36m6{Lv%#(PNO4h_r05xqnp}w zE0m?usg`(GD0C4^iSg3GVCR60p7FYEO|*J<9*71_Z&n()4`8%WO`<(^HFmiQw$TZ+)M8OR>A6?0NuzWq_@no=@VwAYHk^J z>e?{ruxntZ0KJUPH{id;eKA!l7^cH)Wi0`Npybcr0uQI_7EEmi6So@8RW&%UUv=AG z?>2=P0jeA#WW=-p)U{9Fef(!)0AHUJwW>!qbwEqwtOAcKPeNh&3Svh+xN%S20OjoO zqH3y=egFLA)3%1iX6E&Tarx*89^6DX$(RpboFNC_doVxI{pv3=EHGpMg85J#ba$og zw2VWU0O=rBK5N7Ma7ii^`(X70)$LkVyFmgj%wE6=G%G4Nv(A+Bsydbf+I@=qR_=mU zZz+d1DU(4{ISjnOcG^Z=1!Jy0*8t{o;-;Y#?zGbwvVHDx*UscT3>vRKe(|T?YU2NV z=O-`;d_MR!YfHc)I{uqgaF;d*aJG=VbZQ}A-3tz!zt!{VV|Jn!L*zFezZGKhFl$;u zcw6A4O?G_tFyYA-y9d&-QVNwmXQ_Djgvo(bHWtFb>rV$-&e}o(!-pHmRksI^sd1JE;0-b|Zv@f(O%1KKuIjSy_X=j2~fDW31!TnnqOnRbv^F1zZ z4+Jd6vVYhoZGwk`f_J`ps{|5IjfErMMlrEDFgy%fZ4uZKhjT-F11bOL93A**%i}W7gFvs%&_7)%!ly1Hy1Ah_VtOVfr(?yvO zaojb~lE6d+n5Z4SVDmCQd?3d3Ueo29lh_c3s#d^R6$2n(iZQ33kHVJEi_Kx-(ko3( zOzQCL_(o|Q`}fa`kEHS6zW{GB)M4fnk3zZXVcODx6_cJ~2G6rfW5@vZ4xq=sj5pI- zkkbK}GsuJru$BVWJ1hh6mF2&_`KCUC!tEqB&ULE-FY3xTb3aUD?>^?S)oAo%o$&74 z&v|r2`sga%45-U7GnsdcG{CT`BVw3(|9gvVZksA}hle&2?Q-P|mww2>PaXj`o_%T{ zo>^JFShEJfi#GJ}f_`38krCWxNr0+PE}wzsPD?L749=urNi*G9go06a&8W=|8q2ua z_FN{8x_fLw%}_V&j5s47dT*FveA|)Yvqb zGXekn>}_3;Om$!jWUt;=6U&A_GHT)35J1!}omDMy5GmVto& za}>3#G{u%fi)tA+GY14_5NV*(PwFO78a5LBS@dl~t>bwH28)g;Jz!q8(d7vry&QVs z2T-`GZ^Z$#!4t$j1swmrlkI@Yu95$IhYhopK5do5;Pfb{3J#eWmTJ-HF89y zJp-IkxLz3x>BWJwZJ?Zx0MS)xvgg3K3XBbrx~?m3mF%=0X=+~R-icr_DRhxbt-~IK zAIs##AHYmYY{7xcKWdG)V6u4 zt`;!%{#+2RbnUn0f%Nu?-+=J~KwSw~HlJM>F5XecE6$wyo^cv-)_LT5g)>=zn6d=} z#L1gw=r(7U4UPF$ozqWGrc_Ty*1h`>msc4b{n3MvEe*xsTuxzBI5_KA&|9mkP}pOD zBv4}1SUm)jw(M8{n#efAE zK~Z5F z?0~Mro)-`#D-T_I9pjIfcfhhAO9x2a7!>7S9{L#^SLbU{fF!Uqgm@Ax40G$-XFD zc4v_2jIfULcg$Oa>Z1*4DkN0*ZRJR`A^O^ryhtazyZM01j{?SvU5I(Zg$RNn_`s$V zHXnz|OALGH+7S2Q8#EMe%f$eTLrf<+EPRGZrNjH6Fe)Q?S;mgRgu0PX(t9@HpVT-ZC4^ywonF3DS!J0Sq9Y2+tY_dX^pqia|kKaiomF z`QQ$wB2QJxk)hfEEZlVPi64Rkaa~~UE$!g>b6}oK##Q6hS4xu3KLnLEU%oY!qo%=# z*G=)Q;u4M-!31NvW(DnV=HJikC<7(hs_D2a7N;TpMjZz z)UpTadF64C3Oj4m?t{DRATB&v0?urS0s-M5XG<0NPaYkL<~nVHuiUJ{#r+9lmy0g_ z&`I>=QdL-4mtXzzH%eEn0B3}5aj81!X5ivabjy_=RY31!JeUQ*r#BZE%OKSal8+Bz zeK45-*B#3d2$s&Ue+xM83hchIAWx8hxfVd5_j0ZoG1hX9-crU)zz{G>exPMB_0U~9 z80CKZQGMLTY*Z^_il6)i*wx#>W?e2m-2f?QhNwS$SZ2TS>$RJhgB9Gt;mNHhf1Efr z$e;)^A=24f85#djF*@@Jc1h^$wwD#2T07nN#ahe_pISE$FRvJvBT|pP)zHApr+CP< zrXkEh%ZV}$34)AKNfj-&a1j=6kc&yoK7fNH1A7>KOs@)ZsudKGMji|$Vpm@`4bZ=2!^zg>8)ZQ!%g4EX+5}684hqmlmsiaM01`Bxb+@mYt>#8=C?+^B1GaK@$OH<*O^TC-1HsQJH?%Ip* zZ7v(=DHJ(3M;~w3W`nc(ftm3XQNT|>#XkRUkG#f}E>4wZud;kozWn)enrnU{3m>Qh zjet}T+4!9=-uXEr-U_m|wh27@x)EBrS{oCLd%AKTSo%Nz;Wm0Cft_1NcnH*Mw_5eH z?szu{J$V~A^Ko}^7JM&Y-SpVPblDd4@{NQ-e@I?=G;^{P0??jtL&nLFEloKxp|q>1 zgsWu(nB1N#YlAE+1BoENjOqo4b8Jpz_u zRR?c`L9G;8Fw2cw5hy1g)T)zD{(6NqZ#g@&p-Ab&)=DU4BB+gyH8#FQ`z_!^mS$=5W+Qb{wdQ2u`EIG z4EMPHRfxub4fY{=0^n+SHq(VCj^^_qowpwr1D?rltUARaR6(PuXx= z=?n}|A;O<`5Gy7a&||LMKk#X~8{I$Bzsp@+yMM@=XDj-BqhpTiYxdZ0WT60#Se{1UuUz3;yFz z59>xKTm*aQg~vG&uUqNNEBjt~&il_ldzR0CnAgKBbYQ$qWyzFpvRKkYfG_leaV{Wp z4y=M%n@zv&9b=j#1lNEAGi*pFo|8eucE=>NL=}v&8Rr=c7ahSEK1Qv11Z)5V@Ur`3 zHZmx&8P4bxl~a~RoO=u6>?_4I@|;ia1oLHoIP4J^urrr<_`Ul)E4%-LSHS@@&4EHwj0wGyoR~}EHI|Zpj zx+==-%*EHCtt169e^z%I)l$|r(zv;K?n`CUe5=hD4`K*#Q#@Zs^XV58WWcCU?cw5C z^}KitsL4PMIC1}+VcJs+;Fb0)RA4o`13dEdBm3#L=Aps7fsDzKG7;d7pibuf3-OxJ&U<9l+>L=Bz5{mm4C%>^03Sp$C$ zQwQBP+>=*(|mIS__jP?a2rP`=)ip{oei2;kJnOb2E~j6$?!fEmv|Ar|3n zt}9U3Rl>yJr&==~*T=8|^j%<(w+xEab8#D$@A$Jrl=Y1}X~B2tq@~93g=OQ7o{G0( z0iEollwo1<@BI>r<6KR^wAw3%k){rGY!vf=-fWy~*oF`=XIklBL1{4L0_g0kWtAAu z`7U4(J1@KlKIQ8V-o|Xvu@3FZ(`_ma%NR8=%ZAwdc0dBwqmE(6Cg@*21;+gq$bs#z zCDfNM!@AAsc+>g(b+e9~RVa%fAQ@!1z;yzXjUnt^0J~idb8mf140#Y8E$4qCBi0r0 zwY6Y8-5Ci^FZWgFeeu|sn+H@NIb7sge@H}Lp!PHZ26|w7nY$K*d5x-hXF6Au7jVQz zKOqfTt13@1TCcNt0&XB?JTS1YI!;{~Mqw&4Q1|TQgfgZ^FsM34vK{>*ILvE|8GsP6UwK%haAt33 z7T6B8Q+JCMoGC^palLsiwct+f>ceX_0)msVFh-jCtDMUFlSlT(N*NhJhgMui5nT z0ol#!SY(BA-88&^hpI2G(Y$cidgw2|{Jk6lr+>IcAe7}q-P?!h z)TMT61s!0WB-7zQp##__ZwJ&ss1_RpwQi5mW=y%Fzen;;H+{~Nm;izah&G0oQF1u! z9x7XWV6_~Zblrjk9GQzpF@Qn#qIGb}Y%2HHW8*rjAD(4=0{Mu%h}liu%!?Im8@WAR zbG?YWF-#c18DV+>;5K*wNMgZoOLP|C`oZ_X8NShGv4DGnRO`@fP>kd0;O8Cy;~Crz z;8GO@Zq2l98&=Lr#=wUa4tN(#i&DTM>lp<5m`QY?ebNewp%u(QK5K<9n%w9WQssBK zua^z47;ENNjPol~t5fU7w$BEl)q-0&R9%hGuNi;UIPLcEEZJMmBp53@OvV zF54CyXbj3VFRtZLo-fEvW@a0s!A4b9$$@wu=3A;Qi^8UJ9{kLsU^7#-v;e){W&eHe z(%ZOhH24lLrP}Y9 z*(wICY=E)q5tVBNx<$lay&Xyih;}aPaBd6)H1C`8b;*R~?05@ak-&fscB9@^_+5He z-TcDFyu7<3e=lfT9bPr+@AGhtJ4`>{eL4n60PzMi0_q~)f^PZ-JelFZ9B(Xk({ACLQ^D+6&LGw!z%^I|tI`-B&&JSj`6)I59V$cy z-Ej6{QTIjIoA{@Cme|%ZiMjITBxb6S7h%rz#(@D*ph{jn^Kji5u}@5afGe-{HSh$0 zjl@sXZ*Y5z7t-p*Nh}a`H#7!(z?=EvX({ z3ms?`!I%PSMT@zfj3+=5-Yk00hd;@?{CuVMgB{yKwEXPu2M$7|%M;Gr*V#UK3cOZw0GWnTcI&WqY~_idT;Im&VEf?W;SPD=@8H zc@$g)WDaVk9hksLj-UTBdG(i3oL=k zquIa!=4QY$SmCZ(fSVjJia7b~PDmHjJP?~4m**SH6)?EdAo>VMsK}o0gyfZ&PPKH8 zXDmyTXKqay;~{iZLv!oXKBiTp8|kcXfS&NyUXrTQdYLe>T_Lqxbgh2&NI(*FCy**z zW(}QC4g$DJuQR^_UsUO{(a5ubu**LS6wRQW1-%M1m&nLlZVlRw@*V`RQzU~b7THHy z7Qui$P~!Qwl?E|T7q#}mb5PFz2~5CSbp@Bx!;N#qQW7j36hYa#@*{A!R+Y&+_9x%L zI18k%9s@NreoP%N(mvi>0^4RVm|bN=efRa%FGs=RXyMPx0F1X_dH)!c@kkkc@eo~V zwN~8-F-*6vafQste9$~dz?|YF-ZuW=^D|&Zd#<04=jx(O=*kjHXB8t(0dPu(8O|;+ zUb!_g2L*uSTk5aO@T;o=1f{2&jz>=CixOm)YS$I=p0`arSH;h%uGQN zH^-vzD4;eAG6w>!=eUMW_Ue7sCD zdqtM0~y!)K}UXogw*tD0trO;JgiB;!W%B#9Tl;k-s_~b8m zxqeU_nZH{F_)#QsuWg_S(7P|Xg%=(@I)%Z~s#=Zr9v#J|aODR|VYEC!UX#5J#~4J$ zwG-5w!c5n3{f);u-?+fMh&_6a@tm0O`{sJssRhb`7+5e_0qyg<-rBDdh@r3N-Nyz+ zRr9E&`lviT^q7a7cJ}d+MLVdr?e9Mr)f~vm5Ol9insvSZJO)wC>MjM{%>Z_c5q1U5 zZdrl@F^nVgi+cwSD`qng!;?>o8TxIVT zpDY0DV2BEQ<{bAR9YKO7rWO#JrIx{tcljQkq=QKb@W~a6Dx|7Uoy)2P{ItJunpOnJ zPhM#0<+|>vCY0Wr2VedUBnvbWC@!!?>~a*-Pq#unW&HIKToYIdc=(``XI|hW{v3%F$tJ zb~-kbAvlopxYYN4pQ9EbHg#pX2=ENA=lOPn%(pr|9@x=7zheTeaXXe=%nZe0;4eQv zgz;8_b}!xe^kF%NSByU5JS;4zR^2!U}+57s-E?nfudqr)v9LI!g zcF~KxF_?88Yj%gM19{e`fCCq9o)@L30Ft>#ZwgA(j;xt$!JwQ82HkSnj+OZ(dycy4 zo>NhSMc@t52WkqHF|))f&o#V09|~(NmPH4A^20fBFVMCDZ2H9A;P#+?-a)vg{!26g zjK%W5e(!mRO;EZm*ten|R_z<>0V+A=tZ6%2CPVd9=oCbEUp4ru9Afb{GGIIbNIm}p zLHFb!L%;+4hhqJn>XHRmdHmsb1 ziOUA-vrd>3E6-~cmHzHqQr$03Y~YJ2fBxfd=~Ygfpj}!&cH-7G=*+P^-L}jA%0B?i7LFz*vuLq`ptt`>^V`V)}8p}D;S3}cFiE5y|#^u1J)Y2 z$1Asht*;jOi!pzjofKfy>4<<~8E-?3yNYhY{4WA=uXJT{R*)|{zU_`WgYH+yAQ&Mh zkSqPO;ho2aM9~$2^eL-s)VxIHA)8vCAL~!ROP&1zShsEx#i}XVaxQym#IezV8{cyZ z*8ZXa)ojcTT&=r)Y1W(j2;?~+CPK*&S7b{S7>Ng4H!Wi@24c9Hqu?}AVz5%pkt_My zYFuFOW7^HgiOwY=!ISAG8#D8MmakoQ88`{B^#ij8<*I^eA6}6o!qr?V#5D)7va{;o zvjAf~C(GgOwOkH#K_u|p$zx1WZ}k^i$vL-8@R;?`qP;k z?&C!C$b0uQKKbcjzzXy58)!1gW~}{9SEp?Jm}f33IiS|_PFo8)ea}qi_?hP}{lI_$ zuMN~!U%KbRXV{N{%P)Yjtrb`{ZAOLu>mONKK*Dg&-)_ANifbj973i3=!@Kt|ad}mv z_O=giwwtGZ5vOhj3|_#FW4UWM6v2FM2}4e|If{i-O@Pcm+BZ-N*$SDUr{3{epf{pG z(;%ScqnBu4`TxrkKdiG#f}(vi)ESD4D;RM6_h23sEh@J#@LG#lY=B%d&rZ4g<12S% zm9SWJ^oZ61!JTh99=~PltK0O$Y{>I9VDTArp&&E@lKsa`#_W464&cid!RQo0MDW#z zp^ZAY*Q#A$#4_aREu}}yOh9#8ScQ80cIQTjt^;;SOI}h32g@M)MphlLR_7~< z%Dti4%df}6!p*GFtK9lgj89>t{V^P}mWdq=QaJ&wbrB5U{MJ(@;GBx`8(=VYX59+J zeCh>Wbta(@+?s*No&+l_FUp4CZrBh6DXV^m&1sl^9^JL#E|_HWtLqRLSCoHjV1#90 z2jVJq(538noQFLIaBZ~dVYuFVhmTkg<2*#XsNgnbj^JDzJ|Nx#bTC!~o9i0IO}4W_2Z;$zr)AP;9~rM%+|0 z=W29le-n@q7yO;tX7+da!+^BSZ}}@Gci04K_K?ehx5QYo3B;;Q7dw4JgAGeOp$BXX zBuInk`Q$YjFzN?3$uc;~4@NQKonp?i#~Nao9gaRc%tQ>1BHJWBrmi|9mU#!1dNV`U z{TNO`gF#nSK$-tvyv&;%(7DpDKNohum_;XGrUEIfJsttFz7_}==2a^Q-NPV|H3alH zYA0us088ZLTpOFm zaF%*-YxC9;o$tCt0|Vky$%xEdc*@Nj@AL*K*3}{At)6z#q7{gEJ$vp zZ5I?SXVC{Fz%f5ilz0_)j2u)at(POtFf9 zxUL`roQ_NYu{#R>{L+uSv-iKcIoff92{)F{8d1qe@8Q!t;PpjdQ_O@C5MascG_pb( zxAI~mc&30epL;4IMa6}&qGy!zthwZ{n)jb6=Edmv)(Eh(j~&Zn{S@Yd0p22XUi#jv zOe7VMXfICgULQ2bGN*0^;$#AD5STDHavwc1(s|mH?HE&>j{$f^Q&B5yAQMZ$xavNT zKjS8! zmC$Q9YnH_%d@56<-RObVgWU`xeJMIq9J7Z$2TT?ba{zC@_0B>@Ipb0A4r$pHun22vLKo{8 zG=bUzV%@BI4Y=}7>QYp}XMEasE?q;)+ewFug-FD6HH3Gcw2BLA5h4I z0S1C{t#?af*fr`vrJQt%iW75drmAdy6LK>etc53Wq3T9`?Z;M}gp>9cC2v!lxJBJ@ zf-&O3urt2|k6uSUKvw4FK;@wI|^|Z<$&Z5-J+OKW!7>R_| zsO#)KRn>IC-(x-_)f`rX9O(?&5@l9|+8({YE%2!bFjKn5s|zL}dfIKdOMu}94n%-& zs>*?yZM~5e02yr6bm{>}E;e304k}P$Clb6uG+y<@1I(Ei(;#p@#@zr$?+6MY*g6K* zWgKu=fnqqy*#j8By4i?12)1peQn#wnk?z@vaaAg7vvsI2~IM;E}jniQ4 zh(Ka5m}dgF#xU^0i6Fp(+t9IJ3ibN$!UaNia~aVOwjb1#RWfl{o&uASSdUhpcYlLX zyk8~Tu?HxUsbme}ayD2s+ULhY;-C$He1^fk0Rx@j!R5w-{Qba~G~t|2(4MQSQ0iS9 zYFZ&bxf3ix``MYqEmq)qH8&q?<~hbo`K{Xi*9$BXHW}t5@PD6w_92MP&wnlBWL^#6cX&4gcn1TLeMAZm@7G7O(NLY}GtY1_UU`NN_6fG< zqW7yE*Cx5&YES^EgX>!808=g5%{GNa8+@Wm#G zfD*7`M=*dJW_|={Zzk-niq*P3svMfvBI|6Gp~Gyas>fbo&XC4sY+m? zc3gQ4JktuS8}!+oJa>;rirC13FYglxzL2TC5dp1ZY|UW^vX$$Jpof;(Q3gQmT}$A+ zJhRr%84U36p6B_3H4#?k8z+7Q)q&M_=27NNN2(kW&O|-;cvg4}o7NtPGv_k^_J)EOe&;yX@0 z1HnrC;MFv6k{}&o@Z??kxSG37W#$KY4>3!|^g~eo{job^oo1o1nquV$yRu*=-Mg!f z5B2%tN6WhP!^h}TA9XfcP5!zZOk=^U+OWH@Iq_}{#5z>d8T$U4yu6;uvs;`RF{W@RwTAIvu(|R z7&Jg-s0@nfJu^4!eUoCl)EVgNq-O3|z{`9q7EHv=lF?GX+ z+6$VD`1ElIo=DHLSZnRTy5GAST+p?zt580Bi|elhG1Us)!2oZYOz<5>fp;wC?okZO zK>MXDZrvM{b6CJ#W#cd~ec4G}dG;5N8s;GyZ93z5pZ-=bNvlBi`cW<|48$$$_KTVE z0JvJ99yB%+4j!E=7U9mGp-`&4hgDmk6GMg*+uID$oW7ekh~)z?9nFEFjzDCC8bPPN z4>k<~Ivs6PWreYJfFxc5uoY1}dpKNUe-q5aK`!}?d$2ZJwd8fJNRwk#G1~v3Fp80n zSlA&2yhyV?%Hf?RNrrL%_vL$Ug{rOx&Fml%d<*p6{a^sslyA)v1A16xz`wq6r<-VQ zL#_-5z#cSG&)8kPH&slI5Y}}0_*fS6p|!TgC`Ym&N)k4$dEWsHBJxBC-xg5_G0XH( zOAu>!5Is9|`llZ}IJ3@h18P&ynD4Bxn!~VSBDhJ4x_kIP=<;>P?GQR{Z z6FHsH%otug7UaT$iFE~It@8=Sw(6c4&;izTna>>fj%|=C6<-rIyn+b%(>@T zS1F`#3zEv0S}?Rpa;@xzj9vvB0RjL0qqphXf}qJ|OUSL#O>nN6!D6_( zK%5llR)u)_8H3CCKn^Sc3@aT1w1kSB4%moaf!Y@N1Q-wz&ASay-^_p;)0qW5Vxk+hZ|Dcm3(AksRQx0Sc~1j^ z*f`8VpFGmh)*iP_F9NJN(;A-w2sR9$<|J#tc3;)!HU^9IjrM~GMkoM#h;Inkxd*|R z(t!5dK0$kLJ5Vg(OoI=eOq21fbw=K?cIcPC52ogV#tF{917>fRL{Dlz*x}Av@>Lt> zx$z*tAEf=PtL>s?mnjC(+|{L@YybOD^od(G*8?yPVaNro@4h_4X%awmJOkWiK2Yih zX`1FALT47Skp^%!z`SaD$kE-Di2*EgI>4HNbpi!ebhB8zxl(}HpuM*sL!IwI8wDMJ znB!cxH%PDs;Z`)mq;9n87h4HLGSjqt9E?qKhY4Bb%zh}K^HMy)azUyC2OMX>CO&@% zoO@*TU${r5?)s+>F;N`V-7r4>2XWGGjeoIX1vK@|e;`{f5Wfr@zA$XAi+?y{mUSKJrLWRTn_+4U% z*>r@GwdB^w!UC?pn;;|MyC2^RCC1nockK20Llz7$ zQX|sJe1@|K7y~xZ2+*$MXD>h$chN0s+3%}4ijuj8O^_hYobk$OQqG6YSar9M3wRA% z*4~_B3m17L`}4FP8vOW{V3@ype32g5@=wd*74kt8NhwCrX488eEb3=5=oG_3QYmw! zv&(X@1Ck+%2?C?v*Z~C0SMQ3t*#nx@BfYaezRg|^v!O147<_;m1}-x3f!X@V`nB;5 z?l8>#%5TdcZRH4O%8IAMB0*-L=^Zc~acb2tr0d4|iw_J}U=&lc2F|qt4kFmCLqv@! zUQp|g7egULdnA{reeBP=OZ%l`ImQsTDChe)VXzD0HdG2gTjMf;tb{48w|Vh&uEReY ztR19-vjN%<;!QE{O83VbDwpP$LP*f7<)hM>r5S3RLavq+Y0s8zluwCXAP$UA} znL%4p&iU+dPdPwWr-4}PWtL!cbna)WohY~Lar!P0;O}(thY(H-Wbq`UE$D4jdaR6n zHbh3z?LlmgZlDhzP!VrWqP>YlEKsE!%T+cWZcIO3t!q${ZRt)RR&}EcmQ$|V{EQ)( z7x=el?ki^6XM$Lw^&r8b2-mhgC=Pj^(=t|zX2^Mfu{`%Hx+v52qbIaa;o6TorCEZfzDsTL2iqS%B+*@`bukZm+s0231#|250A9&a%AnL?RS` z?ljI%AC@D=ENLMAFb85Is>9h+gX9P}69TB^^7BAfpQek>Xn&cor30glOe?^4b3l}j zZ&RLUJqt=8=oLNyU<|asudy`(%pKspSHYUXr@0r^KqH{i1%j#21WUEp(9tH?{6P$+ z2Pln~ZwCpO40a4&T8m15Z-#?i!~z7+|3DGQpYF*3O=Zl0bF*HJT&%iUZxnSliWCdx z-vBQPtgp; zxw=03gq{Y}MC$yU9cGe%dFLxCw>-vlG0v)og<+6$tcgxxFahOY8R%SDt91jEUXUM% z&nL7`{#F-f(bK@tI9L_v)N^8BBGPH6@ARP8W>Pu%O| zSpQ#MxgA=Ier7EXWP8iF*$a}-$OL)zd&&vJRox7@87MT#hrRA791JT5GF}cfD!1sz zIm7DQmDjD}p+xO7JqCT*S1mz6m?_wNQ{G4-m0`MRqL%CU2G0GdiYaauHONqqwBL$> z49H}-*-$b;0wz62+WYU2b0BvRpyp<<+E-TI{V^o7pk&lmrJfIiDj^=^e=9OnEL8PT0nxmotY76>4wfRn?mh36xb)0;(6t9LoOH0Eo=Xy3Y{ac z%IATOQ038B1{kQ{sejIG$WKdPkOaYiohYJ#$ImAjC z+ub)%sityLlP9WrQyhwuT1HSTsMJ{UQvk*?UP@bvu*(9-SEXH zWguK#jIpgbYOe^ys7)-b5Fw(jj4VK5z)wGM{ZCRDaH(|WVpce~j$Cdw6cpVHrj{v3 zIbekVBiX!`J17;jItwnm>2QR`Gy=-03qJkT$hK(Vi~CU0mbph@U@xF~1v1es z2|PP!a1_E5wjss+)hAHC`y#{lGkbhxQxWCsSuiwe>lR-yPW zgAFZ-H33595KG#wf}W^Z2QP~lsE4W?*y~vltmzm<*MsN++?*} zH^^XAPN{4Q#2^vG6bLO2-*tfe?DuqyOMY4d-M0Y(thwhs?L&`Z2zJ<-=A$mW0QTpf zJ|Nbk+;NdL%KfYAmxHP~O(%5h23v@U*WiL;)?^HR{S%)Ft&A~H%1zX1KUNJz1y&pO z_%uz$*1_0ks54<+00p^V;pvUZ5M$K4xE7$KHgd)^)^m=268L<6b7~XsivUw6EpdpE z1(*+&6SbKTDqzsg{jOU3$tI|srC?t@4hDFL(7E=@e#v`QmEKXdc}#x#eHuhvP@i}G zKTT456!Y3Db8JXIt+LL7PmcjR6}8WAPFGbi?Aw-sHc&ZFtbMhssymEys9c?6Pw*Y%zUo1A6~IJf z4G3yKx&6wmb?f>V3i}54OrzaA*v4RlJ%sk-3~UmBeV1`Kx-zCGX@|uScUzO3vQ5BE}f6n!sE( zK3-Ob3Y&!({2=Hn<{)4Mjj;vx^VvsnG*}L2n5`WPu427yGiouQ`m^_{^|4sGv%rAa z&+n<;Xjlv43ixCPr~;+dXL3Ww#9~>+!BMnT29=~%@l0Tu9bW0f30w#BTTAyfpCl)h zX;!cS0fQk$*ZsGLvG$Qq$Q}^;J?n@i^*_IV`f-S15Wx1wGXU2m>x!!nl)QH@^bpVz zLmd%Azg&3=%-tER9+X&|a_O!@D12Z7gEb!Koim|)>y`@x5AX&S-P5g}Rk1OY^mqq( ze|jG^8>Y*g!xt|=2+Wz1d~D5BQv&rQQ#l}T47t!+{Ros68MKr@27(xvAi5O@ zXdhu~@o|(P_(8o5_~96XA?>fgn=7+yY&zDV@rEV1{^xCsEE)}meje(V<6rzqB=0;uSQ*BH2&>-cR_QFrhk-=n1wnfQo`D0Q2zOgP*^LIpf7Ik2=B|6Bf{q( z_C@VyjLJj@Pp+f8S(&A*7Pdn}@_s8*69`Bis@@az|GoF|m&~gswf84DU5e>k?4tHR zVx}l3a*|Y#_PdG7mW}ZmC#86Ued<4drmh)UK-VrEox0C_*a876OQBitMtbVy-2NFz&I)vbSd0KI4WNR)(ZO{3 zfr$lhVt}odT?8mNc~=)i7+W)&I}@8b5%kc%K${4rFL3V1V2z;cI5DUNV8Ht6-36=5 zrB__5!G`A8Zv;WQ2IcI_U_P6yW}m2Z@MGlzRxCPaD=-}y&|EWRn9>+FuIBJ-foVde zuN+nPEE#YoX&cs49qx%!1{{C^+@1A_r(=0ZhP!ED1stGfH*DA<>Cmcjb%TIz z>IDWcd`u02N`YaF`a>Bx0oQ2&sqSMZR!-KeWeEH2bUtTfWfXzprojID&EJCy4*kPL z+Av2f@>q3UKC_n|P`9a>o*EuhUe|s;m*F{zzr6V~vk&h7@(ta_`h52}u6Qb2C7>MJ z*H00J4S;0>ET@5`g~_1Kjkhr7Gm}F{{@52US$xbURNj@ZeN;_9v<)q7Lx!AbPt?)b zEw`G0-pr~VGZ^TFL?+R-o8&NfQ)+;&GmQmR2`3)wE@D|&9t_7r#EN}zDW86cR@DVH z{xEYZ9VX-~W{!2!5O`x`NAG|NksJeG&L0P_^I+-tTzzYs3!w9DQpg1{cB{wIoNQKF8Ga@f(8;qCEo1;*DVp{>fKch21oLh&?lWK7MK=+VH^yB9 zqt09x{Xg6a#xNBpR_ry^Zxuk*G07OJ)&h;Wmk(+L0cFhd1r?Y1$lPwdW;Ot}3 z0leU0YsKI|ebXR~XAZcTm@MP}eZSFnvcBaL9NNb=#?*gZS3fm>`17=^+AijeYA#+@ z(0xF&AQw;^D7Dnao#$|oHDogkuArG+bzJn3fY9Noaz2vvtV9-Mjts$B!-Bd!k)J)P zo1pX^9f-cOP+3|^4+D(*9(xwR(CvsS`~ZS|ZU9td5e)8U#wS>Sn~0$V|H9aC(F;`Q zF=Er@z5%1Ntti5Ild&Xgz4m%*q00Gp*-kt_RtJvEnVHK^gKHJZCc*vl%uF{{=0uSZ zyudiNGCrc>IthdOC@az9@}rD5P@l);{Lej)yarM8*Ps6S3g!+J%%HbCEJs`J;ffZBeZ<; z{M*<65H*_yd-Wh#D_I4|2LueT&e%kOb&&QSK|nI68SnSsq|Z;Uhh;(KBo;svx%j6s?P7H(?aoTtn3`S3bWO@VU<4M3Drgr5`b2P|FY zhzs574ATCe%q5FG_E-V4LttSHolXsL_2XJOQz@v~7c8I>3<&3T7wf^;R1@+`*Ha*Y zg7iYVpGTHKtaBy;>t(G5ELi0~Q_XW7Ou+0YWejQp!BSXSbnL|J3M0acb@PFfQ|dC% zb2rlbdGQ#~Drgi`xXy;6y&qYtMF%79^(c<%gVC*c=$tW>>*WJtO$Q6YyeHO<{CB9Z zM)G+9w*XxKenLoxz?g{GjHO)Bgtz61EP-G>D6iAyl?5lB+6uHi`6%>r zPt6^_8*&E3TM;Wp2Op!lKy{Q@c^=T)FS4N3EE8HyHW(wt+d~95na70nP*s+oy-W4Q z9Wdz#7A>Qd6(0!7SYQw?J`QGRRC|ZsU!^7qx5bFL*c8AhFn|K>D@(la%#v?chHi$! z#1O=u;JoFfGV5I^6LGp?~rFVVed0#4qoM$^ucRK=Wh5x`P1iH+vhZb#t@Msx&_J(D1Y_Pw6=Tv2T}cU zMrW5FDL*;Q3FL7 z==_c56??84@X&s6YSchK0=3*?B4|y@r@+?HpfM7lyg#m+BF&u-K+uihppc{_D zTL!Jnok5;pUYe-=x1b%g==kCtmdv$3=!UQZ?dRGS;%TRYfY$WCz0NbV&tb)^kJ_o{ zC(O+>(53sq{JG@10`5t`@mzleugxweu+udt0iaX2fF`Q?9l{D^DOtS00a57|d&d;=@OWfpS2=mWYz#x>V7? zYf1}FJ+f3f7{e4g3Ns7iZiQ|zSgvR411OxprRgBJc!(FWr(5f~qq%~7Mk|V`!JsgdT!ESqnmhd!1v3z4?<;s0V?zITu05BYc3A`gNHdsk4H7wUHlyv$UG@113UYK z`3eLh&Bv$F3Flvq(|YIi-`G9%qofTwMsVQlmwHWmMdhj6L^&K6sPQqtP&8-JcK(+kit?v?XMm%KQZb2J|by znDK52aC^WK$jzV@)rSEc4aA+hOBCS&_7%l^aEv?iit(=kZSy(>pnTBc-r&j}9Ff>AL++fNafH`mUA1dJrELeT zIkhInlP-k?FLrekOvp3vcPN< zx**g>WCv?~G^eDzEDg%oI9r^GJ2$;PmCp@RRWD4;SV@coi-V5=5*@%I_^_QFl{<9( zVd4~HbYKDowAu1*SW!M!4iTzi%0@eq($)r%1-kfrJosoyHj7OAy(38NPyQBAwrU!> zn0Kt0aV3{HPe) z4GRaAZ8-+*x4dCWQE3X5nHuX0mfFBN0aVy#Wu)`dZ?fNvY-;~MNy2=yS}JTFYJNxk zTqu09PT%){7$Jk{|9R!52cU5E5ezc$-#_>XxVJsn7q2Kk2NhvNZwcr_J{z)Pb~3W3 ze#(unfr2c;!5ddj-vhyF4i4u`f(Z!kOq>6F;;zoGuD6l!{nnE54}Y$oBZ|R>>Dm`f zCydRUd5c%{8IfZ;=W_<_{~#7iKSY@Jqjrq1eQJsJAL`gwR$~+=rzCE3F}Wf8b>R_ErOV zgjdT0U3?5I83bs*;0Eaeif$BJICBTEPq%KT1AJI_&T2ud+<`BiV0#QJV`HUP*g)8{ zIcYP!E@6X%kf_O1GH~Nbrd}0WaHNppR-9hePf^=OoI;HVSv)XI0259t3dXQ>F z+@X$WXiV@$3$SFfo|><2hr*ddD~rP1AXmR&F|!fAE$2yl-j0%L~)S(beYVg+=4?>XdQi$oqz63-jwR8V~UU+c2;(sw?F;rX%&?AQV9m8)+}=@mG>7TKb?v{nSl7qjs+7Z;uieAS^F0TgF=F<5 zs$|f%iGcDcL`RJa#WI03lLC|`6 zx5|*IMc5`odH3YjfZd@z@C2u;uXl#glk7}_nW$1IOmY^LV3ChZJd94InAHi)_rTK+ zfO9bka*QRDBx)vvD%d@%La}*x@lo`Jkq_wg^KDkSz$VJHnHkOD{Ka(IQFtF6aM~-p zn{C_W1cdr!n%RRW>L`<+} zvxRE~cdY_>80e~zkRXTs2)3=do{t`+0NK}o3F_I(*h!hdiR}!6fYSlo@&Cuzcd*G- zoav4^n&JhD98W6_VWRs)8CK!Y5WuFI7L-F_| zy?gKd1NVK;S2{hyUUv1oU#O~c>QsH{^t8H9|K;%~r2*b%#++)W2c^-;ySmAq)U5mG06vwWfdjTuXDSxkDomEqBI#xe+$MPVBo5(LFLlk z)PBoZ^cEHPGiWm4`x~^4Wsb_Qa8{D6(g@lW`0#NsmRs&lMWMd!vdNgUtA1+`XhS?E?Q6)?Z9B@)_xGebWXC>=eN}T`RJ`H^v)9K z;0QG;AZ`eVng*L!_b~2tfrWC1HomDWn5M-@>%q=;=JFx;fvw&aD0mHTWnDL0nzSR& z1;nj|uj*~h%&fKN1SVv+AwBeeZqViy$KuBp2ZpCd;@1`j=5aH@-O2oryP37MwHc=T z&MC2f|CGYHx#gv0oL@6AF^k{$xasE8(!pJ8j|88M>4F-OU(Fk(Spit+swX%t!Pi;t z+HcXjjnlAU^u%o`Lhl55R0oio6)^1`x0lJmkHaxwJ9>{jl~N9;VVDCjDKrH+YgVFkO#Jb# zJD@H|bCDLjbZZ{Z-j7mxcp-|lhzpt9KL(w~rz!aYV6E_@$JZeRtV@ied7Aa|@3klO zL%ViMH;tA^>lCiiazN?S|9VZ`%vfT9MtklLm}kVR5(KS%(HcBi6#}kC``kc$XG)Ye z8V9{uVeF#fCLsj&JCL+0*8#9e*XrOIfE{QW)aY9g1(C4KE%V?-5YR57wfYE@0fr7; z7XfPM2BVn(i_Az-7-u6HV2nz&TxgthKRP@brFs5gW{C0)G#|#tv8P?ZlU0bWvT9A! zK@%W>_TUky7_@z6xQyAc|XwB-QcF$6Zs{R8nibf?Ea z)+#S#e>hCKIpGYee^Uxy@B&(gs}p0tg6TN_8**fL>PTl5)oB+EDZ|?OU=K z3;yXVV8C{YH#g*L>@@ky6qk&RHCKk(76_;;qU8auK>JC8(GBSU4=VPIoZ$8wrHj`F z{^iNXly>YVV78SYt&CclgvI^X zvtW)RU38>92ngs8=I&cQdJmj8sU1d9v2rz3z=N$N9_Az+Dk^9)?LXk8*Cv-m5%8%O zsePW$qJfd$3rcP&X@;2a;OW;HE2|*7n)c%QfPD|#sZt{lYB_Y@`alM+3rwwmF*OCX z5k^sHTNcQ&%qVqZ8r_zW>^f&!d(RYJTo*uN6oS%0Dn=Nf0_ATmhi5PI;1L<3hjI%7 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 diff --git a/settings.gradle.kts b/settings.gradle.kts index c6ae54b..dbdc55d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -21,13 +21,15 @@ stonecutter { fun mc(loader: String, vararg versions: String) { for (version in versions) vers("$version-$loader", version) } - //i would recommend to use neoforge for mc > 1.20.1, i haven't tested template for forge on versions higher than that - mc("fabric","1.20.1","1.20.4", "1.21.1", "1.21.3", "1.21.4", "1.21.5", "1.21.6", "1.21.7", "1.21.8", "1.21.9", "1.21.10", "1.21.11") - mc("forge","1.20.1") + //i would recommend to use neoforge for mc > 1.20.1, i haven't tested neocomputers for forge on versions higher than that + //mc("fabric","1.20.1","1.20.4", "1.21.1", "1.21.3", "1.21.4", "1.21.5", "1.21.6", "1.21.7", "1.21.8", "1.21.9", "1.21.10", "1.21.11") + mc("fabric", "1.20.1", "1.20.4", "1.21.9", "1.21.11") + mc("forge", "1.20.1") //WARNING: neoforge uses mods.toml instead of neoforge.mods.toml for versions 1.20.4 (?) and earlier - mc("neoforge", "1.20.4", "1.21.1", "1.21.3", "1.21.4", "1.21.5", "1.21.6", "1.21.7", "1.21.8", "1.21.9", "1.21.10", "1.21.11") + //mc("neoforge", "1.20.4", "1.21.1", "1.21.3", "1.21.4", "1.21.5", "1.21.6", "1.21.7", "1.21.8", "1.21.9", "1.21.10", "1.21.11") + mc("neoforge", "1.20.4", "1.21.9", "1.21.11") } create(rootProject) } -rootProject.name = "TempLate" \ No newline at end of file +rootProject.name = "NeoComputers" \ No newline at end of file diff --git a/src/main/java/com/example/template/TempLateInit.java b/src/main/java/com/example/template/TempLateInit.java deleted file mode 100644 index d2a11ef..0000000 --- a/src/main/java/com/example/template/TempLateInit.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.template; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class TempLateInit -{ - public static final String MODID = "template"; - public static final Logger LOGGER = LoggerFactory.getLogger("Template"); - public static ModPlatform PLATFORM = null; - - public static void entrypoint(ModPlatform platform) { - TempLateInit.PLATFORM = platform; - LOGGER.info("Started mod in %s loader".formatted(TempLateInit.PLATFORM.getModloader())); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/template/ConfigScreen.java b/src/main/java/org/neoflock/neocomputers/ConfigScreen.java similarity index 95% rename from src/main/java/com/example/template/ConfigScreen.java rename to src/main/java/org/neoflock/neocomputers/ConfigScreen.java index 6e63ab5..a915df9 100644 --- a/src/main/java/com/example/template/ConfigScreen.java +++ b/src/main/java/org/neoflock/neocomputers/ConfigScreen.java @@ -1,4 +1,4 @@ -package com.example.template; +package org.neoflock.neocomputers; import net.minecraft.client.gui.GuiGraphics; diff --git a/src/main/java/com/example/template/ModPlatform.java b/src/main/java/org/neoflock/neocomputers/ModPlatform.java similarity index 84% rename from src/main/java/com/example/template/ModPlatform.java rename to src/main/java/org/neoflock/neocomputers/ModPlatform.java index 01a4649..26dc1ca 100644 --- a/src/main/java/com/example/template/ModPlatform.java +++ b/src/main/java/org/neoflock/neocomputers/ModPlatform.java @@ -1,4 +1,4 @@ -package com.example.template; +package org.neoflock.neocomputers; /** diff --git a/src/main/java/org/neoflock/neocomputers/NeoComputersInit.java b/src/main/java/org/neoflock/neocomputers/NeoComputersInit.java new file mode 100644 index 0000000..8cad8ca --- /dev/null +++ b/src/main/java/org/neoflock/neocomputers/NeoComputersInit.java @@ -0,0 +1,19 @@ +package org.neoflock.neocomputers; + +import org.neoflock.neocomputers.platforms.fabric.NeoComputersFabric; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/*public class NeoComputersInit +{ + public static final String MODID = "neocomputers"; + public static final Logger LOGGER = LoggerFactory.getLogger("NeoComputers"); + public static ModPlatform PLATFORM = null; + + public static void entrypoint(ModPlatform platform) { + NeoComputersInit.PLATFORM = platform; + LOGGER.info("Started mod in %s loader".formatted(NeoComputersInit.PLATFORM.getModloader())); + LOGGER.info("Kotlin: %s".formatted(NeoComputers.INSTANCE.hello())); + + } +}*/ \ No newline at end of file diff --git a/src/main/java/com/example/template/mixin/ExampleMixin.java b/src/main/java/org/neoflock/neocomputers/mixin/ExampleMixin.java similarity index 63% rename from src/main/java/com/example/template/mixin/ExampleMixin.java rename to src/main/java/org/neoflock/neocomputers/mixin/ExampleMixin.java index fa177eb..73c879b 100644 --- a/src/main/java/com/example/template/mixin/ExampleMixin.java +++ b/src/main/java/org/neoflock/neocomputers/mixin/ExampleMixin.java @@ -1,6 +1,6 @@ -package com.example.template.mixin; +package org.neoflock.neocomputers.mixin; -import com.example.template.TempLateInit; +import org.neoflock.neocomputers.NeoComputers; import net.minecraft.client.gui.screens.TitleScreen; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -12,7 +12,7 @@ public class ExampleMixin { @Inject(method = "init",at=@At("HEAD")) void init(CallbackInfo ci){ - TempLateInit.LOGGER.info("Stonecutter example mixin init in %s".formatted(TempLateInit.PLATFORM.getModloader())); + NeoComputers.INSTANCE.getLOGGER().info("Stonecutter example mixin init in %s".formatted(NeoComputers.INSTANCE.getPLATFORM().getModloader())); } } diff --git a/src/main/java/com/example/template/platforms/fabric/ModMenuIntegration.java b/src/main/java/org/neoflock/neocomputers/platforms/fabric/ModMenuIntegration.java similarity index 74% rename from src/main/java/com/example/template/platforms/fabric/ModMenuIntegration.java rename to src/main/java/org/neoflock/neocomputers/platforms/fabric/ModMenuIntegration.java index c1d52d7..7c7a5d6 100644 --- a/src/main/java/com/example/template/platforms/fabric/ModMenuIntegration.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/fabric/ModMenuIntegration.java @@ -1,13 +1,13 @@ //? if fabric { -/*package com.example.template.platforms.fabric; +package org.neoflock.neocomputers.platforms.fabric; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; -import com.example.template.ConfigScreen; +import org.neoflock.neocomputers.ConfigScreen; public class ModMenuIntegration implements ModMenuApi { public ConfigScreenFactory getModConfigScreenFactory() { return ConfigScreen::createConfigScreen; } } -*///?} +//?} diff --git a/src/main/java/com/example/template/platforms/fabric/TempLateFabric.java b/src/main/java/org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java similarity index 60% rename from src/main/java/com/example/template/platforms/fabric/TempLateFabric.java rename to src/main/java/org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java index 0cff1ca..5503c9b 100644 --- a/src/main/java/com/example/template/platforms/fabric/TempLateFabric.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/fabric/NeoComputersFabric.java @@ -1,15 +1,15 @@ //? if fabric { -/*package com.example.template.platforms.fabric; +package org.neoflock.neocomputers.platforms.fabric; -import com.example.template.ModPlatform; +import org.neoflock.neocomputers.ModPlatform; import net.fabricmc.api.ModInitializer; -import com.example.template.TempLateInit; +import org.neoflock.neocomputers.NeoComputers; import net.fabricmc.loader.api.FabricLoader; -public class TempLateFabric implements ModInitializer { +public class NeoComputersFabric implements ModInitializer { @Override public void onInitialize() { - TempLateInit.entrypoint(new FabricPlatform()); + NeoComputers.INSTANCE.entrypoint(new FabricPlatform()); } public static class FabricPlatform implements ModPlatform{ @@ -24,4 +24,4 @@ public class TempLateFabric implements ModInitializer { } } } -*///?} \ No newline at end of file +//?} \ No newline at end of file diff --git a/src/main/java/com/example/template/platforms/forge/TempLateForge.java b/src/main/java/org/neoflock/neocomputers/platforms/forge/NeoComputersForge.java similarity index 54% rename from src/main/java/com/example/template/platforms/forge/TempLateForge.java rename to src/main/java/org/neoflock/neocomputers/platforms/forge/NeoComputersForge.java index 79f799c..acd94a9 100644 --- a/src/main/java/com/example/template/platforms/forge/TempLateForge.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/forge/NeoComputersForge.java @@ -1,17 +1,18 @@ //? if forge { -/*package com.example.template.platforms.forge; +/*package org.neoflock.neocomputers.neocomputers.platforms.forge; -import com.example.template.ConfigScreen; -import com.example.template.TempLateInit; -import com.example.template.ModPlatform; +import org.neoflock.neocomputers.ConfigScreen; +import org.neoflock.neocomputers.NeoComputersInit; +import org.neoflock.neocomputers.ModPlatform; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; +import org.neoflock.neocomputers.NeoComputers; -@Mod("template") -public class TempLateForge { - public TempLateForge() { - TempLateInit.entrypoint(new ForgePlatform()); +@Mod("neocomputers") +public class NeoComputersForge { + public NeoComputersForge() { + NeoComputers.INSTANCE.entrypoint(new ForgePlatform()); MinecraftForge.registerConfigScreen(ConfigScreen::createConfigScreen); } public static class ForgePlatform implements ModPlatform { diff --git a/src/main/java/com/example/template/platforms/neoforge/TempLateNeoForge.java b/src/main/java/org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java similarity index 61% rename from src/main/java/com/example/template/platforms/neoforge/TempLateNeoForge.java rename to src/main/java/org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java index f9ed3a1..385a7c6 100644 --- a/src/main/java/com/example/template/platforms/neoforge/TempLateNeoForge.java +++ b/src/main/java/org/neoflock/neocomputers/platforms/neoforge/NeoComputersNeoForge.java @@ -1,28 +1,29 @@ //? if neoforge { -package com.example.template.platforms.neoforge; +/*package org.neoflock.neocomputers.neocomputers.platforms.neoforge; -import com.example.template.ConfigScreen; -import com.example.template.TempLateInit; -import com.example.template.ModPlatform; +import org.neoflock.neocomputers.ConfigScreen; +import org.neoflock.neocomputers.NeoComputersInit; +import org.neoflock.neocomputers.ModPlatform; import net.neoforged.fml.ModList; import net.neoforged.fml.ModLoadingContext; import net.neoforged.fml.common.Mod; +import org.neoflock.neocomputers.NeoComputers; //? if <1.21 { -/*import net.neoforged.neoforge.client.ConfigScreenHandler; -*///?} else { +/^import net.neoforged.neoforge.client.ConfigScreenHandler; +^///?} else { import net.neoforged.neoforge.client.gui.IConfigScreenFactory; //?} -@Mod("template") -public class TempLateNeoForge { - public TempLateNeoForge() { - TempLateInit.entrypoint(new NeoForgePlatform()); +@Mod("neocomputers") +public class NeoComputersNeoForge { + public NeoComputersNeoForge() { + NeoComputers.INSTANCE.entrypoint(new NeoForgePlatform()); ModLoadingContext.get().registerExtensionPoint( //? if <1.21 { - /*ConfigScreenHandler.ConfigScreenFactory.class, + /^ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory( ((client, parent) -> ConfigScreen.createConfigScreen(parent)) ) - *///?} else { + ^///?} else { IConfigScreenFactory.class, () -> (client, parent) -> ConfigScreen.createConfigScreen(parent) //?} @@ -40,4 +41,4 @@ public class TempLateNeoForge { } } } -//?} \ No newline at end of file +*///?} \ No newline at end of file diff --git a/src/main/java/com/example/template/util/FileReadWrite.java b/src/main/java/org/neoflock/neocomputers/util/FileReadWrite.java similarity index 96% rename from src/main/java/com/example/template/util/FileReadWrite.java rename to src/main/java/org/neoflock/neocomputers/util/FileReadWrite.java index 3b0fa8e..463ea27 100644 --- a/src/main/java/com/example/template/util/FileReadWrite.java +++ b/src/main/java/org/neoflock/neocomputers/util/FileReadWrite.java @@ -1,4 +1,4 @@ -package com.example.template.util; +package org.neoflock.neocomputers.util; import java.io.File; import java.io.FileOutputStream; diff --git a/src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt b/src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt new file mode 100644 index 0000000..9abefdd --- /dev/null +++ b/src/main/kotlin/org/neoflock/neocomputers/NeoComputers.kt @@ -0,0 +1,19 @@ +package org.neoflock.neocomputers + +import org.slf4j.Logger +import org.slf4j.LoggerFactory + + +object NeoComputers { + const val MODID: String = "neocomputers" + val LOGGER: Logger = LoggerFactory.getLogger("NeoComputers") + var PLATFORM: ModPlatform? = null + + fun entrypoint(platform: ModPlatform?) { + PLATFORM = platform + //LOGGER.info("Started mod in %s loader".formatted(NeoComputersInit.PLATFORM.getModloader())) + //LOGGER.info("Kotlin: %s".formatted(NeoComputers.hello())) + LOGGER.info("Started mod in ${NeoComputers.PLATFORM?.modloader} loader") + LOGGER.info("Hello from kotlin!") + } +} \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt b/src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt new file mode 100644 index 0000000..044edd2 --- /dev/null +++ b/src/main/kotlin/org/neoflock/neocomputers/block/BaseBlock.kt @@ -0,0 +1,14 @@ +package org.neoflock.neocomputers.block + +import net.minecraft.world.level.block.Block + +class BaseBlock : Block { + protected val tier: Int + constructor(tier: Int): super(Properties.of()) { + this.tier = tier + } + + public fun getTier(): Int { + return tier + } +} \ No newline at end of file diff --git a/src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt b/src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt new file mode 100644 index 0000000..bbcd831 --- /dev/null +++ b/src/main/kotlin/org/neoflock/neocomputers/block/Blocks.kt @@ -0,0 +1,50 @@ +package org.libreflock.neocomputers.block + +import dev.architectury.registry.registries.DeferredRegister +import dev.architectury.registry.registries.RegistrySupplier +import net.minecraft.core.registries.Registries +import net.minecraft.world.item.BlockItem +import net.minecraft.world.item.Item +import net.minecraft.world.level.block.Block +import org.libreflock.neocomputers.item.Items +import org.libreflock.neocomputers.item.Tabs +import org.neoflock.neocomputers.NeoComputers +import org.neoflock.neocomputers.block.BaseBlock +import java.util.function.Consumer +import java.util.function.Supplier + +object Blocks { + val BLOCKS: DeferredRegister = DeferredRegister.create(NeoComputers.MODID, Registries.BLOCK) + + + val CASE: MutableList?>? = + BaseBlock.register(intArrayOf(0, 1, 2), "case", { tier -> CaseBlock(tier) }) + + // public static final RegistrySupplier CASE0 = BLOCKS.register("case0", () -> new CaseBlock(0)); + // public static final RegistrySupplier CASE1 = BLOCKS.register("case1", () -> new CaseBlock(1)); + // public static final RegistrySupplier CASE2 = BLOCKS.register("case2", () -> new CaseBlock(2)); + // public static final RegistrySupplier CABLE = BLOCKS.register("cable", () -> new CableBlock()); + val SCREEN: RegistrySupplier? = BLOCKS.register("screen", Supplier { ScreenBlock() }) + val CABLE: RegistrySupplier? = BLOCKS.register("cable", Supplier { CableBlock() }) + + fun registerBlockItems() { + BLOCKS.forEach(Consumer { sup: RegistrySupplier? -> + // sup.pre + // sup.((blk) -> { + // NeoComputers.LOGGER.info(blk.getDescriptionId()); + // if (blk instanceof BaseBlock) { + // Items.ITEMS.register(sup.getId().getPath(), () -> new BaseBlock.BaseBlockItem(blk, new Item.Properties().arch$tab(Tabs.TAB))); + // } else { + // Items.ITEMS.register(sup.getId().getPath(), () -> new BlockItem(blk, new Item.Properties().arch$tab(Tabs.TAB))); + // } + // }); + Items.ITEMS.register(sup!!.getId().getPath(), { + if (sup.get() is BaseBlock) { + return@register BaseBlockItem(sup.get(), Item.Properties().`arch$tab`(Tabs.TAB)) + } else { + return@register BlockItem(sup.get(), Item.Properties().`arch$tab`(Tabs.TAB)) + } + }) + }) + } +} \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 594fbf8..44ca026 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,19 +1,19 @@ modLoader = "javafml" loaderVersion = "*" license = "LGPLv3" -issueTrackerURL="https://AuthorExample/TempLate/issues" +issueTrackerURL="https://github.com/NeoFlock/NeoComputers/issues" [[mods]] -modId = "template" +modId = "neocomputers" version = "${version}" displayName = "${name}" -authors = "AuthorExample" +authors = "NeoFlock Team" description = "" -logoFile = "assets/template/icon.png" +logoFile = "assets/neocomputers/icon.png" logoBlur = false [[mixins]] -config = "template-common.mixins.json" +config = "neocomputers-common.mixins.json" [[mixins]] -config = "template-neoforge.mixins.json" \ No newline at end of file +config = "neocomputers-neoforge.mixins.json" \ No newline at end of file diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 594fbf8..44ca026 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -1,19 +1,19 @@ modLoader = "javafml" loaderVersion = "*" license = "LGPLv3" -issueTrackerURL="https://AuthorExample/TempLate/issues" +issueTrackerURL="https://github.com/NeoFlock/NeoComputers/issues" [[mods]] -modId = "template" +modId = "neocomputers" version = "${version}" displayName = "${name}" -authors = "AuthorExample" +authors = "NeoFlock Team" description = "" -logoFile = "assets/template/icon.png" +logoFile = "assets/neocomputers/icon.png" logoBlur = false [[mixins]] -config = "template-common.mixins.json" +config = "neocomputers-common.mixins.json" [[mixins]] -config = "template-neoforge.mixins.json" \ No newline at end of file +config = "neocomputers-neoforge.mixins.json" \ No newline at end of file diff --git a/src/main/resources/architectury.common.json b/src/main/resources/architectury.common.json index fb02a15..f9c7b9b 100644 --- a/src/main/resources/architectury.common.json +++ b/src/main/resources/architectury.common.json @@ -1,3 +1,3 @@ { - "accessWidener": "template.accesswidener" + "accessWidener": "neocomputers.accesswidener" } \ No newline at end of file diff --git a/src/main/resources/assets/neocomputers/lang/en_us.json b/src/main/resources/assets/neocomputers/lang/en_us.json new file mode 100644 index 0000000..42ba6b1 --- /dev/null +++ b/src/main/resources/assets/neocomputers/lang/en_us.json @@ -0,0 +1,4 @@ +{ + "neocomputers.confirm": "Confirm", + "neocomputers.cancel": "Cancel" +} \ No newline at end of file diff --git a/src/main/resources/assets/template/lang/en_us.json b/src/main/resources/assets/template/lang/en_us.json deleted file mode 100644 index 9521656..0000000 --- a/src/main/resources/assets/template/lang/en_us.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "template.confirm": "Confirm", - "template.cancel": "Cancel" -} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 3d4bfdc..ef52a50 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -5,7 +5,7 @@ "name": "${name}", "description": "", "authors": [ - "AuthorExample" + "NeoFlock Team" ], "contact": { }, @@ -14,18 +14,19 @@ "environment": "*", "entrypoints": { "main": [ - "com.example.template.platforms.fabric.TempLateFabric" + "org.neoflock.neocomputers.platforms.fabric.NeoComputersFabric" ], "modmenu": [ - "com.example.template.platforms.fabric.ModMenuIntegration" + "org.neoflock.neocomputers.platforms.fabric.ModMenuIntegration" ] }, "mixins": [ - "template-common.mixins.json", - "template-fabric.mixins.json" + "neocomputers-common.mixins.json", + "neocomputers-fabric.mixins.json" ], "depends": { "fabricloader": ">=0.15", - "minecraft": "${minecraft}" + "minecraft": "${minecraft}", + "fabric-language-kotlin": ">=1.13.10+kotlin.2.3.20" } } \ No newline at end of file diff --git a/src/main/resources/template-common.mixins.json b/src/main/resources/neocomputers-common.mixins.json similarity index 76% rename from src/main/resources/template-common.mixins.json rename to src/main/resources/neocomputers-common.mixins.json index 3151072..5a9e264 100644 --- a/src/main/resources/template-common.mixins.json +++ b/src/main/resources/neocomputers-common.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "package": "com.example.template.mixin", + "package": "org.neoflock.neocomputers.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ ], diff --git a/src/main/resources/template-neoforge.mixins.json b/src/main/resources/neocomputers-fabric.mixins.json similarity index 65% rename from src/main/resources/template-neoforge.mixins.json rename to src/main/resources/neocomputers-fabric.mixins.json index 0737e54..7429092 100644 --- a/src/main/resources/template-neoforge.mixins.json +++ b/src/main/resources/neocomputers-fabric.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "package": "com.example.template.platforms.neoforge.mixin", + "package": "org.neoflock.neocomputers.platforms.fabric.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ ], diff --git a/src/main/resources/template-fabric.mixins.json b/src/main/resources/neocomputers-forge.mixins.json similarity index 65% rename from src/main/resources/template-fabric.mixins.json rename to src/main/resources/neocomputers-forge.mixins.json index 826a776..1d3ec20 100644 --- a/src/main/resources/template-fabric.mixins.json +++ b/src/main/resources/neocomputers-forge.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "package": "com.example.template.platforms.fabric.mixin", + "package": "org.neoflock.neocomputers.platforms.forge.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ ], diff --git a/src/main/resources/template-forge.mixins.json b/src/main/resources/neocomputers-neoforge.mixins.json similarity index 64% rename from src/main/resources/template-forge.mixins.json rename to src/main/resources/neocomputers-neoforge.mixins.json index 589b22e..3f49d19 100644 --- a/src/main/resources/template-forge.mixins.json +++ b/src/main/resources/neocomputers-neoforge.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "package": "com.example.template.platforms.forge.mixin", + "package": "org.neoflock.neocomputers.platforms.neoforge.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ ], diff --git a/src/main/resources/template.accesswidener b/src/main/resources/neocomputers.accesswidener similarity index 100% rename from src/main/resources/template.accesswidener rename to src/main/resources/neocomputers.accesswidener diff --git a/stonecutter.gradle.kts b/stonecutter.gradle.kts index 503f51a..5eb2f92 100644 --- a/stonecutter.gradle.kts +++ b/stonecutter.gradle.kts @@ -5,7 +5,7 @@ plugins { id("com.gradleup.shadow") version "9.3.0" apply false id("me.modmuss50.mod-publish-plugin") version "0.8.4" apply false } -stonecutter active "1.21.9-neoforge" /* [SC] DO NOT EDIT */ +stonecutter active "1.21.9-fabric" /* [SC] DO NOT EDIT */ stonecutter.automaticPlatformConstants = true // Builds every version into `build/libs/{mod.version}/{loader}`