Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,41 @@ minecraft {
version = "${mc_version}-${forge_version}"
runDir = "run-1.12"

mappings = "stable_39"
mappings = "stable_39"
}

repositories {
maven {
name 'TinCon Maven'
url 'https://dvs1.progwml6.com/files/maven'
}
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
maven {
name 'Cofh'
url 'https://maven.covers1624.net'
}
maven {
name 'Curseforge Maven'
url 'http://minecraft.curseforge.com/api/maven/'
}
}

dependencies {
deobfCompile "slimeknights.mantle:Mantle:1.12-1.3.3.49"
deobfCompile "slimeknights:TConstruct:1.12.2-2.12.0.149"
//implementation "com.github.SleepyTrousers:EnderCore:0.5.70"
//implementation "com.github.SleepyTrousers:EnderIO:5.0.50"
implementation "com.github.Silentine:GrimoireOfGaia:1.12.1-Dev-SNAPSHOT"
implementation "com.github.Lykrast:MysticalWildlife:1.12-SNAPSHOT"
deobfCompile "com.progwml6.natura:Natura-1.12:1.12-4.3.0.8"
// implementation "com.github.Daveyx0:PrimitiveMobs:master-SNAPSHOT" -- doesn't work...
deobfCompile "cofh:ThermalFoundation:1.12.2-2.6.3.27:deobf"
deobfCompile "thaumcraft:Thaumcraft:1.12.2:6.1.BETA26"
implementation "com.github.TeamTwilight:twilightforest:1.12.x-SNAPSHOT"
implementation "com.github.Um-Mitternacht:Bewitchment:1.12.2-SNAPSHOT"
}

processResources {
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
org.gradle.jvmargs=-Xmx1G

mc_version=1.12.2
forge_version=14.23.5.2768
forge_version=14.23.5.2847

mod_version=3.0.0
37 changes: 29 additions & 8 deletions src/main/java/ganymedes01/headcrumbs/Headcrumbs.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import ganymedes01.headcrumbs.commands.ReloadModelsCommand;
import ganymedes01.headcrumbs.configs.ConfigHandler;
import ganymedes01.headcrumbs.entity.EntityHuman;
import ganymedes01.headcrumbs.entity.VIPHandler;
Expand All @@ -19,13 +20,15 @@
import ganymedes01.headcrumbs.proxy.CommonProxy;
import ganymedes01.headcrumbs.recipes.StatueRecipe;
import ganymedes01.headcrumbs.utils.HeadUtils;
import ganymedes01.headcrumbs.utils.helpers.BewitchmentHelper;
import ganymedes01.headcrumbs.utils.helpers.ElementalCreepersHelper;
import ganymedes01.headcrumbs.utils.helpers.EnderZooHelper;
import ganymedes01.headcrumbs.utils.helpers.GrimoireOfGaiaHelper;
import ganymedes01.headcrumbs.utils.helpers.LaserCreepersHelper;
import ganymedes01.headcrumbs.utils.helpers.MysticalWildlifeHelper;
import ganymedes01.headcrumbs.utils.helpers.NaturaHelper;
import ganymedes01.headcrumbs.utils.helpers.PrimitiveMobsHelper;
import ganymedes01.headcrumbs.utils.helpers.TConstructHelper;
import ganymedes01.headcrumbs.utils.helpers.TEHelper;
import ganymedes01.headcrumbs.utils.helpers.ThaumcraftHelper;
import ganymedes01.headcrumbs.utils.helpers.TwilightForestHelper;
Expand Down Expand Up @@ -54,11 +57,11 @@
import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage;
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.registry.EntityRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.registries.GameData;
import slimeknights.tconstruct.library.TinkerRegistry;

@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION_NUMBER, guiFactory = Reference.GUI_FACTORY_CLASS, dependencies = "required-after:tconstruct@[1.12.2-2.12.0.149,);")
public class Headcrumbs
Expand Down Expand Up @@ -153,9 +156,14 @@ public ItemStack createIcon()
public static String humanNamePrefix = "";
public static boolean humansAttackTwins = true;

public static Logger LOGGER;

@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
LOGGER = event.getModLog();
LOGGER.info("Enabling headcrumbs.");

