From 7153bc5ae3d31ad2893b70b92d26a9c60ffc7c32 Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Wed, 1 May 2024 00:29:06 +0700 Subject: [PATCH 01/21] progress on gradle properties and structure --- aaa.gradle | 292 ++++++++++++++++ build.gradle | 325 +++--------------- .../CreateTweakedControllers.java | 0 .../ModBlockEntityTypes.java | 0 .../ModClientEvents.java | 0 .../ModClientStuff.java | 0 .../ModCommonEvents.java | 0 .../create_tweaked_controllers/ModTab.java | 0 .../block/ModBlocks.java | 0 .../block/TweakedLecternControllerBlock.java | 0 .../TweakedLecternControllerBlockEntity.java | 0 .../ComputerCraft/ModComputerBehavior.java | 0 .../ComputerCraft/ModComputerCraftProxy.java | 0 .../ComputerCraft/ModSyncedPeripheral.java | 0 .../TweakedLecternPeripheral.java | 0 .../Controllable/ControllerHandler.java | 0 .../config/ModClientConfig.java | 0 .../config/ModConfigs.java | 0 .../config/ModKeyMappings.java | 0 .../controller/ControlProfile.java | 0 .../controller/ControllerRedstoneOutput.java | 0 .../controller/TweakedControlsUtil.java | 0 .../TweakedLecternControllerRenderer.java | 0 .../TweakedLinkedControllerClientHandler.java | 0 .../TweakedLinkedControllerMenu.java | 0 .../TweakedLinkedControllerServerHandler.java | 0 .../gui/ControllerButton.java | 0 .../gui/ControllerButtonRenderer.java | 0 .../gui/ControllerItemSlot.java | 0 .../gui/DigitIcon.java | 0 .../gui/DigitIconRenderer.java | 0 .../gui/InputConfig/ColoredButton.java | 0 .../gui/InputConfig/GenericInputScreen.java | 0 .../gui/InputConfig/InputList.java | 0 .../gui/InputConfig/JoystickAxisScreen.java | 0 .../gui/InputConfig/JoystickButtonScreen.java | 0 .../gui/InputConfig/KeyboardInputScreen.java | 0 .../gui/InputConfig/MouseAxisScreen.java | 0 .../gui/InputConfig/MouseButtonScreen.java | 0 .../gui/JoystickIcon.java | 0 .../gui/ModConfigScreen.java | 0 .../gui/ModControllerConfigScreen.java | 0 .../gui/ModGuiTextures.java | 0 .../gui/ModIcons.java | 0 .../gui/ModMainConfigButton.java | 0 .../gui/ModMenuTypes.java | 0 .../gui/PlainRect.java | 0 .../gui/PlainRectRenderer.java | 0 .../gui/TooltipButton.java | 0 .../gui/TweakedLinkedControllerScreen.java | 0 .../input/GamepadInputs.java | 0 .../input/GenericInput.java | 0 .../input/JoystickAxisInput.java | 0 .../input/JoystickButtonInput.java | 0 .../input/JoystickInputs.java | 0 .../input/KeyboardInput.java | 0 .../input/ModInputEvents.java | 0 .../input/MouseAxisInput.java | 0 .../input/MouseButtonInput.java | 0 .../input/MouseCursorHandler.java | 0 .../item/ModItems.java | 0 .../item/TweakedLinkedControllerItem.java | 0 .../TweakedLinkedControllerItemRenderer.java | 0 .../packet/ModPackets.java | 0 .../TweakedLinkedControllerAxisPacket.java | 0 .../TweakedLinkedControllerBindPacket.java | 0 .../TweakedLinkedControllerButtonPacket.java | 0 .../TweakedLinkedControllerPacketBase.java | 0 ...akedLinkedControllerStopLecternPacket.java | 0 .../src}/main/resources/META-INF/mods.toml | 0 .../tweaked_lectern_controller.json | 0 .../lang/en_us.json | 0 .../lang/fr_fr.json | 0 .../lang/ko_kr.json | 0 .../item/tweaked_linked_controller.json | 0 .../tweaked_linked_controller/button.json | 0 .../tweaked_linked_controller/button_n_a.json | 0 .../tweaked_linked_controller/button_n_b.json | 0 .../tweaked_linked_controller/button_n_x.json | 0 .../tweaked_linked_controller/button_n_y.json | 0 .../tweaked_linked_controller/button_p_c.json | 0 .../tweaked_linked_controller/button_p_s.json | 0 .../tweaked_linked_controller/button_p_t.json | 0 .../tweaked_linked_controller/button_p_x.json | 0 .../tweaked_linked_controller/button_x_a.json | 0 .../tweaked_linked_controller/button_x_b.json | 0 .../tweaked_linked_controller/button_x_x.json | 0 .../tweaked_linked_controller/button_x_y.json | 0 .../controller_n.json | 0 .../controller_p.json | 0 .../controller_x.json | 0 .../item/tweaked_linked_controller/item.json | 0 .../tweaked_linked_controller/joystick.json | 0 .../tweaked_linked_controller/powered.json | 0 .../tweaked_linked_controller/trigger.json | 0 .../textures/gui/controller_background.png | Bin .../gui/controller_background_oof.png | Bin .../textures/gui/controller_buttons.png | Bin .../textures/gui/digits.png | Bin .../textures/gui/icons.png | Bin .../gui/tweaked_linked_controller_0.png | Bin .../gui/tweaked_linked_controller_1.png | Bin .../item/tweaked_linked_controller.png | Bin .../item/tweaked_linked_controller_back.png | Bin .../tweaked_linked_controller_powered.png | Bin .../crafting/tweaked_linked_controller.json | 0 .../vs_mass/masses.json | 0 {src => common/src}/main/resources/logo.png | Bin .../src}/main/resources/pack.mcmeta | 0 gradle.properties | 29 +- 110 files changed, 366 insertions(+), 280 deletions(-) create mode 100644 aaa.gradle rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/ModTab.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java (100%) rename {src => common/src}/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java (100%) rename {src => common/src}/main/resources/META-INF/mods.toml (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/lang/en_us.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png (100%) rename {src => common/src}/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png (100%) rename {src => common/src}/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json (100%) rename {src => common/src}/main/resources/data/create_tweaked_controllers/vs_mass/masses.json (100%) rename {src => common/src}/main/resources/logo.png (100%) rename {src => common/src}/main/resources/pack.mcmeta (100%) diff --git a/aaa.gradle b/aaa.gradle new file mode 100644 index 0000000..4441d2c --- /dev/null +++ b/aaa.gradle @@ -0,0 +1,292 @@ +buildscript { + repositories { + // These repositories are only for Gradle plugins, put any other repositories in the repository block further below + maven { url = 'https://maven.minecraftforge.net' } + mavenCentral() + } + dependencies { + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + } +} +// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. +plugins { + id 'eclipse' + id 'maven-publish' +} +apply plugin: 'net.minecraftforge.gradle' + + +version = '1.18.2-1.2.2' +group = 'com.getItemFromBlock.create_tweaked_controllers' // http://maven.apache.org/guides/mini/guide-naming-conventions.html +archivesBaseName = 'create_tweaked_controllers' + +// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. +java.toolchain.languageVersion = JavaLanguageVersion.of(17) + +println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" +minecraft { + // The mappings can be changed at any time and must be in the following format. + // Channel: Version: + // official {minecraft_version} Official field/method names from Mojang mapping files + // parchment YYYY.MM.DD-{minecraft_version} Open community-sourced parameter names and javadocs layered on top of official + // + // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. + // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md + // + // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge + // Additional setup is needed to use their mappings: https://github.com/ParchmentMC/Parchment/wiki/Getting-Started + // + // Use non-default mappings at your own risk. They may not always work. + // Simply re-run your setup task after changing the mappings to update your workspace. + mappings channel: 'official', version: '1.18.2' + + // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default. + + // Default run configurations. + // These can be tweaked, removed, or duplicated as needed. + runs { + client { + workingDirectory project.file('run') + + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + property 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + property 'forge.logging.console.level', 'debug' + + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' + + mods { + create_tweaked_controllers { + source sourceSets.main + } + } + } + + server { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + + property 'forge.logging.console.level', 'debug' + + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' + + mods { + create_tweaked_controllers { + source sourceSets.main + } + } + } + + // This run config launches GameTestServer and runs all registered gametests, then exits. + // By default, the server will crash when no gametests are provided. + // The gametest system is also enabled by default for other run configs under the /test command. + gameTestServer { + workingDirectory project.file('run') + + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + property 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + property 'forge.logging.console.level', 'debug' + + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' + + mods { + create_tweaked_controllers { + source sourceSets.main + } + } + } + + data { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + + property 'forge.logging.console.level', 'debug' + + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + args '--mod', 'create_tweaked_controllers', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + + mods { + create_tweaked_controllers { + source sourceSets.main + } + } + } + } +} + +// Include resources generated by data generators. +sourceSets.main.resources { srcDir 'src/generated/resources' } + +repositories { + // Put repositories for dependencies here + // ForgeGradle automatically adds the Forge maven and Maven Central for you + + // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: + // flatDir { + // dir 'libs' + // } + + maven { + //CURSE + name "Cursemaven" + url "https://cursemaven.com" + content { + includeGroup "curse.maven" + } + } + + maven { + //CREATE + name = 'tterrag maven' + url = 'https://maven.tterrag.com/' + } + + maven { + // JEI + name 'Progwm16 maven' + url 'https://dvs1.progwml6.com/files/maven' + } +} + +dependencies { + // Specify the version of Minecraft to use. If this is any group other than 'net.minecraft', it is assumed + // that the dep is a ForgeGradle 'patcher' dependency, and its patches will be applied. + // The userdev artifact is a special name and will get all sorts of transformations applied to it. + minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" + + //CREATE + implementation fg.deobf("com.simibubi.create:create-${create_minecraft_version}:${create_version}:slim") { transitive = false } + implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") + implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") + + //CONTROLLABLE COMPAT + compileOnly fg.deobf("curse.maven:controllable-${controllable_version}") + + //JEI + compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}:api") + runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}") + + // CC TWEAKED COMPAT + compileOnly fg.deobf("curse.maven:cc-tweaked-${cc_tweaked_version}") + + //MIXINS + if (System.getProperty('idea.sync.active') != 'true') { + annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" + } + + // Real mod deobf dependency examples - these get remapped to your current mappings + // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency + // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency + // implementation fg.deobf("com.tterrag.registrate:Registrate:MC${mc_version}-${registrate_version}") // Adds registrate as a dependency + + // Examples using mod jars from ./libs + // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") + + // For more info... + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html +} + +// process mods.toml to inject variables +def modsTomlSpec = copySpec{ + from(sourceSets.main.resources) { + include 'META-INF/mods.toml' + expand 'version': version, + 'loader_range': loader_range, + 'minecraft_range': minecraft_range, + 'forge_range': forge_range, + 'create_range': create_range, + 'github_project': github_project + } +} + +// need to copy into each build directory, unfortunately does not seem easy to do this automatically +def buildPaths = [ + "$rootDir/out/production/resources", // IDEA + "$rootDir/bin", // Eclipse +] + +// task to add mods.toml to all relevant folders +task replaceResources { + // ensure directory exists, first build likes to fail + new File("${processResources.destinationDir}/META-INF").mkdirs() + // copy for gradle + copy { + outputs.upToDateWhen { false } + with modsTomlSpec + into processResources.destinationDir + } + // copy for IDEs + buildPaths.each { path -> + if (new File(path).exists()) { + copy { + outputs.upToDateWhen { false } + with modsTomlSpec + into path + } + } + } +} + +processResources { + exclude 'META-INF/mods.toml' + finalizedBy replaceResources +} + +// Example for how to get properties into the manifest for reading at runtime. +jar { + manifest { + attributes([ + "Specification-Title" : "create_tweaked_controllers", + "Specification-Vendor" : "create_tweaked_controllers_sareus", + "Specification-Version" : "1", // We are version 1 of ourselves + "Implementation-Title" : project.name, + "Implementation-Version" : project.jar.archiveVersion, + "Implementation-Vendor" : "create_tweaked_controllers", + "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") + ]) + } +} + +// Example configuration to allow publishing using the maven-publish plugin +// This is the preferred method to reobfuscate your jar file +jar.finalizedBy('reobfJar') +// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing +// publish.dependsOn('reobfJar') + +publishing { + publications { + mavenJava(MavenPublication) { + artifact jar + } + } + repositories { + maven { + url "file://${project.projectDir}/mcmodsrepo" + } + } +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +} diff --git a/build.gradle b/build.gradle index fe091bc..5635d5b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,292 +1,79 @@ -buildscript { - repositories { - // These repositories are only for Gradle plugins, put any other repositories in the repository block further below - maven { url = 'https://maven.minecraftforge.net' } - mavenCentral() - } - dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true - } -} -// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. plugins { - id 'eclipse' - id 'maven-publish' + id "architectury-plugin" version "3.4-SNAPSHOT" + id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false + id "io.github.p03w.machete" version "1.+" // automatic jar compressing on build } -apply plugin: 'net.minecraftforge.gradle' - - -version = '1.18.2-1.2.2' -group = 'com.getItemFromBlock.create_tweaked_controllers' // http://maven.apache.org/guides/mini/guide-naming-conventions.html -archivesBaseName = 'create_tweaked_controllers' - -// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. -java.toolchain.languageVersion = JavaLanguageVersion.of(17) - -println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" -minecraft { - // The mappings can be changed at any time and must be in the following format. - // Channel: Version: - // official {minecraft_version} Official field/method names from Mojang mapping files - // parchment YYYY.MM.DD-{minecraft_version} Open community-sourced parameter names and javadocs layered on top of official - // - // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. - // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md - // - // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge - // Additional setup is needed to use their mappings: https://github.com/ParchmentMC/Parchment/wiki/Getting-Started - // - // Use non-default mappings at your own risk. They may not always work. - // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: 'official', version: '1.18.2' - - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default. - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. - runs { - client { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - - server { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'REGISTRIES' - - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - - data { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'REGISTRIES' - - property 'forge.logging.console.level', 'debug' - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', 'create_tweaked_controllers', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - } +architectury { + minecraft = rootProject.minecraft_version } -// Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } - -repositories { - // Put repositories for dependencies here - // ForgeGradle automatically adds the Forge maven and Maven Central for you +subprojects { + apply plugin: "dev.architectury.loom" - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: - // flatDir { - // dir 'libs' - // } - - maven { - //CURSE - name "Cursemaven" - url "https://cursemaven.com" - content { - includeGroup "curse.maven" - } + loom { + silentMojangMappingsLicense() } - maven { - //CREATE - name = 'tterrag maven' - url = 'https://maven.tterrag.com/' + repositories { + mavenCentral() + maven { url = "https://maven.shedaniel.me/" } // Cloth Config, REI + maven { url = "https://maven.blamejared.com/" } // JEI + maven { url = "https://maven.parchmentmc.org" } // Parchment mappings + maven { url = "https://maven.quiltmc.org/repository/release" } // Quilt Mappings + maven { // Flywheel + url = "https://maven.tterrag.com/" + content { + // need to be specific here due to version overlaps + includeGroup("com.jozufozu.flywheel") + } + } } - maven { - // JEI - name 'Progwm16 maven' - url 'https://dvs1.progwml6.com/files/maven' + dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + // layered mappings - Mojmap names, parchment and QM docs and parameters + mappings(loom.layered { + it.mappings("org.quiltmc:quilt-mappings:${minecraft_version}+build.${qm_version}:intermediary-v2") + it.parchment("org.parchmentmc.data:parchment-${minecraft_version}:${parchment_version}@zip") + it.officialMojangMappings { nameSyntheticMembers = false } + }) + + // see each subproject for dependencies. } } -dependencies { - // Specify the version of Minecraft to use. If this is any group other than 'net.minecraft', it is assumed - // that the dep is a ForgeGradle 'patcher' dependency, and its patches will be applied. - // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - - //CREATE - implementation fg.deobf("com.simibubi.create:create-${create_minecraft_version}:${create_version}:slim") { transitive = false } - implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") - implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") - - //CONTROLLABLE COMPAT - compileOnly fg.deobf("curse.maven:controllable-${controllable_version}") - - //JEI - compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}:api") - runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}") - - // CC TWEAKED COMPAT - compileOnly fg.deobf("curse.maven:cc-tweaked-${cc_tweaked_version}") - - //MIXINS - if (System.getProperty('idea.sync.active') != 'true') { - annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" - } - - // Real mod deobf dependency examples - these get remapped to your current mappings - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency - // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency - // implementation fg.deobf("com.tterrag.registrate:Registrate:MC${mc_version}-${registrate_version}") // Adds registrate as a dependency +allprojects { + apply plugin: "java" + apply plugin: "architectury-plugin" + apply plugin: "maven-publish" - // Examples using mod jars from ./libs - // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") + archivesBaseName = rootProject.archives_base_name + group = rootProject.maven_group - // For more info... - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html -} + // Formats the mod version to include the loader, Minecraft version, and build number (if present) + // example: 1.0.0+fabric-1.18.2-100 + String buildNumber = System.getenv("GITHUB_RUN_NUMBER") + version = "${mod_version}+${project.name}-${minecraft_version}" + (buildNumber != null ? "-${buildNumber}" : "") -// process mods.toml to inject variables -def modsTomlSpec = copySpec{ - from(sourceSets.main.resources) { - include 'META-INF/mods.toml' - expand 'version': modversion, - 'loader_range': loader_range, - 'minecraft_range': minecraft_range, - 'forge_range': forge_range, - 'create_range': create_range, - 'github_project': github_project + repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. } -} - -// need to copy into each build directory, unfortunately does not seem easy to do this automatically -def buildPaths = [ - "$rootDir/out/production/resources", // IDEA - "$rootDir/bin", // Eclipse -] -// task to add mods.toml to all relevant folders -task replaceResources { - // ensure directory exists, first build likes to fail - new File("${processResources.destinationDir}/META-INF").mkdirs() - // copy for gradle - copy { - outputs.upToDateWhen { false } - with modsTomlSpec - into processResources.destinationDir - } - // copy for IDEs - buildPaths.each { path -> - if (new File(path).exists()) { - copy { - outputs.upToDateWhen { false } - with modsTomlSpec - into path - } - } + tasks.withType(JavaCompile) { + options.encoding = "UTF-8" } -} - -processResources { - exclude 'META-INF/mods.toml' - finalizedBy replaceResources -} -// Example for how to get properties into the manifest for reading at runtime. -jar { - manifest { - attributes([ - "Specification-Title" : "create_tweaked_controllers", - "Specification-Vendor" : "create_tweaked_controllers_sareus", - "Specification-Version" : "1", // We are version 1 of ourselves - "Implementation-Title" : project.name, - "Implementation-Version" : project.jar.archiveVersion, - "Implementation-Vendor" : "create_tweaked_controllers", - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") - ]) + java { + withSourcesJar() } -} -// Example configuration to allow publishing using the maven-publish plugin -// This is the preferred method to reobfuscate your jar file -jar.finalizedBy('reobfJar') -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing -// publish.dependsOn('reobfJar') - -publishing { - publications { - mavenJava(MavenPublication) { - artifact jar - } - } - repositories { - maven { - url "file://${project.projectDir}/mcmodsrepo" - } + machete { + // disable machete locally for faster builds + enabled = buildNumber != null } -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation -} +} \ No newline at end of file diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModTab.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModTab.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/ModTab.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModTab.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java diff --git a/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java b/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java similarity index 100% rename from src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java rename to common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java diff --git a/src/main/resources/META-INF/mods.toml b/common/src/main/resources/META-INF/mods.toml similarity index 100% rename from src/main/resources/META-INF/mods.toml rename to common/src/main/resources/META-INF/mods.toml diff --git a/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json b/common/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json rename to common/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json diff --git a/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/lang/en_us.json rename to common/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json diff --git a/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json rename to common/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json diff --git a/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json rename to common/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json diff --git a/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png diff --git a/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png similarity index 100% rename from src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png diff --git a/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json b/common/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json similarity index 100% rename from src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json rename to common/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json diff --git a/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json b/common/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json similarity index 100% rename from src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json rename to common/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json diff --git a/src/main/resources/logo.png b/common/src/main/resources/logo.png similarity index 100% rename from src/main/resources/logo.png rename to common/src/main/resources/logo.png diff --git a/src/main/resources/pack.mcmeta b/common/src/main/resources/pack.mcmeta similarity index 100% rename from src/main/resources/pack.mcmeta rename to common/src/main/resources/pack.mcmeta diff --git a/gradle.properties b/gradle.properties index 9767775..845212a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,31 +3,38 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -modid = create_tweaked_controllers -modversion = 1.18.2-1.2.2 +maven_group = com.getItemFromBlock.create_tweaked_controllers +id = create_tweaked_controllers +version = 1.18.2-1.2.2 minecraft_version = 1.18.2 minecraft_range = [1.18.2,1.19) + +# Fabric +fabric_loader_version = 0.15.7 +fabric_api_version = 0.77.0+1.18.2 + +# Forge forge_version = 40.1.60 loader_range = [40,) forge_range = [40.1.21,) -mixingradle_version = 0.7-SNAPSHOT -mixin_version = 0.8.5 - -jei_version = 9.7.0.209 - -controllable_version = 317269:4376751 +create_fabric_version = 0.5.1-f-build.1415 +create_forge_version = 0.5.1.f-332 -create_minecraft_version = 1.18.2 -flywheel_minecraft_version = 1.18.2 -create_version = 0.5.1.c-297 flywheel_version = 0.6.9-101 registrate_version = MC1.18.2-1.1.3 create_range = [0.5.1.a,) +jei_version = 9.7.0.209 + cc_tweaked_version = 282001:4630521 +controllable_version = 317269:4376751 + +mixingradle_version = 0.7-SNAPSHOT +mixin_version = 0.8.5 + # GitHub information github_project = getItemFromBlock/Create-Tweaked-Controllers \ No newline at end of file From 7c70d58c2a98f7f2be19ba2dc7729b16221d7146 Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Thu, 2 May 2024 16:20:10 +0700 Subject: [PATCH 02/21] update gradle --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661..17655d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 49efce444c4c9886fc2fd9a86d800282f900e062 Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Thu, 2 May 2024 16:22:55 +0700 Subject: [PATCH 03/21] Moving structure of the src to be multiloader --- common/.gitignore | 42 ++ .../CreateTweakedControllers.java | 0 .../CreateTweakedControllersClient.java} | 0 .../ModBlockEntityTypes.java | 0 .../ModClientEvents.java | 0 .../ModCommonEvents.java | 0 .../create_tweaked_controllers/ModTab.java | 0 .../block/ModBlocks.java | 0 .../block/TweakedLecternControllerBlock.java | 0 .../TweakedLecternControllerBlockEntity.java | 0 .../ComputerCraft/ModComputerBehavior.java | 0 .../ComputerCraft/ModComputerCraftProxy.java | 0 .../ComputerCraft/ModSyncedPeripheral.java | 0 .../TweakedLecternPeripheral.java | 0 .../config/ModClientConfig.java | 0 .../config/ModConfigs.java | 0 .../config/ModKeyMappings.java | 0 .../controller/ControlProfile.java | 0 .../controller/ControllerRedstoneOutput.java | 0 .../controller/TweakedControlsUtil.java | 0 .../TweakedLecternControllerRenderer.java | 0 .../TweakedLinkedControllerClientHandler.java | 0 .../TweakedLinkedControllerMenu.java | 0 .../TweakedLinkedControllerServerHandler.java | 0 .../gui/ControllerButton.java | 0 .../gui/ControllerButtonRenderer.java | 0 .../gui/ControllerItemSlot.java | 0 .../gui/DigitIcon.java | 0 .../gui/DigitIconRenderer.java | 0 .../gui/InputConfig/ColoredButton.java | 0 .../gui/InputConfig/GenericInputScreen.java | 0 .../gui/InputConfig/InputList.java | 0 .../gui/InputConfig/JoystickAxisScreen.java | 0 .../gui/InputConfig/JoystickButtonScreen.java | 0 .../gui/InputConfig/KeyboardInputScreen.java | 0 .../gui/InputConfig/MouseAxisScreen.java | 0 .../gui/InputConfig/MouseButtonScreen.java | 0 .../gui/JoystickIcon.java | 0 .../gui/ModConfigScreen.java | 0 .../gui/ModControllerConfigScreen.java | 0 .../gui/ModGuiTextures.java | 0 .../gui/ModIcons.java | 0 .../gui/ModMainConfigButton.java | 0 .../gui/ModMenuTypes.java | 0 .../gui/PlainRect.java | 0 .../gui/PlainRectRenderer.java | 0 .../gui/TooltipButton.java | 0 .../gui/TweakedLinkedControllerScreen.java | 0 .../input/GamepadInputs.java | 0 .../input/GenericInput.java | 0 .../input/JoystickAxisInput.java | 0 .../input/JoystickButtonInput.java | 0 .../input/JoystickInputs.java | 0 .../input/KeyboardInput.java | 0 .../input/ModInputEvents.java | 0 .../input/MouseAxisInput.java | 0 .../input/MouseButtonInput.java | 0 .../input/MouseCursorHandler.java | 0 .../item/ModItems.java | 0 .../item/TweakedLinkedControllerItem.java | 0 .../TweakedLinkedControllerItemRenderer.java | 0 .../packet/ModPackets.java | 0 .../TweakedLinkedControllerAxisPacket.java | 0 .../TweakedLinkedControllerBindPacket.java | 0 .../TweakedLinkedControllerButtonPacket.java | 0 .../TweakedLinkedControllerPacketBase.java | 0 ...akedLinkedControllerStopLecternPacket.java | 0 fabric/.gitignore | 42 ++ .../CreateTweakedControllerFabric.java | 0 .../tweaked_lectern_controller.json | 0 .../lang/en_us.json | 0 .../lang/fr_fr.json | 0 .../lang/ko_kr.json | 0 .../item/tweaked_linked_controller.json | 0 .../tweaked_linked_controller/button.json | 0 .../tweaked_linked_controller/button_n_a.json | 0 .../tweaked_linked_controller/button_n_b.json | 0 .../tweaked_linked_controller/button_n_x.json | 0 .../tweaked_linked_controller/button_n_y.json | 0 .../tweaked_linked_controller/button_p_c.json | 0 .../tweaked_linked_controller/button_p_s.json | 0 .../tweaked_linked_controller/button_p_t.json | 0 .../tweaked_linked_controller/button_p_x.json | 0 .../tweaked_linked_controller/button_x_a.json | 0 .../tweaked_linked_controller/button_x_b.json | 0 .../tweaked_linked_controller/button_x_x.json | 0 .../tweaked_linked_controller/button_x_y.json | 0 .../controller_n.json | 0 .../controller_p.json | 0 .../controller_x.json | 0 .../item/tweaked_linked_controller/item.json | 0 .../tweaked_linked_controller/joystick.json | 0 .../tweaked_linked_controller/powered.json | 0 .../tweaked_linked_controller/trigger.json | 0 .../textures/gui/controller_background.png | Bin .../gui/controller_background_oof.png | Bin .../textures/gui/controller_buttons.png | Bin .../textures/gui/digits.png | Bin .../textures/gui/icons.png | Bin .../gui/tweaked_linked_controller_0.png | Bin .../gui/tweaked_linked_controller_1.png | Bin .../item/tweaked_linked_controller.png | Bin .../item/tweaked_linked_controller_back.png | Bin .../tweaked_linked_controller_powered.png | Bin .../crafting/tweaked_linked_controller.json | 0 .../vs_mass/masses.json | 0 fabric/src/main/resources/fabric.mod.json | 32 ++ .../src/main/resources/logo.png | Bin .../src/main/resources/pack.mcmeta | 0 forge/.gitignore | 42 ++ .../Controllable/ControllerHandler.java | 0 .../src/main/resources/META-INF/mods.toml | 0 .../tweaked_lectern_controller.json | 64 +++ .../lang/en_us.json | 101 +++++ .../lang/fr_fr.json | 101 +++++ .../lang/ko_kr.json | 101 +++++ .../item/tweaked_linked_controller.json | 3 + .../tweaked_linked_controller/button.json | 22 + .../tweaked_linked_controller/button_n_a.json | 22 + .../tweaked_linked_controller/button_n_b.json | 22 + .../tweaked_linked_controller/button_n_x.json | 22 + .../tweaked_linked_controller/button_n_y.json | 22 + .../tweaked_linked_controller/button_p_c.json | 22 + .../tweaked_linked_controller/button_p_s.json | 22 + .../tweaked_linked_controller/button_p_t.json | 22 + .../tweaked_linked_controller/button_p_x.json | 22 + .../tweaked_linked_controller/button_x_a.json | 22 + .../tweaked_linked_controller/button_x_b.json | 22 + .../tweaked_linked_controller/button_x_x.json | 22 + .../tweaked_linked_controller/button_x_y.json | 22 + .../controller_n.json | 391 ++++++++++++++++++ .../controller_p.json | 391 ++++++++++++++++++ .../controller_x.json | 391 ++++++++++++++++++ .../item/tweaked_linked_controller/item.json | 391 ++++++++++++++++++ .../tweaked_linked_controller/joystick.json | 36 ++ .../tweaked_linked_controller/powered.json | 134 ++++++ .../tweaked_linked_controller/trigger.json | 23 ++ .../textures/gui/controller_background.png | Bin 0 -> 6784 bytes .../gui/controller_background_oof.png | Bin 0 -> 15481 bytes .../textures/gui/controller_buttons.png | Bin 0 -> 5051 bytes .../textures/gui/digits.png | Bin 0 -> 667 bytes .../textures/gui/icons.png | Bin 0 -> 725 bytes .../gui/tweaked_linked_controller_0.png | Bin 0 -> 17935 bytes .../gui/tweaked_linked_controller_1.png | Bin 0 -> 20936 bytes .../item/tweaked_linked_controller.png | Bin 0 -> 5599 bytes .../item/tweaked_linked_controller_back.png | Bin 0 -> 4604 bytes .../tweaked_linked_controller_powered.png | Bin 0 -> 5377 bytes .../crafting/tweaked_linked_controller.json | 28 ++ .../vs_mass/masses.json | 6 + forge/src/main/resources/logo.png | Bin 0 -> 18095 bytes forge/src/main/resources/pack.mcmeta | 6 + settings.gradle.kts | 24 ++ 152 files changed, 2635 insertions(+) create mode 100644 common/.gitignore rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java (100%) rename common/src/main/{java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java => com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersClient.java} (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/ModTab.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java (100%) rename common/src/main/{java => }/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java (100%) create mode 100644 fabric/.gitignore create mode 100644 fabric/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllerFabric.java rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png (100%) rename {common => fabric}/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png (100%) rename {common => fabric}/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json (100%) rename {common => fabric}/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json (100%) create mode 100644 fabric/src/main/resources/fabric.mod.json rename {common => fabric}/src/main/resources/logo.png (100%) rename {common => fabric}/src/main/resources/pack.mcmeta (100%) create mode 100644 forge/.gitignore rename {common/src/main/java => forge/src/main}/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java (100%) rename {common => forge}/src/main/resources/META-INF/mods.toml (100%) create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png create mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png create mode 100644 forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json create mode 100644 forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json create mode 100644 forge/src/main/resources/logo.png create mode 100644 forge/src/main/resources/pack.mcmeta create mode 100644 settings.gradle.kts diff --git a/common/.gitignore b/common/.gitignore new file mode 100644 index 0000000..b63da45 --- /dev/null +++ b/common/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersClient.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientStuff.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersClient.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/ModBlockEntityTypes.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/ModCommonEvents.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModTab.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModTab.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/ModTab.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/ModTab.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/block/ModBlocks.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlock.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/block/TweakedLecternControllerBlockEntity.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerBehavior.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModComputerCraftProxy.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/ModSyncedPeripheral.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/compat/ComputerCraft/TweakedLecternPeripheral.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModConfigs.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModKeyMappings.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControllerRedstoneOutput.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLecternControllerRenderer.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerClientHandler.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerMenu.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedLinkedControllerServerHandler.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButton.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ControllerButtonRenderer.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ControllerItemSlot.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/DigitIcon.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/DigitIconRenderer.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/ColoredButton.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/GenericInputScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/InputList.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickAxisScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/JoystickButtonScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/KeyboardInputScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseAxisScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/InputConfig/MouseButtonScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/JoystickIcon.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModConfigScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModGuiTextures.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModIcons.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModMainConfigButton.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModMenuTypes.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/PlainRect.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/PlainRectRenderer.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/TooltipButton.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/TweakedLinkedControllerScreen.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/GamepadInputs.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/GenericInput.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/JoystickAxisInput.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/JoystickButtonInput.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/JoystickInputs.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/KeyboardInput.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/ModInputEvents.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseAxisInput.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseButtonInput.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/item/ModItems.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItem.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/ModPackets.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerAxisPacket.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerBindPacket.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerButtonPacket.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerPacketBase.java diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java rename to common/src/main/com/getitemfromblock/create_tweaked_controllers/packet/TweakedLinkedControllerStopLecternPacket.java diff --git a/fabric/.gitignore b/fabric/.gitignore new file mode 100644 index 0000000..b63da45 --- /dev/null +++ b/fabric/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/fabric/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllerFabric.java b/fabric/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllerFabric.java new file mode 100644 index 0000000..e69de29 diff --git a/common/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json b/fabric/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json b/fabric/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json b/fabric/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json b/fabric/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json b/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json rename to fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png diff --git a/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png b/fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png similarity index 100% rename from common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png diff --git a/common/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json b/fabric/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json similarity index 100% rename from common/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json rename to fabric/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json diff --git a/common/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json b/fabric/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json similarity index 100% rename from common/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json rename to fabric/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..76d0378 --- /dev/null +++ b/fabric/src/main/resources/fabric.mod.json @@ -0,0 +1,32 @@ +{ + "schemaVersion": 1, + "id": "${archives_base_name}", + "version": "${version}", + "name": "${name}", + "description": "${description}", + "authors": [ + "getItemFromBlock" + ], + "contact": { + "sources": "https://github.com/${github_project}/" + }, + "license": "Apache-2.0", + "icon": "assets/create_tweaked_controllers/icon.png", + "environment": "*", + "entrypoints": { + "main": [ + "com.getitemfromblock.create_tweaked_controller.fabric.TextBlockFabric" + ], + "client": [ + "io.github.slimeymc.text_block.fabric.TextBlockClientFabric" + ] + }, + "mixins": [ + "text_block-common.mixins.json", + "text_block.mixins.json" + ], + "depends": { + "minecraft": ">=1.18.2", + "fabricloader": ">=0.14.21" + } +} \ No newline at end of file diff --git a/common/src/main/resources/logo.png b/fabric/src/main/resources/logo.png similarity index 100% rename from common/src/main/resources/logo.png rename to fabric/src/main/resources/logo.png diff --git a/common/src/main/resources/pack.mcmeta b/fabric/src/main/resources/pack.mcmeta similarity index 100% rename from common/src/main/resources/pack.mcmeta rename to fabric/src/main/resources/pack.mcmeta diff --git a/forge/.gitignore b/forge/.gitignore new file mode 100644 index 0000000..b63da45 --- /dev/null +++ b/forge/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java b/forge/src/main/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java similarity index 100% rename from common/src/main/java/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java rename to forge/src/main/com/getitemfromblock/create_tweaked_controllers/compat/Controllable/ControllerHandler.java diff --git a/common/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml similarity index 100% rename from common/src/main/resources/META-INF/mods.toml rename to forge/src/main/resources/META-INF/mods.toml diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json b/forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json new file mode 100644 index 0000000..8b7b296 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,has_book=false,powered=false": { + "model": "minecraft:block/lectern" + }, + "facing=south,has_book=false,powered=false": { + "model": "minecraft:block/lectern", + "y": 180 + }, + "facing=west,has_book=false,powered=false": { + "model": "minecraft:block/lectern", + "y": 270 + }, + "facing=east,has_book=false,powered=false": { + "model": "minecraft:block/lectern", + "y": 90 + }, + "facing=north,has_book=true,powered=false": { + "model": "minecraft:block/lectern" + }, + "facing=south,has_book=true,powered=false": { + "model": "minecraft:block/lectern", + "y": 180 + }, + "facing=west,has_book=true,powered=false": { + "model": "minecraft:block/lectern", + "y": 270 + }, + "facing=east,has_book=true,powered=false": { + "model": "minecraft:block/lectern", + "y": 90 + }, + "facing=north,has_book=false,powered=true": { + "model": "minecraft:block/lectern" + }, + "facing=south,has_book=false,powered=true": { + "model": "minecraft:block/lectern", + "y": 180 + }, + "facing=west,has_book=false,powered=true": { + "model": "minecraft:block/lectern", + "y": 270 + }, + "facing=east,has_book=false,powered=true": { + "model": "minecraft:block/lectern", + "y": 90 + }, + "facing=north,has_book=true,powered=true": { + "model": "minecraft:block/lectern" + }, + "facing=south,has_book=true,powered=true": { + "model": "minecraft:block/lectern", + "y": 180 + }, + "facing=west,has_book=true,powered=true": { + "model": "minecraft:block/lectern", + "y": 270 + }, + "facing=east,has_book=true,powered=true": { + "model": "minecraft:block/lectern", + "y": 90 + } + } +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json b/forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json new file mode 100644 index 0000000..9958626 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json @@ -0,0 +1,101 @@ +{ + "block.create_tweaked_controllers.tweaked_lectern_controller": "Tweaked Lectern Controller", + + "item.create_tweaked_controllers.tweaked_linked_controller": "Tweaked Linked Controller", + + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "TWEAKED LINKED CONTROLLER", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "Grants _handheld_ _control_ over _Redstone Link_ frequencies assigned to your _Game Controller_ inputs.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "R-Click", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "_Toggles_ the controller. _Inputs_ from your _Game Controller_ are taken over while its active.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "R-Click while Sneaking", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "Opens the manual _Configuration Interface_.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of your _Game Controller input_ to bind it to the _Links' Frequency_.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "R-Click on Lectern", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", + + "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "Bind mode active", + "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "Press any gamepad button, or move an axis to bind it", + "create_tweaked_controllers.tweaked_linked_controller.key_bound": "Frequency bound to %1$s", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "Keybind: %1$s, Freq. #1", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "Keybind: %1$s, Freq. #2", + + "create_tweaked_controllers.gui_tab_button": "Button settings", + "create_tweaked_controllers.gui_tab_axis": "Axis settings", + "create_tweaked_controllers.gui_button_refresh": "Research gamepad", + "create_tweaked_controllers.gui_gamepad_unavailable": "No gamepad found", + "create_tweaked_controllers.gui_gamepad_selected": "Selected gamepad: %1$s", + "create_tweaked_controllers.gui_gamepad_custom": "Using virtual gamepad", + + "create_tweaked_controllers.gui_gamepad_buttons": "Virtual Gamepad Buttons", + "create_tweaked_controllers.gui_gamepad_axis": "Virtual Gamepad Axis", + + "create_tweaked_controllers.gui_gamepad_button_0": "A Button", + "create_tweaked_controllers.gui_gamepad_button_1": "B Button", + "create_tweaked_controllers.gui_gamepad_button_2": "X Button", + "create_tweaked_controllers.gui_gamepad_button_3": "Y Button", + "create_tweaked_controllers.gui_gamepad_button_4": "Left Shoulder", + "create_tweaked_controllers.gui_gamepad_button_5": "Right Shoulder", + "create_tweaked_controllers.gui_gamepad_button_6": "Back Button", + "create_tweaked_controllers.gui_gamepad_button_7": "Start Button", + "create_tweaked_controllers.gui_gamepad_button_8": "Guide Button", + "create_tweaked_controllers.gui_gamepad_button_9": "Left Joystick Click", + "create_tweaked_controllers.gui_gamepad_button_10": "Right Joystick Click", + "create_tweaked_controllers.gui_gamepad_button_11": "D-Pad Up", + "create_tweaked_controllers.gui_gamepad_button_12": "D-Pad Right", + "create_tweaked_controllers.gui_gamepad_button_13": "D-Pad Down", + "create_tweaked_controllers.gui_gamepad_button_14": "D-Pad Left", + "create_tweaked_controllers.gui_gamepad_button_playstation_0": "Cross × Button", + "create_tweaked_controllers.gui_gamepad_button_playstation_1": "Circle ○ Button", + "create_tweaked_controllers.gui_gamepad_button_playstation_2": "Square □ Button", + "create_tweaked_controllers.gui_gamepad_button_playstation_3": "Triangle △ Button", + + "create_tweaked_controllers.gui_gamepad_axis_0": "Left +X Axis", + "create_tweaked_controllers.gui_gamepad_axis_1": "Left -X Axis", + "create_tweaked_controllers.gui_gamepad_axis_2": "Left +Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_3": "Left -Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_4": "Right +X Axis", + "create_tweaked_controllers.gui_gamepad_axis_5": "Right -X Axis", + "create_tweaked_controllers.gui_gamepad_axis_6": "Right +Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_7": "Right -Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_8": "Left Trigger Axis", + "create_tweaked_controllers.gui_gamepad_axis_9": "Right Trigger Axis", + + "create_tweaked_controllers.gui_input_joystick_axis": "Joystick Axis %1$s", + "create_tweaked_controllers.gui_input_joystick_button": "Joystick Button %1$s", + "create_tweaked_controllers.gui_input_keyboard": "%1$s Key", + "create_tweaked_controllers.gui_input_cursor_vel": "Cursor %1$s Velocity", + "create_tweaked_controllers.gui_input_cursor_pos": "Cursor %1$s Position", + "create_tweaked_controllers.gui_input_mouse": "Mouse Button %1$s", + + "create_tweaked_controllers.gui_config_reset": "Reset", + "create_tweaked_controllers.gui_config_config": "Config", + "create_tweaked_controllers.gui_config_reset_all": "Reset all", + "create_tweaked_controllers.gui_config_load": "Load", + "create_tweaked_controllers.gui_config_save": "Save", + "create_tweaked_controllers.gui_config_none": "Unbound", + "create_tweaked_controllers.gui_config_invert": "Invert button output value", + "create_tweaked_controllers.gui_config_lower": "Lower axis input bound", + "create_tweaked_controllers.gui_config_upper": "Upper axis input bound", + "create_tweaked_controllers.gui_config_isyaxis": "Use Y instead of X input ?", + "create_tweaked_controllers.gui_config_usevelocity": "Use velocity instead of position ?", + + "create_tweaked_controllers.gui_output_button": "Output value as button :", + "create_tweaked_controllers.gui_output_axis": "Output value as axis :", + "create_tweaked_controllers.gui_input_axis": "Raw axis input value :", + + "create_tweaked_controllers.keybind.mouse_focus" : "Grab mouse movements", + "create_tweaked_controllers.keybind.mouse_reset" : "Center mouse cursor", + "create_tweaked_controllers.keybind.controller_exit" : "Exit controller", + + "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", + + "create_tweaked_controllers.menu.return": "Return to Menu", + "create_tweaked_controllers.menu.issues": "Report Issues", + "create_tweaked_controllers.menu.wiki": "Online Wiki", + "create_tweaked_controllers.menu.config_general": "General Configurations", + "create_tweaked_controllers.menu.config_controller": "Controller Configurations", + "create_tweaked_controllers.menu.config_disabled": "Please enable custom mappings in the general configurations", + + "_": "EOF" +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json b/forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json new file mode 100644 index 0000000..36492cc --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json @@ -0,0 +1,101 @@ +{ + "block.create_tweaked_controllers.tweaked_lectern_controller": "Pupitre avec contrôleur redstone avancé", + + "item.create_tweaked_controllers.tweaked_linked_controller": "Contrôleur redstone avancé", + + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "CONTRÔLEUR REDSTONE AVANCÉ", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "Permet un _contrôle à la main_ sur des fréquences de _liaisons redstone_ assignées à votre _Manette_.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "Clic droit", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "_Active_ ou _désactive_ le contrôleur. Les _contrôles_ de votre _Manette_ sont utilisés pendant qu'il est activé.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "Clic droit en étant accroupi", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "Ouvre l'_interface de configuration_ manuelle.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "Clic droit sur un récepteur de liaison redstone", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "Active le _mode_ de _liaison_, utilisez un bouton ou un axe de votre _Manette_ pour le lier à la _fréquence_ de la _liaison_.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "Clic droit sur un pupitre", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "Place le contrôleur sur le pupitre pour une activation facile. (Clic droit en étant accroupi pour le récupérer)", + + "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "Mode liaison actif", + "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "Appuyes sur un bouton de votre manette, ou bougez un axe pour lier la fréquence correspondante", + "create_tweaked_controllers.tweaked_linked_controller.key_bound": "Fréquence liée à %1$s", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "Touche : %1$s, Freq. #1", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "Touche : %1$s, Freq. #2", + + "create_tweaked_controllers.gui_tab_button": "Paramètres des boutons", + "create_tweaked_controllers.gui_tab_axis": "Paramètres des axes", + "create_tweaked_controllers.gui_button_refresh": "Rechercher les manettes", + "create_tweaked_controllers.gui_gamepad_unavailable": "Aucune manette trouvée", + "create_tweaked_controllers.gui_gamepad_selected": "Manette utilisée : %1$s", + "create_tweaked_controllers.gui_gamepad_custom": "Manette virtuelle utilisée", + + "create_tweaked_controllers.gui_gamepad_buttons": "Boutons du contrôleur virtuel", + "create_tweaked_controllers.gui_gamepad_axis": "Axes du contrôleur virtuel", + + "create_tweaked_controllers.gui_gamepad_button_0": "Bouton A", + "create_tweaked_controllers.gui_gamepad_button_1": "Bouton B", + "create_tweaked_controllers.gui_gamepad_button_2": "Bouton X", + "create_tweaked_controllers.gui_gamepad_button_3": "Bouton Y", + "create_tweaked_controllers.gui_gamepad_button_4": "Gâchette haute gauche", + "create_tweaked_controllers.gui_gamepad_button_5": "Gâchette haute droite", + "create_tweaked_controllers.gui_gamepad_button_6": "Bouton Retour", + "create_tweaked_controllers.gui_gamepad_button_7": "Bouton Start", + "create_tweaked_controllers.gui_gamepad_button_8": "Bouton Guide", + "create_tweaked_controllers.gui_gamepad_button_9": "Clic joystick gauche", + "create_tweaked_controllers.gui_gamepad_button_10": "Clic joystick droit", + "create_tweaked_controllers.gui_gamepad_button_11": "D-Pad Haut", + "create_tweaked_controllers.gui_gamepad_button_12": "D-Pad droit", + "create_tweaked_controllers.gui_gamepad_button_13": "D-Pad bas", + "create_tweaked_controllers.gui_gamepad_button_14": "D-Pad gauche", + "create_tweaked_controllers.gui_gamepad_button_playstation_0": "Bouton croix ×", + "create_tweaked_controllers.gui_gamepad_button_playstation_1": "Bouton cercle ○", + "create_tweaked_controllers.gui_gamepad_button_playstation_2": "Bouton carré □", + "create_tweaked_controllers.gui_gamepad_button_playstation_3": "Bouton triangle △", + + "create_tweaked_controllers.gui_gamepad_axis_0": "Axe +X gauche", + "create_tweaked_controllers.gui_gamepad_axis_1": "Axe -X gauche", + "create_tweaked_controllers.gui_gamepad_axis_2": "Axe +Y gauche", + "create_tweaked_controllers.gui_gamepad_axis_3": "Axe -Y gauche", + "create_tweaked_controllers.gui_gamepad_axis_4": "Axe +X droit", + "create_tweaked_controllers.gui_gamepad_axis_5": "Axe -X droit", + "create_tweaked_controllers.gui_gamepad_axis_6": "Axe +Y droit", + "create_tweaked_controllers.gui_gamepad_axis_7": "Axe -Y droit", + "create_tweaked_controllers.gui_gamepad_axis_8": "Axe gâchette gauche", + "create_tweaked_controllers.gui_gamepad_axis_9": "Axe gâchette droite", + + "create_tweaked_controllers.gui_input_joystick_axis": "Axe %1$s du joystick", + "create_tweaked_controllers.gui_input_joystick_button": "Bouton %1$s du joystick", + "create_tweaked_controllers.gui_input_keyboard": "Touche %1$s", + "create_tweaked_controllers.gui_input_cursor_vel": "Vélocité %1$s du curseur", + "create_tweaked_controllers.gui_input_cursor_pos": "Position %1$s du curseur", + "create_tweaked_controllers.gui_input_mouse": "Bouton %1$s de la souris", + + "create_tweaked_controllers.gui_config_reset": "Réinit.", + "create_tweaked_controllers.gui_config_config": "Config.", + "create_tweaked_controllers.gui_config_reset_all": "Tout réinitialiser", + "create_tweaked_controllers.gui_config_load": "Charger", + "create_tweaked_controllers.gui_config_save": "Sauv.", + "create_tweaked_controllers.gui_config_none": "Non assigné", + "create_tweaked_controllers.gui_config_invert": "Inverser la valeur de sortie", + "create_tweaked_controllers.gui_config_lower": "Borne inférieure de l'axe", + "create_tweaked_controllers.gui_config_upper": "Borne supérieure de l'axe", + "create_tweaked_controllers.gui_config_isyaxis": "Utiliser l'axe Y plutôt que l'axe X ?", + "create_tweaked_controllers.gui_config_usevelocity": "Utiliser la vélocité plutôt que la position ?", + + "create_tweaked_controllers.gui_output_button": "Valeur en tant que bouton :", + "create_tweaked_controllers.gui_output_axis": "Valeur en tant qu'axe :", + "create_tweaked_controllers.gui_input_axis": "Valeur d'entrée de l'axe :", + + "create_tweaked_controllers.keybind.mouse_focus" : "Capturer les mouvements de la souris", + "create_tweaked_controllers.keybind.mouse_reset" : "Recentrer le curseur", + "create_tweaked_controllers.keybind.controller_exit" : "Ranger le contrôleur", + + "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", + + "create_tweaked_controllers.menu.return": "Retour au menu", + "create_tweaked_controllers.menu.issues": "Signaler des bugs", + "create_tweaked_controllers.menu.wiki": "Manuel en ligne", + "create_tweaked_controllers.menu.config_general": "Configurations générales", + "create_tweaked_controllers.menu.config_controller": "Configurations du contrôleur", + "create_tweaked_controllers.menu.config_disabled": "Activez l'option \"custom mappings\" dans les configurations générales", + + "_": "EOF" +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json b/forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json new file mode 100644 index 0000000..9bbc2be --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json @@ -0,0 +1,101 @@ +{ + "block.create_tweaked_controllers.tweaked_lectern_controller": "독서대 변형 컨트롤러", + + "item.create_tweaked_controllers.tweaked_linked_controller": "변형 레드스톤 링크 컨트롤러", + + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "변형 레드스톤 링크 컨트롤러", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "_게임 컨트롤러_ 조작을 _레드스톤 링크_에 연결하는 _휴대용 컨트롤러_입니다.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "우클릭", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "컨트롤러를 _켭니다_. 조작하는 동안 _게임 컨트롤러_로 다른 작업을 수행할 수 없습니다.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "웅크리면서 우클릭", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "_설정 창_을 엽니다.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "레드스톤 링크 수신기에 우클릭", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "_연결 모드_를 활성화하고, _게임 컨트롤러 버튼_ 중 하나를 조작하여 컨트롤러를 _주파수_에 연결합니다.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "독서대에 우클릭", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "컨트롤러를 독서대에 올려놓아 쉽게 조작할 수 있습니다. (웅크리면서 우클릭으로 회수합니다.)", + + "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "연결 모드 활성화", + "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "게임패드의 버튼을 누르거나 축을 움직여 해당 조작키를 주파수에 연결하세요", + "create_tweaked_controllers.tweaked_linked_controller.key_bound": "%1$s에 주파수가 연결되었습니다", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "조작키: %1$s, 주파수 #1", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "조작키: %1$s, 주파수 #2", + + "create_tweaked_controllers.gui_tab_button": "버튼 설정", + "create_tweaked_controllers.gui_tab_axis": "축 설정", + "create_tweaked_controllers.gui_button_refresh": "게임패드 찾기", + "create_tweaked_controllers.gui_gamepad_unavailable": "게임패드를 찾을 수 없습니다", + "create_tweaked_controllers.gui_gamepad_selected": "선택된 게임패드: %1$s", + "create_tweaked_controllers.gui_gamepad_custom": "가상 게임패드를 사용 중입니다", + + "create_tweaked_controllers.gui_gamepad_buttons": "가상 게임패드 버튼", + "create_tweaked_controllers.gui_gamepad_axis": "가상 게임패드 축", + + "create_tweaked_controllers.gui_gamepad_button_0": "A 버튼", + "create_tweaked_controllers.gui_gamepad_button_1": "B 버튼", + "create_tweaked_controllers.gui_gamepad_button_2": "X 버튼", + "create_tweaked_controllers.gui_gamepad_button_3": "Y 버튼", + "create_tweaked_controllers.gui_gamepad_button_4": "왼쪽 숄더", + "create_tweaked_controllers.gui_gamepad_button_5": "오른쪽 숄더", + "create_tweaked_controllers.gui_gamepad_button_6": "Back 버튼", + "create_tweaked_controllers.gui_gamepad_button_7": "Start 버튼", + "create_tweaked_controllers.gui_gamepad_button_8": "Guide 버튼", + "create_tweaked_controllers.gui_gamepad_button_9": "왼쪽 조이스틱 누르기", + "create_tweaked_controllers.gui_gamepad_button_10": "오른쪽 조이스틱 누르기", + "create_tweaked_controllers.gui_gamepad_button_11": "위 십자키", + "create_tweaked_controllers.gui_gamepad_button_12": "오른쪽 십자키", + "create_tweaked_controllers.gui_gamepad_button_13": "아래 십자키", + "create_tweaked_controllers.gui_gamepad_button_14": "왼쪽 십자키", + "create_tweaked_controllers.gui_gamepad_button_playstation_0": "가위표 × 버튼", + "create_tweaked_controllers.gui_gamepad_button_playstation_1": "동그라미 ○ 버튼", + "create_tweaked_controllers.gui_gamepad_button_playstation_2": "네모 □ 버튼", + "create_tweaked_controllers.gui_gamepad_button_playstation_3": "세모 △ 버튼", + + "create_tweaked_controllers.gui_gamepad_axis_0": "왼쪽 +X 축", + "create_tweaked_controllers.gui_gamepad_axis_1": "왼쪽 -X 축", + "create_tweaked_controllers.gui_gamepad_axis_2": "왼쪽 +Y 축", + "create_tweaked_controllers.gui_gamepad_axis_3": "왼쪽 -Y 축", + "create_tweaked_controllers.gui_gamepad_axis_4": "오른쪽 +X 축", + "create_tweaked_controllers.gui_gamepad_axis_5": "오른쪽 -X 축", + "create_tweaked_controllers.gui_gamepad_axis_6": "오른쪽 +Y 축", + "create_tweaked_controllers.gui_gamepad_axis_7": "오른쪽 -Y 축", + "create_tweaked_controllers.gui_gamepad_axis_8": "왼쪽 트리거 축", + "create_tweaked_controllers.gui_gamepad_axis_9": "오른쪽 트리거 축", + + "create_tweaked_controllers.gui_input_joystick_axis": "조이스틱 축 %1$s", + "create_tweaked_controllers.gui_input_joystick_button": "조이스틱 버튼 %1$s", + "create_tweaked_controllers.gui_input_keyboard": "%1$s 키", + "create_tweaked_controllers.gui_input_cursor_vel": "커서의 %1$s 방향 속도", + "create_tweaked_controllers.gui_input_cursor_pos": "커서의 %1$s 위치", + "create_tweaked_controllers.gui_input_mouse": "마우스 버튼 %1$s", + + "create_tweaked_controllers.gui_config_reset": "초기화", + "create_tweaked_controllers.gui_config_config": "설정", + "create_tweaked_controllers.gui_config_reset_all": "모두 초기화", + "create_tweaked_controllers.gui_config_load": "불러오기", + "create_tweaked_controllers.gui_config_save": "저장", + "create_tweaked_controllers.gui_config_none": "지정되지 않음", + "create_tweaked_controllers.gui_config_invert": "버튼 출력 값 반전", + "create_tweaked_controllers.gui_config_lower": "아날로그 입력 값 하한선", + "create_tweaked_controllers.gui_config_upper": "아날로그 입력 값 상한선", + "create_tweaked_controllers.gui_config_isyaxis": "X 입력 대신 Y 입력을 사용하시겠습니까?", + "create_tweaked_controllers.gui_config_usevelocity": "마우스 커서의 위치 대신 속도를 사용하시겠습니까?", + + "create_tweaked_controllers.gui_output_button": "디지털 출력 값 :", + "create_tweaked_controllers.gui_output_axis": "아날로그 출력 값 :", + "create_tweaked_controllers.gui_input_axis": "아날로그 입력 값 원본 :", + + "create_tweaked_controllers.keybind.mouse_focus" : "마우스로 조작하기", + "create_tweaked_controllers.keybind.mouse_reset" : "마우스 커서 위치 초기화", + "create_tweaked_controllers.keybind.controller_exit" : "컨트롤러 조작 종료하기", + + "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", + + "create_tweaked_controllers.menu.return": "메뉴로 돌아가기", + "create_tweaked_controllers.menu.issues": "버그 제보하기", + "create_tweaked_controllers.menu.wiki": "온라인 위키", + "create_tweaked_controllers.menu.config_general": "일반 설정", + "create_tweaked_controllers.menu.config_controller": "컨트롤러 설정", + "create_tweaked_controllers.menu.config_disabled": "일반 설정에서 Use Custom Mappings를 허용해주세요", + + "_": "EOF" +} diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json new file mode 100644 index 0000000..027ee76 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json @@ -0,0 +1,3 @@ +{ + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/item" +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json new file mode 100644 index 0000000..02d6a1c --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [1, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json new file mode 100644 index 0000000..c686403 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [6, 1, 2.5], + "to": [7, 3, 3.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json new file mode 100644 index 0000000..0e2a79e --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [7, 1, 3.5], + "to": [8, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json new file mode 100644 index 0000000..181fe1c --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [5, 1, 3.5], + "to": [6, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 15, 4, 16], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json new file mode 100644 index 0000000..d59a00e --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [6, 1, 4.5], + "to": [7, 3, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json new file mode 100644 index 0000000..c686403 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [6, 1, 2.5], + "to": [7, 3, 3.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json new file mode 100644 index 0000000..00d7be6 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [6, 1, 4.5], + "to": [7, 3, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [6, 15, 7, 16], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json new file mode 100644 index 0000000..7ab6fcb --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [5, 1, 3.5], + "to": [6, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [15, 15, 16, 16], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json new file mode 100644 index 0000000..dd432f2 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [7, 1, 3.5], + "to": [8, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [9, 15, 10, 16], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json new file mode 100644 index 0000000..0db0216 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [7, 1, 3.5], + "to": [8, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [6, 1, 2.5], + "to": [7, 3, 3.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [12, 12, 13, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json new file mode 100644 index 0000000..53f8ea9 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [6, 1, 4.5], + "to": [7, 3, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [6, 12, 7, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json new file mode 100644 index 0000000..300d268 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [5, 1, 3.5], + "to": [6, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json new file mode 100644 index 0000000..79d6e95 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json @@ -0,0 +1,391 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "redstone_antenna": "create:block/redstone_antenna", + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", + "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" + }, + "elements": [ + { + "name": "Controller", + "from": [4, 0, 1.5], + "to": [12, 2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, + "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 5.5], + "to": [4, 7, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 4.5], + "to": [4, 8, 7.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 5.5], + "to": [5, 8, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 8.5], + "to": [4, 8, 11.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 9.5], + "to": [5, 8, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 9.5], + "to": [4, 7, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "left", + "from": [9, 1, 10.5], + "to": [10, 3, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "up", + "from": [8, 1, 9.5], + "to": [9, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "down", + "from": [10, 1, 9.5], + "to": [11, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "from": [6, 1, 11.5], + "to": [7, 3, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [5.9, 2.4, 11.4], + "to": [7.1, 3.6, 12.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [8.9, 2.4, 5.4], + "to": [10.1, 3.6, 6.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "from": [9, 1, 5.5], + "to": [10, 3, 6.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_shoulder", + "from": [3, 0.9, 2.5], + "to": [4, 1.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_trigger", + "from": [3, -0.1, 2.5], + "to": [4, 0.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_shoulder", + "from": [3, 0.9, 11.5], + "to": [4, 1.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_trigger", + "from": [3, -0.1, 11.5], + "to": [4, 0.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "start", + "from": [6, 1, 6.5], + "to": [7, 3, 7.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "select", + "from": [6, 1, 8.5], + "to": [7, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "menu", + "from": [5, 1, 7.5], + "to": [6, 3, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "right", + "from": [9, 1, 8.5], + "to": [10, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "a", + "from": [7, 1, 3.5], + "to": [8, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "x", + "from": [6, 1, 4.5], + "to": [7, 3, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "y", + "from": [5, 1, 3.5], + "to": [6, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 15, 4, 16], "texture": "#redstone_bridge"} + } + }, + { + "name": "b", + "from": [6, 1, 2.5], + "to": [7, 3, 3.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -90, -74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, 74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "firstperson_righthand": { + "rotation": [0, -90, -13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.65, 0.65, 0.65] + }, + "gui": { + "rotation": [30, -44, 0], + "translation": [0, 3.5, 0], + "scale": [0.76, 0.76, 0.76] + }, + "head": { + "rotation": [0, -90, 0], + "translation": [0, 14.3, 0] + }, + "fixed": { + "rotation": [0, 90, -90], + "translation": [0, 0, -8] + } + }, + "groups": [ + 0, + { + "name": "antennas", + "origin": [0, 0, 0.5], + "color": 0, + "children": [1, 2, 3, 4, 5, 6] + }, + { + "name": "buttons", + "origin": [0, 0, 0.5], + "color": 0, + "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json new file mode 100644 index 0000000..bfdb683 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json @@ -0,0 +1,391 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "redstone_antenna": "create:block/redstone_antenna", + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", + "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" + }, + "elements": [ + { + "name": "Controller", + "from": [4, 0, 1.5], + "to": [12, 2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, + "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 5.5], + "to": [4, 7, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 4.5], + "to": [4, 8, 7.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 5.5], + "to": [5, 8, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 8.5], + "to": [4, 8, 11.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 9.5], + "to": [5, 8, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 9.5], + "to": [4, 7, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "left", + "from": [9, 1, 10.5], + "to": [10, 3, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "up", + "from": [8, 1, 9.5], + "to": [9, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "down", + "from": [10, 1, 9.5], + "to": [11, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "from": [6, 1, 11.5], + "to": [7, 3, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [5.9, 2.4, 11.4], + "to": [7.1, 3.6, 12.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [8.9, 2.4, 5.4], + "to": [10.1, 3.6, 6.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "from": [9, 1, 5.5], + "to": [10, 3, 6.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_shoulder", + "from": [3, 0.9, 2.5], + "to": [4, 1.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_trigger", + "from": [3, -0.1, 2.5], + "to": [4, 0.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_shoulder", + "from": [3, 0.9, 11.5], + "to": [4, 1.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_trigger", + "from": [3, -0.1, 11.5], + "to": [4, 0.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "start", + "from": [6, 1, 6.5], + "to": [7, 3, 7.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "select", + "from": [6, 1, 8.5], + "to": [7, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "menu", + "from": [5, 1, 7.5], + "to": [6, 3, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "right", + "from": [9, 1, 8.5], + "to": [10, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "a", + "from": [7, 1, 3.5], + "to": [8, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [9, 15, 10, 16], "texture": "#redstone_bridge"} + } + }, + { + "name": "x", + "from": [6, 1, 4.5], + "to": [7, 3, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [6, 15, 7, 16], "texture": "#redstone_bridge"} + } + }, + { + "name": "y", + "from": [5, 1, 3.5], + "to": [6, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [15, 15, 16, 16], "texture": "#redstone_bridge"} + } + }, + { + "name": "b", + "from": [6, 1, 2.5], + "to": [7, 3, 3.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, + "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, + "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -90, -74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, 74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "firstperson_righthand": { + "rotation": [0, -90, -13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.65, 0.65, 0.65] + }, + "gui": { + "rotation": [30, -44, 0], + "translation": [0, 3.5, 0], + "scale": [0.76, 0.76, 0.76] + }, + "head": { + "rotation": [0, -90, 0], + "translation": [0, 14.3, 0] + }, + "fixed": { + "rotation": [0, 90, -90], + "translation": [0, 0, -8] + } + }, + "groups": [ + 0, + { + "name": "antennas", + "origin": [0, 0, 0.5], + "color": 0, + "children": [1, 2, 3, 4, 5, 6] + }, + { + "name": "buttons", + "origin": [0, 0, 0.5], + "color": 0, + "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json new file mode 100644 index 0000000..1fe1ad9 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json @@ -0,0 +1,391 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "redstone_antenna": "create:block/redstone_antenna", + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", + "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" + }, + "elements": [ + { + "name": "Controller", + "from": [4, 0, 1.5], + "to": [12, 2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, + "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 5.5], + "to": [4, 7, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 4.5], + "to": [4, 8, 7.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 5.5], + "to": [5, 8, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 8.5], + "to": [4, 8, 11.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 9.5], + "to": [5, 8, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 9.5], + "to": [4, 7, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "left", + "from": [9, 1, 10.5], + "to": [10, 3, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "up", + "from": [8, 1, 9.5], + "to": [9, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "down", + "from": [10, 1, 9.5], + "to": [11, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "from": [6, 1, 11.5], + "to": [7, 3, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [5.9, 2.4, 11.4], + "to": [7.1, 3.6, 12.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [8.9, 2.4, 5.4], + "to": [10.1, 3.6, 6.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "from": [9, 1, 5.5], + "to": [10, 3, 6.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_shoulder", + "from": [3, 0.9, 2.5], + "to": [4, 1.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_trigger", + "from": [3, -0.1, 2.5], + "to": [4, 0.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_shoulder", + "from": [3, 0.9, 11.5], + "to": [4, 1.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_trigger", + "from": [3, -0.1, 11.5], + "to": [4, 0.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "start", + "from": [6, 1, 6.5], + "to": [7, 3, 7.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "select", + "from": [6, 1, 8.5], + "to": [7, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "menu", + "from": [5, 1, 7.5], + "to": [6, 3, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "right", + "from": [9, 1, 8.5], + "to": [10, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "a", + "from": [7, 1, 3.5], + "to": [8, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "x", + "from": [6, 1, 4.5], + "to": [7, 3, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [6, 12, 7, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "y", + "from": [5, 1, 3.5], + "to": [6, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "b", + "from": [6, 1, 2.5], + "to": [7, 3, 3.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [12, 12, 13, 13], "texture": "#redstone_bridge"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -90, -74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, 74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "firstperson_righthand": { + "rotation": [0, -90, -13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.65, 0.65, 0.65] + }, + "gui": { + "rotation": [30, -44, 0], + "translation": [0, 3.5, 0], + "scale": [0.76, 0.76, 0.76] + }, + "head": { + "rotation": [0, -90, 0], + "translation": [0, 14.3, 0] + }, + "fixed": { + "rotation": [0, 90, -90], + "translation": [0, 0, -8] + } + }, + "groups": [ + 0, + { + "name": "antennas", + "origin": [0, 0, 0.5], + "color": 0, + "children": [1, 2, 3, 4, 5, 6] + }, + { + "name": "buttons", + "origin": [0, 0, 0.5], + "color": 0, + "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json new file mode 100644 index 0000000..1fe1ad9 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json @@ -0,0 +1,391 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "redstone_antenna": "create:block/redstone_antenna", + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", + "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" + }, + "elements": [ + { + "name": "Controller", + "from": [4, 0, 1.5], + "to": [12, 2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, + "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 5.5], + "to": [4, 7, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 4.5], + "to": [4, 8, 7.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 5.5], + "to": [5, 8, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 8.5], + "to": [4, 8, 11.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 9.5], + "to": [5, 8, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 9.5], + "to": [4, 7, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "left", + "from": [9, 1, 10.5], + "to": [10, 3, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "up", + "from": [8, 1, 9.5], + "to": [9, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "down", + "from": [10, 1, 9.5], + "to": [11, 3, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "from": [6, 1, 11.5], + "to": [7, 3, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [5.9, 2.4, 11.4], + "to": [7.1, 3.6, 12.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [8.9, 2.4, 5.4], + "to": [10.1, 3.6, 6.6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + }, + { + "from": [9, 1, 5.5], + "to": [10, 3, 6.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_shoulder", + "from": [3, 0.9, 2.5], + "to": [4, 1.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "r_trigger", + "from": [3, -0.1, 2.5], + "to": [4, 0.9, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_shoulder", + "from": [3, 0.9, 11.5], + "to": [4, 1.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "l_trigger", + "from": [3, -0.1, 11.5], + "to": [4, 0.9, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "start", + "from": [6, 1, 6.5], + "to": [7, 3, 7.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "select", + "from": [6, 1, 8.5], + "to": [7, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "menu", + "from": [5, 1, 7.5], + "to": [6, 3, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "right", + "from": [9, 1, 8.5], + "to": [10, 3, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "a", + "from": [7, 1, 3.5], + "to": [8, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "x", + "from": [6, 1, 4.5], + "to": [7, 3, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [6, 12, 7, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "y", + "from": [5, 1, 3.5], + "to": [6, 3, 4.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "b", + "from": [6, 1, 2.5], + "to": [7, 3, 3.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [12, 12, 13, 13], "texture": "#redstone_bridge"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -90, -74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, 74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "firstperson_righthand": { + "rotation": [0, -90, -13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 13], + "translation": [1.13, 3, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.65, 0.65, 0.65] + }, + "gui": { + "rotation": [30, -44, 0], + "translation": [0, 3.5, 0], + "scale": [0.76, 0.76, 0.76] + }, + "head": { + "rotation": [0, -90, 0], + "translation": [0, 14.3, 0] + }, + "fixed": { + "rotation": [0, 90, -90], + "translation": [0, 0, -8] + } + }, + "groups": [ + 0, + { + "name": "antennas", + "origin": [0, 0, 0.5], + "color": 0, + "children": [1, 2, 3, 4, 5, 6] + }, + { + "name": "buttons", + "origin": [0, 0, 0.5], + "color": 0, + "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json new file mode 100644 index 0000000..9605858 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json @@ -0,0 +1,36 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [7.5, 8, 7.5], + "to": [8.5, 10, 8.5], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, + "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} + } + }, + { + "name": "joystick", + "from": [7.4, 9.4, 7.4], + "to": [8.6, 10.6, 8.6], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, + "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json new file mode 100644 index 0000000..247cbbe --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json @@ -0,0 +1,134 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "redstone_antenna": "create:block/redstone_antenna_powered", + "particle": "create_tweaked_controllers:item/tweaked_linked_controller_powered", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller_powered", + "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" + }, + "elements": [ + { + "name": "Controller", + "from": [4, 0, 1.5], + "to": [12, 2, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, + "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, + "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, + "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 5.5], + "to": [4, 7, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 4.5], + "to": [4, 8, 7.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 5.5], + "to": [5, 8, 6.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaTop", + "from": [3, 6, 9.5], + "to": [4, 7, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaZ", + "from": [3, 0, 8.5], + "to": [4, 8, 11.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} + } + }, + { + "name": "AntennaX", + "from": [2, 0, 9.5], + "to": [5, 8, 10.5], + "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, + "faces": { + "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, + "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -90, -74], + "translation": [-3, 3.25, 4.5], + "scale": [0.7, 0.7, 0.7] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, 74], + "translation": [-3, 3.5, 5], + "scale": [0.7, 0.7, 0.7] + }, + "firstperson_righthand": { + "rotation": [0, -113, -27], + "translation": [-2, 9, 1.13], + "scale": [0.97, 0.97, 0.97] + }, + "firstperson_lefthand": { + "rotation": [0, 67, 27], + "translation": [-2, 9, 1.13], + "scale": [0.97, 0.97, 0.97] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [30, -44, 0], + "translation": [0, 1.75, 0], + "scale": [0.76, 0.76, 0.76] + }, + "head": { + "rotation": [0, 180, 0], + "translation": [0, 13, 0] + }, + "fixed": { + "rotation": [0, 90, -90], + "translation": [0, 0, -8] + } + }, + "groups": [ + 0, + { + "name": "antennas", + "origin": [0, 0, 0.5], + "color": 0, + "children": [1, 2, 3, 4, 5, 6] + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json new file mode 100644 index 0000000..57c3870 --- /dev/null +++ b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", + "textures": { + "particle": "create_tweaked_controllers:item/tweaked_linked_controller", + "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [1, 1, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, + "faces": { + "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, + "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, + "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, + "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} + } + } + ] +} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0621dcc16e982333c06b9f4a5c12cf14ad78567c GIT binary patch literal 6784 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 I);#ck0i84?iU0rr literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..d74bc4721ac507c073475eb545eafd6aa072d4ed GIT binary patch literal 5051 zcmeHLdsGuw8Xsvb6bmT2NUdGR*s85N$;@PuOol`R5+%jZ2*|47V=^LTu>Ms9lNQt7pOA8wycsGIIrG?M0$ zdo$Ejd1L|Ky5fLo*4&RKOgx@f=V+ zv*}ky1xYqO_Q`*(Yi!#4ev?N{o+>FEz5Mb1ME#9##&1S87!Flzx=DVI6o2|f+ToD7 zwW(KMF$GP^df3tAmzTZnfTEqKo$!x@^^)sXiv4#>+DaBq*kHc;Aq0(B!$(9IbP*B# z(SR7Xt;|`8E?I67Ax)BdC&e0^|0-otOZE??_<9j;w57kgmL+PO888Z+K; zfBva^zM z=3ku~2hW^VeCAem(}u(?udlk6ShujPC`|pw;%WYY>pOnE`Mr}q z<4J33{0hI;&!)XkmzGzu2cxAqFK*tb@fERzLF+eFRQt*9;K!iTXqi89 z%2BV|2KcL0{|x=%(*Ai{i|qwosijYvt7je=aYcO6vZ(dmr`&;ep>CGNWWgp)-9| zZVCXHIVTOf%_$ZKb+nk6FGW8zF!ix%h&aD>&)!GxF)qlnhcr{kiTzOc&9 zny47f>^=x^rxq=DI&G9h;&QpfE~(gRPm*9trBZ_85*$Z>1>(rCIB7RxaZC{)dNDMd zgR%2ACvUaD0w!&=ra9Fj5$K2e{WIJ2`T=;0qmKo^hr~_WB$ybLn9Y*GBOFd`IsoZ& z=x0Yb;y{&3VmOC2&CYPzbk5?OG8lqo2FBac>?xjbSVqF7aAsiY0JCC4rktbG8wN%Q z6eRIxn`aatdx)izH$5e5h;KrVC!E2KfZ+qUL#+E__ZR~!y`IuonKZ#YoklGZ=BHRI z!?TpA8m809D}M+ZUaEDk4aVK@N_fQxy6gJZOj z!(=#u;WU6C854kz8xfg8Zeo-u$w(E_K@jiSd7w%UjG)O0Jrjs~{&64El5D2Hj3_7(47xy~uX)&bG zP7@daYJj(}R+rC@7Y8(i+;y0ZUqaKcE+XnLr-|8sa4&;{{-3Qr~@z=t)0QpV&6VWf=+ z3DyUMQ7Ul)EC{TeRQ{6T4HA5R_EZvKz3|>IFjjT@& z!j|zIkG?8;jxzx0;Ypr}-(k9j>3Svxp2>JvUBh%e69dm=Jglx?j4t1&kHVY<{C{ z%;~(6aCC|<-QnMGCrGR2wPd2T@BsdzQt$GF<0G* z=1BXhZ5heCvXY{jm5uukG~||+g?;%#{`QcG+LyhLmaFq~DsGy_o&35ZuAoO_Isdg+ zYY(*LY}?s+Z58pq>QOZ;>Rwv(=4Io~)~Y=f-IMg$n>8(5@J0Gaao*>DTD+_dnR-0n znpa{`dCPZ=n~UZ-G6a?fj;hsPsD7w#J-heB$P&P*sg`Jm^upeG}EX>4Tx04R}tkv&MmKpe$iQ>8^K4(%Y~kfA!+rHVL~Di*;)X)CnqU~=gfG%+M8 zE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JWDYS_3;J6>}?mh0_0YaNsH83DxK48nDJ&w53`EFipoTgu#Aww>F_ESHq=$dh@n^^-ldA?s zj(KcAh2;3b|KNAGW_c>^CWVqf|BG#Zj01sPpxw0X?_=9;p8)=6;7aTIH(J2#C+W?u z7Ci!nw}Ff6t|spRmpj17lP(#OBl&3xFSo_x3p)s=w<)Pjsn20L0ZJ zh-Mg&W~9Y{qz^H$ug`V8Y&ZjUa=`Qr%+_&5buaCbn>-1pFreiQjLcN4-WjmNz$@Pa zTKcIAq{NdFQlh=p$6auX0WEhp1K;~EP|bl~uMOSMU6%bmD;@v<002ovPDHLkV1mjM BBya!# literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..7b861d328d38349518254ce43eb56a06a9deabac GIT binary patch literal 725 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 literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png new file mode 100644 index 0000000000000000000000000000000000000000..08a2715f7a513a33bf100aeabc3f400c6e60291d GIT binary patch literal 20936 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 literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png new file mode 100644 index 0000000000000000000000000000000000000000..e64179294963c074d73cd69e78c9449d42882dc5 GIT binary patch literal 4604 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 R5D*Kbj+&<0J$e4({{r@;l*<4B literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json b/forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json new file mode 100644 index 0000000..242911d --- /dev/null +++ b/forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "BUB", + "SUS", + "PNP" + ], + "key": { + "B": { + "tag": "minecraft:wooden_buttons" + }, + "S": { + "item": "create:analog_lever" + }, + "P": { + "item": "create:electron_tube" + }, + "U": { + "item": "create:linked_controller" + }, + "N": { + "item": "create:precision_mechanism" + } + }, + "result": { + "item": "create_tweaked_controllers:tweaked_linked_controller" + } +} \ No newline at end of file diff --git a/forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json b/forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json new file mode 100644 index 0000000..e00d180 --- /dev/null +++ b/forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json @@ -0,0 +1,6 @@ +[ + { + "block": "create_tweaked_controllers:tweaked_lectern_controller", + "mass": 500.0 + } +] diff --git a/forge/src/main/resources/logo.png b/forge/src/main/resources/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b72c00e13f60319f7e17d334e6619ba1bb2de1cc GIT binary patch literal 18095 zcmb@tWmr_*7dLzu1{h*w0HtF{QM#o;x)GI5>F$s&3F$8B5|NS)89GFyLy>Oj9%^{z z{=e7z`T6q9HFM6HJ+sf=EB0Dzuk}08n(7KrJW4zO0H8{WvRVLufxg55AlT@Wq1$IG z^p|j385vC_85y{Xo3oXzgCzj4CIuvkEA~oJ_nW-#XGnWQO5{4Enfpghj#}kOjA>!R z6Mawa)^q%9ex_%f@uBwJ-3k3)!eZ*HA619Kkr-?L)=G95m{DBM8lp~CTIh}r#SfP- zURDmgspoq1Ior}A8JEXI_X&tvjv#&9GcJo+&-?B_)Fezos0N^j(8pN#@Xa zU{9~)7IJDMdH5|B;~?mtCcSXru_SV_N-sOlEhQAU;Gw@sk|j9As9>?-;K+QzDIY*t zuPE=`>~WYLrkq>p#86`tIRSx@gZ9d|@DN%{oPz=m|Spn|IpAdQyylP?E#XdI3aMj9c{F>XbZVDVeGiIi&W&Mb_XK0KYYAdByEem1EwR$f#KOXke%Bu6@%c|+rt(u+56{g1Z z#7}+n@?odyDzprOAeHx*x6S9V(rkn_o zqTCf^a{-y1&W+cxBb9naTDmt;{(&SQfm2RoYg_rO)Zd7az{Iam`!=<0>g0!Jv(&Rk zGmEAj>WR$)Rs8R=H^ZwFKw&>GB0E#})XD!9rec|@E?Qy%rHq_HA5Z6ubpB*()6}sG z721BF&98?iew&B%TCi?@e*XFikQ$#KP9^tyFFr-h=8t|i|3!FpIpCfjw0`|++NFpU zuk@21Bd9 zbImw7x`L^=hW4${dx#brM%o(B7f!_uhyBQMoOm53{v4QQu16<^0Scko^#H_+8rYP@3BGB!lf8BRv?HT z)sOCjBpf_2#6$~9MhQF|&HuY0pyXlp;ox@J!7#{aH|gT6pD?mEhiO zGyzR5yWPRgGc)u1A2$Yb#`^b~(-6dm?j|8R42f76ozHSK$wQrI*Km>w*p5CinfQ3L zMwq!1wRtUBJvQ^eYZrdR&{+>X?TTdd*)?E!8iZB}rCo^Kh5m=q#v7qgQD{9ScqlW_ znTa`$yM!2A9Fm&wnfSlIjASG~87tnneXN?2YIfeJ=E}tE^mtW%BB|3DtpKIsQnmZ< zGsQzqdy&SE`_mcFYcMq)fSi^o`4YmYGl)zuq-VFgc-@)mXrMhK=TXlED&km(a2lb2pC@3OW=&FrF{t}o+ zeiu$T_n;JYq#51QHu;`B3B72`eXp=y&idgB`b@6mWb{@y^UZPuJb)Ke+G?TkNS_^#{$$iGD6%?8lrV7 zH?2@Qa7$j$2C?)nK_#mL^ZW1URoHL$MiRmu*DVdlSSEBa%2%ZQUfT1LMEBX*e2_C9 zpj>AUgE`QgFkZw5|F>$erD0%lqhQl1q=LtPlv94B_1ov6@qzeUCZKi_I&!M{cNmC# zjP3h$1|(f7O1mQMQO;NrnEtpvsJcPg+wx`9!E#&aa(>&N4}VC6>X-iy@h zx1bhFRjy!XYzYGYsq_aAoa4QhQFKB3b%PT0rFR=78e&8$49Mu9Q^)Le?3;&c(TDt? zH&UARiana*fp|c3{E6Dif=wRv?Lfff98FgZ9=*ggsM}fmq>n^hGXENx@O==xgn#!& z#P+ma@^ok2j6C4RI`Cl3@FI@&89@E%1VMsyUFoJp?P|mPRh6$rHN;M2i&fUCy1WnW zRE#c2`@-tn6?Zw>(|}( zVp1Y#Ac1m_lkVK;l@mI@1T24rJwCdfHE&${787{j(~P?O``>i$&&{P_sO~Y;P5$z? z(vWS1oQL-1gP#k}Ak0vqzjya|fKUZ(!1*h+xr?}ot8V(hX)6ZgC0YXWy-$lojteo+ zb2B1ARAvp-OI{Tx1o~H@l`-h5Vhq{*?`nR`Yin=~L())Sx`eM_s6{Q)QmKjGyQA4Ei5w2PbDXWZ3vhBU)^`NA1WsS* zP=+Tfix<4PNa#RIIZC=lT-+DuSo-e|Nw-fPJ+4N?>2jTkPm>e}0^gPGDYV4PJQf_e z)Clkl$6;APrO+}~gxIUnGhSzp6H1oi=iLw8E?@Ad&7qbPP=E4$n?)cZY1o67Xl;xd zLt5K<{YKEuH~9>nh_y<@zorZHVes zo5Xb9TeWvYC-q}FF7)_!LdU~`gcJF|QNV`IL*H^u1w1m-pI?ny0^*g5J@^}m2i#LV zc&&tW5rU%c1HCZ8O_o}$k8hO0#;{k;FUBcPu5RX>z(L=~!QBRBn6#fRhRS>5k9L}Q zP}Q^;$;*%KRt691TTJ8cn;S(y=m=fojTTvRo% zbby^HBpoQwbUSL9r^!zuMrDM_A;wTbgEy;W>XM?GZnf=^*~&%3M8wk^IC9@Jta%jd zmyZ346*sKbpdN1}u;eZ^_4GfQjOgZ|_g6tTIu8~Gwx&BG5!FJ{D>#@OM>7J@1qqP> zXPi)YVq~5wwz~F@Keu~StNTK#R)JVPkC5Bnvx5v6T*TAU)AbDWSnw`cD=nk8r){Qx z$ckqNRrYAx9+{KH8+ZI+Sr`Nwz^G{U?ohhe99L@id`3&9o_PPrIQ}h{`!vI2=>^4U zHi^Ww#k6|`kv!4f+sJo~>f}lczgs{3#RI89w3G}eOfXgyW$y_m&D}Me!Aw+}RMBwP zsOE3@>qn^zpziH-k4{(KjZRLIZs@uYR5x5Gk?NoI7|Vhwd;GIZe2_ zBSdjCgc1Kcp6TwO=oeYK=hBM_RqzLk=_RB<sn!~pb{YI-p=r#%{qT?TBa;$dGzr{84nnoMK)}mypAd%Y*8#)4>Wrv z1^~4deHOI?r<*Ew2b&^Ktq1Co1tVO~Bw3(yGII^{V*>M~d49HHalt zS{fe0Tgz&e9A=_Ruai$t{B+{m>jH`Z2{6%A_w&{j;_R=^TOTXWMj-SyjCca3O|HdR*9l=Go&|DPfE(Tu zfNjfSgNP$2$woL#Fpx{%sm&gi$+2!7#%A-aZF^ap^X=!<$_+OPd3m?_%Tat#)OK(R zJk}+l_QY8qXedHezrXusWfKYqJ_QhmfS-2>;8yb7kH(X6A5XZMrP-XQ$g=4*MEhN- zfk{U{=i_ra#UmG`zP$OO$*GeQy+Vp1-Mmfdz}LA=0$#0akzZ%w3)JD-^=PBd5{xz_ zAE5i#gEw)(Ma;oG!E&^W4GN3OGEH-Ep-`K>QD>uyUeRWSwh7OzypX-mAqAE>`e@=L zwocmBz_hioe`9ZMXA)0gmraCMzAHuYB;XO@hLd*Tq$UdJtq`iSR9eDa@3Y&bPMA4ZuBjx=6Q;)G@nBOV#1CVz0EeYCv2)*qv)rj|5p5izN>^hLR} z=kH%?dwY8t$SW58JK{Nk5M#we73Ohs|1dSOm03HRm!@`rJZ;v%My{k5!+$95lm%m?Ht7CFj;tdEjEk7}@vNnK^&(T;Z zIHh7=`$yaw3#jz)zCY;^!=IZ=)bg^t^McQ3K|Ivf5BXAls>j!AeR1=2jf2Ogk~{&t zC=iwJ?*gS^Xq$}>dEU9BOX(ncAKlPLeR|7V=#Y+G^UKm_WbbgT&jQ29p3~ZQ!_&K7 z`-{u!q-T2i>&-cVwT4=v%_yaXmf+KYv!6Aok0FnNCb|2(?UQ!wkYG#U zPeegeZ~VlD+7chLw>sN$=Y>v8qZk9pi(egz^ZjD1`JTczRlIX^=^6X7OP79RCyZit zMBtZ+;SL4(CFHQpJ^l4l7R3fVA=51E=FwQ!cVc5b%F!b+_I1YjlROw*R|EVBh%s)} z7rFF9JaaBn}!`fO`+1`6G^mufmzM@_2h#! z7r~v-lDltgvxEm(`2sm2H(KG8f;RA&b5`Z;FB5&!_wOB-zn?;7www6)K4s-P*rWOR zf{$3&s#s~$`CC)*SgoZ>a~#_4G6>MnTXtWxZvQRT6HnBzpyQI_k{=^s&H0r8K8 zSC?C%FmA1(Fzbhm+ zf!vYkb@+cAvUw;li1?KiP0ja#KW0xL&*XETh$ESN@-`RO$&bb-hhoA5!^25U(FMgP z`3TuMk<61LVewxEv~4MTe8o8efe+2v-1#_2l+08?v z_B2j=qsXe+&rTcDtQh9CC?C5isjF__mX@sEv=;@o@*sHvY!_Cj4n;?P>N=U89f74K za<<-je=6ZlHun{yi@Ej=UD=QgQRVHb%HNqn)Cf|ozGj1@uMUUPi@8A}Jt$idxXO`)+R3|*INWP~1L%&tyEi-eU6LbVheq^wNCMYk; zfjpnCwCa$O4>Jo3>%ns+`%r~Vq-!FDf? zw{A7gjw_wb-&tI_nN5ug^YQ(V3|KaJe|Se7bUV#f#{>k7Y_nHs>*-bUi04`Q7G06O zFH+R9Z+S!IwBS~u>r`v(lsLwcnM+GwkL7|%X_61F1Iw8BEsS_=-Nqqt7i6d6FDIyE z42ot%_|KMYlIhr6jNe&&520PZw$&nQF<1I>%{0kh>rr)NnH6E?vbMp*_u9NY7LiZ1 zr89dy>7L>9C1!G^itz8i-l6#DwC)uZj`kj>$?c6;&_#d7=l1VhE`t2sMk%)Hv6f0( z3JahL0~mkYk)|WkQDGph@%hETp+vtT=kRa^=(k4^+q%vk=Y=3+=ekdK440wL%br1r zpulStSIL?hgts=(=(X#?1uIFJt+xKf?@2tHH}Ein@I6hV>#V@2oh!`B4iDXXrR!`; z00Lpe4L@!)Og2@RcCOZ#Lz|*9`zoTK2K)79z5%oWd5Z82Dfeaq(XS-UeOg_;{gZ%P z{G#RUv)bc{T07%f@u;gx1&jk2M&8iJIsSu#eV-$)0>;5p<`iX5Purzxi7u`vPed_H zWj<&#*x-c55iPr3NjxrHZRt4gk+Z4Zy?KqBfT(0gUADbI5>2 z+U#e+6A=oX(^QZW7MH;s#=!Byfg>k8`<+esU&;9wTVUB`oLe) zenpUC-a7B(R<(LMqqBwFpQ_RPazx9lrsgtek)2{r@wLjp$s6d>HXT*n$fO-Jqm;Mr zyK2j(*aZjY!iUiL46`c%6e-|vLxeQPO;Fir<@#ij)QjEqOE$4V&0%VX`QNfXuyZy3 zGfsBAf`6wUc|a+8pd6M`o-_3}g4Q{JR4!S0ar175`A|eaiIXH~gpq)eljG|NRnYl| zDo5C1)-P`HWOO>s@zWv{Xu1$BJB_0KH|K-_B&sd^^>T}i*!KSZ%8Clu2Y3HZrZG4e z!J~VMdgR}89bGm6Qv%bwkgXF&413&|i)S%JbBtaD?Ste z$7hTta({T9)0Bl?2l-0yaCpi$*N$N2(eAw<87QVtO|Sx8tNWS;^PQLrXZ56MkS6Uz zy{8{`mrVIr(UPG)!2~*7T{Zo$%vDylnw}6hFB3-85OxO?@+L_WYy;l6>VV7j9sa6J)=aj2CwK09mI)zd10RmLf>L7GCEwhfB88` zHcf5er}~p2>(}k^YKpqpxNKqT*KhtE!VRo*y1XGikA2ogz198M8GQc@pH=?j4toKZ zN}S7}cLFD&!pi*8QU>Gxzb+nWLdkh zFYpj4K65q9cN^Vp3D^pvCfkb68j!=pWW{vn zPd(aWfDLTPNH!c5W-*H^J#(kK-q0JM%1~Ci0s<08zHRsQGr-Qu-2q}#VOWDon3xIn~qWLT_MWc8b#wP}ySN}V7-%#dhX z@)z-BgY~FRZHA}-n(jIrsmg()+kiVy@qXXP$%3gUNmj@jH!1?}_ZD7LTt&y5$<8`B z3pR|&G3ECzsQCKa3Q=5_#2Zf!`4>N!Ve)CgP{DNYcunQ8l3lz?)xOc+jH8BEB-+HT{|a*Vs(;GhaW7t z4cH)QUNc_N#zmw-VPfql)#d;XD5T&wb*{;C*MQQW)4J(d(f%gzD2Ctck(9>lTpRm* z$nVX+*&hdey*?ZipX$5-3U(_^Vu}nw6wV$7LRxP$B!_HH16g#&%&Ww3c#VHK1$Rwi zOQyP;|B^^i-pBtED4kfVrmog3gi>c@K8TBN(I`D!!MVSpVR)8PD%TjAs|xMdGAj>- zml%H0s%nKS&hsDlxMlUv;7zSBJ`H6}enXR?AJBXvK(DATQcc$n{V?hYw%W;Q?(y1M z;561$+3}^JC{5&zq<##}?iw;6{{Ze8{|ux}+YhTP_4lofFzMuDQXCCwU%jL>R-Bwv z`s1s?h4n`&1A>*`DHgW2@O4Z2h^ExBu+&k zjLLhKKl(kR82CjOXUES}n5(%mvX;vE=P56)_?j*MWtPR$$+j4i3qgJwxQd=_HPbV{ zoQ4&}Gs!*P+z}>%aLYTy`cEN6-!@I9YDmfko^lRob0+Hhip=6CQNfR8h|AQ!U_#KL zR=rUy@;=zKhB7EIu)9fi#gqJ`*T%hZpofdsDc0wRP>kp`TrE7nDk@B`_Sc-tv%0m!JP7 zYifWUN(&Y{jBU@}}e-0Ha3bd_)d_yE#)bs0Ba0?{$H~s7!ZN~tOj33{* z_}RieHu?kj zSbhrkv`3Tj4C5SB?P?5=-l%tVs-E9((Sfb3Cc983bqr3Tfl8SCYL#rg^GmDpoZ+TB z?Y(8>3fEuPDP`t~Uvhcbv7a#QRALi7g@3^Q|SFPbE>~1;%Z*fQ$Ky#kZ8E zhg27SZ->=ii(J63hegRvZbXLDYR=X614u&XlKDN8z0Q(_GPbQ!K7CqRyf{L;-}LPK zTkj>}?!T0HXrHz@pSK>Z25;x{BLC7+rjjN|Ks?s_Xy^_qa6JNOAAT?wjVq{>!M0Y~ zyW~A_oXseLoYH&&m3LqbRnuZ~t@w-34=|>wcG1~*vf2ji(myVBYUX1%;%E=(8ToGJ z_t~hx;KfOYX-475+sM)xyrk3;V(o=RbHP}Iw(Ypf0)h};3_%z(+EPL${1;w5vbY0P zRER3Yj}|y*;ge;@r~fD{mB)bY&RuraM0^-;(|8e4n4<0}c|;pQpEen1O-~+x-&nsa zV}5fXt6g?0|1noa{V$IBRTvl1g}r0Y`92l+=+*?fbiIhZ&KK&md?%oqDNJ&*Vjv^0 z-ZLoxZEnI1btl`JMYSy02i^@XxgTMAkIo{FXJTX)p1ftEMa|~r(FB`{i}T zA;QOKj$d7Mi4}TDb>b~Of2Eh3zihmP#E7F6UGsGd@7q!OX_4*pF5z6f=m+sD&*x#x%D5P7uO7Th!wT)8vi&I*iV*lm2*a1Nq;0Mwf3VLRWnnt`Q!*;`V=B6b4HLn5QlROv(m>W9 z-ay0u9}BQhYo%VyJe3=_>~fs(F?_GFTJj1TvV~(u>V+Q+ed4CXqEO!=J$|7gvIv+? zg|`j-v~b6-t{u_$dkQp_;S3U1cmpAM)XY30VOc*ex2cvHpL02~K_j5R;D?OZhiKFD zw=(27%x(t^N7rS`D@o2L+&__$h5DrasId!^fV3_R-gh%T$ zQ&A&+{dc8Qx?>w8OVm9x0(RHovC=TleG!(f>iy)R-C^JxJMq^jzSv<~s|_*S_W=n) zcg{w*7|%xFwv;adgNrTe6g1Ao*N(1*%i<(_i8+KqzLIs<@ci`7Dpu4oZk6}Ep!{9; znrYw{!&i^xfh#IzP-XP#*ZgXmsK0em(l=CT99MsS zc-_^E>Fd2*)uJ}nAC%3?B#E2|LLF*=rI9(34^%;~Bq@P;yim3bNVTy%RldBhmqTCK zg=ZCnDpF4!i}P7sY&GuYUG9|_-lrf*m_d< zdNYyL{kR-G&auQb?3necj?bmw2MdOy4?Jq$Q~Kvp5X&_Dr))|83Umnr^UkCMnk z$fXjKBvQIPle?dQF*rxle9AZdnLZnOIFy;$!AM|NTvf;@X4)zmz5=(O*w_{Tc za6K7$qijjdk~1jc{EA%Z2M5eTB)Gu#&J)ypo65la(+HZ0m{kVX)RE_o|GA_MAp6Kh z-|xtXikFb$IMK(*zuhAvIQcVG$dgPf#(_)!i@Xh4`f>oZGKLx|erQiT6$<>PgKBW) z2WlIK*U}T6D0l$Kw@Gs`T?QIMi*2;iVRnK)fix|9qW59?z4R%{i6filIMR=?TdHHW z-z$P;i7u3h7FEyhFU?kPQk9=P@4ukpCW3)W;k=+!pb+`_E{K?y0vD+vlTu@-MwNR3ztUbmu!U5-IpKTgpc<<4Z4{_ zeKltoCyBU!rHWtS{hn!-R;{c0Ntll)Vi!>R2ipaWE^T(R@C257LW?$)aB7>R?I>I$fmf*ai|N6x%+IV zZTYD~x!YbX%hSKu8)EJ9rs-jIsD3)nleAQgOAf~9pYhZt&2ZgYz^T);VEsozqaxF6 zJn+m|I>!N~N3`UY#Ol)CR`%N5M0)P(O0|^Qb+<#q@=5HM{tE%Zxiq6RoS2wmu?xd` z>X_gd%kEZT=qj$8lA^viNgj7Bq$8O1@42k8GHsd`s<&CvL+6;ox$V|I|NXxwLC%1p z#FsSf2@s(zb5o5wH8#)`983xccao-pS(FYAn}*;X+3QYF7DajjejzK`SY2BWV}zfz z?U8w5wv;<<6Nr-qHG?LgR)8Lvrvi(xX{*BxtpeuxQ5Tkf<%=C~S;9LPCd_l^@L_VDUmN|4D zsMTN?a-e)@O+UGKBD+7|wETM3M z34WRp-a571cXfR~dWfBRe+&ISzz1;u91!2OgNTpLC!Si=TZ}Ws&aBK-s=*#Re%=ef z=!)W3uZnef&|#rKWcIl5Cl+v#GmVvU+XR0MF;BWPw)h*q6HBAx z!jx0RB^tTY+hx>Ed&hqkbj%s6n*|VL{PtSGz(fxJt|=Ps1?($=TMK#|ju~)UmH#^9 zL?p@1VMW*$+4{~+iGByVt^$oi(ii#(z2SpjsT3+2(OW#fhaw0UIrs zg;Um=K(El@m}ef%0ZGp6am`YA^ou-M68Gvq;>=ebpl}F^qUuW_Ax3* zbj%tzww3K@^8N#Ke`nqzem2vmdC`*;&qU%6TFb&X@KHK9s@?Vov zP8qsK5N>C}+fULsv5-Uk(0Vo(SL)6ekJx6*PONqCKLrZMygfX_d|5m8dtPIqrN+Gi zQK-zl>S1|j1tKwkKgu`ay}q?fX^y@9E3{aUNWCwhiTi5wA7>2z4{oRwp0td2v(JR_E9cR1bnI4l%<+fhacQ%v+6G|=OmahM}K9o0DWjEWMo z*b$=g@?9GWDKJ<+!j=wx&9*AcGAj{ndPIacJ8)(JA#g!c^7bi^9_}K;FPiogCg$C9a|A(ljHrki%DR^1o~(a z_c`r6FAgz+LyU6zy>Z6IlHidAVG0)*tgK44%iF^t5k++b=6KQap2rhFZUj(=#9j&v zHs7Z={3Q1JwY(Vv$>32h6BL`rRjIfI(G{Rqh%44*urw3l;GL5Di@lLh<=h`Bp0N(u z8P)vd(gj4-SjbY5Z;eka$-CL?p`6)|nk`8_(SX6&{QJT0cBXWbF{y&)@|Tst z`6fK?&uHO^aQpb?HmxrdRYWEY*L*nB*bsgaGira^L~c*{deSC}qeuUh%emP^E3zMY2doKx7jxM~Bdr znGE#X?8^9LV(&6xgeu*MXM9JIM+MNzeVb@U9 zB#|_JKJ?uiDb3!xkv>Zs6>r#P@5-Z#l3(}`!)vF$ISiq1sGgN=N|951solPvkUC0Z z#u!~VNEYBpUkk;29X5UydE+utdyVQWnVCu0y_%K5R5-snlzX1F!zL|j7JOJeDCk!l zy``7@O4-`h;Z{{?C@x=c0!TA1bxpV!7gCt{n zu%QFsWyc1bm}QxwpY8PakGOW64GI6|&G_rLjs?%*05@X1A|XL7gYPg;sYkU=!dr{WFrZ~@-sy#WiXQjqY^GemmMHZ16M-UfzRJnyu& zspt3Mu>Rq`Q*D4aY`b`{TiBJvln?Q{+@tn#0C^q!a2fg99cN{RK*zc{nS~{5NU&MB zWnT_(&JkA`x25wbL9ubw)yy^5x;m9rP^1P_sa?rW31uJYY4Xj1qWxHT=}6w5o1;^F zhOuwO`dC|`Md3#6o38>I9*0GGEhZ$j2kwRVKckl@3;YByu99hNEPUs6%yNT2aQ^Bh zV2mb1l6MogHnPoU$K?;f2KaU5tHaz6@M6feon(XNs>TeoZ?3{urn(4R6xt`@g6N8m zwEb)s@q{Ku?fdV6vK6cSpit<#y@ALTl^^Us_{B6${@Iyar-;ts59C7ilqW9blS6R< zJgpT425q23?L}4!JD2hLwNCZSb?x)|g9olNuJ za_XZDzg~=3kd2vBJ-d@_a)!xPhxr}wE?w&+ZsHBmBq6l)(z|qmueRJsYRX$(SN#Y} z6vm%J#ngJ|*i~1d_l%|CT8rg|SHtD1c(zoPk&I()yOa1B5irHyhV|nk)A}#d=1J06)G}!M zkkm)G*?D9VRjYopww&0OUL1JZ`1q+)?^OF9uB_94H>c2v z$jVb&T5WC*n2*-C$CgUb!C!4mslkxoi#Cml)fAP?Sc^*>X|5^v`(U{G`q52KW4BbT z*~P_*7<6sHGb?7pS?>ZdC;8uMuw8f4SPka_2;q9ytVmfV!eOd`>wWX zh&VY9-gns#-f3}iN#>5K`!~bHApVbigiIgZZcUd;8_{w@m{KVvHX}4REqT8&5}ljh z8B1xp`*U)owP<-nF3lW00gEc!nSI%p^Iz?u#4^}EBpH>3JGuVn+Do$_)nyf95~{9u z1jc)c#iK+)fraKmZIz(1x0L=AJ~cymKIBN)ajpjfDWo`9WTr>Fi&F_phGtDiy`4JEsr_|7J9!Hcm-Gx7c&<*SVefl_5&=A5MhOrPWyDEHbaH zE2%qrZs=bMHb}Tlr^Dc%Oc!$=lozUl_er(dS4iXA4S>V6s#!xOOkcqfF7Ojl0|;?2T$IWe9RVWd3Dh z5Ocp|4?4_LbX%?f|x^h zHlobz$O=O7CXu`xCsmbT*k*LT`<-7Xo?Ax%2lzV5Qv6*Gi=FU&Tp6xElj>Kz8awJ8XL! zh?b9s^6jc-!pW+bKV6(-VslttH+|oZLj19D32=m#ciwJr3R%{st7uV}ihoQU)p}>{ zy`@>wQj#yO3pikO?}Y^6cQ_YVnPvQ!vq9tP9-~5}r6A-=da;&{4(2b8ZGAA#?BC|) z)I8d}T8Q{nsjkK?zC;T?0Jt62@mH#cnaT&<9peyeztKrz4VEmbMu>N?DHmX)J~T8U zho?a{v1c}@&%LUoB~bfEHNOc{ij~HNn14RH;&{;hp37`h~ z34sv;l2hLGwF-cPp{zXq5S0)egj#atpWBCw3=xOH#d3C;^~2XGKV!G+nu1N)0KwRY zbNq}fgJ?R%>|oJ>l)r*mjFwlZAvDX1qx-MwT(-5@8d?Hz;yHDG6c0l{ff~b30F5*qF#qKfY2p-(>H#1P#FlUj zd?Rh*>6kQis`@dvRVkB2KM$b6EScnE?s3dS#JZ*R6 zt`|*rFwl|&d3h?oUd91MLx~<)j?~0Wn%apC;*)Jh@~+`yG$$|%i>5I;4oVj9KlRie zD@%Nz)6*(&F8_0Iuvs}Q=>k?`xcmIy)gw??sY7ydnI}Ig3A-zOaz%QjJmhMBfjt%j zXeaKL&cK#Y22(wy!lifV2p$=+G&cMUE#)UqccMcVhQ(BV2Vf1;tTETBzEL`dyStLr$z8F(*SP^K5^@gcq2Yt4}nY-80Ld$q<;c0-oW}&(bW@# z5ksay)oEJgCZppWT27y+?U!c~Fu?|K2=_cADRwyb9__3$mg6GLmlLY0y%Q4b{v0Sk zL(-iHxKOKv-N!ChE4aLG?TNvkVN8MWV_3_Re9GIYZk;29T=E6BA0g;qYl`Jz%_&H(Fhti?Ec~o^b45OBfh}xwd)@GnE9&@q~vhu_2L(Qnp3)M$|d6G6Z zY?>-}I|8N9Kiy(=OUvHt?*;w2?vDS{nmo8rPULCJT;*X|L(Zw>&5=j?EP81oQ0G&Jv+b6^omf2KvD?z1y0%Vt-8^!0R~lY@66B0yR&= za)$W>xVStp*E-WQKz7zlGSV=HAXk1bBHtbiaG#z}NyK|uoOwIyOXKiKY z@BTmz;sNMnN64Xq%V#)@JAL;N*e?!AqmmCV(RHlVynM%p`en}z{r=u%PXgXzc1ItN zgc4TjDzIH$(s<#c(FhVaV1Vn}vkywjNlRjBm4o)8UUtl(aT)Qn;-6(*GE2L42j0C? zupR%)-5|M+4vy39m#pet5TBP5E|tN(@i!6c=FQPJ_x=wDQnhnYk`4fJvWUFovn&-C zY}f$v|C^g$3kMN(kBWl1Ue3u^H74fDCxl#4&3d~y^p$BM5!fWxs$-0SLUXkfj1WfQ z>CXtAIJ!ZB%qrxrm)TtlhKqThkk|HS11Ml16{*$abzB#l=`BO-^M}83 zi@j|;Gc~4ULx6lz8Kh=k?H6_b%)w{q9kh7gobg={c~SbVUoHpvW5C#=j<$?dVPNUQ zbQNB(U}?8nd%V;SD+laaCn<nn__jA4q9g&l2`MrJ}TF{R37SL~kZ@@drmF+*qZ(3Ej(E7730@CwsMZ~a0F zQcfbVfWharnbc-Z>ji`q0%Ht1K#P)cSf(!+T^M@`0j*oG4=kUw@I0eo*<{!aV}*XQ za!+vUsIbEX7g_q}AO6X6#W2k{5pq5r$2i7m-l*G;oMDfxjn$#KuFqUE&X#9qb2|hiaO02aelb~Fd#_I z{oh@d0r7uIRH#b#NQ?3uGx&V~DGVZt6HO#b4Id{6FLSQ%Zt=*(+ftOvAosYbT_n2q6HpvI~u$6e#W$wm$($fi!>wh0Rv3rEkn#67UzPSaSEO zbeDv|R3^7la2xZx-0VasOW1X%)cA~TD`qenMlB2nrhkg*pbMUnn8DEXhnH{i{7%!4 zFg#vSQt!}zzCVXx<8*n!qWToQOQp#MmMeI6J&Y*N{cOr+T~JqKi>9II)pX|0pVRHur^8Prv>y=ZorNt5p|X) zxEHgF6viYEtH6~lmw!9vL9+9KiSd0(&*}U9ersv$y1?+%WH_X*`l{*eO#$%P0E;x4 z(UA9Dw(agCfaut|OQCq}L-`GbL#i)k_W=Fp$fkHxB+z1}Z8nGl3Sf`p$(F8nYS5lk zPrI9(Q~D|SB<4gYew^(Y9~h>7 z?lnHrk8V_-LGvJw{Ar~1!6kB-uYGWUU=FxqJVWw&E=dRw!1O^lT~2rLjOSo_h^zDE zyH#5eHM&D@n=NjPTAqZU#^o*J2LLIvLRPf)fonkcGiyI)sEnRMA~A;EMAtkH_yofg zZ6rB~8e*MeEt}EMc8u*e!(4e!UGGQWz14A&s=y1Yz=t%yUJNPl9q#d&E2RmBsZVM5 zz}N0#>J^dDdnuSG@P`@1H}Q7*=(?>b6`R+iU4%u{3EeMbuOcaoFYqHmf&#mJ(8lhXoDV)8fV&-Uw^ivMDf zg1o8&`N1qG5#60R6m#*HzdZxF1RzC@I}SbHwf#y`K2AKW8+$Zr!f0s7KqZ(-Fh&Oe zZ9YoYFYtmN)ZM>a@7iqkV_w@}1?O}qB$8r08#UL!o@$t?=gX>G=0O7s^mUHKr%|1)8rBd$2wPv>G_=WlYJX*z+UWg?5O zJp-^Ay#_cHxj7cNPU`go-7|u5@h!5Y{|p!(%wi1-UaTX(=A-J_b^p})lwN5w$n3rJ zz~Q=JPM+@4na+%k(F{5N+#BnX*s_<|awr`?xZlow!}YzFKQl0}}&q6=jA*zCSUQ4d~k!J9fWm=v<)Az`&6!y0EwO_v2=u z%B&jpANdC!Up&>VFMl)L@8-J`YE2Q>1xxnsEt#)i(Zz6~n{D+gj++beZ0TE& z&XD8HVwQ1iBKv`F&c>`S*f$B?X0>Cjd82U+s0i3~`8CV*g)~E~TGL^c2Jy%#hpzM~ zZ)xLeP`-QT^{?#EX;yJvUg76FpL}Nkj)_colF+BxSF1>xg!@}!Ywtw!)y*Q^b#;sjE z$E~F7>lk(%sDG-K4-5;9(%BqIl`mHSQ#9ZHsI05qO&j0+ztG6|U|ZIo=tVo11DyiQ zv@cAb#4$ctynfdU;0o#975@#v=M$9rvDC^oRk1KWSTOs4Z(8_&)vsr@7&N}JHO=F5 zv~^4KWiLM8Z7Y|!C$pJ^zRp)-1BLzO7 zU{le~&UM!WOTZrC4y^RM3W}fOJS@_$Iqtd7j%=<4E{~JjZ?k;SzX?mPF>3I-KK=B` zQuAlruKRmRPN&WO1ab4-n$Cn`*@M$q3X(VbrdFvgoxR_E!fD?>bw=j3p{M8mso!$v z Date: Thu, 2 May 2024 16:48:57 +0700 Subject: [PATCH 04/21] Add the build gradle --- aaa.gradle => aaa.gradleaaaaa | 0 build.gradle | 79 ------------ build.gradle.kts | 85 ++++++++++++ common/build.gradle.kts | 54 ++++++++ fabric/build.gradle.kts | 108 ++++++++++++++++ forge/build.gradle.kts | 121 ++++++++++++++++++ .../CreateTweakedControllersForge.java | 7 + gradle.properties | 5 +- gradle/libs.version.toml | 47 +++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- 10 files changed, 427 insertions(+), 81 deletions(-) rename aaa.gradle => aaa.gradleaaaaa (100%) delete mode 100644 build.gradle create mode 100644 build.gradle.kts create mode 100644 common/build.gradle.kts create mode 100644 fabric/build.gradle.kts create mode 100644 forge/build.gradle.kts create mode 100644 forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java create mode 100644 gradle/libs.version.toml diff --git a/aaa.gradle b/aaa.gradleaaaaa similarity index 100% rename from aaa.gradle rename to aaa.gradleaaaaa diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 5635d5b..0000000 --- a/build.gradle +++ /dev/null @@ -1,79 +0,0 @@ -plugins { - id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false - id "io.github.p03w.machete" version "1.+" // automatic jar compressing on build -} - -architectury { - minecraft = rootProject.minecraft_version -} - -subprojects { - apply plugin: "dev.architectury.loom" - - loom { - silentMojangMappingsLicense() - } - - repositories { - mavenCentral() - maven { url = "https://maven.shedaniel.me/" } // Cloth Config, REI - maven { url = "https://maven.blamejared.com/" } // JEI - maven { url = "https://maven.parchmentmc.org" } // Parchment mappings - maven { url = "https://maven.quiltmc.org/repository/release" } // Quilt Mappings - maven { // Flywheel - url = "https://maven.tterrag.com/" - content { - // need to be specific here due to version overlaps - includeGroup("com.jozufozu.flywheel") - } - } - } - - dependencies { - minecraft "com.mojang:minecraft:${minecraft_version}" - // layered mappings - Mojmap names, parchment and QM docs and parameters - mappings(loom.layered { - it.mappings("org.quiltmc:quilt-mappings:${minecraft_version}+build.${qm_version}:intermediary-v2") - it.parchment("org.parchmentmc.data:parchment-${minecraft_version}:${parchment_version}@zip") - it.officialMojangMappings { nameSyntheticMembers = false } - }) - - // see each subproject for dependencies. - } -} - -allprojects { - apply plugin: "java" - apply plugin: "architectury-plugin" - apply plugin: "maven-publish" - - archivesBaseName = rootProject.archives_base_name - group = rootProject.maven_group - - // Formats the mod version to include the loader, Minecraft version, and build number (if present) - // example: 1.0.0+fabric-1.18.2-100 - String buildNumber = System.getenv("GITHUB_RUN_NUMBER") - version = "${mod_version}+${project.name}-${minecraft_version}" + (buildNumber != null ? "-${buildNumber}" : "") - - repositories { - // Add repositories to retrieve artifacts from in here. - // You should only use this when depending on other mods because - // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html - // for more information about repositories. - } - - tasks.withType(JavaCompile) { - options.encoding = "UTF-8" - } - - java { - withSourcesJar() - } - - machete { - // disable machete locally for faster builds - enabled = buildNumber != null - } -} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..05af9dd --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,85 @@ +import net.fabricmc.loom.api.LoomGradleExtensionAPI +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + java + //id("org.gradle.kotlin.kotlin-dsl") version "4.0.16" + id("architectury-plugin") version "3.+" + id("dev.architectury.loom") version "1.4.+" apply false + kotlin("jvm") version "1.9.22" apply false +} + +architectury { + minecraft = rootProject.property("minecraft_version").toString() +} + +subprojects { + apply(plugin = "dev.architectury.loom") + + val loom = project.extensions.getByName("loom") + + repositories { + mavenCentral() + maven { url = uri("https://maven.shedaniel.me/") } // Cloth Config + maven { url = uri("https://dvs1.progwml6.com/files/maven/") } // JEI + maven { url = uri("https://maven.parchmentmc.org") } // Parchment Mapping + maven { // Flywheel + url = uri("https://maven.tterrag.com/") + content { + // need to be specific here due to version overlaps + includeGroup("com.jozufozu.flywheel") + } + } + } + + dependencies { + "minecraft"(libs.minecraft) + // The following line declares the mojmap mappings, you may use other mappings as well + //loom.silentMojangMappingsLicense() + "mappings"( loom.officialMojangMappings() ) + // The following line declares the yarn mappings you may select this one as well. + // "mappings"("net.fabricmc:yarn:1.19.2+build.3:v2") + } +} + +allprojects { + apply(plugin = "java") + apply(plugin = "architectury-plugin") + apply(plugin = "maven-publish") + apply(plugin = "org.jetbrains.kotlin.jvm") + +// base { archivesName = rootProject.property("archives_base_name").toString() } +// version = rootProject.property("version").toString() +// group = rootProject.property("maven_group").toString() + + // Formats the mod version to include the loader, Minecraft version, and build number (if present) + // example: 1.0.0+fabric-1.18.2-100 + val buildNumber = System.getenv("GITHUB_RUN_NUMBER") + version = rootProject.property("version").toString() + "+" + rootProject.property("name").toString() + "-" + rootProject.property("minecraft_version").toString() + if(buildNumber != null) "-${buildNumber}" else "" + + repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. + } + + tasks.withType { + options.encoding = "UTF-8" + options.release.set(17) + } + + java { + withSourcesJar() + } + + val compileKotlin: KotlinCompile by tasks + compileKotlin.kotlinOptions { + jvmTarget = "17" + } + val compileTestKotlin: KotlinCompile by tasks + compileTestKotlin.kotlinOptions { + jvmTarget = "17" + } +} diff --git a/common/build.gradle.kts b/common/build.gradle.kts new file mode 100644 index 0000000..947a076 --- /dev/null +++ b/common/build.gradle.kts @@ -0,0 +1,54 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + `maven-publish` +} + +architectury { + val enabled_platforms: String by rootProject + common(enabled_platforms.split(",")) +} + +repositories { + mavenCentral() + // mavens for Create Fabric and dependencies + maven { url = uri("https://api.modrinth.com/maven") } + maven { url = uri("https://mvn.devos.one/snapshots/") } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric + maven { url = uri("https://cursemaven.com") } + maven { url = uri("https://maven.cafeteria.dev/releases") } // Fake Player API + maven { url = uri("https://maven.jamieswhiteshirt.com/libs-release") } // Reach Entity Attributes + maven { url = uri("https://jitpack.io/") } // Mixin Extras, Fabric ASM +} + +dependencies { + // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies + // Do NOT use other classes from fabric loader + modImplementation(libs.fabric.loader) + // Remove the next line if you don't want to depend on the API + modApi(libs.common.architectury) + + // Using Create Fabric + modCompileOnly(libs.fabric.create) + + // CC Restitched + modCompileOnly(libs.fabric.computercraft) +} + +val compileTestKotlin: KotlinCompile by tasks +compileTestKotlin.kotlinOptions { + jvmTarget = "17" +} + +publishing { + publications { + create("maven") { + artifactId = rootProject.property("archives_base_name").toString() + from(components.getByName("java")) + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts new file mode 100644 index 0000000..79c43f9 --- /dev/null +++ b/fabric/build.gradle.kts @@ -0,0 +1,108 @@ +plugins { + id("com.github.johnrengelman.shadow") version "7.1.2" +} + +architectury { + platformSetupLoomIde() + fabric() +} + +/** + * @see: https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html + * */ +val common: Configuration by configurations.creating +val shadowCommon: Configuration by configurations.creating // Don't use shadow from the shadow plugin because we don't want IDEA to index this. +val developmentFabric: Configuration = configurations.getByName("developmentFabric") +configurations { + compileClasspath.get().extendsFrom(configurations["common"]) + runtimeClasspath.get().extendsFrom(configurations["common"]) + developmentFabric.extendsFrom(configurations["common"]) +} + +repositories { + mavenCentral() + // mavens for Create Fabric and dependencies + maven { url = uri("https://api.modrinth.com/maven") } + maven { url = uri("https://maven.terraformersmc.com/") } + maven { url = uri("https://mvn.devos.one/snapshots/") } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric + maven { url = uri("https://cursemaven.com") } // Forge Config API Port + maven { url = uri("https://maven.cafeteria.dev/releases") } // Fake Player API + maven { url = uri("https://maven.jamieswhiteshirt.com/libs-release") } // Reach Entity Attributes + maven { url = uri("https://jitpack.io/") } // Mixin Extras, Fabric ASM +} + +dependencies { + modImplementation(libs.fabric.loader) + modApi(libs.fabric.api) + + // Remove the next line if you don't want to depend on the API + modApi(libs.fabric.architectury) + + + common(project(":common", configuration = "namedElements")) { isTransitive = false } + shadowCommon(project(":common", configuration = "transformProductionFabric")) { isTransitive = false } + + // Create Fabric + modImplementation(libs.fabric.create) + + // CC Restitched + modRuntimeOnly(libs.fabric.computercraft) + + // Recipe Viewer + modLocalRuntime(libs.fabric.emi) +} + +val javaComponent = components.getByName("java") +javaComponent.withVariantsFromConfiguration(configurations["sourcesElements"]) { + skip() +} + +tasks { + processResources { + inputs.property("version", project.version) + + filesMatching("fabric.mod.json") { + expand("version" to project.version) + } + } + + shadowJar { + exclude("architectury.common.json") + configurations = listOf(project.configurations["shadowCommon"]) + archiveClassifier.set("dev-shadow") + } + + remapJar { + injectAccessWidener.set(true) + inputFile.set(shadowJar.flatMap { it.archiveFile }) + dependsOn(shadowJar) + archiveClassifier.set("fabric") + } + + jar { + archiveClassifier.set("dev") + } + + sourcesJar { + val commonSources = project(":common").tasks.getByName("sourcesJar") + dependsOn(commonSources) + from(commonSources.archiveFile.map { zipTree(it) }) + } + + + + publishing { + publications { + create("mavenFabric") { + artifactId = "${rootProject.property("archives_base_name")}-${project.name}" + from(javaComponent) + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } + } +} + diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts new file mode 100644 index 0000000..4f53ebe --- /dev/null +++ b/forge/build.gradle.kts @@ -0,0 +1,121 @@ +plugins { + id("com.github.johnrengelman.shadow") version "7.1.2" +} + +architectury { + platformSetupLoomIde() + forge() +} + +val modId: String = rootProject.property("archives_base_name").toString() + +sourceSets { + main { + resources { + srcDir("src/generated/resources") + } + } +} + +/** + * @see: https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html + * */ +val common: Configuration by configurations.creating +val shadowCommon: Configuration by configurations.creating // Don't use shadow from the shadow plugin because we don't want IDEA to index this. +val developmentForge: Configuration = configurations.getByName("developmentForge") +configurations { + compileClasspath.get().extendsFrom(configurations["common"]) + runtimeClasspath.get().extendsFrom(configurations["common"]) + developmentForge.extendsFrom(configurations["common"]) +} + +repositories { + // mavens for Forge-exclusives + maven { url = uri("https://maven.theillusivec4.top/") } // Curios + maven { // Create Forge and Registrate Forge + url = uri("https://maven.tterrag.com/") + content { + includeGroup("com.tterrag.registrate") + includeGroup("com.simibubi.create") + } + maven { url = uri("https://thedarkcolour.github.io/KotlinForForge/") } + } +} + +dependencies { + forge(libs.forge) + // Remove the next line if you don't want to depend on the API + modApi(libs.forge.architectury) + + common(project(":common", configuration = "namedElements")) { isTransitive = false } + shadowCommon(project(":common", configuration = "transformProductionForge")) { isTransitive = false } + + // Create + modImplementation(libs.forge.create) + + // CC Tweaked + modRuntimeOnly(libs.forge.computercraft) + + // Controllable + modRuntimeOnly(libs.forge.controllable) + + // Recipe viewer + modLocalRuntime(libs.forge.jei) +} + +val javaComponent = components.getByName("java") +javaComponent.withVariantsFromConfiguration(configurations["sourcesElements"]) { + skip() +} + +tasks { + processResources { + inputs.property("version", project.version) + duplicatesStrategy = DuplicatesStrategy.INCLUDE + + + filesMatching("META-INF/mods.toml") { + expand("version" to project.version) + } + } + + shadowJar { + exclude("fabric.mod.json") + exclude("architectury.common.json") + configurations = listOf(project.configurations["shadowCommon"]) + archiveClassifier.set("dev-shadow") + } + + remapJar { + inputFile.set(shadowJar.flatMap { it.archiveFile }) + dependsOn(shadowJar) + archiveClassifier.set("forge") + } + + jar { + archiveClassifier.set("dev") + } + + sourcesJar { + val commonSources = project(":common").tasks.getByName("sourcesJar") + dependsOn(commonSources) + from(commonSources.archiveFile.map { zipTree(it) }) + duplicatesStrategy = DuplicatesStrategy.INCLUDE + } + + + + publishing { + publications { + create("mavenForge") { + artifactId = "${rootProject.property("archives_base_name")}-${project.name}" + from(javaComponent) + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } + } +} diff --git a/forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java b/forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java new file mode 100644 index 0000000..407f157 --- /dev/null +++ b/forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java @@ -0,0 +1,7 @@ +package org.example; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 845212a..f2febba 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,9 +4,12 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false maven_group = com.getItemFromBlock.create_tweaked_controllers -id = create_tweaked_controllers +name = create_tweaked_controllers +archives_base_name = create_tweaked_controllers version = 1.18.2-1.2.2 +description = A Create Addon that adds a way of controlling contraptions using an advanced controller. Compatible with Create 0.5.1+ + minecraft_version = 1.18.2 minecraft_range = [1.18.2,1.19) diff --git a/gradle/libs.version.toml b/gradle/libs.version.toml new file mode 100644 index 0000000..0b5cd88 --- /dev/null +++ b/gradle/libs.version.toml @@ -0,0 +1,47 @@ +[versions] +kotlin = "1.8.21" +minecraft = "1.18.2" +architectury = "4.11.93" # Might check each subproject + +forge = "1.18.2-40.2.4" + +fabric_loader = "0.15.7" +fabric_api = "0.77.0+1.18.2" + +create_fabric = "0.5.1-f-build.1415" +create_forge = "0.5.1.f-332" + +cc_restitched = "1.100.8+1.18.2" +cc_tweaked = "1.18.2-1.101.3" + +jei = "9.7.0.209" +emi = "0.7.3+1.18.2" + +[libraries] +minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } +common_architectury = { module = "dev.architectury:architectury", version.ref = "architectury" } + +# Forge +forge_architectury = { module = "dev.architectury:architectury-forge", version.ref = "architectury" } +forge = { module = "net.minecraftforge:forge", version.ref = "forge" } + +# Fabric +fabric_architectury = { module = "dev.architectury:architectury-fabric", version.ref = "architectury" } +fabric_loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric_loader" } +fabric_api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric_api" } + +# Create +fabric_create = { module = "com.simibubi.create:create-fabric-1.18.2", version.ref = "create_fabric" } +forge_create = { module = "com.simibubi.create:create-1.18.2", version.ref = "create_forge" } + +# ComputerCraft +fabric_computercraft = { module = "maven.modrinth:cc-restitched", version.ref = "cc_restitched" } +forge_computercraft = { module = "maven.modrinth:cc-tweaked", version.ref = "cc_tweaked" } + +# Controllable +# forge_controllable = { module = "com.mrcrayfish:controllable-forge"} +forge_controllable = { module = "curse.maven:controllable-317269", version = "4376751" } + +# Recipe Viewer +fabric_emi = { module = "dev.emi:emi", version.ref = "emi" } +forge_jei = { module = "mezz.jei:jei-1.18.2", version.ref = "jei"} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 17655d0..db9a6b8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From de4300cc656c38ef672440c3e17ea4f72728c4be Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Sun, 5 May 2024 22:35:43 +0700 Subject: [PATCH 05/21] Move the assets and data folder to common --- .../tweaked_lectern_controller.json | 0 .../lang/en_us.json | 0 .../lang/fr_fr.json | 0 .../lang/ko_kr.json | 0 .../item/tweaked_linked_controller.json | 0 .../tweaked_linked_controller/button.json | 0 .../tweaked_linked_controller/button_n_a.json | 0 .../tweaked_linked_controller/button_n_b.json | 0 .../tweaked_linked_controller/button_n_x.json | 0 .../tweaked_linked_controller/button_n_y.json | 0 .../tweaked_linked_controller/button_p_c.json | 0 .../tweaked_linked_controller/button_p_s.json | 0 .../tweaked_linked_controller/button_p_t.json | 0 .../tweaked_linked_controller/button_p_x.json | 0 .../tweaked_linked_controller/button_x_a.json | 0 .../tweaked_linked_controller/button_x_b.json | 0 .../tweaked_linked_controller/button_x_x.json | 0 .../tweaked_linked_controller/button_x_y.json | 0 .../controller_n.json | 0 .../controller_p.json | 0 .../controller_x.json | 0 .../item/tweaked_linked_controller/item.json | 0 .../tweaked_linked_controller/joystick.json | 0 .../tweaked_linked_controller/powered.json | 0 .../tweaked_linked_controller/trigger.json | 0 .../textures/gui/controller_background.png | Bin .../gui/controller_background_oof.png | Bin .../textures/gui/controller_buttons.png | Bin .../textures/gui/digits.png | Bin .../textures/gui/icons.png | Bin .../gui/tweaked_linked_controller_0.png | Bin .../gui/tweaked_linked_controller_1.png | Bin .../item/tweaked_linked_controller.png | Bin .../item/tweaked_linked_controller_back.png | Bin .../tweaked_linked_controller_powered.png | Bin .../crafting/tweaked_linked_controller.json | 0 .../vs_mass/masses.json | 0 .../create_tweaked_controllers}/logo.png | Bin fabric/src/main/resources/pack.mcmeta | 8 - .../tweaked_lectern_controller.json | 64 --- .../lang/en_us.json | 101 ----- .../lang/fr_fr.json | 101 ----- .../lang/ko_kr.json | 101 ----- .../item/tweaked_linked_controller.json | 3 - .../tweaked_linked_controller/button.json | 22 - .../tweaked_linked_controller/button_n_a.json | 22 - .../tweaked_linked_controller/button_n_b.json | 22 - .../tweaked_linked_controller/button_n_x.json | 22 - .../tweaked_linked_controller/button_n_y.json | 22 - .../tweaked_linked_controller/button_p_c.json | 22 - .../tweaked_linked_controller/button_p_s.json | 22 - .../tweaked_linked_controller/button_p_t.json | 22 - .../tweaked_linked_controller/button_p_x.json | 22 - .../tweaked_linked_controller/button_x_a.json | 22 - .../tweaked_linked_controller/button_x_b.json | 22 - .../tweaked_linked_controller/button_x_x.json | 22 - .../tweaked_linked_controller/button_x_y.json | 22 - .../controller_n.json | 391 ------------------ .../controller_p.json | 391 ------------------ .../controller_x.json | 391 ------------------ .../item/tweaked_linked_controller/item.json | 391 ------------------ .../tweaked_linked_controller/joystick.json | 36 -- .../tweaked_linked_controller/powered.json | 134 ------ .../tweaked_linked_controller/trigger.json | 23 -- .../textures/gui/controller_background.png | Bin 6784 -> 0 bytes .../gui/controller_background_oof.png | Bin 15481 -> 0 bytes .../textures/gui/controller_buttons.png | Bin 5051 -> 0 bytes .../textures/gui/digits.png | Bin 667 -> 0 bytes .../textures/gui/icons.png | Bin 725 -> 0 bytes .../gui/tweaked_linked_controller_0.png | Bin 17935 -> 0 bytes .../gui/tweaked_linked_controller_1.png | Bin 20936 -> 0 bytes .../item/tweaked_linked_controller.png | Bin 5599 -> 0 bytes .../item/tweaked_linked_controller_back.png | Bin 4604 -> 0 bytes .../tweaked_linked_controller_powered.png | Bin 5377 -> 0 bytes .../crafting/tweaked_linked_controller.json | 28 -- .../vs_mass/masses.json | 6 - 76 files changed, 2455 deletions(-) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png (100%) rename {fabric => common}/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png (100%) rename {fabric => common}/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json (100%) rename {fabric => common}/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json (100%) rename fabric/src/main/resources/{ => assets/create_tweaked_controllers}/logo.png (100%) delete mode 100644 fabric/src/main/resources/pack.mcmeta delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png delete mode 100644 forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png delete mode 100644 forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json delete mode 100644 forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json b/common/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json rename to common/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json rename to common/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json rename to common/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json rename to common/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json b/common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json rename to common/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background_oof.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/digits.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_0.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png diff --git a/fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png b/common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png similarity index 100% rename from fabric/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png rename to common/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_powered.png diff --git a/fabric/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json b/common/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json similarity index 100% rename from fabric/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json rename to common/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json diff --git a/fabric/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json b/common/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json similarity index 100% rename from fabric/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json rename to common/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json diff --git a/fabric/src/main/resources/logo.png b/fabric/src/main/resources/assets/create_tweaked_controllers/logo.png similarity index 100% rename from fabric/src/main/resources/logo.png rename to fabric/src/main/resources/assets/create_tweaked_controllers/logo.png diff --git a/fabric/src/main/resources/pack.mcmeta b/fabric/src/main/resources/pack.mcmeta deleted file mode 100644 index 86d9caf..0000000 --- a/fabric/src/main/resources/pack.mcmeta +++ /dev/null @@ -1,8 +0,0 @@ -{ - "pack": { - "description": "Create Tweaked Controllers resources", - "pack_format": 9, - "forge:resource_pack_format": 8, - "forge:data_pack_format": 9 - } -} diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json b/forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json deleted file mode 100644 index 8b7b296..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/blockstates/tweaked_lectern_controller.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "variants": { - "facing=north,has_book=false,powered=false": { - "model": "minecraft:block/lectern" - }, - "facing=south,has_book=false,powered=false": { - "model": "minecraft:block/lectern", - "y": 180 - }, - "facing=west,has_book=false,powered=false": { - "model": "minecraft:block/lectern", - "y": 270 - }, - "facing=east,has_book=false,powered=false": { - "model": "minecraft:block/lectern", - "y": 90 - }, - "facing=north,has_book=true,powered=false": { - "model": "minecraft:block/lectern" - }, - "facing=south,has_book=true,powered=false": { - "model": "minecraft:block/lectern", - "y": 180 - }, - "facing=west,has_book=true,powered=false": { - "model": "minecraft:block/lectern", - "y": 270 - }, - "facing=east,has_book=true,powered=false": { - "model": "minecraft:block/lectern", - "y": 90 - }, - "facing=north,has_book=false,powered=true": { - "model": "minecraft:block/lectern" - }, - "facing=south,has_book=false,powered=true": { - "model": "minecraft:block/lectern", - "y": 180 - }, - "facing=west,has_book=false,powered=true": { - "model": "minecraft:block/lectern", - "y": 270 - }, - "facing=east,has_book=false,powered=true": { - "model": "minecraft:block/lectern", - "y": 90 - }, - "facing=north,has_book=true,powered=true": { - "model": "minecraft:block/lectern" - }, - "facing=south,has_book=true,powered=true": { - "model": "minecraft:block/lectern", - "y": 180 - }, - "facing=west,has_book=true,powered=true": { - "model": "minecraft:block/lectern", - "y": 270 - }, - "facing=east,has_book=true,powered=true": { - "model": "minecraft:block/lectern", - "y": 90 - } - } -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json b/forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json deleted file mode 100644 index 9958626..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/lang/en_us.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "block.create_tweaked_controllers.tweaked_lectern_controller": "Tweaked Lectern Controller", - - "item.create_tweaked_controllers.tweaked_linked_controller": "Tweaked Linked Controller", - - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "TWEAKED LINKED CONTROLLER", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "Grants _handheld_ _control_ over _Redstone Link_ frequencies assigned to your _Game Controller_ inputs.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "R-Click", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "_Toggles_ the controller. _Inputs_ from your _Game Controller_ are taken over while its active.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "R-Click while Sneaking", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "Opens the manual _Configuration Interface_.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "Enables _Bind Mode_, press one of your _Game Controller input_ to bind it to the _Links' Frequency_.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "R-Click on Lectern", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", - - "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "Bind mode active", - "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "Press any gamepad button, or move an axis to bind it", - "create_tweaked_controllers.tweaked_linked_controller.key_bound": "Frequency bound to %1$s", - "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "Keybind: %1$s, Freq. #1", - "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "Keybind: %1$s, Freq. #2", - - "create_tweaked_controllers.gui_tab_button": "Button settings", - "create_tweaked_controllers.gui_tab_axis": "Axis settings", - "create_tweaked_controllers.gui_button_refresh": "Research gamepad", - "create_tweaked_controllers.gui_gamepad_unavailable": "No gamepad found", - "create_tweaked_controllers.gui_gamepad_selected": "Selected gamepad: %1$s", - "create_tweaked_controllers.gui_gamepad_custom": "Using virtual gamepad", - - "create_tweaked_controllers.gui_gamepad_buttons": "Virtual Gamepad Buttons", - "create_tweaked_controllers.gui_gamepad_axis": "Virtual Gamepad Axis", - - "create_tweaked_controllers.gui_gamepad_button_0": "A Button", - "create_tweaked_controllers.gui_gamepad_button_1": "B Button", - "create_tweaked_controllers.gui_gamepad_button_2": "X Button", - "create_tweaked_controllers.gui_gamepad_button_3": "Y Button", - "create_tweaked_controllers.gui_gamepad_button_4": "Left Shoulder", - "create_tweaked_controllers.gui_gamepad_button_5": "Right Shoulder", - "create_tweaked_controllers.gui_gamepad_button_6": "Back Button", - "create_tweaked_controllers.gui_gamepad_button_7": "Start Button", - "create_tweaked_controllers.gui_gamepad_button_8": "Guide Button", - "create_tweaked_controllers.gui_gamepad_button_9": "Left Joystick Click", - "create_tweaked_controllers.gui_gamepad_button_10": "Right Joystick Click", - "create_tweaked_controllers.gui_gamepad_button_11": "D-Pad Up", - "create_tweaked_controllers.gui_gamepad_button_12": "D-Pad Right", - "create_tweaked_controllers.gui_gamepad_button_13": "D-Pad Down", - "create_tweaked_controllers.gui_gamepad_button_14": "D-Pad Left", - "create_tweaked_controllers.gui_gamepad_button_playstation_0": "Cross × Button", - "create_tweaked_controllers.gui_gamepad_button_playstation_1": "Circle ○ Button", - "create_tweaked_controllers.gui_gamepad_button_playstation_2": "Square □ Button", - "create_tweaked_controllers.gui_gamepad_button_playstation_3": "Triangle △ Button", - - "create_tweaked_controllers.gui_gamepad_axis_0": "Left +X Axis", - "create_tweaked_controllers.gui_gamepad_axis_1": "Left -X Axis", - "create_tweaked_controllers.gui_gamepad_axis_2": "Left +Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_3": "Left -Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_4": "Right +X Axis", - "create_tweaked_controllers.gui_gamepad_axis_5": "Right -X Axis", - "create_tweaked_controllers.gui_gamepad_axis_6": "Right +Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_7": "Right -Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_8": "Left Trigger Axis", - "create_tweaked_controllers.gui_gamepad_axis_9": "Right Trigger Axis", - - "create_tweaked_controllers.gui_input_joystick_axis": "Joystick Axis %1$s", - "create_tweaked_controllers.gui_input_joystick_button": "Joystick Button %1$s", - "create_tweaked_controllers.gui_input_keyboard": "%1$s Key", - "create_tweaked_controllers.gui_input_cursor_vel": "Cursor %1$s Velocity", - "create_tweaked_controllers.gui_input_cursor_pos": "Cursor %1$s Position", - "create_tweaked_controllers.gui_input_mouse": "Mouse Button %1$s", - - "create_tweaked_controllers.gui_config_reset": "Reset", - "create_tweaked_controllers.gui_config_config": "Config", - "create_tweaked_controllers.gui_config_reset_all": "Reset all", - "create_tweaked_controllers.gui_config_load": "Load", - "create_tweaked_controllers.gui_config_save": "Save", - "create_tweaked_controllers.gui_config_none": "Unbound", - "create_tweaked_controllers.gui_config_invert": "Invert button output value", - "create_tweaked_controllers.gui_config_lower": "Lower axis input bound", - "create_tweaked_controllers.gui_config_upper": "Upper axis input bound", - "create_tweaked_controllers.gui_config_isyaxis": "Use Y instead of X input ?", - "create_tweaked_controllers.gui_config_usevelocity": "Use velocity instead of position ?", - - "create_tweaked_controllers.gui_output_button": "Output value as button :", - "create_tweaked_controllers.gui_output_axis": "Output value as axis :", - "create_tweaked_controllers.gui_input_axis": "Raw axis input value :", - - "create_tweaked_controllers.keybind.mouse_focus" : "Grab mouse movements", - "create_tweaked_controllers.keybind.mouse_reset" : "Center mouse cursor", - "create_tweaked_controllers.keybind.controller_exit" : "Exit controller", - - "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", - - "create_tweaked_controllers.menu.return": "Return to Menu", - "create_tweaked_controllers.menu.issues": "Report Issues", - "create_tweaked_controllers.menu.wiki": "Online Wiki", - "create_tweaked_controllers.menu.config_general": "General Configurations", - "create_tweaked_controllers.menu.config_controller": "Controller Configurations", - "create_tweaked_controllers.menu.config_disabled": "Please enable custom mappings in the general configurations", - - "_": "EOF" -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json b/forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json deleted file mode 100644 index 36492cc..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/lang/fr_fr.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "block.create_tweaked_controllers.tweaked_lectern_controller": "Pupitre avec contrôleur redstone avancé", - - "item.create_tweaked_controllers.tweaked_linked_controller": "Contrôleur redstone avancé", - - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "CONTRÔLEUR REDSTONE AVANCÉ", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "Permet un _contrôle à la main_ sur des fréquences de _liaisons redstone_ assignées à votre _Manette_.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "Clic droit", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "_Active_ ou _désactive_ le contrôleur. Les _contrôles_ de votre _Manette_ sont utilisés pendant qu'il est activé.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "Clic droit en étant accroupi", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "Ouvre l'_interface de configuration_ manuelle.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "Clic droit sur un récepteur de liaison redstone", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "Active le _mode_ de _liaison_, utilisez un bouton ou un axe de votre _Manette_ pour le lier à la _fréquence_ de la _liaison_.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "Clic droit sur un pupitre", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "Place le contrôleur sur le pupitre pour une activation facile. (Clic droit en étant accroupi pour le récupérer)", - - "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "Mode liaison actif", - "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "Appuyes sur un bouton de votre manette, ou bougez un axe pour lier la fréquence correspondante", - "create_tweaked_controllers.tweaked_linked_controller.key_bound": "Fréquence liée à %1$s", - "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "Touche : %1$s, Freq. #1", - "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "Touche : %1$s, Freq. #2", - - "create_tweaked_controllers.gui_tab_button": "Paramètres des boutons", - "create_tweaked_controllers.gui_tab_axis": "Paramètres des axes", - "create_tweaked_controllers.gui_button_refresh": "Rechercher les manettes", - "create_tweaked_controllers.gui_gamepad_unavailable": "Aucune manette trouvée", - "create_tweaked_controllers.gui_gamepad_selected": "Manette utilisée : %1$s", - "create_tweaked_controllers.gui_gamepad_custom": "Manette virtuelle utilisée", - - "create_tweaked_controllers.gui_gamepad_buttons": "Boutons du contrôleur virtuel", - "create_tweaked_controllers.gui_gamepad_axis": "Axes du contrôleur virtuel", - - "create_tweaked_controllers.gui_gamepad_button_0": "Bouton A", - "create_tweaked_controllers.gui_gamepad_button_1": "Bouton B", - "create_tweaked_controllers.gui_gamepad_button_2": "Bouton X", - "create_tweaked_controllers.gui_gamepad_button_3": "Bouton Y", - "create_tweaked_controllers.gui_gamepad_button_4": "Gâchette haute gauche", - "create_tweaked_controllers.gui_gamepad_button_5": "Gâchette haute droite", - "create_tweaked_controllers.gui_gamepad_button_6": "Bouton Retour", - "create_tweaked_controllers.gui_gamepad_button_7": "Bouton Start", - "create_tweaked_controllers.gui_gamepad_button_8": "Bouton Guide", - "create_tweaked_controllers.gui_gamepad_button_9": "Clic joystick gauche", - "create_tweaked_controllers.gui_gamepad_button_10": "Clic joystick droit", - "create_tweaked_controllers.gui_gamepad_button_11": "D-Pad Haut", - "create_tweaked_controllers.gui_gamepad_button_12": "D-Pad droit", - "create_tweaked_controllers.gui_gamepad_button_13": "D-Pad bas", - "create_tweaked_controllers.gui_gamepad_button_14": "D-Pad gauche", - "create_tweaked_controllers.gui_gamepad_button_playstation_0": "Bouton croix ×", - "create_tweaked_controllers.gui_gamepad_button_playstation_1": "Bouton cercle ○", - "create_tweaked_controllers.gui_gamepad_button_playstation_2": "Bouton carré □", - "create_tweaked_controllers.gui_gamepad_button_playstation_3": "Bouton triangle △", - - "create_tweaked_controllers.gui_gamepad_axis_0": "Axe +X gauche", - "create_tweaked_controllers.gui_gamepad_axis_1": "Axe -X gauche", - "create_tweaked_controllers.gui_gamepad_axis_2": "Axe +Y gauche", - "create_tweaked_controllers.gui_gamepad_axis_3": "Axe -Y gauche", - "create_tweaked_controllers.gui_gamepad_axis_4": "Axe +X droit", - "create_tweaked_controllers.gui_gamepad_axis_5": "Axe -X droit", - "create_tweaked_controllers.gui_gamepad_axis_6": "Axe +Y droit", - "create_tweaked_controllers.gui_gamepad_axis_7": "Axe -Y droit", - "create_tweaked_controllers.gui_gamepad_axis_8": "Axe gâchette gauche", - "create_tweaked_controllers.gui_gamepad_axis_9": "Axe gâchette droite", - - "create_tweaked_controllers.gui_input_joystick_axis": "Axe %1$s du joystick", - "create_tweaked_controllers.gui_input_joystick_button": "Bouton %1$s du joystick", - "create_tweaked_controllers.gui_input_keyboard": "Touche %1$s", - "create_tweaked_controllers.gui_input_cursor_vel": "Vélocité %1$s du curseur", - "create_tweaked_controllers.gui_input_cursor_pos": "Position %1$s du curseur", - "create_tweaked_controllers.gui_input_mouse": "Bouton %1$s de la souris", - - "create_tweaked_controllers.gui_config_reset": "Réinit.", - "create_tweaked_controllers.gui_config_config": "Config.", - "create_tweaked_controllers.gui_config_reset_all": "Tout réinitialiser", - "create_tweaked_controllers.gui_config_load": "Charger", - "create_tweaked_controllers.gui_config_save": "Sauv.", - "create_tweaked_controllers.gui_config_none": "Non assigné", - "create_tweaked_controllers.gui_config_invert": "Inverser la valeur de sortie", - "create_tweaked_controllers.gui_config_lower": "Borne inférieure de l'axe", - "create_tweaked_controllers.gui_config_upper": "Borne supérieure de l'axe", - "create_tweaked_controllers.gui_config_isyaxis": "Utiliser l'axe Y plutôt que l'axe X ?", - "create_tweaked_controllers.gui_config_usevelocity": "Utiliser la vélocité plutôt que la position ?", - - "create_tweaked_controllers.gui_output_button": "Valeur en tant que bouton :", - "create_tweaked_controllers.gui_output_axis": "Valeur en tant qu'axe :", - "create_tweaked_controllers.gui_input_axis": "Valeur d'entrée de l'axe :", - - "create_tweaked_controllers.keybind.mouse_focus" : "Capturer les mouvements de la souris", - "create_tweaked_controllers.keybind.mouse_reset" : "Recentrer le curseur", - "create_tweaked_controllers.keybind.controller_exit" : "Ranger le contrôleur", - - "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", - - "create_tweaked_controllers.menu.return": "Retour au menu", - "create_tweaked_controllers.menu.issues": "Signaler des bugs", - "create_tweaked_controllers.menu.wiki": "Manuel en ligne", - "create_tweaked_controllers.menu.config_general": "Configurations générales", - "create_tweaked_controllers.menu.config_controller": "Configurations du contrôleur", - "create_tweaked_controllers.menu.config_disabled": "Activez l'option \"custom mappings\" dans les configurations générales", - - "_": "EOF" -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json b/forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json deleted file mode 100644 index 9bbc2be..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/lang/ko_kr.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "block.create_tweaked_controllers.tweaked_lectern_controller": "독서대 변형 컨트롤러", - - "item.create_tweaked_controllers.tweaked_linked_controller": "변형 레드스톤 링크 컨트롤러", - - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "변형 레드스톤 링크 컨트롤러", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "_게임 컨트롤러_ 조작을 _레드스톤 링크_에 연결하는 _휴대용 컨트롤러_입니다.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "우클릭", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "컨트롤러를 _켭니다_. 조작하는 동안 _게임 컨트롤러_로 다른 작업을 수행할 수 없습니다.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "웅크리면서 우클릭", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "_설정 창_을 엽니다.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "레드스톤 링크 수신기에 우클릭", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "_연결 모드_를 활성화하고, _게임 컨트롤러 버튼_ 중 하나를 조작하여 컨트롤러를 _주파수_에 연결합니다.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "독서대에 우클릭", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "컨트롤러를 독서대에 올려놓아 쉽게 조작할 수 있습니다. (웅크리면서 우클릭으로 회수합니다.)", - - "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "연결 모드 활성화", - "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "게임패드의 버튼을 누르거나 축을 움직여 해당 조작키를 주파수에 연결하세요", - "create_tweaked_controllers.tweaked_linked_controller.key_bound": "%1$s에 주파수가 연결되었습니다", - "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "조작키: %1$s, 주파수 #1", - "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "조작키: %1$s, 주파수 #2", - - "create_tweaked_controllers.gui_tab_button": "버튼 설정", - "create_tweaked_controllers.gui_tab_axis": "축 설정", - "create_tweaked_controllers.gui_button_refresh": "게임패드 찾기", - "create_tweaked_controllers.gui_gamepad_unavailable": "게임패드를 찾을 수 없습니다", - "create_tweaked_controllers.gui_gamepad_selected": "선택된 게임패드: %1$s", - "create_tweaked_controllers.gui_gamepad_custom": "가상 게임패드를 사용 중입니다", - - "create_tweaked_controllers.gui_gamepad_buttons": "가상 게임패드 버튼", - "create_tweaked_controllers.gui_gamepad_axis": "가상 게임패드 축", - - "create_tweaked_controllers.gui_gamepad_button_0": "A 버튼", - "create_tweaked_controllers.gui_gamepad_button_1": "B 버튼", - "create_tweaked_controllers.gui_gamepad_button_2": "X 버튼", - "create_tweaked_controllers.gui_gamepad_button_3": "Y 버튼", - "create_tweaked_controllers.gui_gamepad_button_4": "왼쪽 숄더", - "create_tweaked_controllers.gui_gamepad_button_5": "오른쪽 숄더", - "create_tweaked_controllers.gui_gamepad_button_6": "Back 버튼", - "create_tweaked_controllers.gui_gamepad_button_7": "Start 버튼", - "create_tweaked_controllers.gui_gamepad_button_8": "Guide 버튼", - "create_tweaked_controllers.gui_gamepad_button_9": "왼쪽 조이스틱 누르기", - "create_tweaked_controllers.gui_gamepad_button_10": "오른쪽 조이스틱 누르기", - "create_tweaked_controllers.gui_gamepad_button_11": "위 십자키", - "create_tweaked_controllers.gui_gamepad_button_12": "오른쪽 십자키", - "create_tweaked_controllers.gui_gamepad_button_13": "아래 십자키", - "create_tweaked_controllers.gui_gamepad_button_14": "왼쪽 십자키", - "create_tweaked_controllers.gui_gamepad_button_playstation_0": "가위표 × 버튼", - "create_tweaked_controllers.gui_gamepad_button_playstation_1": "동그라미 ○ 버튼", - "create_tweaked_controllers.gui_gamepad_button_playstation_2": "네모 □ 버튼", - "create_tweaked_controllers.gui_gamepad_button_playstation_3": "세모 △ 버튼", - - "create_tweaked_controllers.gui_gamepad_axis_0": "왼쪽 +X 축", - "create_tweaked_controllers.gui_gamepad_axis_1": "왼쪽 -X 축", - "create_tweaked_controllers.gui_gamepad_axis_2": "왼쪽 +Y 축", - "create_tweaked_controllers.gui_gamepad_axis_3": "왼쪽 -Y 축", - "create_tweaked_controllers.gui_gamepad_axis_4": "오른쪽 +X 축", - "create_tweaked_controllers.gui_gamepad_axis_5": "오른쪽 -X 축", - "create_tweaked_controllers.gui_gamepad_axis_6": "오른쪽 +Y 축", - "create_tweaked_controllers.gui_gamepad_axis_7": "오른쪽 -Y 축", - "create_tweaked_controllers.gui_gamepad_axis_8": "왼쪽 트리거 축", - "create_tweaked_controllers.gui_gamepad_axis_9": "오른쪽 트리거 축", - - "create_tweaked_controllers.gui_input_joystick_axis": "조이스틱 축 %1$s", - "create_tweaked_controllers.gui_input_joystick_button": "조이스틱 버튼 %1$s", - "create_tweaked_controllers.gui_input_keyboard": "%1$s 키", - "create_tweaked_controllers.gui_input_cursor_vel": "커서의 %1$s 방향 속도", - "create_tweaked_controllers.gui_input_cursor_pos": "커서의 %1$s 위치", - "create_tweaked_controllers.gui_input_mouse": "마우스 버튼 %1$s", - - "create_tweaked_controllers.gui_config_reset": "초기화", - "create_tweaked_controllers.gui_config_config": "설정", - "create_tweaked_controllers.gui_config_reset_all": "모두 초기화", - "create_tweaked_controllers.gui_config_load": "불러오기", - "create_tweaked_controllers.gui_config_save": "저장", - "create_tweaked_controllers.gui_config_none": "지정되지 않음", - "create_tweaked_controllers.gui_config_invert": "버튼 출력 값 반전", - "create_tweaked_controllers.gui_config_lower": "아날로그 입력 값 하한선", - "create_tweaked_controllers.gui_config_upper": "아날로그 입력 값 상한선", - "create_tweaked_controllers.gui_config_isyaxis": "X 입력 대신 Y 입력을 사용하시겠습니까?", - "create_tweaked_controllers.gui_config_usevelocity": "마우스 커서의 위치 대신 속도를 사용하시겠습니까?", - - "create_tweaked_controllers.gui_output_button": "디지털 출력 값 :", - "create_tweaked_controllers.gui_output_axis": "아날로그 출력 값 :", - "create_tweaked_controllers.gui_input_axis": "아날로그 입력 값 원본 :", - - "create_tweaked_controllers.keybind.mouse_focus" : "마우스로 조작하기", - "create_tweaked_controllers.keybind.mouse_reset" : "마우스 커서 위치 초기화", - "create_tweaked_controllers.keybind.controller_exit" : "컨트롤러 조작 종료하기", - - "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", - - "create_tweaked_controllers.menu.return": "메뉴로 돌아가기", - "create_tweaked_controllers.menu.issues": "버그 제보하기", - "create_tweaked_controllers.menu.wiki": "온라인 위키", - "create_tweaked_controllers.menu.config_general": "일반 설정", - "create_tweaked_controllers.menu.config_controller": "컨트롤러 설정", - "create_tweaked_controllers.menu.config_disabled": "일반 설정에서 Use Custom Mappings를 허용해주세요", - - "_": "EOF" -} diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json deleted file mode 100644 index 027ee76..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/item" -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json deleted file mode 100644 index 02d6a1c..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [1, 2, 1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json deleted file mode 100644 index c686403..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_a.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [6, 1, 2.5], - "to": [7, 3, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json deleted file mode 100644 index 0e2a79e..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_b.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [7, 1, 3.5], - "to": [8, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json deleted file mode 100644 index 181fe1c..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_x.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [5, 1, 3.5], - "to": [6, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 15, 4, 16], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json deleted file mode 100644 index d59a00e..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_n_y.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [6, 1, 4.5], - "to": [7, 3, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json deleted file mode 100644 index c686403..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_c.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [6, 1, 2.5], - "to": [7, 3, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json deleted file mode 100644 index 00d7be6..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_s.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [6, 1, 4.5], - "to": [7, 3, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [6, 15, 7, 16], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json deleted file mode 100644 index 7ab6fcb..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_t.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [5, 1, 3.5], - "to": [6, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [15, 15, 16, 16], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json deleted file mode 100644 index dd432f2..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_p_x.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [7, 1, 3.5], - "to": [8, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [9, 15, 10, 16], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json deleted file mode 100644 index 0db0216..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_a.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [7, 1, 3.5], - "to": [8, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json deleted file mode 100644 index 32b4a79..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_b.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [6, 1, 2.5], - "to": [7, 3, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [12, 12, 13, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json deleted file mode 100644 index 53f8ea9..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_x.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [6, 1, 4.5], - "to": [7, 3, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [6, 12, 7, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json deleted file mode 100644 index 300d268..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/button_x_y.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [5, 1, 3.5], - "to": [6, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json deleted file mode 100644 index 79d6e95..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_n.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "redstone_antenna": "create:block/redstone_antenna", - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", - "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" - }, - "elements": [ - { - "name": "Controller", - "from": [4, 0, 1.5], - "to": [12, 2, 14.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, - "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 5.5], - "to": [4, 7, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 4.5], - "to": [4, 8, 7.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 5.5], - "to": [5, 8, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 8.5], - "to": [4, 8, 11.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 9.5], - "to": [5, 8, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 9.5], - "to": [4, 7, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "left", - "from": [9, 1, 10.5], - "to": [10, 3, 11.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "up", - "from": [8, 1, 9.5], - "to": [9, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "down", - "from": [10, 1, 9.5], - "to": [11, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "from": [6, 1, 11.5], - "to": [7, 3, 12.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [5.9, 2.4, 11.4], - "to": [7.1, 3.6, 12.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [8.9, 2.4, 5.4], - "to": [10.1, 3.6, 6.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "from": [9, 1, 5.5], - "to": [10, 3, 6.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_shoulder", - "from": [3, 0.9, 2.5], - "to": [4, 1.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_trigger", - "from": [3, -0.1, 2.5], - "to": [4, 0.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_shoulder", - "from": [3, 0.9, 11.5], - "to": [4, 1.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_trigger", - "from": [3, -0.1, 11.5], - "to": [4, 0.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "start", - "from": [6, 1, 6.5], - "to": [7, 3, 7.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "select", - "from": [6, 1, 8.5], - "to": [7, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "menu", - "from": [5, 1, 7.5], - "to": [6, 3, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "right", - "from": [9, 1, 8.5], - "to": [10, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "a", - "from": [7, 1, 3.5], - "to": [8, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "x", - "from": [6, 1, 4.5], - "to": [7, 3, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "y", - "from": [5, 1, 3.5], - "to": [6, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 14, 3, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 14, 4, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 15, 4, 16], "texture": "#redstone_bridge"} - } - }, - { - "name": "b", - "from": [6, 1, 2.5], - "to": [7, 3, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [0, -90, -74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "thirdperson_lefthand": { - "rotation": [0, 90, 74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "firstperson_righthand": { - "rotation": [0, -90, -13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "firstperson_lefthand": { - "rotation": [0, 90, 13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.65, 0.65, 0.65] - }, - "gui": { - "rotation": [30, -44, 0], - "translation": [0, 3.5, 0], - "scale": [0.76, 0.76, 0.76] - }, - "head": { - "rotation": [0, -90, 0], - "translation": [0, 14.3, 0] - }, - "fixed": { - "rotation": [0, 90, -90], - "translation": [0, 0, -8] - } - }, - "groups": [ - 0, - { - "name": "antennas", - "origin": [0, 0, 0.5], - "color": 0, - "children": [1, 2, 3, 4, 5, 6] - }, - { - "name": "buttons", - "origin": [0, 0, 0.5], - "color": 0, - "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json deleted file mode 100644 index bfdb683..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_p.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "redstone_antenna": "create:block/redstone_antenna", - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", - "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" - }, - "elements": [ - { - "name": "Controller", - "from": [4, 0, 1.5], - "to": [12, 2, 14.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, - "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 5.5], - "to": [4, 7, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 4.5], - "to": [4, 8, 7.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 5.5], - "to": [5, 8, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 8.5], - "to": [4, 8, 11.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 9.5], - "to": [5, 8, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 9.5], - "to": [4, 7, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "left", - "from": [9, 1, 10.5], - "to": [10, 3, 11.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "up", - "from": [8, 1, 9.5], - "to": [9, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "down", - "from": [10, 1, 9.5], - "to": [11, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "from": [6, 1, 11.5], - "to": [7, 3, 12.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [5.9, 2.4, 11.4], - "to": [7.1, 3.6, 12.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [8.9, 2.4, 5.4], - "to": [10.1, 3.6, 6.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "from": [9, 1, 5.5], - "to": [10, 3, 6.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_shoulder", - "from": [3, 0.9, 2.5], - "to": [4, 1.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_trigger", - "from": [3, -0.1, 2.5], - "to": [4, 0.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_shoulder", - "from": [3, 0.9, 11.5], - "to": [4, 1.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_trigger", - "from": [3, -0.1, 11.5], - "to": [4, 0.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "start", - "from": [6, 1, 6.5], - "to": [7, 3, 7.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "select", - "from": [6, 1, 8.5], - "to": [7, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "menu", - "from": [5, 1, 7.5], - "to": [6, 3, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "right", - "from": [9, 1, 8.5], - "to": [10, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "a", - "from": [7, 1, 3.5], - "to": [8, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [8, 14, 9, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [9, 14, 10, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [9, 15, 10, 16], "texture": "#redstone_bridge"} - } - }, - { - "name": "x", - "from": [6, 1, 4.5], - "to": [7, 3, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [5, 14, 6, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [6, 14, 7, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [6, 15, 7, 16], "texture": "#redstone_bridge"} - } - }, - { - "name": "y", - "from": [5, 1, 3.5], - "to": [6, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 14, 15, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [15, 14, 16, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [15, 15, 16, 16], "texture": "#redstone_bridge"} - } - }, - { - "name": "b", - "from": [6, 1, 2.5], - "to": [7, 3, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "east": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "south": {"uv": [11, 14, 12, 16], "texture": "#redstone_bridge"}, - "west": {"uv": [12, 14, 13, 16], "texture": "#redstone_bridge"}, - "up": {"uv": [12, 15, 13, 16], "texture": "#redstone_bridge"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [0, -90, -74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "thirdperson_lefthand": { - "rotation": [0, 90, 74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "firstperson_righthand": { - "rotation": [0, -90, -13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "firstperson_lefthand": { - "rotation": [0, 90, 13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.65, 0.65, 0.65] - }, - "gui": { - "rotation": [30, -44, 0], - "translation": [0, 3.5, 0], - "scale": [0.76, 0.76, 0.76] - }, - "head": { - "rotation": [0, -90, 0], - "translation": [0, 14.3, 0] - }, - "fixed": { - "rotation": [0, 90, -90], - "translation": [0, 0, -8] - } - }, - "groups": [ - 0, - { - "name": "antennas", - "origin": [0, 0, 0.5], - "color": 0, - "children": [1, 2, 3, 4, 5, 6] - }, - { - "name": "buttons", - "origin": [0, 0, 0.5], - "color": 0, - "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json deleted file mode 100644 index 1fe1ad9..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/controller_x.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "redstone_antenna": "create:block/redstone_antenna", - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", - "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" - }, - "elements": [ - { - "name": "Controller", - "from": [4, 0, 1.5], - "to": [12, 2, 14.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, - "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 5.5], - "to": [4, 7, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 4.5], - "to": [4, 8, 7.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 5.5], - "to": [5, 8, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 8.5], - "to": [4, 8, 11.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 9.5], - "to": [5, 8, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 9.5], - "to": [4, 7, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "left", - "from": [9, 1, 10.5], - "to": [10, 3, 11.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "up", - "from": [8, 1, 9.5], - "to": [9, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "down", - "from": [10, 1, 9.5], - "to": [11, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "from": [6, 1, 11.5], - "to": [7, 3, 12.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [5.9, 2.4, 11.4], - "to": [7.1, 3.6, 12.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [8.9, 2.4, 5.4], - "to": [10.1, 3.6, 6.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "from": [9, 1, 5.5], - "to": [10, 3, 6.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_shoulder", - "from": [3, 0.9, 2.5], - "to": [4, 1.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_trigger", - "from": [3, -0.1, 2.5], - "to": [4, 0.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_shoulder", - "from": [3, 0.9, 11.5], - "to": [4, 1.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_trigger", - "from": [3, -0.1, 11.5], - "to": [4, 0.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "start", - "from": [6, 1, 6.5], - "to": [7, 3, 7.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "select", - "from": [6, 1, 8.5], - "to": [7, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "menu", - "from": [5, 1, 7.5], - "to": [6, 3, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "right", - "from": [9, 1, 8.5], - "to": [10, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "a", - "from": [7, 1, 3.5], - "to": [8, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "x", - "from": [6, 1, 4.5], - "to": [7, 3, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [6, 12, 7, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "y", - "from": [5, 1, 3.5], - "to": [6, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "b", - "from": [6, 1, 2.5], - "to": [7, 3, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [12, 12, 13, 13], "texture": "#redstone_bridge"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [0, -90, -74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "thirdperson_lefthand": { - "rotation": [0, 90, 74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "firstperson_righthand": { - "rotation": [0, -90, -13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "firstperson_lefthand": { - "rotation": [0, 90, 13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.65, 0.65, 0.65] - }, - "gui": { - "rotation": [30, -44, 0], - "translation": [0, 3.5, 0], - "scale": [0.76, 0.76, 0.76] - }, - "head": { - "rotation": [0, -90, 0], - "translation": [0, 14.3, 0] - }, - "fixed": { - "rotation": [0, 90, -90], - "translation": [0, 0, -8] - } - }, - "groups": [ - 0, - { - "name": "antennas", - "origin": [0, 0, 0.5], - "color": 0, - "children": [1, 2, 3, 4, 5, 6] - }, - { - "name": "buttons", - "origin": [0, 0, 0.5], - "color": 0, - "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json deleted file mode 100644 index 1fe1ad9..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/item.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "redstone_antenna": "create:block/redstone_antenna", - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller", - "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" - }, - "elements": [ - { - "name": "Controller", - "from": [4, 0, 1.5], - "to": [12, 2, 14.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, - "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 5.5], - "to": [4, 7, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 4.5], - "to": [4, 8, 7.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 5.5], - "to": [5, 8, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 8.5], - "to": [4, 8, 11.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 9.5], - "to": [5, 8, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 9.5], - "to": [4, 7, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "left", - "from": [9, 1, 10.5], - "to": [10, 3, 11.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "up", - "from": [8, 1, 9.5], - "to": [9, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "down", - "from": [10, 1, 9.5], - "to": [11, 3, 10.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "from": [6, 1, 11.5], - "to": [7, 3, 12.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [5.9, 2.4, 11.4], - "to": [7.1, 3.6, 12.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [8.9, 2.4, 5.4], - "to": [10.1, 3.6, 6.6], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - }, - { - "from": [9, 1, 5.5], - "to": [10, 3, 6.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_shoulder", - "from": [3, 0.9, 2.5], - "to": [4, 1.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "r_trigger", - "from": [3, -0.1, 2.5], - "to": [4, 0.9, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_shoulder", - "from": [3, 0.9, 11.5], - "to": [4, 1.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "l_trigger", - "from": [3, -0.1, 11.5], - "to": [4, 0.9, 13.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "start", - "from": [6, 1, 6.5], - "to": [7, 3, 7.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "select", - "from": [6, 1, 8.5], - "to": [7, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "menu", - "from": [5, 1, 7.5], - "to": [6, 3, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "right", - "from": [9, 1, 8.5], - "to": [10, 3, 9.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "a", - "from": [7, 1, 3.5], - "to": [8, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [8, 11, 9, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [9, 11, 10, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [9, 12, 10, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "x", - "from": [6, 1, 4.5], - "to": [7, 3, 5.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [5, 11, 6, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [6, 11, 7, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [6, 12, 7, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "y", - "from": [5, 1, 3.5], - "to": [6, 3, 4.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 11, 15, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [15, 11, 16, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [15, 12, 16, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "b", - "from": [6, 1, 2.5], - "to": [7, 3, 3.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [11, 11, 12, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [12, 11, 13, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [12, 12, 13, 13], "texture": "#redstone_bridge"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [0, -90, -74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "thirdperson_lefthand": { - "rotation": [0, 90, 74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "firstperson_righthand": { - "rotation": [0, -90, -13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "firstperson_lefthand": { - "rotation": [0, 90, 13], - "translation": [1.13, 3, 1.13], - "scale": [0.68, 0.68, 0.68] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.65, 0.65, 0.65] - }, - "gui": { - "rotation": [30, -44, 0], - "translation": [0, 3.5, 0], - "scale": [0.76, 0.76, 0.76] - }, - "head": { - "rotation": [0, -90, 0], - "translation": [0, 14.3, 0] - }, - "fixed": { - "rotation": [0, 90, -90], - "translation": [0, 0, -8] - } - }, - "groups": [ - 0, - { - "name": "antennas", - "origin": [0, 0, 0.5], - "color": 0, - "children": [1, 2, 3, 4, 5, 6] - }, - { - "name": "buttons", - "origin": [0, 0, 0.5], - "color": 0, - "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json deleted file mode 100644 index 9605858..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/joystick.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [7.5, 8, 7.5], - "to": [8.5, 10, 8.5], - "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, - "faces": { - "north": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 13], "texture": "#redstone_bridge"}, - "west": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 12, 4, 13], "texture": "#redstone_bridge"} - } - }, - { - "name": "joystick", - "from": [7.4, 9.4, 7.4], - "to": [8.6, 10.6, 8.6], - "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]}, - "faces": { - "north": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "east": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "west": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"}, - "down": {"uv": [14, 9, 15, 10], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json deleted file mode 100644 index 247cbbe..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/powered.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "redstone_antenna": "create:block/redstone_antenna_powered", - "particle": "create_tweaked_controllers:item/tweaked_linked_controller_powered", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller_powered", - "back": "create_tweaked_controllers:item/tweaked_linked_controller_back" - }, - "elements": [ - { - "name": "Controller", - "from": [4, 0, 1.5], - "to": [12, 2, 14.5], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "east": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "south": {"uv": [13, 0, 15, 8], "rotation": 90, "texture": "#redstone_bridge"}, - "west": {"uv": [0, 8, 13, 10], "texture": "#redstone_bridge"}, - "up": {"uv": [0, 0, 13, 8], "rotation": 270, "texture": "#redstone_bridge"}, - "down": {"uv": [0, 0, 13, 8], "rotation": 90, "texture": "#back"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 5.5], - "to": [4, 7, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 4.5], - "to": [4, 8, 7.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 5.5], - "to": [5, 8, 6.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [3, 6, 9.5], - "to": [4, 7, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [3, 0, 8.5], - "to": [4, 8, 11.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "east": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [2, 0, 9.5], - "to": [5, 8, 10.5], - "rotation": {"angle": 0, "axis": "z", "origin": [4, 2, 14.5]}, - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [0, -90, -74], - "translation": [-3, 3.25, 4.5], - "scale": [0.7, 0.7, 0.7] - }, - "thirdperson_lefthand": { - "rotation": [0, 90, 74], - "translation": [-3, 3.5, 5], - "scale": [0.7, 0.7, 0.7] - }, - "firstperson_righthand": { - "rotation": [0, -113, -27], - "translation": [-2, 9, 1.13], - "scale": [0.97, 0.97, 0.97] - }, - "firstperson_lefthand": { - "rotation": [0, 67, 27], - "translation": [-2, 9, 1.13], - "scale": [0.97, 0.97, 0.97] - }, - "ground": { - "translation": [0, 2, 0], - "scale": [0.75, 0.75, 0.75] - }, - "gui": { - "rotation": [30, -44, 0], - "translation": [0, 1.75, 0], - "scale": [0.76, 0.76, 0.76] - }, - "head": { - "rotation": [0, 180, 0], - "translation": [0, 13, 0] - }, - "fixed": { - "rotation": [0, 90, -90], - "translation": [0, 0, -8] - } - }, - "groups": [ - 0, - { - "name": "antennas", - "origin": [0, 0, 0.5], - "color": 0, - "children": [1, 2, 3, 4, 5, 6] - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json b/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json deleted file mode 100644 index 57c3870..0000000 --- a/forge/src/main/resources/assets/create_tweaked_controllers/models/item/tweaked_linked_controller/trigger.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create_tweaked_controllers:item/tweaked_linked_controller/powered", - "textures": { - "particle": "create_tweaked_controllers:item/tweaked_linked_controller", - "redstone_bridge": "create_tweaked_controllers:item/tweaked_linked_controller" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [1, 1, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0.5]}, - "faces": { - "north": {"uv": [2, 12, 3, 13], "texture": "#redstone_bridge"}, - "east": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "south": {"uv": [2, 11, 3, 12], "texture": "#redstone_bridge"}, - "west": {"uv": [2, 12, 4, 13], "texture": "#redstone_bridge"}, - "up": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"}, - "down": {"uv": [3, 11, 4, 13], "texture": "#redstone_bridge"} - } - } - ] -} \ No newline at end of file diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_background.png deleted file mode 100644 index 0621dcc16e982333c06b9f4a5c12cf14ad78567c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6784 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 I);#ck0i84?iU0rr diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/controller_buttons.png deleted file mode 100644 index d74bc4721ac507c073475eb545eafd6aa072d4ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5051 zcmeHLdsGuw8Xsvb6bmT2NUdGR*s85N$;@PuOol`R5+%jZ2*|47V=^LTu>Ms9lNQt7pOA8wycsGIIrG?M0$ zdo$Ejd1L|Ky5fLo*4&RKOgx@f=V+ zv*}ky1xYqO_Q`*(Yi!#4ev?N{o+>FEz5Mb1ME#9##&1S87!Flzx=DVI6o2|f+ToD7 zwW(KMF$GP^df3tAmzTZnfTEqKo$!x@^^)sXiv4#>+DaBq*kHc;Aq0(B!$(9IbP*B# z(SR7Xt;|`8E?I67Ax)BdC&e0^|0-otOZE??_<9j;w57kgmL+PO888Z+K; zfBva^zM z=3ku~2hW^VeCAem(}u(?udlk6ShujPC`|pw;%WYY>pOnE`Mr}q z<4J33{0hI;&!)XkmzGzu2cxAqFK*tb@fERzLF+eFRQt*9;K!iTXqi89 z%2BV|2KcL0{|x=%(*Ai{i|qwosijYvt7je=aYcO6vZ(dmr`&;ep>CGNWWgp)-9| zZVCXHIVTOf%_$ZKb+nk6FGW8zF!ix%h&aD>&)!GxF)qlnhcr{kiTzOc&9 zny47f>^=x^rxq=DI&G9h;&QpfE~(gRPm*9trBZ_85*$Z>1>(rCIB7RxaZC{)dNDMd zgR%2ACvUaD0w!&=ra9Fj5$K2e{WIJ2`T=;0qmKo^hr~_WB$ybLn9Y*GBOFd`IsoZ& z=x0Yb;y{&3VmOC2&CYPzbk5?OG8lqo2FBac>?xjbSVqF7aAsiY0JCC4rktbG8wN%Q z6eRIxn`aatdx)izH$5e5h;KrVC!E2KfZ+qUL#+E__ZR~!y`IuonKZ#YoklGZ=BHRI z!?TpA8m809D}M+ZUaEDk4aVK@N_fQxy6gJZOj z!(=#u;WU6C854kz8xfg8Zeo-u$w(E_K@jiSd7w%UjG)O0Jrjs~{&64El5D2Hj3_7(47xy~uX)&bG zP7@daYJj(}R+rC@7Y8(i+;y0ZUqaKcE+XnLr-|8sa4&;{{-3Qr~@z=t)0QpV&6VWf=+ z3DyUMQ7Ul)EC{TeRQ{6T4HA5R_EZvKz3|>IFjjT@& z!j|zIkG?8;jxzx0;Ypr}-(k9j>3Svxp2>JvUBh%e69dm=Jglx?j4t1&kHVY<{C{ z%;~(6aCC|<-QnMGCrGR2wPd2T@BsdzQt$GF<0G* z=1BXhZ5heCvXY{jm5uukG~||+g?;%#{`QcG+LyhLmaFq~DsGy_o&35ZuAoO_Isdg+ zYY(*LY}?s+Z58pq>QOZ;>Rwv(=4Io~)~Y=f-IMg$n>8(5@J0Gaao*>DTD+_dnR-0n znpa{`dCPZ=n~UZ-G6a?fj;hsPsD7w#J-heB$P&P*sg`Jm^upeG}EX>4Tx04R}tkv&MmKpe$iQ>8^K4(%Y~kfA!+rHVL~Di*;)X)CnqU~=gfG%+M8 zE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JWDYS_3;J6>}?mh0_0YaNsH83DxK48nDJ&w53`EFipoTgu#Aww>F_ESHq=$dh@n^^-ldA?s zj(KcAh2;3b|KNAGW_c>^CWVqf|BG#Zj01sPpxw0X?_=9;p8)=6;7aTIH(J2#C+W?u z7Ci!nw}Ff6t|spRmpj17lP(#OBl&3xFSo_x3p)s=w<)Pjsn20L0ZJ zh-Mg&W~9Y{qz^H$ug`V8Y&ZjUa=`Qr%+_&5buaCbn>-1pFreiQjLcN4-WjmNz$@Pa zTKcIAq{NdFQlh=p$6auX0WEhp1K;~EP|bl~uMOSMU6%bmD;@v<002ovPDHLkV1mjM BBya!# diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/icons.png deleted file mode 100644 index 7b861d328d38349518254ce43eb56a06a9deabac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 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 diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/gui/tweaked_linked_controller_1.png deleted file mode 100644 index 08a2715f7a513a33bf100aeabc3f400c6e60291d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20936 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 diff --git a/forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png b/forge/src/main/resources/assets/create_tweaked_controllers/textures/item/tweaked_linked_controller_back.png deleted file mode 100644 index e64179294963c074d73cd69e78c9449d42882dc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4604 zcmeHKeNYtV8DAjbE>x`*MAVM%9373?z1`dU-f+mtUEoL$PdFnWhV1PJY~*f_yM;Tj z)GrdjSe1kp;{-oYX{W9D)lQn4`VqX?#FBO>6ifWTB-A>CAi+vN6Z-BQ;4#Tehne^v zH?z09&-*;T_j!KL?|oqrv~;!BG<2S}N>0LKf+R z-5#FhiWyiacQY{K=U52xcR6iqX0^c5uWrXZ7a6&H(dFh1rx*5qnR?i|;lZ4O#or&? zd10XZe77RSlH%!T%P?+NaqZS;iILB%aD7Zt;M0~4_{`OFy~lp}$IT*!xM^ftdLYHgrIn*oTPaNBlkPq zKz0z6w9@Y;sf~;PJD5VwWsvosJuibf+8|q}wqjOyDpSOzS9qB0icC9Iv60f#vX#j( zNqzzVI2nP2{mx>Sm+%{8L0keni)K^?2VI1X23d~P2B-2K23E;catty1xiVaq90MnL zXqLz_JwFBk-VCxLL2wf&>ht;JKBb)Z6ru{fUXNlpisK0IK)mHHf%GFTZ=whh!Z0yj z%EP$@j(5Q#Ch6cy1%pfm#^Le&oNlXi0^a2vV*&7i`bjsckYlLRiH1jb1#=ky8B6F} zBfNI7NYO0D%a?j6#$3j@gv4+Nnwp4rmwJkW<IJhZCQX@UvDzjgL<$Ny zr#l!0$e!dWaO`8UCgmoM1j`9e1cXoEPVyeFJ?IR)tX9IrQ>9{h7L!3H&QH)h#nD9Y zk)+ftt;014uEi-tMJrSYi90k1L$W%plGdt~4l)eN;_?cli(*75050bMj*3!{N*vcA zDwS4)s3?^KacK2AM5(1PQqMRjNvRw5J)pl}9LYt)nq(PLUQz*94b z1J`1Rf~K`v3TGK0ogfrV5zq4;CkfigImto>b-N0K10vys(PlBoa5?taVk;&E76gDb zz`1DN=Y2e6=bTKoK#F`SGGU9aKZ4dKgmRJ$9ZiHps-JU@>xH*a{XDO$wxm6c_-C;YtG25g2X<4{8m8Ygb@6 zfra_=G{=_zKW}mQz)7K|r*mE~e|gXpT2t9fN$4%~TFeC(6ATBJ1wm4w61-#?6KWU0 z3Jp<3q^pnt`^T7I$L-v=h=HOgTBBBD2&>l9po0vJI9LitSck$vvI?5j>U2RCCeXb+ zEBHtcV=M$b0ne>N(bHNT!YDD8Qt4To(S|heos_3T!W1!HUJ@#9h~v#nLch`OkVDuG3TO%0 zz|IUddURr^AL9$;`Xqm2GJBF!!0_}WQ{s1;u4%fa#K4rCr`0u0*OVBTlJm5>zB9UF z9-kE%7x=*QfsQgv0- zf?}!S!B(sGKz()9`eGFYU2XAE9|w-0mZB9asOxG4AH}^%0P$?k+2d*LU*u$F?%ex* zzx#c^`}^i*k{drQ#@{!@7lI&vb*xGYu6h|LL8pW1^4g`R*%?C<|;YWU?_pA5cY74JH z()NT3oKz6rPiY`;kt4%=alcw;aL~c*4=avb_8UAVqafRvGP?X9Ne1(rHG#M1?d_Ya zIt^XQAIbLR>K9;7_G~H55&NAUnS7>Pu_-pC?%u4BkAJD+KoDmst5n9TmCBBUKpMr1 z)+%BvBZizxnX^4=TtINY(Ei(qt5H!yrUb2;zh!^W>r)!@ zIpMpLjVIR;^VYPkZ7QfV7f+Ec%+kkR__8rqd2({;s_gcxDsuI z&&PdpzP9C-&@cE(p1+kGiONntM6{=5?3IltvwfSYOF@_IU&h3AA-27X~ z5&piax;|~*wkD>wtv;L@B=%md(|)G?!J;&UfuI{xY}&r zf2JSuwg23?4vg({=o)9)=h%#a#&2UT&za!$AoZ~(YyQ83@654fr$4y)m~%!uvr2aS z#BgNB7tI;#9o|P4K5v;?Rz9qGinZoH=k|UI#5RBh0!!9RB`C8|K+}iQqb~=UA{7K=yVNL=7 z7#Tasa~cgM8{t&&-M9p3ySjyZp4-HpuHYwY;(1E5mEmCmOn|^qPBs(ehx_uvthAoc zs-oK=z@37hX17}iq0r%Q2pnR8*_tX8;W#ctP$7!Kzyh{qne3z!HrYnFAUqf<#zt9L zi=8!_crHv*XU?!I_xj>2(P%p1O}2Ix03SjpX%UJ9h|p*hcJ;8?qcQO3P^qhZ(s<0%JH%!=zLMS{NxObqI>+WMmg8waI2DO%&sT0^kA`;NXlNm&-9d zEE0=R7-QrJtdmj{EMlZ6PN5WuiRms7)2%E}C28myl?#dnP!f{DQ8|UcxP%sgXb=j< z^*RKm#1auL)1#z_LEKO@MMRseMiMM1Ya~+{p~aNy9&iy(M8>NXd{p2ub@#*@NV^_5 zfEr*;wAo>MWt_+wnFKrO;!`BW#i$e&$z)PYf}vgflNhTFXwii#LIh&W?e1C_0;B_| zC0$Ad0PcQ}4WYC$q}^;yG@A_yzAFTt%d>M>0}6^J?WBsdGXNAp#RMWJP&^Sq2(gq9 z$;KlnfpoDq)2u%0|5>}rhZp8q^jOvg=Ff6>d1@+wS>U;S1k> zdWZy-NpL9!V<;+xF&doYBC#GOfn4M=3P+@3Pq}o4`+L%p!-&|W2od<=e@1#@k&L2s z5)#&t5L~Qbvr)qzH-qq3NOWL=+(qoIqrMMtTytTrb9H8I0?23Ors! za#*gDVX%m17>p7#j8rCnU2MN^^}5t^M|xpG*LK!XiebY4DOQg`m;Dcj+S3R2Rj^G9 zJNM~!wF9NS%}@J7;%!dB<8@E+M*Mcu)lJtMG4Mvl-RkP5>x~$ABjav${b6+ZzIxMV zOyK9a1H8wN|3w=P{sZ9Zro^bgRRq0!c&F}N(CTH0on?cd-UD0*2ijOX2y}Ye)tV^p zMxPsi&cyJ zzq5Uvk8aGEfiq<b^fQI&JpUOB<@Cw~yXBx_-#=H8odi zccmPIq#_VWH_$p<#n>v+|v z7o7Bo%ha3=&2jZ!B}JbOxYld`y=u<5eWB-@R$cGe!dLd3u*D$R5HeIx9-WE?XL=E} zyNaN*(aWH|TRAx)8$K8tt-s9PjMx*sr{-qzC2Zi;hR;XTm2hGgm4AF-RP*fHKYmwB z=$Z!o9#9%y&ruc%P_rPl+@=&(6;vuII|@? zZ#OI`t(7{Gk^-L&tk|7LedJ&A_~82O(YZMjp@{njqsnVC&Ujt*^5eGlE*;vkF0*21 R5D*Kbj+&<0J$e4({{r@;l*<4B diff --git a/forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json b/forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json deleted file mode 100644 index 242911d..0000000 --- a/forge/src/main/resources/data/create_tweaked_controllers/recipes/crafting/tweaked_linked_controller.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "BUB", - "SUS", - "PNP" - ], - "key": { - "B": { - "tag": "minecraft:wooden_buttons" - }, - "S": { - "item": "create:analog_lever" - }, - "P": { - "item": "create:electron_tube" - }, - "U": { - "item": "create:linked_controller" - }, - "N": { - "item": "create:precision_mechanism" - } - }, - "result": { - "item": "create_tweaked_controllers:tweaked_linked_controller" - } -} \ No newline at end of file diff --git a/forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json b/forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json deleted file mode 100644 index e00d180..0000000 --- a/forge/src/main/resources/data/create_tweaked_controllers/vs_mass/masses.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "block": "create_tweaked_controllers:tweaked_lectern_controller", - "mass": 500.0 - } -] From ff6008a6f350cc9333b502f63c2c5d2c54b8bba9 Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Sun, 5 May 2024 22:38:40 +0700 Subject: [PATCH 06/21] Add project configuration and remove leftover code --- aaa.gradleaaaaa | 292 ----------------------------------------------- build.gradle.kts | 7 +- 2 files changed, 3 insertions(+), 296 deletions(-) delete mode 100644 aaa.gradleaaaaa diff --git a/aaa.gradleaaaaa b/aaa.gradleaaaaa deleted file mode 100644 index 4441d2c..0000000 --- a/aaa.gradleaaaaa +++ /dev/null @@ -1,292 +0,0 @@ -buildscript { - repositories { - // These repositories are only for Gradle plugins, put any other repositories in the repository block further below - maven { url = 'https://maven.minecraftforge.net' } - mavenCentral() - } - dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true - } -} -// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -plugins { - id 'eclipse' - id 'maven-publish' -} -apply plugin: 'net.minecraftforge.gradle' - - -version = '1.18.2-1.2.2' -group = 'com.getItemFromBlock.create_tweaked_controllers' // http://maven.apache.org/guides/mini/guide-naming-conventions.html -archivesBaseName = 'create_tweaked_controllers' - -// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. -java.toolchain.languageVersion = JavaLanguageVersion.of(17) - -println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" -minecraft { - // The mappings can be changed at any time and must be in the following format. - // Channel: Version: - // official {minecraft_version} Official field/method names from Mojang mapping files - // parchment YYYY.MM.DD-{minecraft_version} Open community-sourced parameter names and javadocs layered on top of official - // - // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. - // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md - // - // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge - // Additional setup is needed to use their mappings: https://github.com/ParchmentMC/Parchment/wiki/Getting-Started - // - // Use non-default mappings at your own risk. They may not always work. - // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: 'official', version: '1.18.2' - - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default. - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. - runs { - client { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - - server { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'REGISTRIES' - - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', 'create_tweaked_controllers' - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - - data { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'REGISTRIES' - - property 'forge.logging.console.level', 'debug' - - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', 'create_tweaked_controllers', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') - - mods { - create_tweaked_controllers { - source sourceSets.main - } - } - } - } -} - -// Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } - -repositories { - // Put repositories for dependencies here - // ForgeGradle automatically adds the Forge maven and Maven Central for you - - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: - // flatDir { - // dir 'libs' - // } - - maven { - //CURSE - name "Cursemaven" - url "https://cursemaven.com" - content { - includeGroup "curse.maven" - } - } - - maven { - //CREATE - name = 'tterrag maven' - url = 'https://maven.tterrag.com/' - } - - maven { - // JEI - name 'Progwm16 maven' - url 'https://dvs1.progwml6.com/files/maven' - } -} - -dependencies { - // Specify the version of Minecraft to use. If this is any group other than 'net.minecraft', it is assumed - // that the dep is a ForgeGradle 'patcher' dependency, and its patches will be applied. - // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - - //CREATE - implementation fg.deobf("com.simibubi.create:create-${create_minecraft_version}:${create_version}:slim") { transitive = false } - implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") - implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") - - //CONTROLLABLE COMPAT - compileOnly fg.deobf("curse.maven:controllable-${controllable_version}") - - //JEI - compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}:api") - runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}") - - // CC TWEAKED COMPAT - compileOnly fg.deobf("curse.maven:cc-tweaked-${cc_tweaked_version}") - - //MIXINS - if (System.getProperty('idea.sync.active') != 'true') { - annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" - } - - // Real mod deobf dependency examples - these get remapped to your current mappings - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency - // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency - // implementation fg.deobf("com.tterrag.registrate:Registrate:MC${mc_version}-${registrate_version}") // Adds registrate as a dependency - - // Examples using mod jars from ./libs - // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") - - // For more info... - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html -} - -// process mods.toml to inject variables -def modsTomlSpec = copySpec{ - from(sourceSets.main.resources) { - include 'META-INF/mods.toml' - expand 'version': version, - 'loader_range': loader_range, - 'minecraft_range': minecraft_range, - 'forge_range': forge_range, - 'create_range': create_range, - 'github_project': github_project - } -} - -// need to copy into each build directory, unfortunately does not seem easy to do this automatically -def buildPaths = [ - "$rootDir/out/production/resources", // IDEA - "$rootDir/bin", // Eclipse -] - -// task to add mods.toml to all relevant folders -task replaceResources { - // ensure directory exists, first build likes to fail - new File("${processResources.destinationDir}/META-INF").mkdirs() - // copy for gradle - copy { - outputs.upToDateWhen { false } - with modsTomlSpec - into processResources.destinationDir - } - // copy for IDEs - buildPaths.each { path -> - if (new File(path).exists()) { - copy { - outputs.upToDateWhen { false } - with modsTomlSpec - into path - } - } - } -} - -processResources { - exclude 'META-INF/mods.toml' - finalizedBy replaceResources -} - -// Example for how to get properties into the manifest for reading at runtime. -jar { - manifest { - attributes([ - "Specification-Title" : "create_tweaked_controllers", - "Specification-Vendor" : "create_tweaked_controllers_sareus", - "Specification-Version" : "1", // We are version 1 of ourselves - "Implementation-Title" : project.name, - "Implementation-Version" : project.jar.archiveVersion, - "Implementation-Vendor" : "create_tweaked_controllers", - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") - ]) - } -} - -// Example configuration to allow publishing using the maven-publish plugin -// This is the preferred method to reobfuscate your jar file -jar.finalizedBy('reobfJar') -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing -// publish.dependsOn('reobfJar') - -publishing { - publications { - mavenJava(MavenPublication) { - artifact jar - } - } - repositories { - maven { - url "file://${project.projectDir}/mcmodsrepo" - } - } -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation -} diff --git a/build.gradle.kts b/build.gradle.kts index 05af9dd..0cec7bf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { java - //id("org.gradle.kotlin.kotlin-dsl") version "4.0.16" id("architectury-plugin") version "3.+" id("dev.architectury.loom") version "1.4.+" apply false kotlin("jvm") version "1.9.22" apply false @@ -48,9 +47,9 @@ allprojects { apply(plugin = "maven-publish") apply(plugin = "org.jetbrains.kotlin.jvm") -// base { archivesName = rootProject.property("archives_base_name").toString() } -// version = rootProject.property("version").toString() -// group = rootProject.property("maven_group").toString() + archivesBaseName = rootProject.property("archives_base_name").toString() + version = rootProject.property("version").toString() + group = rootProject.property("maven_group").toString() // Formats the mod version to include the loader, Minecraft version, and build number (if present) // example: 1.0.0+fabric-1.18.2-100 From 5e014746054a3952626bc3f0fd402fcc3ea5428d Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Mon, 6 May 2024 14:51:43 +0700 Subject: [PATCH 07/21] Remove dependency using Version Catalog, and revert to groovy gradle --- build.gradle | 67 ++++++++++++ build.gradle.kts | 84 --------------- common/{build.gradle.kts => build.gradle} | 30 ++---- fabric/build.gradle | 101 ++++++++++++++++++ fabric/build.gradle.kts | 108 ------------------- fabric/src/main/resources/fabric.mod.json | 8 +- forge/build.gradle | 97 +++++++++++++++++ forge/build.gradle.kts | 121 ---------------------- gradle.properties | 12 ++- 9 files changed, 285 insertions(+), 343 deletions(-) create mode 100644 build.gradle delete mode 100644 build.gradle.kts rename common/{build.gradle.kts => build.gradle} (63%) create mode 100644 fabric/build.gradle delete mode 100644 fabric/build.gradle.kts create mode 100644 forge/build.gradle delete mode 100644 forge/build.gradle.kts diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..9b9a99c --- /dev/null +++ b/build.gradle @@ -0,0 +1,67 @@ +plugins { + id 'java' + id 'architectury-plugin' version '3.+' + id 'dev.architectury.loom' version '1.5.+' apply false +} + +// Configure architecture plugin +architectury { + minecraft = rootProject.minecraft_version +} + +subprojects { + apply plugin: 'dev.architectury.loom' + + repositories { + mavenCentral() + maven { url "https://maven.shedaniel.me/" } // Cloth Config + maven { url "https://dvs1.progwml6.com/files/maven/" } // JEI + maven { url "https://maven.parchmentmc.org" } // Parchment Mapping + maven { // Flywheel + url "https://maven.tterrag.com/" + content { + // need to be specific here due to version overlaps + includeGroup "com.jozufozu.flywheel" + } + } + } + + loom { + silentMojangMappingsLicense() + } + + dependencies { + "minecraft"("com.mojang:minecraft:${rootProject.minecraft_version}") + + "mappings"(loom.officialMojangMappings()) + // Yarn mappings commented out + // "mappings"("net.fabricmc:yarn:1.19.2+build.3:v2") + } +} + +allprojects { + apply plugin: 'java' + apply plugin: 'architectury-plugin' + apply plugin: 'maven-publish' + + archivesBaseName = rootProject.property('archives_base_name').toString() + version = rootProject.property('version').toString() + group = rootProject.property('maven_group').toString() + + // Format mod version + def buildNumber = System.getenv('GITHUB_RUN_NUMBER') + version = "${rootProject.version}+${rootProject.name}-${rootProject.minecraft_version}" + (buildNumber != null ? "-${buildNumber}" : "") + + repositories { + // Add repositories here (optional) + } + + tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' + options.release = 17 + } + + java { + withSourcesJar() + } +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts deleted file mode 100644 index 0cec7bf..0000000 --- a/build.gradle.kts +++ /dev/null @@ -1,84 +0,0 @@ -import net.fabricmc.loom.api.LoomGradleExtensionAPI -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -plugins { - java - id("architectury-plugin") version "3.+" - id("dev.architectury.loom") version "1.4.+" apply false - kotlin("jvm") version "1.9.22" apply false -} - -architectury { - minecraft = rootProject.property("minecraft_version").toString() -} - -subprojects { - apply(plugin = "dev.architectury.loom") - - val loom = project.extensions.getByName("loom") - - repositories { - mavenCentral() - maven { url = uri("https://maven.shedaniel.me/") } // Cloth Config - maven { url = uri("https://dvs1.progwml6.com/files/maven/") } // JEI - maven { url = uri("https://maven.parchmentmc.org") } // Parchment Mapping - maven { // Flywheel - url = uri("https://maven.tterrag.com/") - content { - // need to be specific here due to version overlaps - includeGroup("com.jozufozu.flywheel") - } - } - } - - dependencies { - "minecraft"(libs.minecraft) - // The following line declares the mojmap mappings, you may use other mappings as well - //loom.silentMojangMappingsLicense() - "mappings"( loom.officialMojangMappings() ) - // The following line declares the yarn mappings you may select this one as well. - // "mappings"("net.fabricmc:yarn:1.19.2+build.3:v2") - } -} - -allprojects { - apply(plugin = "java") - apply(plugin = "architectury-plugin") - apply(plugin = "maven-publish") - apply(plugin = "org.jetbrains.kotlin.jvm") - - archivesBaseName = rootProject.property("archives_base_name").toString() - version = rootProject.property("version").toString() - group = rootProject.property("maven_group").toString() - - // Formats the mod version to include the loader, Minecraft version, and build number (if present) - // example: 1.0.0+fabric-1.18.2-100 - val buildNumber = System.getenv("GITHUB_RUN_NUMBER") - version = rootProject.property("version").toString() + "+" + rootProject.property("name").toString() + "-" + rootProject.property("minecraft_version").toString() + if(buildNumber != null) "-${buildNumber}" else "" - - repositories { - // Add repositories to retrieve artifacts from in here. - // You should only use this when depending on other mods because - // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html - // for more information about repositories. - } - - tasks.withType { - options.encoding = "UTF-8" - options.release.set(17) - } - - java { - withSourcesJar() - } - - val compileKotlin: KotlinCompile by tasks - compileKotlin.kotlinOptions { - jvmTarget = "17" - } - val compileTestKotlin: KotlinCompile by tasks - compileTestKotlin.kotlinOptions { - jvmTarget = "17" - } -} diff --git a/common/build.gradle.kts b/common/build.gradle similarity index 63% rename from common/build.gradle.kts rename to common/build.gradle index 947a076..13ff2a2 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle @@ -1,12 +1,5 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -plugins { - `maven-publish` -} - architectury { - val enabled_platforms: String by rootProject - common(enabled_platforms.split(",")) + common(rootProject.enabled_platforms.split(",")) } repositories { @@ -23,27 +16,22 @@ repositories { dependencies { // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies // Do NOT use other classes from fabric loader - modImplementation(libs.fabric.loader) + modImplementation("net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}") // Remove the next line if you don't want to depend on the API - modApi(libs.common.architectury) + modApi("dev.architectury:architectury:${rootProject.architectury_version}") - // Using Create Fabric - modCompileOnly(libs.fabric.create) + // TODO Using Create Fabric + // modCompileOnly("com.simibubi.create:create-fabric-${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") // CC Restitched - modCompileOnly(libs.fabric.computercraft) -} - -val compileTestKotlin: KotlinCompile by tasks -compileTestKotlin.kotlinOptions { - jvmTarget = "17" + modCompileOnly("maven.modrinth:cc-restitched:${rootProject.cc_restitched_version}") } publishing { publications { - create("maven") { - artifactId = rootProject.property("archives_base_name").toString() - from(components.getByName("java")) + mavenCommon(MavenPublication) { + artifactId = rootProject.archives_base_name + from components.java } } diff --git a/fabric/build.gradle b/fabric/build.gradle new file mode 100644 index 0000000..1f8fb68 --- /dev/null +++ b/fabric/build.gradle @@ -0,0 +1,101 @@ +plugins { + id "com.github.johnrengelman.shadow" version "7.1.2" +} + +architectury { + platformSetupLoomIde() + fabric() +} + + +configurations { + common + shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. + compileClasspath.extendsFrom common + runtimeClasspath.extendsFrom common + developmentFabric.extendsFrom common +} + +repositories { + mavenCentral() + // mavens for Create Fabric and dependencies + maven { url = uri("https://api.modrinth.com/maven") } + maven { url = uri("https://maven.terraformersmc.com/") } + maven { url = uri("https://mvn.devos.one/snapshots/") } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric + maven { url = uri("https://cursemaven.com") } // Forge Config API Port + maven { url = uri("https://maven.cafeteria.dev/releases") } // Fake Player API + maven { url = uri("https://maven.jamieswhiteshirt.com/libs-release") } // Reach Entity Attributes + maven { url = uri("https://jitpack.io/") } // Mixin Extras, Fabric ASM +} + +dependencies { + modImplementation("net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}") + modApi("net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}") + // Remove the next line if you don't want to depend on the API + modApi("dev.architectury:architectury-fabric:${rootProject.architectury_version}") + + + common(project(path: ":common", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } + + // TODO Create Fabric + // modImplementation("com.simibubi.create:create-fabric:${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") + + // CC Restitched + modRuntimeOnly("maven.modrinth:cc-restitched:${rootProject.cc_restitched_version}") + + // Recipe Viewer + modLocalRuntime("dev.emi:emi:${rootProject.emi_version}") +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + expand "name": project.name + expand "archives_base_name": project.archives_base_name + expand "description": project.description + expand "github_project": project.github_project + } +} + +shadowJar { + exclude "architectury.common.json" + + configurations = [project.configurations.shadowCommon] + archiveClassifier = "dev-shadow" +} + +remapJar { + injectAccessWidener = true + input.set shadowJar.archiveFile + dependsOn shadowJar +} + +sourcesJar { + def commonSources = project(":common").sourcesJar + dependsOn commonSources + from commonSources.archiveFile.map { zipTree(it) } +} + +components.java { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { + skip() + } +} + +publishing { + publications { + mavenFabric(MavenPublication) { + artifactId = rootProject.archives_base_name + "-" + project.name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} + diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts deleted file mode 100644 index 79c43f9..0000000 --- a/fabric/build.gradle.kts +++ /dev/null @@ -1,108 +0,0 @@ -plugins { - id("com.github.johnrengelman.shadow") version "7.1.2" -} - -architectury { - platformSetupLoomIde() - fabric() -} - -/** - * @see: https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html - * */ -val common: Configuration by configurations.creating -val shadowCommon: Configuration by configurations.creating // Don't use shadow from the shadow plugin because we don't want IDEA to index this. -val developmentFabric: Configuration = configurations.getByName("developmentFabric") -configurations { - compileClasspath.get().extendsFrom(configurations["common"]) - runtimeClasspath.get().extendsFrom(configurations["common"]) - developmentFabric.extendsFrom(configurations["common"]) -} - -repositories { - mavenCentral() - // mavens for Create Fabric and dependencies - maven { url = uri("https://api.modrinth.com/maven") } - maven { url = uri("https://maven.terraformersmc.com/") } - maven { url = uri("https://mvn.devos.one/snapshots/") } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric - maven { url = uri("https://cursemaven.com") } // Forge Config API Port - maven { url = uri("https://maven.cafeteria.dev/releases") } // Fake Player API - maven { url = uri("https://maven.jamieswhiteshirt.com/libs-release") } // Reach Entity Attributes - maven { url = uri("https://jitpack.io/") } // Mixin Extras, Fabric ASM -} - -dependencies { - modImplementation(libs.fabric.loader) - modApi(libs.fabric.api) - - // Remove the next line if you don't want to depend on the API - modApi(libs.fabric.architectury) - - - common(project(":common", configuration = "namedElements")) { isTransitive = false } - shadowCommon(project(":common", configuration = "transformProductionFabric")) { isTransitive = false } - - // Create Fabric - modImplementation(libs.fabric.create) - - // CC Restitched - modRuntimeOnly(libs.fabric.computercraft) - - // Recipe Viewer - modLocalRuntime(libs.fabric.emi) -} - -val javaComponent = components.getByName("java") -javaComponent.withVariantsFromConfiguration(configurations["sourcesElements"]) { - skip() -} - -tasks { - processResources { - inputs.property("version", project.version) - - filesMatching("fabric.mod.json") { - expand("version" to project.version) - } - } - - shadowJar { - exclude("architectury.common.json") - configurations = listOf(project.configurations["shadowCommon"]) - archiveClassifier.set("dev-shadow") - } - - remapJar { - injectAccessWidener.set(true) - inputFile.set(shadowJar.flatMap { it.archiveFile }) - dependsOn(shadowJar) - archiveClassifier.set("fabric") - } - - jar { - archiveClassifier.set("dev") - } - - sourcesJar { - val commonSources = project(":common").tasks.getByName("sourcesJar") - dependsOn(commonSources) - from(commonSources.archiveFile.map { zipTree(it) }) - } - - - - publishing { - publications { - create("mavenFabric") { - artifactId = "${rootProject.property("archives_base_name")}-${project.name}" - from(javaComponent) - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - } - } -} - diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 76d0378..d298129 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -10,7 +10,7 @@ "contact": { "sources": "https://github.com/${github_project}/" }, - "license": "Apache-2.0", + "license": "MIT", "icon": "assets/create_tweaked_controllers/icon.png", "environment": "*", "entrypoints": { @@ -21,12 +21,8 @@ "io.github.slimeymc.text_block.fabric.TextBlockClientFabric" ] }, - "mixins": [ - "text_block-common.mixins.json", - "text_block.mixins.json" - ], "depends": { - "minecraft": ">=1.18.2", + "minecraft": "1.18.2", "fabricloader": ">=0.14.21" } } \ No newline at end of file diff --git a/forge/build.gradle b/forge/build.gradle new file mode 100644 index 0000000..66dd008 --- /dev/null +++ b/forge/build.gradle @@ -0,0 +1,97 @@ +plugins { + id "com.github.johnrengelman.shadow" version "7.1.2" +} + +architectury { + platformSetupLoomIde() + forge() +} + +configurations { + common + shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. + compileClasspath.extendsFrom common + runtimeClasspath.extendsFrom common + developmentForge.extendsFrom common +} + +repositories { + // mavens for Forge-exclusives + maven { url = uri("https://maven.theillusivec4.top/") } // Curios + maven { // Create Forge and Registrate Forge + url = uri("https://maven.tterrag.com/") + content { + includeGroup("com.tterrag.registrate") + includeGroup("com.simibubi.create") + } + maven { url = uri("https://thedarkcolour.github.io/KotlinForForge/") } + } +} + +dependencies { + forge("net.minecraftforge:forge:${rootProject.forge_version}") + // Remove the next line if you don't want to depend on the API + modApi("dev.architectury:architectury-forge:${rootProject.architectury_version}") + + common(project(path: ":common", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } + + // Create + modImplementation("com.simibubi.create:create-${rootProject.minecraft_version}:${rootProject.create_forge_version}") + + // CC Tweaked + modRuntimeOnly(l"maven.modrinth:cc-tweaked:${rootProject.cc_tweaked_version}") + + // Controllable + modRuntimeOnly("curse.maven:controllable-317269:${rootProject.controllable_version}") + + // Recipe viewer + modLocalRuntime("mezz.jei:jei-${rootProject.master_version}:${rootProject.jei_version}") +} + +processResources { + inputs.property "version", project.version + + filesMatching("META-INF/mods.toml") { + expand "version": project.version + } +} + +shadowJar { + exclude "fabric.mod.json" + exclude "architectury.common.json" + + configurations = [project.configurations.shadowCommon] + archiveClassifier = "dev-shadow" +} + +remapJar { + input.set shadowJar.archiveFile + dependsOn shadowJar +} + +sourcesJar { + def commonSources = project(":common").sourcesJar + dependsOn commonSources + from commonSources.archiveFile.map { zipTree(it) } +} + +components.java { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { + skip() + } +} + +publishing { + publications { + mavenForge(MavenPublication) { + artifactId = rootProject.archives_base_name + "-" + project.name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts deleted file mode 100644 index 4f53ebe..0000000 --- a/forge/build.gradle.kts +++ /dev/null @@ -1,121 +0,0 @@ -plugins { - id("com.github.johnrengelman.shadow") version "7.1.2" -} - -architectury { - platformSetupLoomIde() - forge() -} - -val modId: String = rootProject.property("archives_base_name").toString() - -sourceSets { - main { - resources { - srcDir("src/generated/resources") - } - } -} - -/** - * @see: https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html - * */ -val common: Configuration by configurations.creating -val shadowCommon: Configuration by configurations.creating // Don't use shadow from the shadow plugin because we don't want IDEA to index this. -val developmentForge: Configuration = configurations.getByName("developmentForge") -configurations { - compileClasspath.get().extendsFrom(configurations["common"]) - runtimeClasspath.get().extendsFrom(configurations["common"]) - developmentForge.extendsFrom(configurations["common"]) -} - -repositories { - // mavens for Forge-exclusives - maven { url = uri("https://maven.theillusivec4.top/") } // Curios - maven { // Create Forge and Registrate Forge - url = uri("https://maven.tterrag.com/") - content { - includeGroup("com.tterrag.registrate") - includeGroup("com.simibubi.create") - } - maven { url = uri("https://thedarkcolour.github.io/KotlinForForge/") } - } -} - -dependencies { - forge(libs.forge) - // Remove the next line if you don't want to depend on the API - modApi(libs.forge.architectury) - - common(project(":common", configuration = "namedElements")) { isTransitive = false } - shadowCommon(project(":common", configuration = "transformProductionForge")) { isTransitive = false } - - // Create - modImplementation(libs.forge.create) - - // CC Tweaked - modRuntimeOnly(libs.forge.computercraft) - - // Controllable - modRuntimeOnly(libs.forge.controllable) - - // Recipe viewer - modLocalRuntime(libs.forge.jei) -} - -val javaComponent = components.getByName("java") -javaComponent.withVariantsFromConfiguration(configurations["sourcesElements"]) { - skip() -} - -tasks { - processResources { - inputs.property("version", project.version) - duplicatesStrategy = DuplicatesStrategy.INCLUDE - - - filesMatching("META-INF/mods.toml") { - expand("version" to project.version) - } - } - - shadowJar { - exclude("fabric.mod.json") - exclude("architectury.common.json") - configurations = listOf(project.configurations["shadowCommon"]) - archiveClassifier.set("dev-shadow") - } - - remapJar { - inputFile.set(shadowJar.flatMap { it.archiveFile }) - dependsOn(shadowJar) - archiveClassifier.set("forge") - } - - jar { - archiveClassifier.set("dev") - } - - sourcesJar { - val commonSources = project(":common").tasks.getByName("sourcesJar") - dependsOn(commonSources) - from(commonSources.archiveFile.map { zipTree(it) }) - duplicatesStrategy = DuplicatesStrategy.INCLUDE - } - - - - publishing { - publications { - create("mavenForge") { - artifactId = "${rootProject.property("archives_base_name")}-${project.name}" - from(javaComponent) - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - } - } -} diff --git a/gradle.properties b/gradle.properties index f2febba..163bcd9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,14 +11,18 @@ version = 1.18.2-1.2.2 description = A Create Addon that adds a way of controlling contraptions using an advanced controller. Compatible with Create 0.5.1+ minecraft_version = 1.18.2 -minecraft_range = [1.18.2,1.19) +minecraft_range = [1.18.2,1.19) +# what this is ^ + +architectury_version = 4.11.93 +enabled_platforms=fabric,forge # Fabric fabric_loader_version = 0.15.7 fabric_api_version = 0.77.0+1.18.2 # Forge -forge_version = 40.1.60 +forge_version = 40.2.4 loader_range = [40,) forge_range = [40.1.21,) @@ -31,8 +35,10 @@ registrate_version = MC1.18.2-1.1.3 create_range = [0.5.1.a,) jei_version = 9.7.0.209 +emi_version = 0.7.3+1.18.2 -cc_tweaked_version = 282001:4630521 +cc_restitched_version = 1.100.8+1.18.2 +cc_tweaked_version = 1.18.2-1.101.3 controllable_version = 317269:4376751 From 49aa871be7acfbd88911e1c45ef67a038a4fdc1c Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Tue, 14 May 2024 17:07:27 +0700 Subject: [PATCH 08/21] Fix couldn't find method Forge on the gradle build --- forge/build.gradle | 4 ++-- forge/gradle.properties | 3 +++ gradle.properties | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 forge/gradle.properties diff --git a/forge/build.gradle b/forge/build.gradle index 66dd008..94e8ef1 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -29,7 +29,7 @@ repositories { } dependencies { - forge("net.minecraftforge:forge:${rootProject.forge_version}") + forge("net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}") // Remove the next line if you don't want to depend on the API modApi("dev.architectury:architectury-forge:${rootProject.architectury_version}") @@ -40,7 +40,7 @@ dependencies { modImplementation("com.simibubi.create:create-${rootProject.minecraft_version}:${rootProject.create_forge_version}") // CC Tweaked - modRuntimeOnly(l"maven.modrinth:cc-tweaked:${rootProject.cc_tweaked_version}") + modRuntimeOnly("maven.modrinth:cc-tweaked:${rootProject.cc_tweaked_version}") // Controllable modRuntimeOnly("curse.maven:controllable-317269:${rootProject.controllable_version}") diff --git a/forge/gradle.properties b/forge/gradle.properties new file mode 100644 index 0000000..20e9de3 --- /dev/null +++ b/forge/gradle.properties @@ -0,0 +1,3 @@ +loom.platform=forge +loader_platform=Forge +kotlin.stdlib.default.dependency=false diff --git a/gradle.properties b/gradle.properties index 163bcd9..51f5277 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,9 +22,9 @@ fabric_loader_version = 0.15.7 fabric_api_version = 0.77.0+1.18.2 # Forge -forge_version = 40.2.4 +forge_version = 40.2.17 loader_range = [40,) -forge_range = [40.1.21,) +forge_range = [40.2.17,) create_fabric_version = 0.5.1-f-build.1415 create_forge_version = 0.5.1.f-332 From addc3849b331434e128677ca38a1ef35ac448d0f Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Tue, 14 May 2024 17:38:18 +0700 Subject: [PATCH 09/21] Remove uri, relic from the kotlin time --- build.gradle | 2 ++ common/build.gradle | 14 ++++++-------- fabric/build.gradle | 16 +++++++--------- forge/build.gradle | 10 +++++----- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/build.gradle b/build.gradle index 9b9a99c..26348c1 100644 --- a/build.gradle +++ b/build.gradle @@ -14,9 +14,11 @@ subprojects { repositories { mavenCentral() + maven { url "https://api.modrinth.com/maven" } // CC Restitched, CC Tweaked maven { url "https://maven.shedaniel.me/" } // Cloth Config maven { url "https://dvs1.progwml6.com/files/maven/" } // JEI maven { url "https://maven.parchmentmc.org" } // Parchment Mapping + maven { url "https://cursemaven.com" } // Controllable, Forge Config API Port maven { // Flywheel url "https://maven.tterrag.com/" content { diff --git a/common/build.gradle b/common/build.gradle index 13ff2a2..28c6078 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -5,12 +5,10 @@ architectury { repositories { mavenCentral() // mavens for Create Fabric and dependencies - maven { url = uri("https://api.modrinth.com/maven") } - maven { url = uri("https://mvn.devos.one/snapshots/") } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric - maven { url = uri("https://cursemaven.com") } - maven { url = uri("https://maven.cafeteria.dev/releases") } // Fake Player API - maven { url = uri("https://maven.jamieswhiteshirt.com/libs-release") } // Reach Entity Attributes - maven { url = uri("https://jitpack.io/") } // Mixin Extras, Fabric ASM + maven { url "https://mvn.devos.one/snapshots/" } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric + maven { url "https://maven.cafeteria.dev/releases" } // Fake Player API + maven { url "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes + maven { url "https://jitpack.io/" } // Mixin Extras, Fabric ASM } dependencies { @@ -21,10 +19,10 @@ dependencies { modApi("dev.architectury:architectury:${rootProject.architectury_version}") // TODO Using Create Fabric - // modCompileOnly("com.simibubi.create:create-fabric-${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") + modCompileOnly("com.simibubi.create:create-fabric-${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") // CC Restitched - modCompileOnly("maven.modrinth:cc-restitched:${rootProject.cc_restitched_version}") + modCompileOnly("maven.modrinth:cc-restitched:${rootProject.cc_restitched_version}+${rootProject.minecraft_version}") } publishing { diff --git a/fabric/build.gradle b/fabric/build.gradle index 1f8fb68..900ef28 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -19,13 +19,11 @@ configurations { repositories { mavenCentral() // mavens for Create Fabric and dependencies - maven { url = uri("https://api.modrinth.com/maven") } - maven { url = uri("https://maven.terraformersmc.com/") } - maven { url = uri("https://mvn.devos.one/snapshots/") } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric - maven { url = uri("https://cursemaven.com") } // Forge Config API Port - maven { url = uri("https://maven.cafeteria.dev/releases") } // Fake Player API - maven { url = uri("https://maven.jamieswhiteshirt.com/libs-release") } // Reach Entity Attributes - maven { url = uri("https://jitpack.io/") } // Mixin Extras, Fabric ASM + maven { url "https://maven.terraformersmc.com/" } + maven { url "https://mvn.devos.one/snapshots/" } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric + maven { url "https://maven.cafeteria.dev/releases" } // Fake Player API + maven { url "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes + maven { url "https://jitpack.io/" } // Mixin Extras, Fabric ASM } dependencies { @@ -39,10 +37,10 @@ dependencies { shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } // TODO Create Fabric - // modImplementation("com.simibubi.create:create-fabric:${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") + modImplementation("com.simibubi.create:create-fabric:${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") // CC Restitched - modRuntimeOnly("maven.modrinth:cc-restitched:${rootProject.cc_restitched_version}") + modRuntimeOnly("maven.modrinth:cc-restitched:${rootProject.cc_restitched_version}+${rootProject.minecraft_version}") // Recipe Viewer modLocalRuntime("dev.emi:emi:${rootProject.emi_version}") diff --git a/forge/build.gradle b/forge/build.gradle index 94e8ef1..873156f 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -17,9 +17,9 @@ configurations { repositories { // mavens for Forge-exclusives - maven { url = uri("https://maven.theillusivec4.top/") } // Curios + maven { url = "https://maven.theillusivec4.top/" } // Curios maven { // Create Forge and Registrate Forge - url = uri("https://maven.tterrag.com/") + url = "https://maven.tterrag.com/" content { includeGroup("com.tterrag.registrate") includeGroup("com.simibubi.create") @@ -37,16 +37,16 @@ dependencies { shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } // Create - modImplementation("com.simibubi.create:create-${rootProject.minecraft_version}:${rootProject.create_forge_version}") + modImplementation("com.simibubi.create:create-${rootProject.minecraft_version}:${rootProject.create_forge_version}") { transitive = false } // CC Tweaked - modRuntimeOnly("maven.modrinth:cc-tweaked:${rootProject.cc_tweaked_version}") + modRuntimeOnly("maven.modrinth:cc-tweaked:${rootProject.minecraft_version}-${rootProject.cc_tweaked_version}") // Controllable modRuntimeOnly("curse.maven:controllable-317269:${rootProject.controllable_version}") // Recipe viewer - modLocalRuntime("mezz.jei:jei-${rootProject.master_version}:${rootProject.jei_version}") + modLocalRuntime("mezz.jei:jei-${rootProject.minecraft_version}:${rootProject.jei_version}") } processResources { From e82d9769cd61b44658beece267134abc0907d359 Mon Sep 17 00:00:00 2001 From: SlimeyAr Date: Tue, 14 May 2024 18:17:51 +0700 Subject: [PATCH 10/21] Fix Forge Config API Port and change some gradle properties --- build.gradle | 2 +- common/build.gradle | 2 +- fabric/build.gradle | 6 +++--- gradle.properties | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 26348c1..d1c2f96 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ subprojects { maven { url "https://maven.shedaniel.me/" } // Cloth Config maven { url "https://dvs1.progwml6.com/files/maven/" } // JEI maven { url "https://maven.parchmentmc.org" } // Parchment Mapping - maven { url "https://cursemaven.com" } // Controllable, Forge Config API Port + maven { url "https://cursemaven.com" } // Controllable maven { // Flywheel url "https://maven.tterrag.com/" content { diff --git a/common/build.gradle b/common/build.gradle index 28c6078..eb3b2f4 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -7,6 +7,7 @@ repositories { // mavens for Create Fabric and dependencies maven { url "https://mvn.devos.one/snapshots/" } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric maven { url "https://maven.cafeteria.dev/releases" } // Fake Player API + maven { url "https://raw.githubusercontent.com/Fuzss/modresources/main/maven/" } // Forge Config API Port maven { url "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes maven { url "https://jitpack.io/" } // Mixin Extras, Fabric ASM } @@ -18,7 +19,6 @@ dependencies { // Remove the next line if you don't want to depend on the API modApi("dev.architectury:architectury:${rootProject.architectury_version}") - // TODO Using Create Fabric modCompileOnly("com.simibubi.create:create-fabric-${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") // CC Restitched diff --git a/fabric/build.gradle b/fabric/build.gradle index 900ef28..9ab3481 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -22,6 +22,7 @@ repositories { maven { url "https://maven.terraformersmc.com/" } maven { url "https://mvn.devos.one/snapshots/" } // Create Fabric, Porting Lib, Forge Tags, Milk Lib, Registrate Fabric maven { url "https://maven.cafeteria.dev/releases" } // Fake Player API + maven { url "https://raw.githubusercontent.com/Fuzss/modresources/main/maven/" } // Forge Config API Port maven { url "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes maven { url "https://jitpack.io/" } // Mixin Extras, Fabric ASM } @@ -36,14 +37,13 @@ dependencies { common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } - // TODO Create Fabric - modImplementation("com.simibubi.create:create-fabric:${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") + modImplementation("com.simibubi.create:create-fabric-${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") // CC Restitched modRuntimeOnly("maven.modrinth:cc-restitched:${rootProject.cc_restitched_version}+${rootProject.minecraft_version}") // Recipe Viewer - modLocalRuntime("dev.emi:emi:${rootProject.emi_version}") + modLocalRuntime("dev.emi:emi:${rootProject.emi_version}+${rootProject.minecraft_version}") } processResources { diff --git a/gradle.properties b/gradle.properties index 51f5277..5a74053 100644 --- a/gradle.properties +++ b/gradle.properties @@ -35,12 +35,12 @@ registrate_version = MC1.18.2-1.1.3 create_range = [0.5.1.a,) jei_version = 9.7.0.209 -emi_version = 0.7.3+1.18.2 +emi_version = 0.7.3 -cc_restitched_version = 1.100.8+1.18.2 -cc_tweaked_version = 1.18.2-1.101.3 +cc_restitched_version = 1.100.8 +cc_tweaked_version = 1.101.3 -controllable_version = 317269:4376751 +controllable_version = 4376751 mixingradle_version = 0.7-SNAPSHOT mixin_version = 0.8.5 From b21352ad513799c9f0c0e352b89e2177026e7af7 Mon Sep 17 00:00:00 2001 From: Quentin Lepine Date: Sun, 10 Dec 2023 17:17:02 +0100 Subject: [PATCH 11/21] [added] error log function --- .../CreateTweakedControllers.java | 5 +++++ .../controller/ControlProfile.java | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java index 41733dc..1b23fdb 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllers.java @@ -90,4 +90,9 @@ public static void log(String message) { Create.LOGGER.info(message); } + + public static void error(String message) + { + Create.LOGGER.error(message); + } } diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java index 5619359..b960a89 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java @@ -157,10 +157,10 @@ public void Load(String path) } catch (IOException e) { - CreateTweakedControllers.log("Error loading controller profile \""+path+"\"!"); + CreateTweakedControllers.error("Error loading controller profile \""+path+"\"!"); for (StackTraceElement line : e.getStackTrace()) { - CreateTweakedControllers.log(line.toString()); + CreateTweakedControllers.error(line.toString()); } return; } @@ -195,10 +195,10 @@ public void Save(String path) } catch (IOException e) { - CreateTweakedControllers.log("Error loading controller profile \""+path+"\"!"); + CreateTweakedControllers.error("Error loading controller profile \""+path+"\"!"); for (StackTraceElement line : e.getStackTrace()) { - CreateTweakedControllers.log(line.toString()); + CreateTweakedControllers.error(line.toString()); } return; } From 9386f94bc3a031a3bd2a203330b4774f8cd470ca Mon Sep 17 00:00:00 2001 From: Quentin Lepine Date: Sun, 28 Jan 2024 17:39:11 +0100 Subject: [PATCH 12/21] [added] unfinished config for automatically switching profiles based on current input --- .../config/ModClientConfig.java | 7 +- .../controller/ControlProfile.java | 126 +++++++++++-- .../controller/ControlType.java | 24 +++ .../controller/TweakedControlsUtil.java | 27 +++ .../gui/ModControllerConfigScreen.java | 166 +++++++++++------- 5 files changed, 273 insertions(+), 77 deletions(-) create mode 100644 common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlType.java diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java index 4015ce0..8fc6bd2 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java @@ -10,6 +10,7 @@ public class ModClientConfig public static final ForgeConfigSpec.ConfigValue USE_CUSTOM_MAPPINGS; public static final ForgeConfigSpec.ConfigValue TOGGLE_MOUSE_FOCUS; public static final ForgeConfigSpec.ConfigValue AUTO_RESET_MOUSE_FOCUS; + public static final ForgeConfigSpec.ConfigValue AUTO_DETECT_INPUT_TYPE; public static final ForgeConfigSpec.ConfigValue CONFIG_BUTTON_MAIN_MENU_ROW; public static final ForgeConfigSpec.ConfigValue CONFIG_BUTTON_MAIN_MENU_OFFSET; public static final ForgeConfigSpec.ConfigValue CONFIG_BUTTON_INGAME_MENU_ROW; @@ -19,12 +20,14 @@ public class ModClientConfig static { BUILDER.push("Configs for Create: Tweaked Controllers"); - USE_CUSTOM_MAPPINGS = BUILDER.comment("Wether or not to use custom axis/button mappings, default is false") - .define("use_custom_mappings", false); + USE_CUSTOM_MAPPINGS = BUILDER.comment("Wether or not to use custom axis/button mappings, default is true") + .define("use_custom_mappings", true); TOGGLE_MOUSE_FOCUS = BUILDER.comment("Does the mouse cursor focus key acts as toggle instead of hold, default is false") .define("toggle_mouse_focus", false); AUTO_RESET_MOUSE_FOCUS = BUILDER.comment("Does the mouse cursor inputs are automatically reset when the controller item is put down, default is true") .define("auto_reset_mouse_focus", true); + AUTO_DETECT_INPUT_TYPE = BUILDER.comment("Does the mod will automatically change the controller profile dependind on what is available on your computer, default is true") + .define("auto_detect_input_type", true); CONFIG_BUTTON_MAIN_MENU_ROW = BUILDER.comment("Row of the Controller Settings button in the main menu, default is 2") .defineInRange("config_button_main_menu_row", 2 , 0, 4); CONFIG_BUTTON_MAIN_MENU_OFFSET = BUILDER.comment("X Offset of the Controller Settings button in the main menu, default is 4") diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java index b960a89..5c975af 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java @@ -28,27 +28,56 @@ public class ControlProfile public GenericInput[] layout = new GenericInput[25]; public boolean hasJoystickInput = false; public ArrayList duplicatedKeys = new ArrayList(); + + public static final byte CURRENT_VERSION_MAJOR = (byte) 0x01; + public static final byte CURRENT_VERSION_MINOR = (byte) 0x00; public ControlProfile() { - this(0); + this(ControlType.KEYBOARD_MOUSE); } - public ControlProfile(int id) + public ControlProfile(ControlType type) { - Load(0); - Save(0); + CheckProfileUpgrade(); + Load(type); + Save(type); } - public void Load(int id) + public void Load(ControlType type) { - Load("config/gamepad_profiles/gamepad_profile_" + id); + Load("config/gamepad_profiles/gamepad_profile_" + type.toString(), type); UpdateProfileData(); } - public void Save(int id) + public void Save(ControlType type) { - Save("config/gamepad_profiles/gamepad_profile_" + id); + Save("config/gamepad_profiles/gamepad_profile_" + type.toString()); + } + + private void CheckProfileUpgrade() + { + File f = new File("config/gamepad_profiles/gamepad_profile_0"); + if(!f.exists() || f.isDirectory()) + { + return; + } + Load("config/gamepad_profiles/gamepad_profile_0", ControlType.CUSTOM_0, false); + Save(ControlType.CUSTOM_0); + try + { + f.delete(); + } + catch (Exception e) + { + CreateTweakedControllers.error("Error upgrading old controller profile: could not delete old file \"config/gamepad_profiles/gamepad_profile_0\"!"); + CreateTweakedControllers.error(e.getMessage()); + for (StackTraceElement line : e.getStackTrace()) + { + CreateTweakedControllers.error(line.toString()); + } + return; + } } static final int[] keys = @@ -70,7 +99,19 @@ public void Save(int id) GLFW.GLFW_KEY_LEFT }; - public void InitDefaultLayout() + public void InitDefaultLayout(ControlType fallbackType) + { + if (fallbackType == ControlType.JOYSTICK) + { + InitDefaultGamepadLayout(); + } + else + { + InitDefaultKeyboardLayout(); + } + } + + public void InitDefaultKeyboardLayout() { for (int i = 0; i < 15; i++) { @@ -114,18 +155,75 @@ else if (i > 22) } } - public void Load(String path) + public void InitDefaultGamepadLayout() + { + for (int i = 0; i < 15; i++) + { + layout[i] = new JoystickButtonInput(i); + } + for (int i = 15; i < 25; i++) + { + if (i == 16 || i == 18 || i == 20 || i == 22) + { + layout[i] = new JoystickAxisInput(i - 15, 0.05f, -1.0f); + } + else if (i > 22) + { + layout[i] = new JoystickAxisInput(i - 15, -1.0f, 1.0f); + } + else + { + layout[i] = new JoystickAxisInput(i - 15, 0.05f, 1.0f); + } + } + } + + private void Load(String path, ControlType fallbackType) + { + Load(path, fallbackType, true); + } + + static final byte[] headerNameData = + { + 'C', + 'T', + 'C', + 'P', + 'R', + 'F', + }; + + private void Load(String path, ControlType fallbackType, boolean hasHeader) { File f = new File(path); if(!f.exists() || f.isDirectory()) { - InitDefaultLayout(); + InitDefaultLayout(fallbackType); return; } else try { FileInputStream file = new FileInputStream(f); DataInputStream buf = new DataInputStream(file); + int version = 0; + if (hasHeader) + { + byte[] header = buf.readNBytes(8); + boolean valid = header.length == 8; + for (int i = 0; i < 6 && valid; i++) + { + if (header[i] != headerNameData[i]) + { + valid = false; + } + } + if (!valid) + { + file.close(); + throw new IOException("Corrupted Profile Data!"); + } + version = 256 * header[6] + header[7]; + } for (int i = 0; i < layout.length; i++) { switch (InputType.GetType(buf.readByte())) @@ -179,6 +277,12 @@ public void Save(String path) f.createNewFile(); FileOutputStream file = new FileOutputStream(f); DataOutputStream buf = new DataOutputStream(file); + for (int i = 0; i < headerNameData.length; i++) + { + buf.writeByte(headerNameData[i]); + } + buf.writeByte(CURRENT_VERSION_MAJOR); + buf.writeByte(CURRENT_VERSION_MINOR); for (int i = 0; i < layout.length; i++) { if (layout[i] != null) diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlType.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlType.java new file mode 100644 index 0000000..1ac7a00 --- /dev/null +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlType.java @@ -0,0 +1,24 @@ +package com.getitemfromblock.create_tweaked_controllers.controller; + +import com.getitemfromblock.create_tweaked_controllers.input.JoystickInputs; + +public enum ControlType +{ + KEYBOARD_MOUSE, + JOYSTICK, + CUSTOM_0, + CUSTOM_1; + + public boolean IsAdapted() + { + switch (this) + { + case KEYBOARD_MOUSE: + return !JoystickInputs.HasJoystick(); + case JOYSTICK: + return JoystickInputs.HasJoystick(); + default: + return true; + } + } +} diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java index 4022ca0..9e1b1e5 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java @@ -14,6 +14,12 @@ public class TweakedControlsUtil private static boolean lastFocusKeyState = false; private static boolean isFocusActive = false; private static boolean wasFocusActive = false; + private static ControlType controlType = ControlType.KEYBOARD_MOUSE; + + public static ControlType GetActiveProfileType() + { + return controlType; + } public static void FreeFocus() { @@ -22,6 +28,26 @@ public static void FreeFocus() wasFocusActive = false; } + public static void SelectProfileType(ControlType type) + { + profile.Load(type); + controlType = type; + } + + private static void BackgroundUpdate() + { + if (!ModClientConfig.AUTO_DETECT_INPUT_TYPE.get() || controlType.IsAdapted()) return; + if (JoystickInputs.HasJoystick()) + { + controlType = ControlType.JOYSTICK; + } + else + { + controlType = ControlType.KEYBOARD_MOUSE; + } + profile.Load(controlType); + } + public static void GuiUpdate() { MouseCursorHandler.Update(); @@ -96,6 +122,7 @@ public static void Update(boolean useFullPrec) { if (ModClientConfig.USE_CUSTOM_MAPPINGS.get()) { + BackgroundUpdate(); HandleMouseKeyBinds(); if (profile.hasJoystickInput) { diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java index 8fa9b57..20206ec 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java @@ -1,7 +1,10 @@ package com.getitemfromblock.create_tweaked_controllers.gui; +import java.util.function.Consumer; + import com.getitemfromblock.create_tweaked_controllers.CreateTweakedControllers; import com.getitemfromblock.create_tweaked_controllers.config.ModClientConfig; +import com.getitemfromblock.create_tweaked_controllers.controller.ControlType; import com.getitemfromblock.create_tweaked_controllers.controller.TweakedControlsUtil; import com.getitemfromblock.create_tweaked_controllers.gui.InputConfig.ColoredButton; import com.getitemfromblock.create_tweaked_controllers.gui.InputConfig.InputList; @@ -17,11 +20,14 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; import com.simibubi.create.foundation.gui.AbstractSimiScreen; +import com.simibubi.create.foundation.gui.ConfirmationScreen; import com.simibubi.create.foundation.gui.ScreenOpener; +import com.simibubi.create.foundation.gui.ConfirmationScreen.Response; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.FormattedText; import net.minecraft.util.Mth; import net.minecraft.world.phys.Vec2; @@ -35,6 +41,8 @@ public class ModControllerConfigScreen extends AbstractSimiScreen private PlainRect[] triggerAxis; private int selectedInput = -1; + private ControlType selectedProfile = ControlType.KEYBOARD_MOUSE; + private boolean saved = true; private InputList inputBindsList; public ModControllerConfigScreen(Screen p) @@ -47,6 +55,8 @@ public ModControllerConfigScreen(Screen p) protected void init() { super.init(); + selectedProfile = TweakedControlsUtil.GetActiveProfileType(); + saved = true; Populate(); } @@ -55,6 +65,32 @@ public void tick() { } + private void attemptBackstep() + { + if (saved) + { + ScreenOpener.open(parent); + return; + } + + showLeavingPrompt(success -> { + if (success == Response.Cancel) + return; + if (success == Response.Confirm) + //saveChanges(); + ScreenOpener.open(parent); + }); + } + + protected void showLeavingPrompt(Consumer action) + { + ConfirmationScreen screen = new ConfirmationScreen() + .centered() + .withThreeActions(action) + .addText(FormattedText.of("Leaving with unsaved change(s) for this config")); + screen.open(this); + } + @Override public boolean mouseClicked(double x, double y, int button) { @@ -94,17 +130,71 @@ public boolean keyPressed(int key, int scan, int modif) } } + protected void renderSelectedInput() + { + if (selectedInput == -1) return; + float val = (Mth.sin((float)Blaze3D.getTime() * Mth.PI * 4) + 1) / 2; + if (selectedInput < 15) + { + controllerButtons[selectedInput].SetColorFactor(Mth.lerp(val, 50/255.0f, 1.0f)); + } + else if (selectedInput < 23) + { + int vx = 0; + int vy = 0; + switch (selectedInput) + { + case 15: + vx = (int)(val * 10); + break; + case 16: + vx = (int)(-val * 10); + break; + case 17: + vy = (int)(val * 10); + break; + case 18: + vy = (int)(-val * 10); + break; + case 19: + vx = (int)(val * 10); + break; + case 20: + vx = (int)(-val * 10); + break; + case 21: + vy = (int)(val * 10); + break; + default: + vy = (int)(-val * 10); + break; + } + if (selectedInput < 19) + { + lStick.move(vx, vy); + controllerButtons[9].move(vx, vy); + } + else + { + rStick.move(vx, vy); + controllerButtons[10].move(vx, vy); + } + } + else + { + triggerAxis[selectedInput-23].SetValue(val); + } + } + @Override protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { TweakedControlsUtil.GuiUpdate(); - if (selectedInput != -1) + if (selectedInput != -1 && (HandleMouseMovement() || HandleJoystickButtons() || HandleJoystickAxis())) { - if (selectedInput != -1 && (HandleMouseMovement() || HandleJoystickButtons() || HandleJoystickAxis())) - { - selectedInput = -1; - TweakedControlsUtil.profile.UpdateProfileData(); - } + selectedInput = -1; + saved = false; + TweakedControlsUtil.profile.UpdateProfileData(); } inputBindsList.render(ms, mouseX, mouseY, partialTicks); @@ -133,60 +223,7 @@ protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialT { controllerButtons[i].SetColorFactor(GamepadInputs.buttons[i] ? 1.0f : 50/255.0f); } - if (selectedInput != -1) - { - float val = (Mth.sin((float)Blaze3D.getTime() * Mth.PI * 4) + 1) / 2; - if (selectedInput < 15) - { - controllerButtons[selectedInput].SetColorFactor(Mth.lerp(val, 50/255.0f, 1.0f)); - } - else if (selectedInput < 23) - { - vx = 0; - vy = 0; - switch (selectedInput) - { - case 15: - vx = (int)(val * 10); - break; - case 16: - vx = (int)(-val * 10); - break; - case 17: - vy = (int)(val * 10); - break; - case 18: - vy = (int)(-val * 10); - break; - case 19: - vx = (int)(val * 10); - break; - case 20: - vx = (int)(-val * 10); - break; - case 21: - vy = (int)(val * 10); - break; - default: - vy = (int)(-val * 10); - break; - } - if (selectedInput < 19) - { - lStick.move(vx, vy); - controllerButtons[9].move(vx, vy); - } - else - { - rStick.move(vx, vy); - controllerButtons[10].move(vx, vy); - } - } - else - { - triggerAxis[selectedInput-23].SetValue(val); - } - } + renderSelectedInput(); } public void SetActiveInput(int index) @@ -254,17 +291,18 @@ private void Populate() inputBindsList = new InputList(this, minecraft); addWidget(inputBindsList); addRenderableWidget(new Button(this.width / 2 - 155, this.height - 29, 90, 20, CommonComponents.GUI_DONE, (p_193996_) -> { - ScreenOpener.open(parent); + attemptBackstep(); })); addRenderableWidget(new ColoredButton(this.width / 2 - 155 + 100, this.height - 29, 90, 20, CreateTweakedControllers.translateDirect("gui_config_reset_all"), (p_193999_) -> { - TweakedControlsUtil.profile.InitDefaultLayout(); + TweakedControlsUtil.profile.InitDefaultLayout(selectedProfile); TweakedControlsUtil.profile.UpdateProfileData(); }, new Vector3f(1.0f, 0.3f, 0.3f))); addRenderableWidget(new ColoredButton(this.width / 2 - 155 + 200, this.height - 29, 40, 20, CreateTweakedControllers.translateDirect("gui_config_save"), (p_193996_) -> { - TweakedControlsUtil.profile.Save(0); + TweakedControlsUtil.profile.Save(selectedProfile); + saved = true; }, new Vector3f(0.5f, 0.5f, 1.0f))); addRenderableWidget(new ColoredButton(this.width / 2 - 155 + 250, this.height - 29, 40, 20, CreateTweakedControllers.translateDirect("gui_config_load"), (p_193996_) -> { - TweakedControlsUtil.profile.Load(0); + TweakedControlsUtil.profile.Load(selectedProfile); }, new Vector3f(0.5f, 0.5f, 1.0f))); int x = (width - background.width) / 2; int y = 10; From 545ca3dd0c3480372fb22b605f149ea6564c0598 Mon Sep 17 00:00:00 2001 From: Quentin Lepine Date: Sun, 28 Jan 2024 19:57:24 +0100 Subject: [PATCH 13/21] [edited] partially reversed changes form previous commit, because no time to finish them :( [edited] bumped version for quick release --- .../config/ModClientConfig.java | 10 +-- .../controller/ControlProfile.java | 76 ++++++++++++++++++- .../controller/TweakedControlsUtil.java | 4 +- .../gui/ModControllerConfigScreen.java | 17 +++-- gradle.properties | 2 +- 5 files changed, 91 insertions(+), 18 deletions(-) diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java index 8fc6bd2..df7b8e9 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/config/ModClientConfig.java @@ -10,7 +10,7 @@ public class ModClientConfig public static final ForgeConfigSpec.ConfigValue USE_CUSTOM_MAPPINGS; public static final ForgeConfigSpec.ConfigValue TOGGLE_MOUSE_FOCUS; public static final ForgeConfigSpec.ConfigValue AUTO_RESET_MOUSE_FOCUS; - public static final ForgeConfigSpec.ConfigValue AUTO_DETECT_INPUT_TYPE; + //public static final ForgeConfigSpec.ConfigValue AUTO_DETECT_INPUT_TYPE; public static final ForgeConfigSpec.ConfigValue CONFIG_BUTTON_MAIN_MENU_ROW; public static final ForgeConfigSpec.ConfigValue CONFIG_BUTTON_MAIN_MENU_OFFSET; public static final ForgeConfigSpec.ConfigValue CONFIG_BUTTON_INGAME_MENU_ROW; @@ -20,14 +20,14 @@ public class ModClientConfig static { BUILDER.push("Configs for Create: Tweaked Controllers"); - USE_CUSTOM_MAPPINGS = BUILDER.comment("Wether or not to use custom axis/button mappings, default is true") - .define("use_custom_mappings", true); + USE_CUSTOM_MAPPINGS = BUILDER.comment("Wether or not to use custom axis/button mappings, default is false") + .define("use_custom_mappings", false); TOGGLE_MOUSE_FOCUS = BUILDER.comment("Does the mouse cursor focus key acts as toggle instead of hold, default is false") .define("toggle_mouse_focus", false); AUTO_RESET_MOUSE_FOCUS = BUILDER.comment("Does the mouse cursor inputs are automatically reset when the controller item is put down, default is true") .define("auto_reset_mouse_focus", true); - AUTO_DETECT_INPUT_TYPE = BUILDER.comment("Does the mod will automatically change the controller profile dependind on what is available on your computer, default is true") - .define("auto_detect_input_type", true); + //AUTO_DETECT_INPUT_TYPE = BUILDER.comment("Does the mod will automatically change the controller profile dependind on what is available on your computer, default is true") + // .define("auto_detect_input_type", true); CONFIG_BUTTON_MAIN_MENU_ROW = BUILDER.comment("Row of the Controller Settings button in the main menu, default is 2") .defineInRange("config_button_main_menu_row", 2 , 0, 4); CONFIG_BUTTON_MAIN_MENU_OFFSET = BUILDER.comment("X Offset of the Controller Settings button in the main menu, default is 4") diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java index 5c975af..b84115e 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java @@ -34,7 +34,8 @@ public class ControlProfile public ControlProfile() { - this(ControlType.KEYBOARD_MOUSE); + //this(ControlType.KEYBOARD_MOUSE); + this(0); } public ControlProfile(ControlType type) @@ -44,6 +45,12 @@ public ControlProfile(ControlType type) Save(type); } + public ControlProfile(int id) + { + Load(0); + Save(0); + } + public void Load(ControlType type) { Load("config/gamepad_profiles/gamepad_profile_" + type.toString(), type); @@ -55,6 +62,17 @@ public void Save(ControlType type) Save("config/gamepad_profiles/gamepad_profile_" + type.toString()); } + public void Load(int id) + { + Load("config/gamepad_profiles/gamepad_profile_" + id); + UpdateProfileData(); + } + + public void Save(int id) + { + Save("config/gamepad_profiles/gamepad_profile_" + id); + } + private void CheckProfileUpgrade() { File f = new File("config/gamepad_profiles/gamepad_profile_0"); @@ -192,7 +210,7 @@ private void Load(String path, ControlType fallbackType) 'R', 'F', }; - + private void Load(String path, ControlType fallbackType, boolean hasHeader) { File f = new File(path); @@ -264,6 +282,58 @@ private void Load(String path, ControlType fallbackType, boolean hasHeader) } } + private void Load(String path) + { + File f = new File(path); + if(!f.exists() || f.isDirectory()) + { + InitDefaultLayout(ControlType.KEYBOARD_MOUSE); + return; + } + else try + { + FileInputStream file = new FileInputStream(f); + DataInputStream buf = new DataInputStream(file); + for (int i = 0; i < layout.length; i++) + { + switch (InputType.GetType(buf.readByte())) + { + case NONE: + layout[i] = null; + break; + case JOYSTICK_BUTTON: + layout[i] = new JoystickButtonInput(); + break; + case JOYSTICK_AXIS: + layout[i] = new JoystickAxisInput(); + break; + case MOUSE_BUTTON: + layout[i] = new MouseButtonInput(); + break; + case MOUSE_AXIS: + layout[i] = new MouseAxisInput(); + break; + case KEYBOARD_KEY: + layout[i] = new KeyboardInput(); + break; + default: + throw new IOException("Corrupted Profile Data!"); + } + if (layout[i] != null) layout[i].Deserialize(buf); + } + file.close(); + } + catch (IOException e) + { + CreateTweakedControllers.error("Error loading controller profile \""+path+"\"!"); + for (StackTraceElement line : e.getStackTrace()) + { + CreateTweakedControllers.error(line.toString()); + } + return; + } + } + public void Save(String path) { try @@ -277,12 +347,14 @@ public void Save(String path) f.createNewFile(); FileOutputStream file = new FileOutputStream(f); DataOutputStream buf = new DataOutputStream(file); + /* for (int i = 0; i < headerNameData.length; i++) { buf.writeByte(headerNameData[i]); } buf.writeByte(CURRENT_VERSION_MAJOR); buf.writeByte(CURRENT_VERSION_MINOR); + */ for (int i = 0; i < layout.length; i++) { if (layout[i] != null) diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java index 9e1b1e5..38c02ce 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/TweakedControlsUtil.java @@ -36,7 +36,7 @@ public static void SelectProfileType(ControlType type) private static void BackgroundUpdate() { - if (!ModClientConfig.AUTO_DETECT_INPUT_TYPE.get() || controlType.IsAdapted()) return; + //if (!ModClientConfig.AUTO_DETECT_INPUT_TYPE.get() || controlType.IsAdapted()) return; if (JoystickInputs.HasJoystick()) { controlType = ControlType.JOYSTICK; @@ -122,7 +122,7 @@ public static void Update(boolean useFullPrec) { if (ModClientConfig.USE_CUSTOM_MAPPINGS.get()) { - BackgroundUpdate(); + //BackgroundUpdate(); HandleMouseKeyBinds(); if (profile.hasJoystickInput) { diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java index 20206ec..1fb28ed 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/gui/ModControllerConfigScreen.java @@ -41,9 +41,9 @@ public class ModControllerConfigScreen extends AbstractSimiScreen private PlainRect[] triggerAxis; private int selectedInput = -1; - private ControlType selectedProfile = ControlType.KEYBOARD_MOUSE; - private boolean saved = true; private InputList inputBindsList; + //private ControlType selectedProfile = ControlType.KEYBOARD_MOUSE; + private boolean saved = true; public ModControllerConfigScreen(Screen p) { @@ -55,8 +55,8 @@ public ModControllerConfigScreen(Screen p) protected void init() { super.init(); - selectedProfile = TweakedControlsUtil.GetActiveProfileType(); - saved = true; + //selectedProfile = TweakedControlsUtil.GetActiveProfileType(); + //saved = true; Populate(); } @@ -291,18 +291,19 @@ private void Populate() inputBindsList = new InputList(this, minecraft); addWidget(inputBindsList); addRenderableWidget(new Button(this.width / 2 - 155, this.height - 29, 90, 20, CommonComponents.GUI_DONE, (p_193996_) -> { - attemptBackstep(); + //attemptBackstep(); + ScreenOpener.open(parent); })); addRenderableWidget(new ColoredButton(this.width / 2 - 155 + 100, this.height - 29, 90, 20, CreateTweakedControllers.translateDirect("gui_config_reset_all"), (p_193999_) -> { - TweakedControlsUtil.profile.InitDefaultLayout(selectedProfile); + TweakedControlsUtil.profile.InitDefaultLayout(ControlType.KEYBOARD_MOUSE); TweakedControlsUtil.profile.UpdateProfileData(); }, new Vector3f(1.0f, 0.3f, 0.3f))); addRenderableWidget(new ColoredButton(this.width / 2 - 155 + 200, this.height - 29, 40, 20, CreateTweakedControllers.translateDirect("gui_config_save"), (p_193996_) -> { - TweakedControlsUtil.profile.Save(selectedProfile); + TweakedControlsUtil.profile.Save(0); saved = true; }, new Vector3f(0.5f, 0.5f, 1.0f))); addRenderableWidget(new ColoredButton(this.width / 2 - 155 + 250, this.height - 29, 40, 20, CreateTweakedControllers.translateDirect("gui_config_load"), (p_193996_) -> { - TweakedControlsUtil.profile.Load(selectedProfile); + TweakedControlsUtil.profile.Load(0); }, new Vector3f(0.5f, 0.5f, 1.0f))); int x = (width - background.width) / 2; int y = 10; diff --git a/gradle.properties b/gradle.properties index 5a74053..4a1ad78 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ org.gradle.daemon=false maven_group = com.getItemFromBlock.create_tweaked_controllers name = create_tweaked_controllers archives_base_name = create_tweaked_controllers -version = 1.18.2-1.2.2 +version = 1.18.2-1.2.4 description = A Create Addon that adds a way of controlling contraptions using an advanced controller. Compatible with Create 0.5.1+ From 130dc3fe8139e82e78c58bdd19c105e2606f2850 Mon Sep 17 00:00:00 2001 From: getItemFromBlock <73895594+getItemFromBlock@users.noreply.github.com> Date: Sun, 28 Jan 2024 21:26:40 +0100 Subject: [PATCH 14/21] [edited] update infos in readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index babc1da..349a784 100644 --- a/README.md +++ b/README.md @@ -40,13 +40,13 @@ Here is a list of supported devices: - Mouse cursor movements - Official gamepads such as Xbox controllers or Playstation DualShock are supported - Knockoff/alternate gamepads (like a Logitech controller) should work -- Joysticks/hotas/racing wheels and other devices are supported, unless they requires some funky drivers in which case I can't do anything for you +- Joysticks/hotas/racing wheels and other devices should be supported, but I have been proven wrong multiple times already, so if it does not you can still try a gamepad/xbox controller emulator. - WiiMotes are (sadly) not supported ## Remarks -Due to a Create limitation, if a network is updated too many times it will break. This can happen if you connect an axis output to an Adjustable Chain Gearshift, for example. I might do something for this in the future. +Due to a Create limitation, if a network is updated too many times it will break. This can happen if you connect an axis output to an Adjustable Chain Gearshift, for example. This behavior has been disabled since version 1.2.3 of the mod. The joystick axis are directly read from GLFW. With most if not all gamepads, the +X axis points to the right, and the +Y axis points down. -IF YOU USE A NINTENDO CONTROLLER, YOU MIGHT WANNA TAKE A LOOK [AT THIS](https://github.com/getItemFromBlock/Create-Tweaked-Controllers/issues/1). +IF YOU USE A NINTENDO CONTROLLER, YOU MIGHT WANT TO TAKE A LOOK AT THIS: [https://github.com/getItemFromBlock/Create-Tweaked-Controllers/issues/1](https://github.com/getItemFromBlock/Create-Tweaked-Controllers/issues/1). From 8db6737e1f780f212d606a5b9eb8d50e36a9a750 Mon Sep 17 00:00:00 2001 From: Quentin Lepine Date: Fri, 1 Mar 2024 16:31:01 +0100 Subject: [PATCH 15/21] [edited] aplied mouse inputs changes from 1.20 branch, hopefully patch #11 [edited] made default keyboard controls slightly less anoying to use --- .../ModClientEvents.java | 60 +++++++++++-------- .../controller/ControlProfile.java | 6 +- .../input/MouseCursorHandler.java | 36 +++++++---- .../TweakedLinkedControllerItemRenderer.java | 11 +++- 4 files changed, 71 insertions(+), 42 deletions(-) diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java index d9ea428..36a9d7a 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/ModClientEvents.java @@ -1,11 +1,13 @@ package com.getitemfromblock.create_tweaked_controllers; import com.getitemfromblock.create_tweaked_controllers.gui.ModConfigScreen; +import com.getitemfromblock.create_tweaked_controllers.input.MouseCursorHandler; import com.getitemfromblock.create_tweaked_controllers.controller.TweakedLinkedControllerClientHandler; import net.minecraft.client.Minecraft; import net.minecraftforge.event.TickEvent.ClientTickEvent; import net.minecraftforge.event.TickEvent.Phase; +import net.minecraftforge.event.TickEvent.RenderTickEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModContainer; @@ -19,36 +21,44 @@ public class ModClientEvents { @SubscribeEvent(priority = EventPriority.HIGHEST) // We need to catch the inputs as early as possible to cancel them - public static void onTick(ClientTickEvent event) + public static void onTick(ClientTickEvent event) { - if (!isGameActive()) - return; + if (!isGameActive()) + return; - //Level world = Minecraft.getInstance().level; - if (event.phase == Phase.START || Minecraft.getInstance().screen != null) + //Level world = Minecraft.getInstance().level; + if (event.phase == Phase.START || Minecraft.getInstance().screen != null) { - TweakedLinkedControllerClientHandler.tick(); - return; - } + TweakedLinkedControllerClientHandler.tick(); + return; + } } - protected static boolean isGameActive() + @SubscribeEvent(priority = EventPriority.NORMAL) + public static void renderTick(RenderTickEvent event) // Cancel player/camera rotation just before rendering { - return !(Minecraft.getInstance().level == null || Minecraft.getInstance().player == null); - } + if (!isGameActive()) + return; + MouseCursorHandler.CancelPlayerTurn(); + } + + protected static boolean isGameActive() + { + return !(Minecraft.getInstance().level == null || Minecraft.getInstance().player == null); + } - @EventBusSubscriber(value = Dist.CLIENT, bus = EventBusSubscriber.Bus.MOD) - public static class ModBusEvents - { - @SubscribeEvent - public static void onLoadComplete(FMLLoadCompleteEvent event) - { - ModContainer container = ModList.get() - .getModContainerById(CreateTweakedControllers.ID) - .orElseThrow(() -> new IllegalStateException("CreateTweakedControllers mod container missing on LoadComplete")); - container.registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, - () -> new ConfigGuiHandler.ConfigGuiFactory( - (mc, previousScreen) -> new ModConfigScreen(previousScreen))); - } - } + @EventBusSubscriber(value = Dist.CLIENT, bus = EventBusSubscriber.Bus.MOD) + public static class ModBusEvents + { + @SubscribeEvent + public static void onLoadComplete(FMLLoadCompleteEvent event) + { + ModContainer container = ModList.get() + .getModContainerById(CreateTweakedControllers.ID) + .orElseThrow(() -> new IllegalStateException("CreateTweakedControllers mod container missing on LoadComplete")); + container.registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, + () -> new ConfigGuiHandler.ConfigGuiFactory( + (mc, previousScreen) -> new ModConfigScreen(previousScreen))); + } + } } diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java index b84115e..fe7b7f8 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/controller/ControlProfile.java @@ -110,7 +110,7 @@ private void CheckProfileUpgrade() GLFW.GLFW_KEY_Y, GLFW.GLFW_KEY_T, GLFW.GLFW_KEY_H, - GLFW.GLFW_KEY_J, + GLFW.GLFW_KEY_ENTER, GLFW.GLFW_KEY_UP, GLFW.GLFW_KEY_RIGHT, GLFW.GLFW_KEY_DOWN, @@ -133,9 +133,9 @@ public void InitDefaultKeyboardLayout() { for (int i = 0; i < 15; i++) { - if (i == 9 || i == 10) + if (i == 9) { - layout[i] = new MouseButtonInput(i - 9); + layout[i] = new MouseButtonInput(0); } else { diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java index 8617de1..89d5c95 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/input/MouseCursorHandler.java @@ -3,10 +3,11 @@ import org.lwjgl.glfw.GLFW; import com.mojang.blaze3d.Blaze3D; +import com.mojang.math.Vector3f; import net.minecraft.client.Minecraft; import net.minecraft.client.MouseHandler; -import net.minecraft.client.Options; +import net.minecraft.client.player.LocalPlayer; import net.minecraft.world.phys.Vec2; public class MouseCursorHandler @@ -15,10 +16,10 @@ public class MouseCursorHandler public static Vec2 lastPos = null; public static Vec2 vel = null; private static MouseHandler m = null; - private static Options o = null; private static double lastMouseEventTime; + private static boolean mouseLockActive = false; private static float deltaT = 0; - private static double sensitivity = 0.5; + private static Vector3f savedRot = new Vector3f(); public static Vec2 GetMousePos() { @@ -47,8 +48,8 @@ public static void InitValues() { delta = new Vec2(0, 0); vel = new Vec2(0, 0); - m = Minecraft.getInstance().mouseHandler; - o = Minecraft.getInstance().options; + Minecraft mc = Minecraft.getInstance(); + m = mc.mouseHandler; lastPos = GetMousePos(); lastMouseEventTime = Blaze3D.getTime(); } @@ -89,19 +90,32 @@ public static float GetY(boolean useVelocity) } } + // The trick of setting the mouse sensitivity to -1/3 does not work anymore... public static void ActivateMouseLock() { - if (o.sensitivity != -1/3.0) - { - sensitivity = o.sensitivity; - } - o.sensitivity = -1/3.0; + LocalPlayer player = Minecraft.getInstance().player; + savedRot.setX(player.getXRot()); + savedRot.setY(player.getYRot()); + savedRot.setZ(0); + mouseLockActive = true; lastPos = GetMousePos(); lastMouseEventTime = Blaze3D.getTime(); } public static void DeactivateMouseLock() { - o.sensitivity = sensitivity; + mouseLockActive = false; + } + + public static void CancelPlayerTurn() + { + if (!mouseLockActive) return; + LocalPlayer player = Minecraft.getInstance().player; + if (player == null) return; + player.turn((savedRot.y() - player.getYRot()) / 0.15f, (savedRot.x() - player.getXRot()) / 0.15f); + player.xBob = savedRot.x(); + player.yBob = savedRot.y(); + player.xBobO = savedRot.x(); + player.yBobO = savedRot.y(); } } diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java index e2a8440..9076a50 100644 --- a/common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/item/TweakedLinkedControllerItemRenderer.java @@ -333,11 +333,16 @@ protected static void renderJoystick(PartialItemModelRenderer renderer, PoseStac x = axis.get(0).getValue(pt); y = axis.get(1).getValue(pt); } - Vector3f axis = new Vector3f(-x, 0, -y); + Vector3f ax = new Vector3f(-x, 0, -y); double angle = x * x + y * y; angle = Math.min(Math.sqrt(angle), 1.0) * 0.6f; - axis.normalize(); - ms.mulPose(new Quaternion(axis, (float)angle, false)); + if (ax.dot(ax) < 0.001f) + { + ax = new Vector3f(-1,0,-1); + angle = 0; + } + ax.normalize(); + ms.mulPose(new Quaternion(ax, (float)angle, false)); if (renderDepression) { float depression = b * buttons.get(isRight ? 10 : 9).getValue(pt); From 3aaa48ae51ee0e71899e73778f76f664f3939a4f Mon Sep 17 00:00:00 2001 From: getItemFromBlock <73895594+getItemFromBlock@users.noreply.github.com> Date: Fri, 21 Jun 2024 21:39:33 +0200 Subject: [PATCH 16/21] [added] discord link to readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 349a784..0891092 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ A [Create](https://github.com/Creators-of-Create/Create) mod addon that let you CurseForge link [here](https://www.curseforge.com/minecraft/mc-mods/create-tweaked-controllers) Modrinth link [here](https://modrinth.com/mod/create-tweaked-controllers) +Discord link [here](https://discord.gg/3AvrppcgG3) (search for the Tweaked Controllers channel) ## Building From f3f3fe682a493dc5b6b03e38e5252d65e32fcab7 Mon Sep 17 00:00:00 2001 From: xiewuzhiying <92735961+xiewuzhiying@users.noreply.github.com> Date: Wed, 29 May 2024 16:43:16 +0800 Subject: [PATCH 17/21] Create zh_cn.json unfinished --- .../lang/zh_cn.json | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json diff --git a/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json new file mode 100644 index 0000000..f4f6760 --- /dev/null +++ b/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json @@ -0,0 +1,101 @@ +{ + "block.create_tweaked_controllers.tweaked_lectern_controller": "Tweaked Lectern Controller", + + "item.create_tweaked_controllers.tweaked_linked_controller": "Tweaked Linked Controller", + + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "TWEAKED LINKED CONTROLLER", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "可_遥控_分配给游戏控制器的_无线红石信号终端_。", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "R-Click", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "_切换_控制器。当控制器处于激活状态时,来自你的_游戏控制器_的_输入_将被接管。", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "R-Click while Sneaking", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "打开手动_配置界面_.", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "启用_绑定模式_,按下_六个按键_中的一个,即可将此按键与_无线红石信号终端的频率_绑定", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "R-Click on Lectern", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "将遥控器放在讲台上以便使用(潜行右击来取回遥控器)", + + "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "绑定模式激活", + "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "按下游戏手柄的按钮或移动摇杆以绑定它", + "create_tweaked_controllers.tweaked_linked_controller.key_bound": "该频率已绑定到%1$s", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "按键绑定:%1$s, 频率 #1", + "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "按键绑定:%1$s, 频率 #2", + + "create_tweaked_controllers.gui_tab_button": "按钮设置", + "create_tweaked_controllers.gui_tab_axis": "摇杆设置", + "create_tweaked_controllers.gui_button_refresh": "Research gamepad", + "create_tweaked_controllers.gui_gamepad_unavailable": "未找到游戏手柄", + "create_tweaked_controllers.gui_gamepad_selected": "选择游戏手柄:%1$s", + "create_tweaked_controllers.gui_gamepad_custom": "使用虚拟游戏手柄", + + "create_tweaked_controllers.gui_gamepad_buttons": "虚拟游戏手柄按钮", + "create_tweaked_controllers.gui_gamepad_axis": "虚拟游戏手柄摇杆", + + "create_tweaked_controllers.gui_gamepad_button_0": "A Button", + "create_tweaked_controllers.gui_gamepad_button_1": "B Button", + "create_tweaked_controllers.gui_gamepad_button_2": "X Button", + "create_tweaked_controllers.gui_gamepad_button_3": "Y Button", + "create_tweaked_controllers.gui_gamepad_button_4": "Left Shoulder", + "create_tweaked_controllers.gui_gamepad_button_5": "Right Shoulder", + "create_tweaked_controllers.gui_gamepad_button_6": "Back Button", + "create_tweaked_controllers.gui_gamepad_button_7": "Start Button", + "create_tweaked_controllers.gui_gamepad_button_8": "Guide Button", + "create_tweaked_controllers.gui_gamepad_button_9": "Left Joystick Click", + "create_tweaked_controllers.gui_gamepad_button_10": "Right Joystick Click", + "create_tweaked_controllers.gui_gamepad_button_11": "D-Pad Up", + "create_tweaked_controllers.gui_gamepad_button_12": "D-Pad Right", + "create_tweaked_controllers.gui_gamepad_button_13": "D-Pad Down", + "create_tweaked_controllers.gui_gamepad_button_14": "D-Pad Left", + "create_tweaked_controllers.gui_gamepad_button_playstation_0": "Cross × Button", + "create_tweaked_controllers.gui_gamepad_button_playstation_1": "Circle ○ Button", + "create_tweaked_controllers.gui_gamepad_button_playstation_2": "Square □ Button", + "create_tweaked_controllers.gui_gamepad_button_playstation_3": "Triangle △ Button", + + "create_tweaked_controllers.gui_gamepad_axis_0": "Left +X Axis", + "create_tweaked_controllers.gui_gamepad_axis_1": "Left -X Axis", + "create_tweaked_controllers.gui_gamepad_axis_2": "Left +Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_3": "Left -Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_4": "Right +X Axis", + "create_tweaked_controllers.gui_gamepad_axis_5": "Right -X Axis", + "create_tweaked_controllers.gui_gamepad_axis_6": "Right +Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_7": "Right -Y Axis", + "create_tweaked_controllers.gui_gamepad_axis_8": "Left Trigger Axis", + "create_tweaked_controllers.gui_gamepad_axis_9": "Right Trigger Axis", + + "create_tweaked_controllers.gui_input_joystick_axis": "Joystick Axis %1$s", + "create_tweaked_controllers.gui_input_joystick_button": "Joystick Button %1$s", + "create_tweaked_controllers.gui_input_keyboard": "%1$s Key", + "create_tweaked_controllers.gui_input_cursor_vel": "Cursor %1$s Velocity", + "create_tweaked_controllers.gui_input_cursor_pos": "Cursor %1$s Position", + "create_tweaked_controllers.gui_input_mouse": "Mouse Button %1$s", + + "create_tweaked_controllers.gui_config_reset": "重置", + "create_tweaked_controllers.gui_config_config": "设置", + "create_tweaked_controllers.gui_config_reset_all": "全部重置", + "create_tweaked_controllers.gui_config_load": "加载", + "create_tweaked_controllers.gui_config_save": "保存", + "create_tweaked_controllers.gui_config_none": "未绑定", + "create_tweaked_controllers.gui_config_invert": "反转按钮输出值", + "create_tweaked_controllers.gui_config_lower": "下摇杆输入绑定", + "create_tweaked_controllers.gui_config_upper": "上摇杆输入绑定", + "create_tweaked_controllers.gui_config_isyaxis": "使用Y代替X输入?", + "create_tweaked_controllers.gui_config_usevelocity": "使用速度代替位置?", + + "create_tweaked_controllers.gui_output_button": "输出值作为按钮:", + "create_tweaked_controllers.gui_output_axis": "输出值作为摇杆:", + "create_tweaked_controllers.gui_input_axis": "原始摇杆输入值:", + + "create_tweaked_controllers.keybind.mouse_focus" : "Grab mouse movements", + "create_tweaked_controllers.keybind.mouse_reset" : "Center mouse cursor", + "create_tweaked_controllers.keybind.controller_exit" : "退出控制器", + + "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", + + "create_tweaked_controllers.menu.return": "返回菜单", + "create_tweaked_controllers.menu.issues": "汇报问题", + "create_tweaked_controllers.menu.wiki": "在线 Wiki", + "create_tweaked_controllers.menu.config_general": "常规设置", + "create_tweaked_controllers.menu.config_controller": "控制器设置", + "create_tweaked_controllers.menu.config_disabled": "请在常规设置中启用自定义映射", + + "_": "EOF" +} From 3ea1578f0e31013f8a2c05fc6d14c45116eced6f Mon Sep 17 00:00:00 2001 From: xiewuzhiying <92735961+xiewuzhiying@users.noreply.github.com> Date: Mon, 15 Jul 2024 23:27:58 +0800 Subject: [PATCH 18/21] Update zh_cn.json --- .../lang/zh_cn.json | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json index f4f6760..b4111e6 100644 --- a/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json +++ b/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json @@ -5,68 +5,68 @@ "item.create_tweaked_controllers.tweaked_linked_controller.tooltip": "TWEAKED LINKED CONTROLLER", "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.summary": "可_遥控_分配给游戏控制器的_无线红石信号终端_。", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "R-Click", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition1": "右击", "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour1": "_切换_控制器。当控制器处于激活状态时,来自你的_游戏控制器_的_输入_将被接管。", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "R-Click while Sneaking", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition2": "潜行时右击", "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour2": "打开手动_配置界面_.", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "R-Click on Redstone Link Receiver", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition3": "右击接收模式无限红石信号终端", "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour3": "启用_绑定模式_,按下_六个按键_中的一个,即可将此按键与_无线红石信号终端的频率_绑定", - "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "R-Click on Lectern", + "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.condition4": "右键讲台", "item.create_tweaked_controllers.tweaked_linked_controller.tooltip.behaviour4": "将遥控器放在讲台上以便使用(潜行右击来取回遥控器)", "create_tweaked_controllers.tweaked_linked_controller.bind_mode": "绑定模式激活", - "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "按下游戏手柄的按钮或移动摇杆以绑定它", + "create_tweaked_controllers.tweaked_linked_controller.press_keybind": "按下游戏手柄的按键或移动摇杆以绑定它", "create_tweaked_controllers.tweaked_linked_controller.key_bound": "该频率已绑定到%1$s", "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_1": "按键绑定:%1$s, 频率 #1", "create_tweaked_controllers.tweaked_linked_controller.frequency_slot_2": "按键绑定:%1$s, 频率 #2", - "create_tweaked_controllers.gui_tab_button": "按钮设置", + "create_tweaked_controllers.gui_tab_button": "按键设置", "create_tweaked_controllers.gui_tab_axis": "摇杆设置", - "create_tweaked_controllers.gui_button_refresh": "Research gamepad", + "create_tweaked_controllers.gui_button_refresh": "重新寻找游戏手柄", "create_tweaked_controllers.gui_gamepad_unavailable": "未找到游戏手柄", "create_tweaked_controllers.gui_gamepad_selected": "选择游戏手柄:%1$s", "create_tweaked_controllers.gui_gamepad_custom": "使用虚拟游戏手柄", - "create_tweaked_controllers.gui_gamepad_buttons": "虚拟游戏手柄按钮", + "create_tweaked_controllers.gui_gamepad_buttons": "虚拟游戏手柄按键", "create_tweaked_controllers.gui_gamepad_axis": "虚拟游戏手柄摇杆", - "create_tweaked_controllers.gui_gamepad_button_0": "A Button", - "create_tweaked_controllers.gui_gamepad_button_1": "B Button", - "create_tweaked_controllers.gui_gamepad_button_2": "X Button", - "create_tweaked_controllers.gui_gamepad_button_3": "Y Button", - "create_tweaked_controllers.gui_gamepad_button_4": "Left Shoulder", - "create_tweaked_controllers.gui_gamepad_button_5": "Right Shoulder", - "create_tweaked_controllers.gui_gamepad_button_6": "Back Button", - "create_tweaked_controllers.gui_gamepad_button_7": "Start Button", - "create_tweaked_controllers.gui_gamepad_button_8": "Guide Button", - "create_tweaked_controllers.gui_gamepad_button_9": "Left Joystick Click", - "create_tweaked_controllers.gui_gamepad_button_10": "Right Joystick Click", - "create_tweaked_controllers.gui_gamepad_button_11": "D-Pad Up", - "create_tweaked_controllers.gui_gamepad_button_12": "D-Pad Right", - "create_tweaked_controllers.gui_gamepad_button_13": "D-Pad Down", - "create_tweaked_controllers.gui_gamepad_button_14": "D-Pad Left", - "create_tweaked_controllers.gui_gamepad_button_playstation_0": "Cross × Button", - "create_tweaked_controllers.gui_gamepad_button_playstation_1": "Circle ○ Button", - "create_tweaked_controllers.gui_gamepad_button_playstation_2": "Square □ Button", - "create_tweaked_controllers.gui_gamepad_button_playstation_3": "Triangle △ Button", + "create_tweaked_controllers.gui_gamepad_button_0": "A 键", + "create_tweaked_controllers.gui_gamepad_button_1": "B 键", + "create_tweaked_controllers.gui_gamepad_button_2": "X 键", + "create_tweaked_controllers.gui_gamepad_button_3": "Y 键", + "create_tweaked_controllers.gui_gamepad_button_4": "左缓冲键", + "create_tweaked_controllers.gui_gamepad_button_5": "左缓冲键", + "create_tweaked_controllers.gui_gamepad_button_6": "返回键", + "create_tweaked_controllers.gui_gamepad_button_7": "开始键", + "create_tweaked_controllers.gui_gamepad_button_8": "菜单键", + "create_tweaked_controllers.gui_gamepad_button_9": "按下左摇杆", + "create_tweaked_controllers.gui_gamepad_button_10": "按下右摇杆", + "create_tweaked_controllers.gui_gamepad_button_11": "上方向键", + "create_tweaked_controllers.gui_gamepad_button_12": "右方向键", + "create_tweaked_controllers.gui_gamepad_button_13": "下方向键", + "create_tweaked_controllers.gui_gamepad_button_14": "左方向键", + "create_tweaked_controllers.gui_gamepad_button_playstation_0": "叉号 × 键", + "create_tweaked_controllers.gui_gamepad_button_playstation_1": "圆形 ○ 键", + "create_tweaked_controllers.gui_gamepad_button_playstation_2": "方块 □ 键", + "create_tweaked_controllers.gui_gamepad_button_playstation_3": "三角 △ 键", - "create_tweaked_controllers.gui_gamepad_axis_0": "Left +X Axis", - "create_tweaked_controllers.gui_gamepad_axis_1": "Left -X Axis", - "create_tweaked_controllers.gui_gamepad_axis_2": "Left +Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_3": "Left -Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_4": "Right +X Axis", - "create_tweaked_controllers.gui_gamepad_axis_5": "Right -X Axis", - "create_tweaked_controllers.gui_gamepad_axis_6": "Right +Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_7": "Right -Y Axis", - "create_tweaked_controllers.gui_gamepad_axis_8": "Left Trigger Axis", - "create_tweaked_controllers.gui_gamepad_axis_9": "Right Trigger Axis", + "create_tweaked_controllers.gui_gamepad_axis_0": "左摇杆向右", + "create_tweaked_controllers.gui_gamepad_axis_1": "左摇杆向左", + "create_tweaked_controllers.gui_gamepad_axis_2": "左摇杆向下", + "create_tweaked_controllers.gui_gamepad_axis_3": "左摇杆向上", + "create_tweaked_controllers.gui_gamepad_axis_4": "右摇杆向右", + "create_tweaked_controllers.gui_gamepad_axis_5": "右摇杆向左", + "create_tweaked_controllers.gui_gamepad_axis_6": "右摇杆向下", + "create_tweaked_controllers.gui_gamepad_axis_7": "右摇杆向上", + "create_tweaked_controllers.gui_gamepad_axis_8": "左扳机键", + "create_tweaked_controllers.gui_gamepad_axis_9": "右扳机键", "create_tweaked_controllers.gui_input_joystick_axis": "Joystick Axis %1$s", "create_tweaked_controllers.gui_input_joystick_button": "Joystick Button %1$s", "create_tweaked_controllers.gui_input_keyboard": "%1$s Key", - "create_tweaked_controllers.gui_input_cursor_vel": "Cursor %1$s Velocity", - "create_tweaked_controllers.gui_input_cursor_pos": "Cursor %1$s Position", - "create_tweaked_controllers.gui_input_mouse": "Mouse Button %1$s", + "create_tweaked_controllers.gui_input_cursor_vel": "指针 %1$s 速度", + "create_tweaked_controllers.gui_input_cursor_pos": "指针 %1$s 位置", + "create_tweaked_controllers.gui_input_mouse": "鼠标按键 %1$s", "create_tweaked_controllers.gui_config_reset": "重置", "create_tweaked_controllers.gui_config_config": "设置", @@ -74,18 +74,18 @@ "create_tweaked_controllers.gui_config_load": "加载", "create_tweaked_controllers.gui_config_save": "保存", "create_tweaked_controllers.gui_config_none": "未绑定", - "create_tweaked_controllers.gui_config_invert": "反转按钮输出值", + "create_tweaked_controllers.gui_config_invert": "反转按键输出值", "create_tweaked_controllers.gui_config_lower": "下摇杆输入绑定", "create_tweaked_controllers.gui_config_upper": "上摇杆输入绑定", "create_tweaked_controllers.gui_config_isyaxis": "使用Y代替X输入?", "create_tweaked_controllers.gui_config_usevelocity": "使用速度代替位置?", - "create_tweaked_controllers.gui_output_button": "输出值作为按钮:", + "create_tweaked_controllers.gui_output_button": "输出值作为按键:", "create_tweaked_controllers.gui_output_axis": "输出值作为摇杆:", "create_tweaked_controllers.gui_input_axis": "原始摇杆输入值:", - "create_tweaked_controllers.keybind.mouse_focus" : "Grab mouse movements", - "create_tweaked_controllers.keybind.mouse_reset" : "Center mouse cursor", + "create_tweaked_controllers.keybind.mouse_focus" : "捕获鼠标移动", + "create_tweaked_controllers.keybind.mouse_reset" : "中置鼠标指针", "create_tweaked_controllers.keybind.controller_exit" : "退出控制器", "itemGroup.create_tweaked_controllers.base": "Create: Tweaked Controllers", From f1a55e5c7271c896efe30e202c555af52a244d00 Mon Sep 17 00:00:00 2001 From: xiewuzhiying <92735961+xiewuzhiying@users.noreply.github.com> Date: Mon, 15 Jul 2024 23:36:37 +0800 Subject: [PATCH 19/21] Update zh_cn.json --- .../assets/create_tweaked_controllers/lang/zh_cn.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json b/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json index b4111e6..9772f4f 100644 --- a/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json +++ b/common/src/main/resources/assets/create_tweaked_controllers/lang/zh_cn.json @@ -61,9 +61,9 @@ "create_tweaked_controllers.gui_gamepad_axis_8": "左扳机键", "create_tweaked_controllers.gui_gamepad_axis_9": "右扳机键", - "create_tweaked_controllers.gui_input_joystick_axis": "Joystick Axis %1$s", - "create_tweaked_controllers.gui_input_joystick_button": "Joystick Button %1$s", - "create_tweaked_controllers.gui_input_keyboard": "%1$s Key", + "create_tweaked_controllers.gui_input_joystick_axis": "移动摇杆 %1$s", + "create_tweaked_controllers.gui_input_joystick_button": "按下摇杆 %1$s", + "create_tweaked_controllers.gui_input_keyboard": "%1$s 按键", "create_tweaked_controllers.gui_input_cursor_vel": "指针 %1$s 速度", "create_tweaked_controllers.gui_input_cursor_pos": "指针 %1$s 位置", "create_tweaked_controllers.gui_input_mouse": "鼠标按键 %1$s", From aa410eacbd14108674963aea21b28ebbf12f8b06 Mon Sep 17 00:00:00 2001 From: Quentin Lepine Date: Wed, 21 Aug 2024 21:43:11 +0200 Subject: [PATCH 20/21] [+] readded mixins for create's tally system --- .../mixin/create/KineticBlockEntityMixin.java | 18 ++++++++++++++++++ .../create_tweaked_controllers.mixins.json | 15 +++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 common/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java create mode 100644 common/src/main/resources/create_tweaked_controllers.mixins.json diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java b/common/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java new file mode 100644 index 0000000..7e3a8d0 --- /dev/null +++ b/common/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java @@ -0,0 +1,18 @@ +package com.getitemfromblock.create_tweaked_controllers.mixin.create; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; + +@Mixin(KineticBlockEntity.class) +public class KineticBlockEntityMixin +{ + @Inject(method = "getFlickerScore", at = @At("HEAD"), cancellable = true, remap = false) + private void getFlickerScoreMixin(CallbackInfoReturnable callback) + { + callback.setReturnValue(0); + } +} \ No newline at end of file diff --git a/common/src/main/resources/create_tweaked_controllers.mixins.json b/common/src/main/resources/create_tweaked_controllers.mixins.json new file mode 100644 index 0000000..b18aeb1 --- /dev/null +++ b/common/src/main/resources/create_tweaked_controllers.mixins.json @@ -0,0 +1,15 @@ +{ + "required": true, + "package": "com.getitemfromblock.create_tweaked_controllers.mixin", + "compatibilityLevel": "JAVA_17", + "mixins": [ + "create.KineticBlockEntityMixin" + ], + "client": [ + ], + "injectors": + { + "defaultRequire": 1 + }, + "minVersion": "0.8" +} \ No newline at end of file From 1e909a7dd26995c8c735bafdbd4ee8c91b422387 Mon Sep 17 00:00:00 2001 From: getItemFromBlock Date: Fri, 3 Jan 2025 19:34:13 +0100 Subject: [PATCH 21/21] I should have pushed this a while ago Tried fixing the build scripts, but I cannot get gradle to include the compiled code in the jar --- build.gradle | 29 ++++- common/build.gradle | 1 + fabric/build.gradle | 31 ++++-- fabric/src/main/resources/fabric.mod.json | 13 ++- forge/build.gradle | 37 +++++-- .../CreateTweakedControllersForge.java | 101 +++++++++++++++++- .../mixin/create/KineticBlockEntityMixin.java | 0 forge/src/main/resources/META-INF/mods.toml | 13 +-- .../create_tweaked_controllers.mixins.json | 0 gradle.properties | 27 ++--- settings.gradle.kts | 5 +- 11 files changed, 205 insertions(+), 52 deletions(-) rename {common => forge}/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java (100%) rename {common => forge}/src/main/resources/create_tweaked_controllers.mixins.json (100%) diff --git a/build.gradle b/build.gradle index d1c2f96..9f3a0c2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,18 @@ +buildscript { + ext.kotlin_version = '2.1.0' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} plugins { id 'java' id 'architectury-plugin' version '3.+' id 'dev.architectury.loom' version '1.5.+' apply false } +apply plugin: 'kotlin' // Configure architecture plugin architectury { @@ -46,13 +56,13 @@ allprojects { apply plugin: 'architectury-plugin' apply plugin: 'maven-publish' - archivesBaseName = rootProject.property('archives_base_name').toString() - version = rootProject.property('version').toString() - group = rootProject.property('maven_group').toString() + archivesBaseName = "${rootProject.archives_base_name}-${minecraft_version}" + version = rootProject.version + group = rootProject.maven_group // Format mod version - def buildNumber = System.getenv('GITHUB_RUN_NUMBER') - version = "${rootProject.version}+${rootProject.name}-${rootProject.minecraft_version}" + (buildNumber != null ? "-${buildNumber}" : "") + // def buildNumber = System.getenv('GITHUB_RUN_NUMBER') + // version = "${rootProject.version}+${rootProject.name}-${rootProject.minecraft_version}" + (buildNumber != null ? "-${buildNumber}" : "") repositories { // Add repositories here (optional) @@ -66,4 +76,13 @@ allprojects { java { withSourcesJar() } +} +repositories { + mavenCentral() +} +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" +} +kotlin { + jvmToolchain(17) } \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle index eb3b2f4..fff199f 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -19,6 +19,7 @@ dependencies { // Remove the next line if you don't want to depend on the API modApi("dev.architectury:architectury:${rootProject.architectury_version}") + modCompileOnly("com.simibubi.create:create-fabric-${rootProject.minecraft_version}:${rootProject.create_fabric_version}+mc${rootProject.minecraft_version}") // CC Restitched diff --git a/fabric/build.gradle b/fabric/build.gradle index 9ab3481..b362ac4 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" + id "com.github.johnrengelman.shadow" version "${shadow_plugin_version}" } architectury { @@ -12,8 +12,8 @@ configurations { common shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. compileClasspath.extendsFrom common - runtimeClasspath.extendsFrom common - developmentFabric.extendsFrom common + runtimeClasspath.extendsFrom common + developmentFabric.extendsFrom common } repositories { @@ -47,14 +47,27 @@ dependencies { } processResources { - inputs.property "version", project.version + inputs.property "mod_id", "${mod_id}" + inputs.property "version", "${version}" + inputs.property "name", "${name}" + inputs.property "description", "${description}" + inputs.property "authors", "${authors}" + inputs.property "github_project", "${github_project}" + inputs.property "fabric_loader_version", "${fabric_loader_version}" + inputs.property "minecraft_version", "${minecraft_version}" + inputs.property "architectury_version", "${architectury_version}" filesMatching("fabric.mod.json") { - expand "version": project.version - expand "name": project.name - expand "archives_base_name": project.archives_base_name - expand "description": project.description - expand "github_project": project.github_project + expand( "mod_id": "${mod_id}", + "version": "${version}", + "name": "${name}", + "description": "${description}", + "authors": "${authors}", + "github_project": project.github_project, + "fabric_loader_version": "${fabric_loader_version}", + "minecraft_version": "${minecraft_version}", + "architectury_version": "${architectury_version}" + ) } } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index d298129..2d138f3 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -1,11 +1,11 @@ { "schemaVersion": 1, - "id": "${archives_base_name}", + "id": "${mod_id}", "version": "${version}", "name": "${name}", "description": "${description}", "authors": [ - "getItemFromBlock" + "${authors}" ], "contact": { "sources": "https://github.com/${github_project}/" @@ -15,14 +15,17 @@ "environment": "*", "entrypoints": { "main": [ - "com.getitemfromblock.create_tweaked_controller.fabric.TextBlockFabric" + "com.getitemfromblock.create_tweaked_controllers.fabric.TextBlockFabric" ], "client": [ "io.github.slimeymc.text_block.fabric.TextBlockClientFabric" ] }, + "mixins": [ + "create_tweaked_controllers.mixins.json" + ], "depends": { - "minecraft": "1.18.2", - "fabricloader": ">=0.14.21" + "minecraft": "${minecraft_version}", + "fabricloader": ">=${fabric_loader_version}" } } \ No newline at end of file diff --git a/forge/build.gradle b/forge/build.gradle index 873156f..09591d5 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" + id "com.github.johnrengelman.shadow" version "${shadow_plugin_version}" } architectury { @@ -11,8 +11,8 @@ configurations { common shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. compileClasspath.extendsFrom common - runtimeClasspath.extendsFrom common - developmentForge.extendsFrom common + runtimeClasspath.extendsFrom common + developmentForge.extendsFrom common } repositories { @@ -26,6 +26,11 @@ repositories { } maven { url = uri("https://thedarkcolour.github.io/KotlinForForge/") } } + maven { + // JEI + name 'Progwm16 maven' + url 'https://dvs1.progwml6.com/files/maven' + } } dependencies { @@ -37,7 +42,8 @@ dependencies { shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } // Create - modImplementation("com.simibubi.create:create-${rootProject.minecraft_version}:${rootProject.create_forge_version}") { transitive = false } + modImplementation("com.simibubi.create:create-${rootProject.minecraft_version}:${rootProject.create_forge_version}:slim") { transitive = false } + modImplementation("com.jozufozu.flywheel:flywheel-forge-${rootProject.minecraft_version}:${rootProject.flywheel_version_forge}") // CC Tweaked modRuntimeOnly("maven.modrinth:cc-tweaked:${rootProject.minecraft_version}-${rootProject.cc_tweaked_version}") @@ -46,14 +52,31 @@ dependencies { modRuntimeOnly("curse.maven:controllable-317269:${rootProject.controllable_version}") // Recipe viewer - modLocalRuntime("mezz.jei:jei-${rootProject.minecraft_version}:${rootProject.jei_version}") + modLocalRuntime("mezz.jei:jei-${rootProject.minecraft_version}-forge:${rootProject.jei_version}") } processResources { - inputs.property "version", project.version + inputs.property "mod_id", "${mod_id}" + inputs.property "version", "${version}" + inputs.property "name", "${name}" + inputs.property "description", "${description}" + inputs.property "authors", "${authors}" + inputs.property "github_project", "${github_project}" + inputs.property "forge_range", "${forge_range}" + inputs.property "create_range", "${create_range}" + inputs.property "minecraft_range", "${minecraft_range}" filesMatching("META-INF/mods.toml") { - expand "version": project.version + expand( "mod_id": "${mod_id}", + "version": "${version}", + "name": "${name}", + "description": "${description}", + "authors": "${authors}", + "github_project": project.github_project, + "forge_range": "${forge_range}", + "create_range": "${create_range}", + "minecraft_range": "${minecraft_range}" + ) } } diff --git a/forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java b/forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java index 407f157..1b23fdb 100644 --- a/forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java +++ b/forge/src/main/com/getitemfromblock/create_tweaked_controllers/CreateTweakedControllersForge.java @@ -1,7 +1,98 @@ -package org.example; +package com.getitemfromblock.create_tweaked_controllers; -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); +import com.getitemfromblock.create_tweaked_controllers.block.ModBlocks; +import com.getitemfromblock.create_tweaked_controllers.compat.ComputerCraft.ModComputerCraftProxy; +import com.getitemfromblock.create_tweaked_controllers.config.ModConfigs; +import com.getitemfromblock.create_tweaked_controllers.gui.ModMenuTypes; +import com.getitemfromblock.create_tweaked_controllers.item.ModItems; +import com.getitemfromblock.create_tweaked_controllers.packet.ModPackets; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.data.CreateRegistrate; +import com.simibubi.create.foundation.utility.Components; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.LangBuilder; + +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.DistExecutor; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; + +// The value here should match an entry in the META-INF/mods.toml file +@Mod(CreateTweakedControllers.ID) +@Mod.EventBusSubscriber +public class CreateTweakedControllers +{ + public static final String ID = "create_tweaked_controllers"; + public static final String NAME = "Create: Tweaked Controllers"; + + private static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID); + + public CreateTweakedControllers() + { + ModLoadingContext modLoadingContext = ModLoadingContext.get(); + IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus(); + IEventBus forgeEventBus = MinecraftForge.EVENT_BUS; + forgeEventBus.register(this); + eventBus.addListener(CreateTweakedControllers::init); + REGISTRATE.registerEventListeners(eventBus); + ModTab.register(); + ModItems.register(); + ModBlocks.register(); + ModBlockEntityTypes.register(); + ModMenuTypes.register(); + ModConfigs.register(modLoadingContext); + DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ModClientStuff.onConstructor(eventBus, forgeEventBus)); + ModComputerCraftProxy.register(); + } + + public static void init(final FMLCommonSetupEvent event) + { + ModPackets.registerPackets(); + } + + public static CreateRegistrate registrate() + { + return REGISTRATE; + } + + public static ResourceLocation asResource(String path) + { + return new ResourceLocation(ID, path); + } + + public static MutableComponent translateDirect(String key, Object... args) + { + return Components.translatable(CreateTweakedControllers.ID + "." + key, Lang.resolveBuilders(args)); + } + + public static MutableComponent translateDirectRaw(String key, Object... args) + { + return Components.translatable(key, Lang.resolveBuilders(args)); + } + + public static LangBuilder builder() + { + return new LangBuilder(CreateTweakedControllers.ID); + } + + public static LangBuilder translate(String langKey, Object... args) + { + return builder().translate(langKey, args); + } + + public static void log(String message) + { + Create.LOGGER.info(message); + } + + public static void error(String message) + { + Create.LOGGER.error(message); } -} \ No newline at end of file +} diff --git a/common/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java b/forge/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java similarity index 100% rename from common/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java rename to forge/src/main/com/getitemfromblock/create_tweaked_controllers/mixin/create/KineticBlockEntityMixin.java diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index a1060e7..6d33bf2 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -1,19 +1,16 @@ modLoader = "javafml" -loaderVersion = "${loader_range}" +loaderVersion = "${forge_range}" license = "MIT" issueTrackerURL = "https://github.com/${github_project}/issues" [[mods]] -modId = "create_tweaked_controllers" +modId = "${mod_id}" version = "${version}" -displayName = "Create: Tweaked Controllers" +displayName = "${name}" displayURL="https://github.com/${github_project}" logoFile = "logo.png" -authors = "getItemFromBlock" -description = ''' -A Create Addon that adds a way of controlling contraptions using an advanced controller. -Compatible with Create 0.5.1+ -''' +authors = "${authors}" +description = "${description}" [[dependencies.create_tweaked_controllers]] modId = "forge" diff --git a/common/src/main/resources/create_tweaked_controllers.mixins.json b/forge/src/main/resources/create_tweaked_controllers.mixins.json similarity index 100% rename from common/src/main/resources/create_tweaked_controllers.mixins.json rename to forge/src/main/resources/create_tweaked_controllers.mixins.json diff --git a/gradle.properties b/gradle.properties index 4a1ad78..6e63206 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,21 +1,24 @@ # Sets default memory used for gradle commands. Can be overridden by user or command line properties. # This is required to provide enough memory for the Minecraft decompilation process. -org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false +org.gradle.jvmargs = -Xmx3G +org.gradle.daemon = false maven_group = com.getItemFromBlock.create_tweaked_controllers -name = create_tweaked_controllers +name = Create: Tweaked Controllers archives_base_name = create_tweaked_controllers -version = 1.18.2-1.2.4 +mod_id = create_tweaked_controllers +version = 1.2.4 +authors = getItemFromBlock -description = A Create Addon that adds a way of controlling contraptions using an advanced controller. Compatible with Create 0.5.1+ +description = A Create Addon that adds a way of controlling contraptions using an advanced controller minecraft_version = 1.18.2 -minecraft_range = [1.18.2,1.19) -# what this is ^ +minecraft_range = [1.18.2,1.19) architectury_version = 4.11.93 -enabled_platforms=fabric,forge +enabled_platforms = fabric,forge + +shadow_plugin_version = 7.1.2 # Fabric fabric_loader_version = 0.15.7 @@ -23,18 +26,18 @@ fabric_api_version = 0.77.0+1.18.2 # Forge forge_version = 40.2.17 -loader_range = [40,) -forge_range = [40.2.17,) +forge_range = [40,) create_fabric_version = 0.5.1-f-build.1415 create_forge_version = 0.5.1.f-332 -flywheel_version = 0.6.9-101 +flywheel_version_forge = 0.6.10-105 +flywheel_version_fabric = 0.6.10-39 registrate_version = MC1.18.2-1.1.3 create_range = [0.5.1.a,) -jei_version = 9.7.0.209 +jei_version = 10.2.1.283 emi_version = 0.7.3 cc_restitched_version = 1.100.8 diff --git a/settings.gradle.kts b/settings.gradle.kts index 7710790..9fde613 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,11 +9,14 @@ pluginManagement { url = uri("https://maven.architectury.dev/") } maven { - name = "forgemc" + name = "forge" url = uri("https://maven.minecraftforge.net/") } gradlePluginPortal() } + plugins { + kotlin("jvm") version "2.1.0" + } } include("common")