From f0509fbb28122b0eac640fb788d2f395978fe174 Mon Sep 17 00:00:00 2001 From: Matthew Messinger Date: Tue, 17 Nov 2015 00:19:58 -0500 Subject: [PATCH] Multi-project --- build.gradle | 35 +++++++++++++++++++ .../minelittlepony/common/IPonyArmor.java | 12 +++++++ .../minelittlepony/common/MLPCommonProxy.java | 16 +++++++++ .../minelittlepony/forge/MLPForge.java | 14 ++++++++ .../minelittlepony/forge/PonyArmors.java | 23 ++++++++++++ settings.gradle | 4 ++- .../minelittlepony/MineLittlePony.java | 6 ++++ .../minelittlepony/ProxyContainer.java | 18 ++++++++++ 8 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 common/src/main/java/com/brohoof/minelittlepony/common/IPonyArmor.java create mode 100644 common/src/main/java/com/brohoof/minelittlepony/common/MLPCommonProxy.java create mode 100644 forge/src/main/java/com/brohoof/minelittlepony/forge/MLPForge.java create mode 100644 forge/src/main/java/com/brohoof/minelittlepony/forge/PonyArmors.java create mode 100644 src/main/java/com/brohoof/minelittlepony/ProxyContainer.java diff --git a/build.gradle b/build.gradle index 84e7ffa5..546dad7b 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,38 @@ minecraft { tweakClass = 'com.mumfrey.liteloader.launch.LiteLoaderTweaker' replace '@VERSION@',project.version } +project('common') { + apply plugin: 'java' + apply plugin: 'eclipse' + sourceCompatibility = 1.6 + targetCompatibility = 1.6 + + sourceSets.main { + compileClasspath += rootProject.configurations.forgeGradleMc + } + eclipse.classpath.file.withXml { + def path = "$gradle.gradleUserHomeDir/caches/minecraft/net/minecraft/minecraft/$minecraft.version/${minecraft.mappings.replace('_','/')}/minecraftSrc-$minecraft.version" + it.asNode().appendNode('classpathentry',[ + kind: "lib", + path: "${path}.jar", + sourcepath:"$path-sources.jar" + ]) + } + +} +project('forge') { + apply plugin: 'net.minecraftforge.gradle.forge' + minecraft { + version = '1.8-11.14.3.1543' + mappings = rootProject.minecraft.mappings + runDir = '../run' + replace '@VERSION@',project.version + } + dependencies { + provided project(':common') + } +} processResources { def props = [ @@ -36,12 +67,16 @@ repositories.flatDir { dir 'liteloader' } dependencies { + compile project('common') deobfProvided 'com.mumfrey:liteloader:1.8-SNAPSHOT:srgnames' provided voxellib } jar { manifest.attributes.remove 'TweakClass' + extension 'litemod' + from project('common').sourceSets.main.output + from project('forge').sourceSets.main.output } task standaloneJar(type: Jar, dependsOn: [{voxellib.build}, reobfJar]) { extension 'litemod' diff --git a/common/src/main/java/com/brohoof/minelittlepony/common/IPonyArmor.java b/common/src/main/java/com/brohoof/minelittlepony/common/IPonyArmor.java new file mode 100644 index 00000000..9dfd2207 --- /dev/null +++ b/common/src/main/java/com/brohoof/minelittlepony/common/IPonyArmor.java @@ -0,0 +1,12 @@ +package com.brohoof.minelittlepony.common; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public interface IPonyArmor { + + String getArmorTexture(EntityLivingBase e, ItemStack item, String def, int slot, String type); + + ModelBase getArmorModel(EntityLivingBase e, ItemStack item, int slot, ModelBase def); +} diff --git a/common/src/main/java/com/brohoof/minelittlepony/common/MLPCommonProxy.java b/common/src/main/java/com/brohoof/minelittlepony/common/MLPCommonProxy.java new file mode 100644 index 00000000..727e0ae6 --- /dev/null +++ b/common/src/main/java/com/brohoof/minelittlepony/common/MLPCommonProxy.java @@ -0,0 +1,16 @@ +package com.brohoof.minelittlepony.common; + +public abstract class MLPCommonProxy { + + private static MLPCommonProxy instance; + + public static MLPCommonProxy getInstance() { + return instance; + } + + public MLPCommonProxy() { + instance = this; + } + + public abstract void setPonyArmors(IPonyArmor armors); +} diff --git a/forge/src/main/java/com/brohoof/minelittlepony/forge/MLPForge.java b/forge/src/main/java/com/brohoof/minelittlepony/forge/MLPForge.java new file mode 100644 index 00000000..672c73ab --- /dev/null +++ b/forge/src/main/java/com/brohoof/minelittlepony/forge/MLPForge.java @@ -0,0 +1,14 @@ +package com.brohoof.minelittlepony.forge; + +import com.brohoof.minelittlepony.common.MLPCommonProxy; + +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; + +@Mod(modid = "minelp_forge", name = "Mine Little Pony Forge Hooks", version = "1.8") +public class MLPForge { + + public void init(FMLPostInitializationEvent init) { + MLPCommonProxy.getInstance().setPonyArmors(new PonyArmors()); + } +} diff --git a/forge/src/main/java/com/brohoof/minelittlepony/forge/PonyArmors.java b/forge/src/main/java/com/brohoof/minelittlepony/forge/PonyArmors.java new file mode 100644 index 00000000..559b1e39 --- /dev/null +++ b/forge/src/main/java/com/brohoof/minelittlepony/forge/PonyArmors.java @@ -0,0 +1,23 @@ +package com.brohoof.minelittlepony.forge; + +import com.brohoof.minelittlepony.common.IPonyArmor; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public class PonyArmors implements IPonyArmor { + + @Override + public String getArmorTexture(EntityLivingBase entity, ItemStack armor, String def, int slot, String type) { + String result = armor.getItem().getArmorTexture(armor, entity, slot, type); + return result == null ? def : result; + } + + @Override + public ModelBase getArmorModel(EntityLivingBase entity, ItemStack item, int slot, ModelBase def) { + ModelBase result = item.getItem().getArmorModel(entity, item, slot); + return result == null ? def : result; + } + +} diff --git a/settings.gradle b/settings.gradle index 63efbc54..bf2dc4c4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,3 @@ -include ':voxellib' \ No newline at end of file +rootProject.name = 'MineLittlePony' + +include 'voxellib', 'common', 'forge' diff --git a/src/main/java/com/brohoof/minelittlepony/MineLittlePony.java b/src/main/java/com/brohoof/minelittlepony/MineLittlePony.java index 60232d83..b2666ab4 100644 --- a/src/main/java/com/brohoof/minelittlepony/MineLittlePony.java +++ b/src/main/java/com/brohoof/minelittlepony/MineLittlePony.java @@ -43,6 +43,7 @@ public class MineLittlePony implements InitCompleteListener { private PonyConfig config; private PonyManager ponyManager; + private ProxyContainer proxy; public MineLittlePony() { instance = this; @@ -75,6 +76,7 @@ public class MineLittlePony implements InitCompleteListener { this.config = new PonyConfig(); this.ponyManager = new PonyManager(config); + this.proxy = new ProxyContainer(); LiteLoader.getInstance().registerExposable(config, null); } @@ -130,6 +132,10 @@ public class MineLittlePony implements InitCompleteListener { return this.ponyManager; } + public static ProxyContainer getProxy() { + return getInstance().proxy; + } + public static PonyConfig getConfig() { return getInstance().config; } diff --git a/src/main/java/com/brohoof/minelittlepony/ProxyContainer.java b/src/main/java/com/brohoof/minelittlepony/ProxyContainer.java new file mode 100644 index 00000000..3125ae5f --- /dev/null +++ b/src/main/java/com/brohoof/minelittlepony/ProxyContainer.java @@ -0,0 +1,18 @@ +package com.brohoof.minelittlepony; + +import com.brohoof.minelittlepony.common.IPonyArmor; +import com.brohoof.minelittlepony.common.MLPCommonProxy; + +public class ProxyContainer extends MLPCommonProxy { + + private IPonyArmor ponyArmors; + + @Override + public void setPonyArmors(IPonyArmor armors) { + this.ponyArmors = armors; + } + + public IPonyArmor getPonyArmors() { + return ponyArmors; + } +}