ConfigHandler.INSTANCE.init(event.getSuggestedConfigurationFile());

OreDictionary.registerOre("itemSkull", new ItemStack(Items.SKULL, 1, OreDictionary.WILDCARD_VALUE));
Expand All @@ -172,6 +180,15 @@ public void preInit(FMLPreInitializationEvent event)
VIPHandler.init();
}

registerHelpers();

proxy.registerEntityRenderers();
proxy.registerEvents();
proxy.registerTileEntities();
}

public static void registerHelpers() {
HeadDropRegistry.helpers.clear();
HeadDropRegistry.register(new VanillaHelper());
HeadDropRegistry.register(new LaserCreepersHelper());
HeadDropRegistry.register(new TwilightForestHelper());
Expand All @@ -183,16 +200,21 @@ public void preInit(FMLPreInitializationEvent event)
HeadDropRegistry.register(new GrimoireOfGaiaHelper());
HeadDropRegistry.register(new ElementalCreepersHelper());
HeadDropRegistry.register(new MysticalWildlifeHelper());

proxy.registerEntityRenderers();
proxy.registerEvents();
proxy.registerTileEntities();
HeadDropRegistry.register(new BewitchmentHelper());
}

@EventHandler
public static void onServerStart(FMLServerStartingEvent event) {
event.getServer().getCommandManager().getCommands().put("reloadmodels", new ReloadModelsCommand());

}


@EventHandler
public void init(FMLInitializationEvent event)
{
proxy.registerRenderers();


FMLInterModComms.sendMessage("Waila", "register", "ganymedes01.headcrumbs.waila.WailaRegistrar.wailaCallback");

Expand Down Expand Up @@ -245,9 +267,8 @@ public void postInit(FMLPostInitializationEvent event)
addConvertionRecipe("Snow Queen recipe", HeadDropRegistry.getHead(TwilightForestHelper.MOD_ID, "snowQueen"), new ItemStack(tropy, 1, 4));
}

