From 31c1026e801a4b7f877350e26db4fd5ce379a4d2 Mon Sep 17 00:00:00 2001 From: pietru Date: Fri, 29 Mar 2024 18:36:48 +0100 Subject: [PATCH] first commit --- .gitignore | 46 ++++ build.gradle | 150 +++++++++++ gradle.properties | 13 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 249 ++++++++++++++++++ gradlew.bat | 92 +++++++ jitpack.yml | 2 + license.txt | 2 + mods/resource-loader-1.0.2.jar | Bin 0 -> 6285 bytes readme.md | 20 ++ settings.gradle | 1 + .../java/net/pietru/omni_power/OmniPower.java | 27 ++ .../pietru/omni_power/blockevents/Power.java | 113 ++++++++ .../block_events_cable_merger_off.json | 47 ++++ .../block_events_cable_merger_on.json | 47 ++++ .../block_events_cable_merger_slim_off.json | 47 ++++ .../block_events_cable_merger_slim_on.json | 47 ++++ .../block_events_door_cube_off.json | 50 ++++ .../block_events_door_cube_on.json | 50 ++++ .../block_events_lever_blue_off.json | 50 ++++ .../block_events_lever_blue_on.json | 50 ++++ .../block_events_lever_red_off.json | 50 ++++ .../block_events_lever_red_on.json | 50 ++++ .../assets/omni_power/blocks/cable.json | 48 ++++ .../omni_power/blocks/cable_merger.json | 53 ++++ .../assets/omni_power/blocks/door_cube.json | 32 +++ .../assets/omni_power/blocks/lever.json | 54 ++++ src/main/resources/assets/omni_power/icon.png | Bin 0 -> 180 bytes .../models/blocks/model_cable_blue.json | 20 ++ .../models/blocks/model_cable_blue_slim.json | 121 +++++++++ .../models/blocks/model_cable_merger.json | 36 +++ .../blocks/model_cable_merger_powered.json | 36 +++ .../blocks/model_cable_merger_slim.json | 121 +++++++++ .../model_cable_merger_slim_powered.json | 121 +++++++++ .../models/blocks/model_cable_red.json | 20 ++ .../models/blocks/model_cable_red_slim.json | 121 +++++++++ .../models/blocks/model_door_cube.json | 20 ++ .../blocks/model_door_cube_powered.json | 20 ++ .../models/blocks/model_lever_blue.json | 20 ++ .../blocks/model_lever_blue_powered.json | 20 ++ .../models/blocks/model_lever_red.json | 20 ++ .../blocks/model_lever_red_powered.json | 20 ++ .../omni_power/sounds/blocks/drop_004.ogg | Bin 0 -> 7230 bytes .../omni_power/sounds/blocks/maximize_006.ogg | Bin 0 -> 11618 bytes .../omni_power/sounds/blocks/minimize_006.ogg | Bin 0 -> 11292 bytes .../omni_power/sounds/blocks/select_006.ogg | Bin 0 -> 8101 bytes .../omni_power/sounds/blocks/switch_005.ogg | Bin 0 -> 7814 bytes .../omni_power/sounds/blocks/switch_006.ogg | Bin 0 -> 7873 bytes .../omni_power/textures/blocks/cable_blue.png | Bin 0 -> 7086 bytes .../textures/blocks/cable_merger.png | Bin 0 -> 567 bytes .../textures/blocks/cable_merger_2.png | Bin 0 -> 579 bytes .../omni_power/textures/blocks/cable_red.png | Bin 0 -> 4783 bytes .../omni_power/textures/blocks/door.png | Bin 0 -> 7017 bytes .../textures/blocks/door_powered.png | Bin 0 -> 7017 bytes .../omni_power/textures/blocks/emergency.png | Bin 0 -> 4760 bytes .../omni_power/textures/blocks/flat.png | Bin 0 -> 4689 bytes .../textures/blocks/lever_off_blue.png | Bin 0 -> 551 bytes .../textures/blocks/lever_off_red.png | Bin 0 -> 551 bytes .../textures/blocks/lever_on_blue.png | Bin 0 -> 555 bytes .../textures/blocks/lever_on_red.png | Bin 0 -> 555 bytes src/main/resources/omni_power.mixins.json | 11 + src/main/resources/quilt.mod.json | 48 ++++ 63 files changed, 2172 insertions(+) create mode 100644 .gitignore create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 jitpack.yml create mode 100644 license.txt create mode 100644 mods/resource-loader-1.0.2.jar create mode 100644 readme.md create mode 100644 settings.gradle create mode 100644 src/main/java/net/pietru/omni_power/OmniPower.java create mode 100644 src/main/java/net/pietru/omni_power/blockevents/Power.java create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_cable_merger_off.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_cable_merger_on.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_off.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_on.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_door_cube_off.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_door_cube_on.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_lever_blue_off.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_lever_blue_on.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_lever_red_off.json create mode 100644 src/main/resources/assets/omni_power/block_events/block_events_lever_red_on.json create mode 100644 src/main/resources/assets/omni_power/blocks/cable.json create mode 100644 src/main/resources/assets/omni_power/blocks/cable_merger.json create mode 100644 src/main/resources/assets/omni_power/blocks/door_cube.json create mode 100644 src/main/resources/assets/omni_power/blocks/lever.json create mode 100644 src/main/resources/assets/omni_power/icon.png create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_blue.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_blue_slim.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_merger.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_merger_powered.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim_powered.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_red.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_cable_red_slim.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_door_cube.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_door_cube_powered.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_lever_blue.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_lever_blue_powered.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_lever_red.json create mode 100644 src/main/resources/assets/omni_power/models/blocks/model_lever_red_powered.json create mode 100644 src/main/resources/assets/omni_power/sounds/blocks/drop_004.ogg create mode 100644 src/main/resources/assets/omni_power/sounds/blocks/maximize_006.ogg create mode 100644 src/main/resources/assets/omni_power/sounds/blocks/minimize_006.ogg create mode 100644 src/main/resources/assets/omni_power/sounds/blocks/select_006.ogg create mode 100644 src/main/resources/assets/omni_power/sounds/blocks/switch_005.ogg create mode 100644 src/main/resources/assets/omni_power/sounds/blocks/switch_006.ogg create mode 100644 src/main/resources/assets/omni_power/textures/blocks/cable_blue.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/cable_merger.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/cable_merger_2.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/cable_red.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/door.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/door_powered.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/emergency.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/flat.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/lever_off_blue.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/lever_off_red.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/lever_on_blue.png create mode 100644 src/main/resources/assets/omni_power/textures/blocks/lever_on_red.png create mode 100644 src/main/resources/omni_power.mixins.json create mode 100644 src/main/resources/quilt.mod.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b5a6b18 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +.gradle/ +run/ + +build/ +bin/ + +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/ +*.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/ + +### IntelliJ IDEA ### +.idea/ + +### Mac OS ### +.DS_Store diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..dd0f41f --- /dev/null +++ b/build.gradle @@ -0,0 +1,150 @@ +plugins { + id "application" + id "maven-publish" +} + +repositories { + ivy { + name "Cosmic Reach" + url "https://cosmic-archive.netlify.app/" + patternLayout { + artifact "/Cosmic Reach-[revision].jar" + } + // This is required in Gradle 6.0+ as metadata file (ivy.xml) is mandatory + metadataSources { + artifact() + } + + content { + includeGroup "finalforeach" + } + } + + maven { + name "JitPack" + url "https://jitpack.io" + } + maven { + name "Quilt" + url "https://maven.quiltmc.org/repository/release" + } + maven { + name "Fabric" + url "https://maven.fabricmc.net/" + } + maven { + name "Sponge" + url "https://repo.spongepowered.org/maven/" + } + + mavenCentral() + +// flatDir { +// dirs "${rootDir}/mods/" +// content { +// includeGroup "quilt-mod" +// } +// } +} + + +configurations { + cosmicreach // Config to provide the Cosmic Reach project + compileOnly.extendsFrom(cosmicreach) // Allows cosmic reach to be used in the codebase + + quiltMod // Config to be able to load Quilt Mods + implementation.extendsFrom(quiltMod) +} + + +dependencies { + // Cosmic Reach jar + cosmicreach "finalforeach:cosmicreach:${cosmic_reach_version}" + + // Cosmic Quilt + quiltMod "org.codeberg.CRModders:cosmic-quilt:${cosmic_quilt_version}" + + //quiltMod "quilt-mod:resource-loader:1.0.2" + quiltMod "com.github.CRModders:FluxAPI:0.4.0" +} + +processResources { + def resourceTargets = [ // Locations of where to inject the properties + "quilt.mod.json" + ] + + // Left item is the name in the target, right is the varuable name + def replaceProperties = [ + "mod_version" : project.version, + "mod_group" : project.group, + "mod_name" : project.name, + "mod_id" : id, + ] + + + inputs.properties replaceProperties + replaceProperties.put "project", project + filesMatching(resourceTargets) { + expand replaceProperties + } +} + + +application { + // As Quilt is our loader, use its main class at: + mainClass = "org.quiltmc.loader.impl.launch.knot.KnotClient" +} + +// Sets up all the Quilt Mods +def String getQuiltModLocations(Configuration config) { + StringBuilder sb = new StringBuilder() + for (obj in config.allDependencies) { + sb.append(File.pathSeparator + config.files(obj)[0]) + } + return sb.toString() +} + +applicationDefaultJvmArgs = [ + "-Dloader.skipMcProvider=true", // Stops Quilt from attempting to find mappings, and all the other Minecraft stuff + "-Dloader.gameJarPath=" + configurations.cosmicreach.asPath, // Defines path to Cosmic Reach + "-Dloader.addMods=" + + jar.archiveFile.get().asFile + // Add the jar of this project + getQuiltModLocations(configurations.quiltMod) // Adds the jars of any Quilt mods added +] + +run { + // To run this project in the game, depend on the creation of jar task + dependsOn "jar" + + // Change the run directory + File runningDir = new File("run/") + if (!runningDir.exists()) + runningDir.mkdirs() + tasks.run.workingDir = runningDir +} + + + +java { + withSourcesJar() + // withJavadocJar() // If docs are included with the project, this line can be un-commented + + // Sets the Java version + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +publishing { + publications { + maven(MavenPublication) { + groupId = group + artifactId = id + + from components.java + } + } + + repositories { + + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..d732505 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,13 @@ +# Gradle stuff + org.gradle.jvmargs=-Xmx4096M + org.gradle.parallel=true + org.gradle.caching=false + +# Project Info + version=1.1.0 + group=net.pietru + id=omni_power + +# Dependency Versions + cosmic_reach_version=0.1.15 + cosmic_quilt_version=1.1.5 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3fa8f86 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..1aa94a4 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/jitpack.yml b/jitpack.yml new file mode 100644 index 0000000..1e41e00 --- /dev/null +++ b/jitpack.yml @@ -0,0 +1,2 @@ +jdk: + - openjdk17 \ No newline at end of file diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..6233320 --- /dev/null +++ b/license.txt @@ -0,0 +1,2 @@ +OmniPower Mod © 2024 by pietru(BartÅ‚omiej Burakowski) is licensed under Attribution-NonCommercial 4.0 International. +To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/ \ No newline at end of file diff --git a/mods/resource-loader-1.0.2.jar b/mods/resource-loader-1.0.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..e93cf685d06f71cc1a26d992622a6150ccfa87b7 GIT binary patch literal 6285 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 W)D+RsZ(iUat_O&&%ZGRc0Q?_;ij5)w literal 0 HcmV?d00001 diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..c6a288b --- /dev/null +++ b/readme.md @@ -0,0 +1,20 @@ +# OmniPower Mod +Mod for game Cosmic Reach.\ +Based on the example mod for the [Cosmic Quilt](https://codeberg.org/CRModders/cosmic-quilt) Loader + + + +## How to test/build +For testing in the dev env, you can use the `gradle run` task + +For building, the usual `gradle build` task can ba used\ +the output will be in the `build/libs/` folder + +## Wiki +For a wiki on how to use Cosmic Quilt & Quilt, please look at the [Cosmic Quilt wiki](https://codeberg.org/CRModders/cosmic-quilt/wiki) + +## Notes +- Most project properties can be changed in the `gradle.properties` +- To change author, description and stuff that isnt there, edit `src/main/resources/quilt.mod.json` +- The project name is defined in `settings.gradle` +- To add Quilt mods in the build, make sure to use `quiltMod` rather than `implementation` \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..b724b25 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = "OmniPower" diff --git a/src/main/java/net/pietru/omni_power/OmniPower.java b/src/main/java/net/pietru/omni_power/OmniPower.java new file mode 100644 index 0000000..7a2701b --- /dev/null +++ b/src/main/java/net/pietru/omni_power/OmniPower.java @@ -0,0 +1,27 @@ +package net.pietru.omni_power; + +import dev.crmodders.flux.tags.Identifier; +import dev.crmodders.flux.util.BlockBuilderUtils; +import finalforeach.cosmicreach.world.blockevents.BlockEvents; +import net.pietru.omni_power.blockevents.Power; +import org.coolcosmos.cosmicquilt.api.entrypoint.ModInitializer; +import org.quiltmc.loader.api.ModContainer; + +public class OmniPower implements ModInitializer { + public static final String MOD_ID = "omni_power"; + public static final String[] blocks = { + "cable", + "lever", + "door_cube", + "cable_merger" + }; + @Override + public void onInitialize(ModContainer mod) { + System.out.println("Pop Structures Mod Initialized!"); + BlockEvents.registerBlockEventAction(new Power()); + for (String block:blocks) { + BlockBuilderUtils.getBlockFromJson(new Identifier(MOD_ID, block)); + } + } +} + diff --git a/src/main/java/net/pietru/omni_power/blockevents/Power.java b/src/main/java/net/pietru/omni_power/blockevents/Power.java new file mode 100644 index 0000000..a880ca8 --- /dev/null +++ b/src/main/java/net/pietru/omni_power/blockevents/Power.java @@ -0,0 +1,113 @@ +package net.pietru.omni_power.blockevents; + +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.OrderedMap; +import finalforeach.cosmicreach.world.BlockPosition; +import finalforeach.cosmicreach.world.World; +import finalforeach.cosmicreach.world.blockevents.BlockEventTrigger; +import finalforeach.cosmicreach.world.blockevents.IBlockEventAction; +import finalforeach.cosmicreach.world.blocks.BlockState; +import net.pietru.omni_power.OmniPower; + +import java.util.HashMap; +import java.util.Map; + +public class Power implements IBlockEventAction { + @Override + public String getActionId() { + System.out.println("Registering "+ OmniPower.MOD_ID+":power"); + return OmniPower.MOD_ID+":power"; + } + + @Override + public void act(BlockState blockState, BlockEventTrigger blockEventTrigger, World world, Map args) { + this.act(blockState, blockEventTrigger, world, (BlockPosition)args.get("blockPos")); + } + + public void act(BlockState srcBlockState, BlockEventTrigger blockEventTrigger, World world, BlockPosition sourcePos) { + OrderedMap p = blockEventTrigger.getParams(); + String triggerId = (String)p.get("triggerId"); + String cable_group = (String)p.get("cable_group"); + Boolean self_run = true; + if (p.containsKey("self_run")) { + self_run = (Boolean)p.get("self_run"); + } + Array power_transmitters = new Array<>(); + Array checked_blocks = new Array<>(); + Array unchecked_blocks = new Array<>(); + unchecked_blocks.add(sourcePos); + while (unchecked_blocks.size>0){ + BlockPosition to_check = unchecked_blocks.get(0); + unchecked_blocks.removeIndex(0); + if (checked_blocks.contains(to_check,false) || to_check == null){ + continue; + } + checked_blocks.add(to_check); + BlockState targetBlockState = to_check.getBlockState(); + if (targetBlockState==null || targetBlockState.stringId==null){ + continue; + } + if (to_check!=sourcePos || self_run){ + runTrigger(triggerId,to_check,world); + } + if (targetBlockState.stringId.contains(cable_group)){ + power_transmitters.add(to_check); + unchecked_blocks.addAll(get_touching_positions(world,to_check,targetBlockState)); + } + } + } + + private void runTrigger(String triggerId, BlockPosition triggerPos, World world) { + if (triggerPos != null) { + BlockState targetBlockState = triggerPos.getBlockState(); + if (targetBlockState == null) { + return; + } + + BlockEventTrigger[] customTrigger = targetBlockState.getTrigger(triggerId); + if (customTrigger == null) { + return; + } + + Map args = new HashMap(); + args.put("blockPos", triggerPos); + BlockEventTrigger[] var8 = customTrigger; + int var9 = customTrigger.length; + + for(int var10 = 0; var10 < var9; ++var10) { + BlockEventTrigger t = var8[var10]; + t.act(targetBlockState, world, args); + } + } + } + + public Array get_touching_positions(World world,BlockPosition pos,BlockState state){ + Array arr = new Array<>(); + if (state.stringId.contains("xp_power")) + arr.add(pos.getOffsetBlockPos(world, 1, 0, 0)); + if (state.stringId.contains("xm_power")) + arr.add(pos.getOffsetBlockPos(world, -1, 0, 0)); + + if (state.stringId.contains("yp_power")) + arr.add(pos.getOffsetBlockPos(world, 0, 1, 0)); + if (state.stringId.contains("ym_power")) + arr.add(pos.getOffsetBlockPos(world, 0, -1, 0)); + + if (state.stringId.contains("zp_power")) + arr.add(pos.getOffsetBlockPos(world, 0, 0, 1)); + if (state.stringId.contains("zm_power")) + arr.add(pos.getOffsetBlockPos(world, 0, 0, -1)); + + if (arr.size<=0) { + arr.add(pos.getOffsetBlockPos(world, 1, 0, 0)); + arr.add(pos.getOffsetBlockPos(world, -1, 0, 0)); + + arr.add(pos.getOffsetBlockPos(world, 0, 1, 0)); + arr.add(pos.getOffsetBlockPos(world, 0, -1, 0)); + + arr.add(pos.getOffsetBlockPos(world, 0, 0, 1)); + arr.add(pos.getOffsetBlockPos(world, 0, 0, -1)); + } + return arr; + } +} diff --git a/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_off.json b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_off.json new file mode 100644 index 0000000..d807e1e --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_off.json @@ -0,0 +1,47 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_cable_merger_off", + "triggers": + { + "power_up_red": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[powered,cable_red,cable_blue]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_up_blue", + "cable_group": "cable_blue", + "self_run": false + } + } + ], + "power_up_blue": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[powered,cable_red,cable_blue]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_up_red", + "cable_group": "cable_red", + "self_run": false + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_on.json b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_on.json new file mode 100644 index 0000000..03bcdcb --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_on.json @@ -0,0 +1,47 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_cable_merger_on", + "triggers": + { + "power_down_red": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[default,cable_red,cable_blue]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_down_blue", + "cable_group": "cable_blue", + "self_run": false + } + } + ], + "power_down_blue": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[default,cable_red,cable_blue]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_down_red", + "cable_group": "cable_red", + "self_run": false + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_off.json b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_off.json new file mode 100644 index 0000000..63a741f --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_off.json @@ -0,0 +1,47 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_cable_merger_slim_off", + "triggers": + { + "power_up_red": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[powered,cable_red,cable_blue,slim]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_up_blue", + "cable_group": "cable_blue", + "self_run": false + } + } + ], + "power_up_blue": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[powered,cable_red,cable_blue,slim]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_up_red", + "cable_group": "cable_red", + "self_run": false + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_on.json b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_on.json new file mode 100644 index 0000000..2e42ad9 --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_cable_merger_slim_on.json @@ -0,0 +1,47 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_cable_merger_slim_on", + "triggers": + { + "power_down_red": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[default,cable_red,cable_blue,slim]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_down_blue", + "cable_group": "cable_blue", + "self_run": false + } + } + ], + "power_down_blue": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:cable_merger[default,cable_red,cable_blue,slim]" + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_down_red", + "cable_group": "cable_red", + "self_run": false + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_door_cube_off.json b/src/main/resources/assets/omni_power/block_events/block_events_door_cube_off.json new file mode 100644 index 0000000..0d4ddd7 --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_door_cube_off.json @@ -0,0 +1,50 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_door_cube_off", + "triggers": + { + "power_up_red": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "power_up" + } + } + ], + "power_up_blue": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "power_up" + } + } + ], + "power_up": + [ + { + "actionId": "base:play_sound_2d", + "parameters": + { + "sound": "omni_power:switch_006.ogg", + "volume": 1, + "pitch": 1, + "pan": 0 + } + }, + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:door_cube[powered,cable_red,cable_blue]" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_door_cube_on.json b/src/main/resources/assets/omni_power/block_events/block_events_door_cube_on.json new file mode 100644 index 0000000..631e580 --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_door_cube_on.json @@ -0,0 +1,50 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_door_cube_on", + "triggers": + { + "power_down_red": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "power_down" + } + } + ], + "power_down_blue": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "power_down" + } + } + ], + "power_down": + [ + { + "actionId": "base:play_sound_2d", + "parameters": + { + "sound": "omni_power:switch_005.ogg", + "volume": 1, + "pitch": 1, + "pan": 0 + } + }, + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:door_cube[default,cable_red,cable_blue]" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_lever_blue_off.json b/src/main/resources/assets/omni_power/block_events/block_events_lever_blue_off.json new file mode 100644 index 0000000..0cb8114 --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_lever_blue_off.json @@ -0,0 +1,50 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_lever_blue_off", + "triggers": + { + "onInteract": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "switch_on" + } + } + ], + "switch_on": + [ + { + "actionId": "base:play_sound_2d", + "parameters": + { + "sound": "omni_power:maximize_006.ogg", + "volume": 1, + "pitch": 1, + "pan": 0 + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_up_blue", + "cable_group": "cable_blue" + } + } + ], + "power_up_blue": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:lever[powered,cable_blue]" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_lever_blue_on.json b/src/main/resources/assets/omni_power/block_events/block_events_lever_blue_on.json new file mode 100644 index 0000000..9bc7f0c --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_lever_blue_on.json @@ -0,0 +1,50 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_lever_blue_on", + "triggers": + { + "onInteract": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "switch_off" + } + } + ], + "switch_off": + [ + { + "actionId": "base:play_sound_2d", + "parameters": + { + "sound": "omni_power:minimize_006.ogg", + "volume": 1, + "pitch": 1, + "pan": 0 + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_down_blue", + "cable_group": "cable_blue" + } + } + ], + "power_down_blue": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:lever[default,cable_blue]" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_lever_red_off.json b/src/main/resources/assets/omni_power/block_events/block_events_lever_red_off.json new file mode 100644 index 0000000..1c4e350 --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_lever_red_off.json @@ -0,0 +1,50 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_lever_red_off", + "triggers": + { + "onInteract": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "switch_on" + } + } + ], + "switch_on": + [ + { + "actionId": "base:play_sound_2d", + "parameters": + { + "sound": "omni_power:maximize_006.ogg", + "volume": 1, + "pitch": 1, + "pan": 0 + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_up_red", + "cable_group": "cable_red" + } + } + ], + "power_up_red": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:lever[powered,cable_red]" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/block_events/block_events_lever_red_on.json b/src/main/resources/assets/omni_power/block_events/block_events_lever_red_on.json new file mode 100644 index 0000000..771ba06 --- /dev/null +++ b/src/main/resources/assets/omni_power/block_events/block_events_lever_red_on.json @@ -0,0 +1,50 @@ +{ + "parent":"base:block_events_default", + "stringId": "omni_power:block_events_lever_red_on", + "triggers": + { + "onInteract": + [ + { + "actionId": "base:run_trigger", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "triggerId": "switch_off" + } + } + ], + "switch_off": + [ + { + "actionId": "base:play_sound_2d", + "parameters": + { + "sound": "omni_power:minimize_006.ogg", + "volume": 1, + "pitch": 1, + "pan": 0 + } + }, + { + "actionId": "omni_power:power", + "parameters": + { + "triggerId": "power_down_red", + "cable_group": "cable_red" + } + } + ], + "power_down_red": + [ + { + "actionId": "base:replace_block_state", + "parameters": + { + "xOff": 0, "yOff": 0, "zOff": 0, + "blockStateId": "omni_power:lever[default,cable_red]" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/blocks/cable.json b/src/main/resources/assets/omni_power/blocks/cable.json new file mode 100644 index 0000000..8e65608 --- /dev/null +++ b/src/main/resources/assets/omni_power/blocks/cable.json @@ -0,0 +1,48 @@ +{ + "stringId": "omni_power:cable", + "blockStates": + { + "default,cable_red": + { + "modelName": "omni_power:model_cable_red", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + "default,cable_red,slim": + { + "modelName": "omni_power:model_cable_red_slim", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": false, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + + + "default,cable_blue": + { + "modelName": "omni_power:model_cable_blue", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + "default,cable_blue,slim": + { + "modelName": "omni_power:model_cable_blue_slim", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": false, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/blocks/cable_merger.json b/src/main/resources/assets/omni_power/blocks/cable_merger.json new file mode 100644 index 0000000..b97050f --- /dev/null +++ b/src/main/resources/assets/omni_power/blocks/cable_merger.json @@ -0,0 +1,53 @@ +{ + "stringId": "omni_power:cable_merger", + "blockStates": + { + "default,cable_red,cable_blue": + { + "modelName": "omni_power:model_cable_merger", + "blockEventsId": "omni_power:block_events_cable_merger_off", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + "powered,cable_red,cable_blue": + { + "modelName": "omni_power:model_cable_merger_powered", + "blockEventsId": "omni_power:block_events_cable_merger_on", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0, + "catalogHidden": true + }, + + "default,cable_red,cable_blue,slim": + { + "modelName": "omni_power:model_cable_merger_slim", + "blockEventsId": "omni_power:block_events_cable_merger_slim_off", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": false, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + "powered,cable_red,cable_blue,slim": + { + "modelName": "omni_power:model_cable_merger_slim_powered", + "blockEventsId": "omni_power:block_events_cable_merger_slim_on", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": false, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0, + "catalogHidden": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/blocks/door_cube.json b/src/main/resources/assets/omni_power/blocks/door_cube.json new file mode 100644 index 0000000..5dc0a0e --- /dev/null +++ b/src/main/resources/assets/omni_power/blocks/door_cube.json @@ -0,0 +1,32 @@ +{ + "stringId": "omni_power:door_cube", + "blockStates": + { + "default,cable_red,cable_blue": + { + "modelName": "omni_power:model_door_cube", + "blockEventsId": "omni_power:block_events_door_cube_off", + "isTransparent": true, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + "powered,cable_red,cable_blue": + { + "modelName": "omni_power:model_door_cube_powered", + "blockEventsId": "omni_power:block_events_door_cube_on", + "isTransparent": true, + "generateSlabs": false, + "isOpaque": false, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0, + "catalogHidden": true, + "canRaycastForBreak": false, + "canRaycastForPlaceOn": false, + "walkThrough": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/blocks/lever.json b/src/main/resources/assets/omni_power/blocks/lever.json new file mode 100644 index 0000000..007999b --- /dev/null +++ b/src/main/resources/assets/omni_power/blocks/lever.json @@ -0,0 +1,54 @@ +{ + "stringId": "omni_power:lever", + "blockStates": + { + "default,cable_red": + { + "modelName": "omni_power:model_lever_red", + "blockEventsId": "omni_power:block_events_lever_red_off", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + "powered,cable_red": + { + "modelName": "omni_power:model_lever_red_powered", + "blockEventsId": "omni_power:block_events_lever_red_on", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0, + "catalogHidden": true + }, + + + "default,cable_blue": + { + "modelName": "omni_power:model_lever_blue", + "blockEventsId": "omni_power:block_events_lever_blue_off", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0 + }, + "powered,cable_blue": + { + "modelName": "omni_power:model_lever_blue_powered", + "blockEventsId": "omni_power:block_events_lever_blue_on", + "isTransparent": false, + "generateSlabs": false, + "isOpaque": true, + "lightLevelRed": 0, + "lightLevelGreen": 0, + "lightLevelBlue": 0, + "catalogHidden": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/icon.png b/src/main/resources/assets/omni_power/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..33ab334ca7fbf57cccd5c3901df3d09f07b02a76 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?O3?zSk_}l@cI14-?iy0XB4uLSEsD>9v1!HlL zyA#8@b22Z19F}xPUq=Rpjs4tz5?O(Kwg8_H*B=Z&fK2%kna@DV+|$J|q~ccckN^Mw z+q1E;r78Sn_W0bN(HO|6kib&(k0G;6;cub}cMsPEy^FnEJ=6FWGc8`q%;0wUPuT4I Ra&e#$44$rjF6*2UngDQDHE#d_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_blue.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_blue.json new file mode 100644 index 0000000..0671171 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_blue.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:cable_blue.png" + }, + "bottom": + { + "fileName": "omni_power:cable_blue.png" + }, + "side": + { + "fileName": "omni_power:cable_blue.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_blue_slim.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_blue_slim.json new file mode 100644 index 0000000..991d601 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_blue_slim.json @@ -0,0 +1,121 @@ +{ + + "textures": + { + "top": + { + "fileName": "omni_power:cable_blue.png" + }, + "bottom": + { + "fileName": "omni_power:cable_blue.png" + }, + "side": + { + "fileName": "omni_power:cable_blue.png" + } + }, + + "cuboids": + [ + { + "localBounds": [6,6,0, 10,10,4], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,6,12, 10,10,16], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"} + } + }, + { + "localBounds": [0,6,6, 4,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [12,6,6, 16,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,0,6, 10,4,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,12,6, 10,16,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [4,4,4, 12,12,12], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + } + ] + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_merger.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger.json new file mode 100644 index 0000000..2659275 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger.json @@ -0,0 +1,36 @@ +{ + "textures": + { + "top": + { + "fileName": "omni_power:cable_merger.png" + }, + "bottom": + { + "fileName": "omni_power:cable_merger.png" + }, + "side": + { + "fileName": "omni_power:cable_merger.png" + } + }, + + "cuboids": + [ + { + "localBounds": [0,0,0, 16,16,16], + "faces": + { + "localNegX": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosX": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + + "localNegY": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "bottom"}, + "localPosY": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"} + } + } + ] + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_powered.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_powered.json new file mode 100644 index 0000000..1e8efa0 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_powered.json @@ -0,0 +1,36 @@ +{ + "textures": + { + "top": + { + "fileName": "omni_power:cable_merger_2.png" + }, + "bottom": + { + "fileName": "omni_power:cable_merger_2.png" + }, + "side": + { + "fileName": "omni_power:cable_merger_2.png" + } + }, + + "cuboids": + [ + { + "localBounds": [0,0,0, 16,16,16], + "faces": + { + "localNegX": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosX": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + + "localNegY": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "bottom"}, + "localPosY": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"} + } + } + ] + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim.json new file mode 100644 index 0000000..c1ea805 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim.json @@ -0,0 +1,121 @@ +{ + + "textures": + { + "top": + { + "fileName": "omni_power:cable_merger.png" + }, + "bottom": + { + "fileName": "omni_power:cable_merger.png" + }, + "side": + { + "fileName": "omni_power:cable_merger.png" + } + }, + + "cuboids": + [ + { + "localBounds": [6,6,0, 10,10,4], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,6,12, 10,10,16], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"} + } + }, + { + "localBounds": [0,6,6, 4,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [12,6,6, 16,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,0,6, 10,4,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,12,6, 10,16,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [4,4,4, 12,12,12], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + } + ] + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim_powered.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim_powered.json new file mode 100644 index 0000000..1af3aae --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_merger_slim_powered.json @@ -0,0 +1,121 @@ +{ + + "textures": + { + "top": + { + "fileName": "omni_power:cable_merger_2.png" + }, + "bottom": + { + "fileName": "omni_power:cable_merger_2.png" + }, + "side": + { + "fileName": "omni_power:cable_merger_2.png" + } + }, + + "cuboids": + [ + { + "localBounds": [6,6,0, 10,10,4], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,6,12, 10,10,16], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"} + } + }, + { + "localBounds": [0,6,6, 4,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [12,6,6, 16,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,0,6, 10,4,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,12,6, 10,16,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [4,4,4, 12,12,12], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + } + ] + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_red.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_red.json new file mode 100644 index 0000000..e0448be --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_red.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:cable_red.png" + }, + "bottom": + { + "fileName": "omni_power:cable_red.png" + }, + "side": + { + "fileName": "omni_power:cable_red.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_cable_red_slim.json b/src/main/resources/assets/omni_power/models/blocks/model_cable_red_slim.json new file mode 100644 index 0000000..1193d65 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_cable_red_slim.json @@ -0,0 +1,121 @@ +{ + + "textures": + { + "top": + { + "fileName": "omni_power:cable_red.png" + }, + "bottom": + { + "fileName": "omni_power:cable_red.png" + }, + "side": + { + "fileName": "omni_power:cable_red.png" + } + }, + + "cuboids": + [ + { + "localBounds": [6,6,0, 10,10,4], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,6,12, 10,10,16], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"} + } + }, + { + "localBounds": [0,6,6, 4,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [12,6,6, 16,10,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,0,6, 10,4,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [6,12,6, 10,16,10], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": true, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + }, + { + "localBounds": [4,4,4, 12,12,12], + "faces": + { + "localNegX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosX": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + + "localNegY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "bottom"}, + "localPosY": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "top"}, + + "localNegZ": {"uv": [ 16, 0, 0, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"}, + "localPosZ": {"uv": [ 0, 0, 16, 16 ], "ambientocclusion": true, "cullFace": false, "texture": "side"} + } + } + ] + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_door_cube.json b/src/main/resources/assets/omni_power/models/blocks/model_door_cube.json new file mode 100644 index 0000000..32a94d3 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_door_cube.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:door.png" + }, + "bottom": + { + "fileName": "omni_power:door.png" + }, + "side": + { + "fileName": "omni_power:door.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_door_cube_powered.json b/src/main/resources/assets/omni_power/models/blocks/model_door_cube_powered.json new file mode 100644 index 0000000..1a25f4c --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_door_cube_powered.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:door_powered.png" + }, + "bottom": + { + "fileName": "omni_power:door_powered.png" + }, + "side": + { + "fileName": "omni_power:door_powered.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_lever_blue.json b/src/main/resources/assets/omni_power/models/blocks/model_lever_blue.json new file mode 100644 index 0000000..964179f --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_lever_blue.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:lever_off_blue.png" + }, + "bottom": + { + "fileName": "omni_power:lever_off_blue.png" + }, + "side": + { + "fileName": "omni_power:lever_off_blue.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_lever_blue_powered.json b/src/main/resources/assets/omni_power/models/blocks/model_lever_blue_powered.json new file mode 100644 index 0000000..e42de89 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_lever_blue_powered.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:lever_on_blue.png" + }, + "bottom": + { + "fileName": "omni_power:lever_on_blue.png" + }, + "side": + { + "fileName": "omni_power:lever_on_blue.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_lever_red.json b/src/main/resources/assets/omni_power/models/blocks/model_lever_red.json new file mode 100644 index 0000000..f0e4467 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_lever_red.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:lever_off_red.png" + }, + "bottom": + { + "fileName": "omni_power:lever_off_red.png" + }, + "side": + { + "fileName": "omni_power:lever_off_red.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/models/blocks/model_lever_red_powered.json b/src/main/resources/assets/omni_power/models/blocks/model_lever_red_powered.json new file mode 100644 index 0000000..bf4d990 --- /dev/null +++ b/src/main/resources/assets/omni_power/models/blocks/model_lever_red_powered.json @@ -0,0 +1,20 @@ +{ + "parent": "cube", + + "textures": + { + "top": + { + "fileName": "omni_power:lever_on_red.png" + }, + "bottom": + { + "fileName": "omni_power:lever_on_red.png" + }, + "side": + { + "fileName": "omni_power:lever_on_red.png" + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/omni_power/sounds/blocks/drop_004.ogg b/src/main/resources/assets/omni_power/sounds/blocks/drop_004.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d9cd3684905cfcbe63cbd8cb30745de7d08c4dd9 GIT binary patch literal 7230 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/sounds/blocks/maximize_006.ogg b/src/main/resources/assets/omni_power/sounds/blocks/maximize_006.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7bac35d78c8e1fca5766433ffcf4f4873755a118 GIT binary patch literal 11618 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/sounds/blocks/minimize_006.ogg b/src/main/resources/assets/omni_power/sounds/blocks/minimize_006.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9f3cd0e972ccb66bfacedabfbad676eb9bf66a40 GIT binary patch literal 11292 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 ZF3u@8PLfrPG|iJ@zl^^x<%$#r{ue>TywCsu literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/sounds/blocks/select_006.ogg b/src/main/resources/assets/omni_power/sounds/blocks/select_006.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9d1f587316923eee37f15002dc9620763b8587bb GIT binary patch literal 8101 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/sounds/blocks/switch_005.ogg b/src/main/resources/assets/omni_power/sounds/blocks/switch_005.ogg new file mode 100644 index 0000000000000000000000000000000000000000..799e3277c0c8826589216ec5518801293e13d5d7 GIT binary patch literal 7814 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 a@(5vGE?u+r5^4g3!o+ct#+E0h=l>5>yg5Dq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/cable_merger.png b/src/main/resources/assets/omni_power/textures/blocks/cable_merger.png new file mode 100644 index 0000000000000000000000000000000000000000..74177443b4026eaa2a00b03ea44708a2e22258e5 GIT binary patch literal 567 zcmV-70?7S|P)4Tx04UFukxM8Q@*eazwO4b%u#74UQ=Z>05jdJRAetqYBU*~)Wf(L2Sa;tj4vU5&s zJfg+t=Czt7f(18cdg z;vM0zxuPe8PldZ2xuEd9(v2d&C{FntRGDFCCN?S@7S>W_Y?QIN;#k7{!tDvmmi%D6 z$O*;kimi0s{JE!kVg0f_JFRq?ZHzO)6j3w`@~o03N4KoDC@wMCk5urt`u?c63~{Yu zieron7P{|8{lV{U-DF>HF{wTR)lZ)H)&VtJ@Kx}<&qL4qI)cz6T-YUl<^YD?MK6@J z_I+sFfV0bzW^BXxCbT?cbw~H5kj!8*39l#eO>@wE4Rs5}-hTEuzJnR*YVrzp_no2u z$iq;Fa-y9##9>$CA<^6j{h6Ex_j9lGA<%(^pBhe9@&QmC2!XLvEfD|!002ovPDHLk FV1g8${+|E< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/cable_merger_2.png b/src/main/resources/assets/omni_power/textures/blocks/cable_merger_2.png new file mode 100644 index 0000000000000000000000000000000000000000..92f2a8178b9e572dfbd768f93ebf7a7d6aefd6f0 GIT binary patch literal 579 zcmV-J0=)f+P)4Tx04UFukxM8Q@*eazwO4b%u#74UQ=Z>05jdJRAetqYBU*~)Wf(L2Sa;tj4vU5&s zJfg+t=Czt7f(18cdg z;vM0zxuPe8PldZ2xuEd9(v2d&C{FntRGDFCCN?S@7S>W_Y?QIN;#k7{!tDvmmi%D6 z$O*;kimi0s{JE!kVg0f_JFRq?ZHzO)6j3w`@~o03N4KoDC@wMCk5urt`u?c63~{Yu zieron7P{|8{lV{U-DF>HF{wTR)lZ)H)&VtJ@Kx}<&qL4qI)cz6T-YUl<^YD?MK6@J z_I+sFfV0bzW^BXxCbT?cbw~H5kj!8*39l#eO>@wE4Rs5}-hTEuzJnR*YVrzp_n>MN^b@^8o0Vn_f z010qNS#tmY4#WTe4#WYKD-Ig~002u#L_t&-(=E+G5x_tQL(z`|zyXm^1@*70o249> zH;@5{I@JOU8R3D*#ZZfKBIh&%Es|$0T5s%1{F#mmjblYG0xdZ3Q^RK~`2cJ22+?ZK R1*HH0002ovPDHLkV1j350U`hZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/cable_red.png b/src/main/resources/assets/omni_power/textures/blocks/cable_red.png new file mode 100644 index 0000000000000000000000000000000000000000..f42662fff76cf502d85d0e274695e26501d253e0 GIT binary patch literal 4783 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 Jij>#Z{|_xm9XtR4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/door_powered.png b/src/main/resources/assets/omni_power/textures/blocks/door_powered.png new file mode 100644 index 0000000000000000000000000000000000000000..fded816d5b3844b330aa623dc9501b9d048b9345 GIT binary patch literal 7017 zcmdT|e@sJDxxHM?*iR^QIw55o`0NPtVMAxg_a{ZR@tB zW*naOXiLt#=hG*SeIwp?H1pGx#H3Yi6BDb`b|q!6k`G;t{YV*?JY~!J92|40BekPFBCX+=vS(8C(y#J&B>0>ai;~Lr z{kwfkM6*1Zd|y>jGj8gUQ>km$Hf+9oWO?Q6S+E?w4K(L6k>H96<#!P>(1 zv$d6bYFEwa`X+OB&cZ*RI&O@s-!MKSzWVb`3E$NZ{~~KbOWLOYejnXcy(4Gr2WfQ) zqx6xPrO}5j#M~_V?bqz<8+|M}F(&fKEuGHDA;qOLkNdvf`q)li`{3r6k2Q^CzNmQrsgD zoYtcB1x0g>Vn;#Y3UA(P9!JsY0*}K}lIN8W?~#Ky?8Hb>nMQR=WoU}7=-7Y{jgO%5 zZ&`NAis-F@c=1`=JaSs|GKK{L1O7nMglgFDpZ9OH-cAGdtFX};Bh4k`WM{5@LFZmT z!J_xrA3r=gJVZo!i#)6^cTKk0+-tm3#Al@mt)-<;Ot;d)F zdu|o%5R5$pY(Y;5C78erQHVig1QP}mu za<5iO@(Uycov?v5rX%7aUItWBCnYqOs!YK$#Z;vX63au}z=tdFyX~ck>1wrcO#wcVKA5$0g zFd&#|h+6<}05$i680JFvcHv1t4XDT!K51qE!5=So14FvBqBPWujpZ18=cM*kafV`JnS3eDM_WLegODHVwd= zFyN9Yh&q{u-5d~KH~k3q1l#~_fjLZdCId7bNbrDXmZv}q29qjy#4$ri0Eqdsk;nz1 z2`05*?}cekfL#O-fH3L?V3rUEBRB)1`%o|9XIG9mH=){tlxqN8?q4+pXriLowclDf za3*Bz>XF5Zp9@3LA%~oh*Q&~M8)8Z|ZU$mU15o`m@U#%Y@FMDBJX1w1RF!%lHiCXg zfNq9@#5BKPupBpp2%H=6$_pV6id~SX-j}Fd68Ym25LI~6>u?ky&46mlTN7SyUYcYe z&W7URVw8bUZ+w`+HWW9ciQtmykfz*(D%6V-31>}|!ahr6kPm)^Jj+#~2z-Zn;f0?| zoPG#RujM$P#2<2E@beDEgR3A`6%&3T$l~r3CeBzO5%}p+AQm#H0WnAlUXOqV|B2+O zCmx~^7aSu0K^1fUFq!I*eX)OmzV;(tv`ni33&GYy{S|Ay zz(;-Iw<+tjCi!cq30Zh#mQlVS#CsHaJAdZs4DGE$8#+Dk@x50Rp#Ju}yZ0X5o*#i- zK^_ehOh5_$3Q}ZW80hG(DB@V|ilV^)t!H4u7+Oy-_5=wlX#If+D`*1)Gq|D2Mp)&M zoy^ctXkfw`S|}Jh*f4{3YcOF3Z6IIQp(|ndkL^}q z?C`=MYPSz244~a9n864w7)u!Bk)6WOQ7{<$T0hYEl|nDq)co2?+{7^kcRg^!jNaP* z?ozm7e{t4~XXk5kT<(HbvQA8kSQ2@mvNiT~$4^76M%PDdow7II(Gp*tT|T;e@yy*N zrSs1}z9;6*(gb;#6m_@&Ma`|iDHj{bh?M*h6}!qi<62fnNa@9+&L@8PQY9#tW~I-b JQJ1!4{r>|)7)byC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/emergency.png b/src/main/resources/assets/omni_power/textures/blocks/emergency.png new file mode 100644 index 0000000000000000000000000000000000000000..7a33e47aaf8071a30f964c0d6f3b47605e98f123 GIT binary patch literal 4760 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/lever_off_blue.png b/src/main/resources/assets/omni_power/textures/blocks/lever_off_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..6ebed9b0c13d6aaec3359f974ea5501619c7fe6d GIT binary patch literal 551 zcmV+?0@(eDP)4Tx04UFuk-bYoQ5eR5YEhISR6~S=gGGZv6hvbfl3vsT~kui zqNn7^QBk@7%+pLyPBgkZ1JLQN3MF2*sSy@?QV`J?cBxYu2KtMnZnf50D000SaNLh0L01m_e z01m_fl`9S#0000wNklLQ7u8U)qu;^GKqfSkd=008ar3k^HwKL-E+002ovPDHLkV1iXm?EwG) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/lever_off_red.png b/src/main/resources/assets/omni_power/textures/blocks/lever_off_red.png new file mode 100644 index 0000000000000000000000000000000000000000..83e21d79ad48f2c6e2cd8afd39e5ffd9db461947 GIT binary patch literal 551 zcmV+?0@(eDP)4Tx04UFuk-bYoQ5eR5YEhISR6~S=gGGZv6hvbfl3vsT~kui zqNn7^QBk@7%+pLyPBgkZ1JLQN3MTh_uSy@?QV`J?cBxYu2KtMok-lKZ}000SaNLh0L01m_e z01m_fl`9S#0000wNklLQ7u8U)qu;^GKqfSkd=008ar3k^HwKL-E+002ovPDHLkV1jb}?Nk5& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/omni_power/textures/blocks/lever_on_blue.png b/src/main/resources/assets/omni_power/textures/blocks/lever_on_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..1f07fed3475c7237bbd92dd8aa6e56e046357fa1 GIT binary patch literal 555 zcmV+`0@VG9P)4Tx04UFuk-JO7P!z_0wu<6|iggfi$WXZbG_en%kC3!T zaTQz~3J#)+ufhL7SHV?55EMbg(b?A`C7#;|716;PZqASI<~yAG1w4_gk+T~oAeS#% z(Qrtck1uG=Pk8C0i%$Fr!#1a9r(*oM-fw77^?FG4;(x1cIcXcv&>}o$m{w6(rXjLg zG!<_OcN>|+vhcoe(2@a#FO;sk{HQqX@~dJi7M+y4sh(Q;8|&ZL$XGeyLE%6yTQa`p zQ8#H%=I3Um_R8+VCQ6tP8agFb$WmlTYF;w?-8WqG%}@}JA#am1mN?R6#2XZ~BwdqI zQ=%v3$x>Fi|IE`)jgGk8+e6Uw;5aY+(7XlJisO77I8OBty!UXHuloy<)A*a{mAV$# z1K&EFoYysd8%{T%=gv%6iJIh_MK`OjbB=BywkE&m5_WcBK)&}a zeF6vFXbnl$T|EE*01{A4R7C(rs##fCV`F1xW@bP@Kq-F!bhOsf00009a7bBm000ie z000ie0hKEb8vp4Tx04UFuk-JO7P!z_0wu<6|iggfi$WXZbG_en%kC3!T zaTQz~3J#)+ufhL7SHV?55EMbg(b?A`C7#;|716;PZqASI<~yAG1w4_gk+T~oAeS#% z(Qrtck1uG=Pk8C0i%$Fr!#1a9r(*oM-fw77^?FG4;(x1cIcXcv&>}o$m{w6(rXjLg zG!<_OcN>|+vhcoe(2@a#FO;sk{HQqX@~dJi7M+y4sh(Q;8|&ZL$XGeyLE%6yTQa`p zQ8#H%=I3Um_R8+VCQ6tP8agFb$WmlTYF;w?-8WqG%}@}JA#am1mN?R6#2XZ~BwdqI zQ=%v3$x>Fi|IE`)jgGk8+e6Uw;5aY+(7XlJisO77I8OBty!UXHuloy<)A*a{mAV$# z1K&EFoYysd8%{T%=gv%6iJIh_MK`OjbB=BywkE&m5_WcBK)&}a zeF6vFXbnl$T|EE*01{A4R7HpY6}3D| literal 0 HcmV?d00001 diff --git a/src/main/resources/omni_power.mixins.json b/src/main/resources/omni_power.mixins.json new file mode 100644 index 0000000..93c23d7 --- /dev/null +++ b/src/main/resources/omni_power.mixins.json @@ -0,0 +1,11 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.pietru.omni_power.mixins", + "compatibilityLevel": "JAVA_17", + "mixins": [], + "client": [], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/quilt.mod.json b/src/main/resources/quilt.mod.json new file mode 100644 index 0000000..fe23ed1 --- /dev/null +++ b/src/main/resources/quilt.mod.json @@ -0,0 +1,48 @@ +{ + "schema_version": 1, + + "quilt_loader": { + "group": "${mod_group}", + "id": "${mod_id}", + "version": "${mod_version}", + + "intermediate_mappings":"net.fabricmc:intermediary", + + "metadata": { + "name": "${mod_name}", + "description": "A short description of your mod.", + "contributors": { + "pietru": "Owner" + }, + + "contact": { + "homepage": "https://example.com/", + "issues": "https://example.com/", + "sources": "https://example.com/" + }, + + "icon": "assets/pop_structures/icon.png" + }, + + "entrypoints": { + "init": "net.pietru.omni_power.OmniPower" + }, + + "depends": [ + { + "id": "cosmic_quilt", + "versions": "*" + }, + { + "id": "cosmic_reach", + "versions": "*" + }, + { + "id": "fluxapi", + "versions": ">=0.4.0" + } + ] + }, + + "mixin": "omni_power.mixins.json" +}