commit 182769916cec3e8309a4c38f76d86da77e6bb0fd Author: srw Date: Sun Jul 2 13:53:07 2017 -0700 Primal-Skel Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6b014dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,396 @@ +# ---> Forge and Friends +README.txt +MinecraftForge-* +Paulscode* +forge-*-changelog.txt +*-fml.txt +*-new.txt +build/ +run/ +out/ +tmp/ +crash-reports +saves/ +logs +usercache.json +options.txt +*.jks +*.cer + +# ---> Java +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +# ---> Gradle +.gradle +build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# ---> Maven +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties + +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# ---> Vim +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +*.un~ +Session.vim +.netrwhist +*~ + +# ---> Emacs +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ + +# ---> Eclipse +*.pydevproject +.metadata +.gradle +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath + +# Eclipse Core +.project + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Java annotation processor (APT) +.factorypath + +# PDT-specific +.buildpath + +# sbteclipse plugin +.target + +# TeXlipse plugin +.texlipse + +# ---> JetBrains +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio + +*.iml + +## Directory-based project format: +.idea/ +# if you remove the above rule, at least ignore the following: + +# User-specific stuff: +# .idea/workspace.xml +# .idea/tasks.xml +# .idea/dictionaries + +# Sensitive or high-churn files: +# .idea/dataSources.ids +# .idea/dataSources.xml +# .idea/sqlDataSources.xml +# .idea/dynamic.xml +# .idea/uiDesigner.xml + +# Gradle: +# .idea/gradle.xml +# .idea/libraries + +# Mongo Explorer plugin: +# .idea/mongoSettings.xml + +## File-based project format: +*.ipr +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties + +# ---> Windows +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# ---> OSX +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# ---> Linux +*~ + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# ---> Archives +# It's better to unpack these files and commit the raw source because +# git has its own built in compression methods. +*.7z +*.jar +*.rar +*.zip +*.gz +*.bzip +*.bz2 +*.xz +*.lzma +*.cab + +#packing-only formats +*.iso +*.tar + +#package management formats +*.dmg +*.xpi +*.gem +*.egg +*.deb +*.rpm +*.msi +*.msm +*.msp + +# ---> Go +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof + +# ---> Scala +*.class +*.log + +# sbt specific +.cache +.history +.lib/ +dist/* +target/ +lib_managed/ +src_managed/ +project/boot/ +project/plugins/project/ + +# Scala-IDE specific +.scala_dependencies +.worksheet + +# ---> Perl +/blib/ +/.build/ +_build/ +cover_db/ +inc/ +Build +!Build/ +Build.bat +.last_cover_stats +/Makefile +/Makefile.old +/MANIFEST.bak +/META.yml +/META.json +/MYMETA.* +nytprof.out +/pm_to_blib +*.o +*.bs +/_eumm/ + diff --git a/README.md b/README.md new file mode 100644 index 0000000..37a506a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Primal-Submod + +Sample Primal Child Mod \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..3148233 --- /dev/null +++ b/build.gradle @@ -0,0 +1,134 @@ +buildscript { + repositories { + jcenter() + maven { url = "http://files.minecraftforge.net/maven" } + } + dependencies { + classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' + } +} +apply plugin: 'net.minecraftforge.gradle.forge' +//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. + +repositories { + //maven { + // name = "JitPack" + // url = 'https://jitpack.io' + //} + + maven { + name = "jei" + url = "http://dvs1.progwml6.com/files/maven" + } + + maven { + name = "PrimalCore" + url = "https://maven.nmd.so" + } +} + +sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 // Need this here so eclipse task generates correctly. +compileJava { + sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 +} + +// http://maven.apache.org/guides/mini/guide-naming-conventions.html +group = "${mod_group}" +version = "${mod_version}" + buildNumber() +archivesBaseName = "${mod_name}" + +minecraft { + version = "${mc_version}" + "-" + "${forge_version}" + runDir = "run" + + // the mappings can be changed at any time, and must be in the following format. + // snapshot_YYYYMMDD snapshot are built nightly. + // stable_# stables are built at the discretion of the MCP team. + // Use non-default mappings at your own risk. they may not allways work. + // simply re-run your setup task after changing the mappings to update your workspace. + //mappings = "snapshot_20160312" + mappings = "${mcp_mappings}" + + // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. + + // JEI + useDepAts = true + + // Replace + //replace '1.0.0.0', project.forge_version + replace '@MOD_VERSION@', project.mod_version + buildNumber() + replaceIn 'ModInfo.java' +} + +dependencies { + // you may put jars on which you depend on in ./libs + // or you may define them like so.. + //compile "some.group:artifact:version:classifier" + //compile "some.group:artifact:version" + + // real examples + //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env + //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env + + // the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. + //provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' + + // the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided, + // except that these dependencies get remapped to your current MCP mappings + //deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev' + //deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev' + + // for more info... + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html + + // SSH + //deployerJars "org.apache.maven.wagon:wagon-ssh:2.10" + + // JEI + // https://github.com/mezz/JustEnoughItems + // http://minecraft.curseforge.com/projects/just-enough-items-jei/files + // and can be found on CurseForge, check the file name of the version you want. + //deobfCompile "mezz.jei:jei_:" + //deobfCompile "mezz.jei:jei_${config.mc_version}:${config.jei_version}" + // + // compile against the JEI API + deobfCompile "mezz.jei:jei_${mc_version}:${jei_version}:api" + // at runtime, use the full JEI jar + //runtime "mezz.jei:jei_${mc_version}:${jei_version}" + + // Baubles + //compile "com.github.azanor:baubles:-SNAPSHOT" + + // PrimalCore + deobfCompile "nmd.primal.core:PrimalCore:${primal_version}:dev" + //runtime "nmd.primal.core:PrimalCore:${primal_version}" +} + +processResources { + // this will ensure that this task is redone when the versions change. + inputs.property "version", "${mod_version}" + inputs.property "build", "${mod_build}" + inputs.property "mcversion", "${mc_version}" + + // replace stuff in mcmod.info, nothing else + from(sourceSets.main.resources.srcDirs) { + include 'mcmod.info' + + // replace version and mcversion + expand 'version':"${mod_version}", 'build':"${mod_build}", 'mcversion':"${mc_version}" + } + + // copy everything else, thats not the mcmod.info + from(sourceSets.main.resources.srcDirs) { + exclude 'mcmod.info' + } +} + +idea { module { inheritOutputDirs = true } } + +def buildNumber() { + return (project.mod_build!="" && project.mod_build!="0") ? '.' + project.mod_build : "" +} + +// end // diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..ccd4403 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,16 @@ +# 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.daemon=true +org.gradle.jvmargs=-Xmx3G + +mod_group=nmd.primal.sample +mod_name=PrimalSample +mod_version=0.0.0 +mod_build=1 + +forge_version=13.20.0.2366 +mcp_mappings=snapshot_20170610 +mc_version=1.11.2 + +primal_version=0.4+ +jei_version=4.5+ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..0a08c54 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Jun 28 18:10:30 PDT 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +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" + which java >/dev/null 2>&1 || 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 + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@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 + +@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= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +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 init + +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 + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +: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 %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="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! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src/main/java/nmd/primal/sample/client/ClientProxy.java b/src/main/java/nmd/primal/sample/client/ClientProxy.java new file mode 100644 index 0000000..0b6ba9e --- /dev/null +++ b/src/main/java/nmd/primal/sample/client/ClientProxy.java @@ -0,0 +1,28 @@ +package nmd.primal.sample.client; + +@SideOnly(Side.CLIENT) +public class ClientProxy extends CommonProxy +{ + public static Minecraft minecraft = Minecraft.getMinecraft(); + + // ***************************************************************************** // + // Proxy Stages + // ***************************************************************************** // + @Override + public void preInit() + { + + } + + @Override + public void init() + { + + } + + @Override + public void postInit() + { + + } +} diff --git a/src/main/java/nmd/primal/sample/common/CommonProxy.java b/src/main/java/nmd/primal/sample/common/CommonProxy.java new file mode 100644 index 0000000..d6dd53f --- /dev/null +++ b/src/main/java/nmd/primal/sample/common/CommonProxy.java @@ -0,0 +1,22 @@ +package nmd.primal.sample.common; + +public class CommonProxy +{ + // ***************************************************************************** // + // Proxy Stages + // ***************************************************************************** // + public void preInit() + { + + } + + public void init() + { + + } + + public void postInit() + { + + } +} diff --git a/src/main/java/nmd/primal/sample/common/PrimalSample.java b/src/main/java/nmd/primal/sample/common/PrimalSample.java new file mode 100644 index 0000000..d80cf37 --- /dev/null +++ b/src/main/java/nmd/primal/sample/common/PrimalSample.java @@ -0,0 +1,86 @@ +package nmd.primal.sample.common; + +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.Mod.Instance; +import net.minecraftforge.fml.common.SidedProxy; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.event.FMLServerStartingEvent; +import net.minecraftforge.fml.common.network.NetworkRegistry; +import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import nmd.primal.sample.common.init.ModInfo; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.Locale; + +@Mod( modid = ModInfo.MOD_ID, + name = ModInfo.MOD_ID, + version = ModInfo.MOD_VERSION, + acceptedMinecraftVersions = ModInfo.MC_VERSIONS, + dependencies = ModInfo.DEPENDENCIES, + updateJSON = ModInfo.UPDATE_JSON +) + +public class PrimalSample +{ + @Instance(ModInfo.MOD_ID) + public static PrimalSample INSTANCE; + + @SidedProxy(clientSide = ModInfo.CLIENT_PROXY, serverSide = ModInfo.COMMON_PROXY) + private static CommonProxy PROXY; + + private static SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel(ModInfo.MOD_ID); + private static Logger LOGGER = LogManager.getLogger(ModInfo.MOD_ID); + + @EventHandler + public void preInit(FMLPreInitializationEvent event) + { + Locale.setDefault(Locale.ENGLISH); + LOGGER.info("Pre-Init"); + PROXY.preInit(); + + // pre init stuff + } + + @EventHandler + public void init(FMLInitializationEvent event) + { + LOGGER.info("Init"); + PROXY.init(); + + // init stuff + } + + @EventHandler + public void postInit(FMLPostInitializationEvent event) + { + LOGGER.info("Post-Init"); + PROXY.postInit(); + + // post init stuff + } + + @EventHandler + public void serverStarting(FMLServerStartingEvent event) + { + // custom commands + } + + // ***************************************************************************** // + // helper methods + // ***************************************************************************** // + public static SimpleNetworkWrapper getNetwork() { + return NETWORK; + } + + public static CommonProxy getProxy() { + return PROXY; + } + + public static Logger getLogger() { + return LOGGER; + } +} diff --git a/src/main/java/nmd/primal/sample/common/init/ModInfo.java b/src/main/java/nmd/primal/sample/common/init/ModInfo.java new file mode 100644 index 0000000..2f9a499 --- /dev/null +++ b/src/main/java/nmd/primal/sample/common/init/ModInfo.java @@ -0,0 +1,47 @@ +package nmd.primal.sample.common.init; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class ModInfo +{ + // ***************************************************************************** // + // Mod Details + // ***************************************************************************** // + public static final String MOD_ID = "sample"; + public static final String MOD_CONFIG = "primal/" + MOD_ID; + public static final String MOD_VERSION = "@MOD_VERSION@"; + public static final String MC_VERSIONS = "[1.11.0, 1.12.0)"; + public static final String DEPENDENCIES = "required-after:forge@[13.20.0.2311,);" + + "required-after:primal@[0.4.6,);"; + + // ***************************************************************************** // + // Paths + // ***************************************************************************** // + //public static final Marker MOD_MARKER = MarkerManager.getMarker(MOD_ID); + //public static final String GUI_FACTORY = "nmd.primal.sample.client.gui.GuiFactory"; + public static final String COMMON_PROXY = "nmd.primal.sample.common.CommonProxy"; + public static final String CLIENT_PROXY = "nmd.primal.sample.client.ClientProxy"; + public static final String UPDATE_JSON = "http://insecure.www.nmd.so/update-sample.json"; + + // ***************************************************************************** // + // IDs + // ***************************************************************************** // + public static final int POTION_BASE_ID = 0; + public static final int WORKTABLE_BASIC = 0; + + // ***************************************************************************** // + // Creative Tabs + // ***************************************************************************** // + public static CreativeTabs TAB_MAGNUM = new CreativeTabs(MOD_ID) + { + @Override + @SideOnly(Side.CLIENT) + public ItemStack getTabIconItem() { + return new ItemStack(Items.FLINT); + } + }; +} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info new file mode 100644 index 0000000..2e8c8fa --- /dev/null +++ b/src/main/resources/mcmod.info @@ -0,0 +1,16 @@ +[ +{ + "modid": "examplemod", + "name": "Example PrimalCore Sub-Mod", + "description": "Example placeholder mod.", + "version": "${version}", + "mcversion": "${mcversion}", + "url": "", + "updateUrl": "", + "authorList": ["ExampleDude"], + "credits": "The Forge and FML guys, for making this example", + "logoFile": "", + "screenshots": [], + "dependencies": [] +} +] diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..9cf1e25 --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,7 @@ +{ + "pack": { + "description": "examplemod resources", + "pack_format": 3, + "_comment": "A pack_format of 3 should be used starting with Minecraft 1.11. All resources, including language files, should be lowercase (eg: en_us.assets.sample.lang). A pack_format of 2 will load your mod resources with LegacyV2Adapter, which requires language files to have uppercase letters (eg: en_US.assets.sample.lang)." + } +}