if(Loader.isModLoaded("tconstruct"))
{
TinkerRegistry.registerHeadDrop(EntityHuman.class, (entity) -> {
if(Loader.isModLoaded("tconstruct")) {
TConstructHelper.registerHeadDrop(EntityHuman.class, (entity) -> {
return HeadUtils.getHeadfromEntity(entity);
});
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package ganymedes01.headcrumbs.commands;

import ganymedes01.headcrumbs.Headcrumbs;
import ganymedes01.headcrumbs.libs.HeadDropRegistry;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.text.TextComponentString;

public class ReloadModelsCommand extends CommandBase {

public ReloadModelsCommand() {
}

@Override
public String getName() {
return "reloadmodels";
}

@Override
public String getUsage(ICommandSender sender) {
return "/reloadmodels";
}

@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {

if (sender instanceof EntityPlayerMP) {
HeadDropRegistry.initModels();
Headcrumbs.registerHelpers();
} else {
sender.sendMessage(new TextComponentString("This is a client-only command."));
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import java.util.LinkedList;
import java.util.List;

import ganymedes01.headcrumbs.Headcrumbs;
import ganymedes01.headcrumbs.utils.helpers.HeadDropHelper;
import ganymedes01.headcrumbs.utils.helpers.VanillaHelper;
import net.minecraft.entity.Entity;
Expand All @@ -21,6 +22,8 @@ public static void register(HeadDropHelper helper)
helpers.add(0, helper);
else
helpers.add(helper);

Headcrumbs.LOGGER.info("Registered the head drop helper for " + helper.getModID());
}

public static ItemStack getHead(Entity entity)
Expand Down Expand Up @@ -56,8 +59,10 @@ public static HeadDrop getHeadDrop(String modID, String entity)
public static void initModels()
{
for(HeadDropHelper helper : helpers)
if(helper.isEnabled())
if(helper.isEnabled()) {
helper.initModels();
Headcrumbs.LOGGER.info("Helper for " + helper.getModID() + " is enabled.");
}
}

public static List<ItemStack> getAllStacks()
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/ganymedes01/headcrumbs/libs/Strings.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ganymedes01.headcrumbs.libs;

import ganymedes01.headcrumbs.utils.helpers.BewitchmentHelper;
import ganymedes01.headcrumbs.utils.helpers.ElementalCreepersHelper;
import ganymedes01.headcrumbs.utils.helpers.GrimoireOfGaiaHelper;
import ganymedes01.headcrumbs.utils.helpers.LaserCreepersHelper;
Expand All @@ -25,4 +26,6 @@ public class Strings
public static final String TE_PREFIX = TEHelper.MOD_ID + DEFAULT_TEXTURE_LOC;
public static final String TC_PREFIX = ThaumcraftHelper.MOD_ID + DEFAULT_TEXTURE_LOC;
public static final String TF_PREFIX = TwilightForestHelper.MOD_ID + ":textures/model/";
public static final String BW_PREFIX = BewitchmentHelper.MOD_ID + DEFAULT_TEXTURE_LOC;

}
38 changes: 38 additions & 0 deletions src/main/java/ganymedes01/headcrumbs/renderers/ModelHead.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ public class ModelHead extends ModelBase {
private boolean renderOverlay;
private ResourceLocation secondTex = null;

private boolean translated = false;
private float dx;
private float dy;
private float dz;
private float dDist;

public ModelHead() {
this(32);
}
Expand Down Expand Up @@ -48,6 +54,9 @@ public void renderSpecial(GameProfile profile, float skullRotation) {

public void preRenderItem(GameProfile profile, ItemRenderType type) {
}

public void postRender() {
}

public final ResourceLocation getSecondTexture() {
return secondTex;
Expand All @@ -70,9 +79,38 @@ public void render(float rotationX) {
render(rotationX, 0.0F);
}

public void setTranslation(float dx, float dy, float dz) {
this.translated = true;
if (dx < 0) this.dx = -1;
else if (dx > 0) this.dx = 1;
this.dy = dy;
if (dz < 0) this.dz = -1;
else if (dz > 0) this.dz = 1;
this.dDist = (float) Math.sqrt(Math.pow(dx, 2) + Math.pow(dz, 2));
}

public void applyTranslation() {
if (this.translated) {
float dx = (float) (Math.sin(head.rotateAngleY - Math.PI) * -this.dDist);
float dz = (float) (Math.cos(head.rotateAngleY - Math.PI) * -this.dDist);

if ((head.rotateAngleY >= Math.PI/4.0d * 3.0d && Math.PI/4.0d * 5.0d >= head.rotateAngleY)
|| (head.rotateAngleY >= Math.PI/4.0d * 7.0d || Math.PI/4.0d >= head.rotateAngleY)) {
dx *= this.dx;
dz *= this.dz;
} else {
dx *= this.dz;
dz *= this.dx;
}

GlStateManager.translate(dx, dy, dz);
}
}

public void render(float rotationX, float rotationY) {
head.rotateAngleY = rotationX / (180F / (float) Math.PI);
head.rotateAngleX = rotationY / (180F / (float) Math.PI);
applyTranslation();
head.render(0.0625F);
if (renderOverlay)
renderOverlay(rotationX, rotationY);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public void renderHead(float x, float y, float z, int meta, float skullRotation,
model.preRender(profile);
model.render(skullRotation);
renderSpecial(profile, skullRotation);
model.postRender();

if(GL11.glIsEnabled(GL11.GL_BLEND))
GlStateManager.enableBlend();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package ganymedes01.headcrumbs.renderers;

import ganymedes01.headcrumbs.libs.ItemRenderType;
import ganymedes01.headcrumbs.utils.HeadUtils;
import net.minecraft.client.renderer.tileentity.TileEntityItemStackRenderer;
import net.minecraft.item.ItemStack;

public class TileEntityItemStackSkullRenderer extends TileEntityItemStackRenderer {

public void func_192838_a(ItemStack stack, float p_192838_2_) {

@Override
public void renderByItem(ItemStack stack, float partialTicks) {
HeadUtils.getModel(stack).getModel().preRenderItem(HeadUtils.getGameProfile(stack), ItemRenderType.INVENTORY);
TileEntityBlockSkullRenderer.INSTANCE.renderHead(0.0F, -0.1F, 0.0F, stack.getMetadata(), 0f,
HeadUtils.getModel(stack), HeadUtils.getGameProfile(stack), -1);
}
Expand Down
Loading