2
0
Fork 0

Merge remote-tracking branch 'origin/main' into frozen

frozen
Shinare 6 months ago
commit 3c02377ec9

@ -27,24 +27,15 @@
</profile>
<profile name="Gradle Imported" enabled="true">
<outputRelativeToContentRoot value="true" />
<option name="outRefMapFile" value="C:\Users\jayce\IdeaProjects\CinderLoE\build\tmp\mixins\mixins.cinder_loe.refmap.json" />
<option name="outSrgFile" value="C:\Users\jayce\IdeaProjects\CinderLoE\build\tmp\mixins\mixins.srg" />
<option name="reobfSrgFile" value="C:\Users\jayce\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.4.1614-1.7.10\srgs\mcp-srg.srg" />
<option name="outRefMapFile" value="C:\Users\botba\Desktop\CinderLoE\build\tmp\mixins\mixins.cinder_loe.refmap.json" />
<option name="outSrgFile" value="C:\Users\botba\Desktop\CinderLoE\build\tmp\mixins\mixins.srg" />
<option name="reobfSrgFile" value="C:\Users\botba\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.4.1614-1.7.10\srgs\mcp-srg.srg" />
<processorPath useClasspath="false">
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bsideup.jabel/jabel-javac-plugin/1.0.0/f6ec2a4deac41871ea4366ff8680f51413a18139/jabel-javac-plugin-1.0.0.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna-platform/5.13.0/88e9a306715e9379f3122415ef4ae759a352640d/jna-platform-5.13.0.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-debug-all/5.0.3/f9e364ae2a66ce2a543012a4668856e84e5dab74/asm-debug-all-5.0.3.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/24.1.1-jre/2e3014320a8005e3f3c1800cb246ed42db8cab81/guava-24.1.1-jre.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.6/9180733b7df8542621dc12e21e87557e8c99b8cb/gson-2.8.6.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.github.legacymoddingmc/unimixins/0.1.13/56533e70de8521cd7b036db1576d59622a7bf8c3/unimixins-0.1.13-dev.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.12.18/875a9c3f29d2f6f499dfd60d76e97a343f9b1233/byte-buddy-1.12.18.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.12.18/417a7310a7bf1c1aae5ca502d26515f9c2f94396/byte-buddy-agent-1.12.18.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.13.0/1200e7ebeedbe0d10062093f32925a912020e747/jna-5.13.0.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/1.3.9/40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf/jsr305-1.3.9.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-compat-qual/2.0.0/fc89b03860d11d6213d0154a62bcd1c2f69b9efa/checker-compat-qual-2.0.0.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.1.3/39b109f2cd352b2d71b52a3b5a1a9850e1dc304b/error_prone_annotations-2.1.3.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/ed28ded51a8b1c6b112568def5f4b455e6809019/j2objc-annotations-1.1.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/775b7e22fb10026eed3f86e8dc556dfafe35f2d5/animal-sniffer-annotations-1.14.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.12.1/b1e93a735caea94f503e95e6fe79bf9cdc1e985d/jna-5.12.1.jar" />
</processorPath>
<module name="CinderLoE.main" />
</profile>

@ -5,7 +5,6 @@
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="zulu-1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />

@ -6,6 +6,8 @@
<module fileurl="file://$PROJECT_DIR$/.idea/modules/CinderLoE.ideVirtualMain.iml" filepath="$PROJECT_DIR$/.idea/modules/CinderLoE.ideVirtualMain.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/CinderLoE.main.iml" filepath="$PROJECT_DIR$/.idea/modules/CinderLoE.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/CinderLoE.test.iml" filepath="$PROJECT_DIR$/.idea/modules/CinderLoE.test.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/com.zivilon.cinder_loe.CinderLoE.ideVirtualMain.iml" filepath="$PROJECT_DIR$/.idea/modules/com.zivilon.cinder_loe.CinderLoE.ideVirtualMain.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/com.zivilon.cinder_loe.CinderLoE.test.iml" filepath="$PROJECT_DIR$/.idea/modules/com.zivilon.cinder_loe.CinderLoE.test.iml" />
</modules>
</component>
</project>

@ -1,138 +0,0 @@
package com.zivilon.cinder_loe;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lotr.common.LOTRAchievement;
import lotr.common.fac.LOTRFaction;
import lotr.common.world.LOTRWorldProvider;
import lotr.common.world.LOTRWorldProviderMiddleEarth;
import lotr.common.world.LOTRWorldProviderUtumno;
import lotr.common.world.biome.LOTRBiome;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.config.Configuration;
import java.util.*;
public enum CinderDimension {
ISLAND("Island", 101, LOTRWorldProviderMiddleEarth.class, false, 500, EnumSet.of(DimensionRegion.REG));
public String dimensionName;
private int defaultID;
public int dimensionID;
private Class providerClass;
private boolean loadSpawn;
public LOTRBiome[] biomeList = new LOTRBiome[256];
public Map<Integer, Integer> colorsToBiomeIDs = new HashMap<Integer, Integer>();
public List<LOTRBiome> majorBiomes = new ArrayList<LOTRBiome>();
public List<LOTRAchievement.Category> achievementCategories = new ArrayList<LOTRAchievement.Category>();
public List<LOTRAchievement> allAchievements = new ArrayList<LOTRAchievement>();
public List<LOTRFaction> factionList = new ArrayList<LOTRFaction>();
public List<CinderDimension.DimensionRegion> dimensionRegions = new ArrayList<CinderDimension.DimensionRegion>();
public int spawnCap;
private CinderDimension(String s, int i, Class c, boolean flag, int spawns, EnumSet<DimensionRegion> regions) {
this.dimensionName = s;
this.defaultID = i;
this.providerClass = c;
this.loadSpawn = flag;
this.spawnCap = spawns;
this.dimensionRegions.addAll(regions);
for (DimensionRegion r : this.dimensionRegions) {
r.setDimension(this);
}
}
public String getUntranslatedDimensionName() {
return "lotr.dimension." + this.dimensionName;
}
public String getDimensionName() {
return StatCollector.translateToLocal((String)this.getUntranslatedDimensionName());
}
public static void configureDimensions(Configuration config, String category) {
for (CinderDimension dim : CinderDimension.values()) {
dim.dimensionID = config.get(category, "Dimension ID: " + dim.dimensionName, dim.defaultID).getInt();
}
}
public static void registerDimensions() {
for (CinderDimension dim : CinderDimension.values()) {
DimensionManager.registerProviderType((int)dim.dimensionID, (Class)dim.providerClass, (boolean)dim.loadSpawn);
DimensionManager.registerDimension((int)dim.dimensionID, (int)dim.dimensionID);
}
}
public static CinderDimension getCurrentDimension(World world) {
WorldProvider provider;
if (world != null && (provider = world.provider) instanceof LOTRWorldProvider) {
return ((LOTRWorldProvider)provider).getLOTRDimension();
}
return null;
}
public static CinderDimension getCurrentDimensionWithFallback(World world) {
CinderDimension dim = CinderDimension.getCurrentDimension(world);
if (dim == null) {
return ISLAND;
}
return dim;
}
public static CinderDimension forName(String s) {
for (CinderDimension dim : CinderDimension.values()) {
if (!dim.dimensionName.equals(s)) continue;
return dim;
}
return null;
}
public static enum DimensionRegion {
REG("island");
private String regionName;
private CinderDimension dimension;
public List<LOTRFaction> factionList = new ArrayList<LOTRFaction>();
private DimensionRegion(String s) {
this.regionName = s;
}
public void setDimension(CinderDimension dim) {
this.dimension = dim;
}
public CinderDimension getDimension() {
return this.dimension;
}
public String codeName() {
return this.regionName;
}
public String getRegionName() {
return StatCollector.translateToLocal((String)("lotr.dimension." + this.dimension.dimensionName + "." + this.codeName()));
}
public static DimensionRegion forName(String regionName) {
for (DimensionRegion r : DimensionRegion.values()) {
if (!r.codeName().equals(regionName)) continue;
return r;
}
return null;
}
public static DimensionRegion forID(int ID) {
for (DimensionRegion r : DimensionRegion.values()) {
if (r.ordinal() != ID) continue;
return r;
}
return null;
}
}
}

@ -1,6 +1,8 @@
package com.zivilon.cinder_loe;
import com.zivilon.cinder_loe.blocks.*;
import com.zivilon.cinder_loe.blocks.plants.cabbageCrop;
import com.zivilon.cinder_loe.blocks.plants.onionCrop;
import com.zivilon.cinder_loe.character.CharacterEventListener;
import com.zivilon.cinder_loe.character.CharacterRoleAPI;
import com.zivilon.cinder_loe.client.render.*;
@ -37,6 +39,7 @@ import com.zivilon.cinder_loe.world.biome.CinderBiome;
import com.zivilon.cinder_loe.world.event.*;
import com.zivilon.cindercore.CinderCore;
import net.minecraft.item.ItemSeedFood;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -198,7 +201,7 @@ public class CinderLoE {
public static Item spiceHuman;
public static Item spiceOrcish;
public static Item spiceDwarven;
public static Item spiceIngredient;
// Event/special
public static Item frostblade;
@ -253,6 +256,7 @@ public class CinderLoE {
// Misc
public static Item forgingKit;
public static Item fieldRepairKit;
public static Item cinderFurItem;
// Common tools/weapons
@ -627,13 +631,14 @@ public class CinderLoE {
e.printStackTrace();
}
// Food
// onion = new ItemSeedFood(3, 0.3f, CinderLoE.onionCrop, Blocks.farmland).setUnlocalizedName("lotr:onion").setTextureName("lotr:onion");
//cabbage = new ItemSeedFood(3, 0.3f, CinderLoE.cabbageCrop, Blocks.farmland).setUnlocalizedName("lotr:cabbage").setTextureName("lotr:cabbage");;
spice = new CinderItemFood(1, 0.0f, false).setdamageAmount(2).setPotionEffect(Potion.moveSpeed.id, 5,0,100).setUnlocalizedName("lotr:spice").setTextureName("lotr:spice");
spicedHam = new CinderItemFood(9, 0.6f, true).setdamageAmount(2).setPotionEffect(Potion.moveSpeed.id, 15, 0, 100).setUnlocalizedName("lotr:spicedHam").setTextureName("lotr:spicedHam");
// spice = new LOTRItemFood(1, 0.0f, false).setPotionEffect(Potion.moveSpeed.id, 10,0,100).setUnlocalizedName("lotr:spice");
pelmen = new LOTRItemFood(4, 5.0f, true).setUnlocalizedName("lotr:pelmen").setTextureName("lotr:pelmen");
onion = new LOTRItemFood(3, 0.3f, false).setUnlocalizedName("lotr:onion").setTextureName("lotr:onion");
onion = new ItemSeedFood(2, 0.3f, onionCrop, Blocks.farmland).setUnlocalizedName("lotr:onion").setTextureName("lotr:onion");
cabbage = new LOTRItemFood(4, 0.5f, false).setUnlocalizedName("lotr:cabbage").setTextureName("lotr:cabbage");
lightStew = new LOTRItemStew(6, 0.7f, false).setPotionEffect(Potion.damageBoost.id, 60, 0, 100).setUnlocalizedName("lotr:lightStew").setTextureName("lotr:lightStew");
chocolatebar = new LOTRItemFood(4,0.3f, false).setUnlocalizedName("lotr:chocolatebar").setTextureName("lotr:chocolatebar");
@ -649,6 +654,8 @@ public class CinderLoE {
spiceHuman = new Item().setUnlocalizedName("lotr:spice_human").setTextureName("lotr:spice_human");
spiceOrcish = new Item().setUnlocalizedName("lotr:spice_orcish").setTextureName("lotr:spice_orcish");
spiceDwarven = new Item().setUnlocalizedName("lotr:spice_dwarven").setTextureName("lotr:spice_dwarven");
spiceIngredient = (new spiceIngredient());
mugElfBrew = (new LoEItemMug(0.0F)).setDrinkStats(20, 1.0F).addPotionEffect(Potion.moveSpeed.id, 60, 1).toxic().setUnlocalizedName("lotr:mugElfBrew");
mugHumanBrew = (new LoEItemMug(0.0F)).setDrinkStats(20, 1.0F).addPotionEffect(Potion.regeneration.id, 60, 1).toxic().setUnlocalizedName("lotr:mugHumanBrew");
mugOrcBrew = (new LoEItemMug(0.0F)).setDrinkStats(20, 1.0F).addPotionEffect(Potion.damageBoost.id, 60, 1).toxic().setUnlocalizedName("lotr:mugOrcBrew");
@ -733,6 +740,7 @@ public class CinderLoE {
ItemRegistration.register(spiceHuman, "spiceHuman",6919);
ItemRegistration.register(spiceOrcish, "spiceOrcish",6920);
ItemRegistration.register(spiceDwarven, "spiceDwarven",6921);
ItemRegistration.register(spiceIngredient, "spiceIngredient",6922);
ItemRegistration.register(spawnEgg, "spawnEgg", 6003);
@ -774,9 +782,11 @@ public class CinderLoE {
bootsJade = (new LOTRItemArmor(MATERIAL_JADE, 3)).setUnlocalizedName("lotr:bootsJade").setTextureName("lotr:bootsJade").setCreativeTab(null);
forgingKit = (new ForgingKit());
fieldRepairKit = new FieldRepairKit().setUnlocalizedName("lotr:field_repair_kit").setTextureName("lotr:field_repair_kit");
ItemRegistration.register(frostblade, "frostblade", 6200);
ItemRegistration.register(forgingKit,"forgingKit",6001);
ItemRegistration.register(fieldRepairKit,"fieldRepairKit",6002);
ItemRegistration.register(whip, "whip", 6110);
ItemRegistration.register(daggervoid, "daggerVoid", 6201);
ItemRegistration.register(spearsolidgold, "spearsolidgold", 6202);
@ -1313,8 +1323,7 @@ public class CinderLoE {
@SideOnly(Side.SERVER)
public void onWorldLoad(WorldEvent.Load event) {
// == Crop Blocks ==
CinderCore.registerItemFallback(Block.getIdFromBlock(onionCrop), Block.getIdFromBlock(LOTRMod.turnipCrop), "cinder_loe", "1.2.1");
CinderCore.registerItemFallback(Block.getIdFromBlock(cabbageCrop), Block.getIdFromBlock(LOTRMod.lettuceCrop), "cinder_loe", "1.2.1");
// == Food Items ==
CinderCore.registerItemFallback(Item.getIdFromItem(onion), Item.getIdFromItem(LOTRMod.turnip), "cinder_loe", "1.2.1");
CinderCore.registerItemFallback(Item.getIdFromItem(cabbage), Item.getIdFromItem(LOTRMod.lettuce), "cinder_loe", "1.2.1");

@ -1,50 +0,0 @@
package com.zivilon.cinder_loe.blocks;
import com.zivilon.cinder_loe.CinderLoE;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import lotr.common.LOTRMod;
import net.minecraft.block.BlockCrops;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.EnumPlantType;
public class onionCrop
extends BlockCrops {
@SideOnly(value=Side.CLIENT)
private IIcon[] onionIcons;
@SideOnly(value=Side.CLIENT)
public IIcon getIcon(int i, int j) {
if (j < 7) {
if (j == 6) {
j = 5;
}
return this.onionIcons[j >> 1];
}
return this.onionIcons[3];
}
@SideOnly(value=Side.CLIENT)
public void registerBlockIcons(IIconRegister iconregister) {
this.onionIcons = new IIcon[4];
for (int i = 0; i < this.onionIcons.length; ++i) {
this.onionIcons[i] = iconregister.registerIcon(this.getTextureName() + "_" + i);
}
}
public Item func_149866_i() {
return CinderLoE.onion;
}
public Item func_149865_P() {
return CinderLoE.onion;
}
public EnumPlantType getPlantType(IBlockAccess world, int i, int j, int k) {
return EnumPlantType.Crop;
}
}

@ -1,9 +1,8 @@
package com.zivilon.cinder_loe.blocks;
package com.zivilon.cinder_loe.blocks.plants;
import com.zivilon.cinder_loe.CinderLoE;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import lotr.common.LOTRMod;
import net.minecraft.block.BlockCrops;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;

@ -0,0 +1,91 @@
package com.zivilon.cinder_loe.blocks.plants;
import com.zivilon.cinder_loe.CinderLoE;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockCrops;
import net.minecraft.block.IGrowable;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.EnumPlantType;
import java.util.Random;
public class onionCrop extends BlockCrops implements IGrowable {
private IIcon[] icons;
public onionCrop() {
setBlockName("onionPlant");
setBlockTextureName("lotr:onion");
setTickRandomly(true);
setHardness(0.0F);
setStepSound(soundTypeGrass);
disableStats();
}
@Override
public void registerBlockIcons(IIconRegister iconRegister) {
icons = new IIcon[4];
for (int i = 0; i < 4; ++i) {
icons[i] = iconRegister.registerIcon("lotr:onion_" + i);
}
}
@Override
public IIcon getIcon(int side, int meta) {
return icons[Math.min(meta, 3)];
}
@Override
public boolean canPlaceBlockOn(Block block) {
return block == Blocks.farmland;
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
if (!world.isRemote && world.getBlockLightValue(x, y + 1, z) >= 9) {
int meta = world.getBlockMetadata(x, y, z);
if (meta < 3 && rand.nextInt(5) == 0) {
world.setBlockMetadataWithNotify(x, y, z, meta + 1, 2);
}
}
}
@Override
public boolean func_149851_a(World world, int x, int y, int z, boolean isClient) {
return world.getBlockMetadata(x, y, z) < 3;
}
@Override
public boolean func_149852_a(World world, Random rand, int x, int y, int z) {
return true;
}
@Override
public void func_149853_b(World world, Random rand, int x, int y, int z) {
int meta = world.getBlockMetadata(x, y, z);
if (meta < 3) {
world.setBlockMetadataWithNotify(x, y, z, meta + 1, 2);
}
}
@Override
public Item getItemDropped(int meta, Random rand, int fortune) {
return meta >= 3 ? CinderLoE.onion : null;
}
@Override
public int quantityDropped(Random rand) {
return 1 + rand.nextInt(3); // 13 onions
}
@Override
public Item getItem(World world, int x, int y, int z) {
return CinderLoE.onion;
}
}

@ -14,7 +14,7 @@ import java.util.Map;
public class CoreMod implements IFMLLoadingPlugin {
@Override
public String[] getASMTransformerClass() {
return new String[] {"com.zivilon.cinder_loe.coremod.LOTRMaterialTransformer","com.zivilon.cinder_loe.coremod.LOTRWeaponLinker", "com.zivilon.cinder_loe.coremod.LOTRBannerAdder", "com.zivilon.cinder_loe.coremod.LOTRSpawnListLinker", "com.zivilon.cinder_loe.coremod.OptiFinePatcher"};
return new String[] {"com.zivilon.cinder_loe.coremod.LOTRMaterialTransformer","com.zivilon.cinder_loe.coremod.LOTRWeaponLinker", "com.zivilon.cinder_loe.coremod.LOTRBannerAdder", "com.zivilon.cinder_loe.coremod.LOTRDimensionAdder", "com.zivilon.cinder_loe.coremod.LOTRSpawnListLinker", "com.zivilon.cinder_loe.coremod.OptiFinePatcher"};
}
@Override

@ -23,6 +23,7 @@ public class LOTRBannerAdder implements IClassTransformer {
public static List<BannerInfo> custom_banners = new ArrayList<>();
public void registerBanners() {
System.out.println("Registering banners");
custom_banners = new ArrayList<>();
// Arguments: enum name, texture name, ID, faction name
register("RED_DWARF", "redDwarf", 42, "DURINS_FOLK");
@ -30,7 +31,6 @@ public class LOTRBannerAdder implements IClassTransformer {
register("RED", "red", 44, "GONDOR");
register("BLUE", "blue", 45, "GONDOR");
register("GREEN", "green", 46, "GONDOR");
// register("TEST", "test", 43, "GONDOR");
}
@Override

@ -0,0 +1,206 @@
package com.zivilon.cinder_loe.coremod;
import com.zivilon.cinder_loe.world.CinderWorldProviderIsland;
import net.minecraft.launchwrapper.IClassTransformer;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.FieldNode;
import org.objectweb.asm.tree.InsnList;
import org.objectweb.asm.tree.AbstractInsnNode;
import org.objectweb.asm.tree.IntInsnNode;
import org.objectweb.asm.tree.TypeInsnNode;
import org.objectweb.asm.tree.InsnNode;
import org.objectweb.asm.tree.LdcInsnNode;
import org.objectweb.asm.tree.FieldInsnNode;
import org.objectweb.asm.tree.MethodInsnNode;
import org.objectweb.asm.tree.MethodNode;
import java.util.List;
import java.util.ArrayList;
public class LOTRDimensionAdder implements IClassTransformer {
public static List<DimensionInfo> custom_dimensions = new ArrayList<>();
// This is where you add new dimensions
public void registerDimensions() {
System.out.println("Registering dimensions");
custom_dimensions = new ArrayList<>();
// register("ISLAND", "Island", 102, CinderWorldProviderIsland.class, 100);
}
// The ASM code you shouldn't touch
@Override
public byte[] transform(String name, String transformedName, byte[] basicClass) {
if ("lotr.common.LOTRDimension".equals(transformedName)) {
registerDimensions();
if (custom_dimensions.isEmpty()) return basicClass;
// Get class
ClassReader classReader = new ClassReader(basicClass);
ClassNode classNode = new ClassNode();
classReader.accept(classNode, 0);
// Add the new enum constant
for (DimensionInfo dimension : custom_dimensions) {
FieldNode newEnumConstant = new FieldNode(
Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL + Opcodes.ACC_ENUM,
dimension.enum_name,
"Llotr/common/LOTRDimension;",
null,
null
);
classNode.fields.add(newEnumConstant);
}
// Locate <clinit>
MethodNode clinit = null;
for (MethodNode method : classNode.methods) {
if ("<clinit>".equals(method.name)) {
clinit = method;
break;
}
}
InsnList insns = clinit.instructions;
AbstractInsnNode constructor_injection_point = null;
for (AbstractInsnNode insn : clinit.instructions.toArray()) {
if (insn.getOpcode() == Opcodes.ICONST_2) {
constructor_injection_point = insn;
int list_size = 2 + custom_dimensions.size();
IntInsnNode push_size = new IntInsnNode(Opcodes.BIPUSH, 2 + custom_dimensions.size());
clinit.instructions.insert(insn, push_size);
clinit.instructions.remove(insn);
constructor_injection_point = push_size;
System.out.println("LOTRDimension list size: " + list_size);
break;
}
}
// Create the constructor instructions to add new dimension
InsnList constructor_injection = new InsnList();
int i = 2;
for (DimensionInfo dimension : custom_dimensions) {
System.out.println("Registering with enum " + dimension.enum_name);
System.out.println("Registering with ordinal " + i);
System.out.println("Registering with name " + dimension.dimension_name);
System.out.println("Registering with ID " + dimension.dimension_id);
constructor_injection.add(new TypeInsnNode(Opcodes.NEW, "lotr/common/LOTRDimension"));
constructor_injection.add(new InsnNode(Opcodes.DUP));
constructor_injection.add(new LdcInsnNode(dimension.enum_name));
constructor_injection.add(new IntInsnNode(Opcodes.BIPUSH, i));
constructor_injection.add(new LdcInsnNode(dimension.dimension_name));
constructor_injection.add(new IntInsnNode(Opcodes.BIPUSH, dimension.dimension_id));
constructor_injection.add(new LdcInsnNode(Type.getType(dimension.world_provider))); // World provider class
constructor_injection.add(new InsnNode(Opcodes.ICONST_0)); // Do not load spawn persistently
constructor_injection.add(new IntInsnNode(Opcodes.BIPUSH, dimension.spawn_limit)); // Set spawn cap for dimension
// Add no DimensionRegions
constructor_injection.add(new LdcInsnNode(Type.getType("Llotr/common/LOTRDimension$DimensionRegion;")));
constructor_injection.add(new MethodInsnNode(Opcodes.INVOKESTATIC, "java/util/EnumSet", "noneOf", "(Ljava/lang/Class;)Ljava/util/EnumSet;", false));
// Add PUTSTATIC
constructor_injection.add(new MethodInsnNode(Opcodes.INVOKESPECIAL, "lotr/common/LOTRDimension", "<init>", "(Ljava/lang/String;ILjava/lang/String;ILjava/lang/Class;ZILjava/util/EnumSet;)V", false));
constructor_injection.add(new FieldInsnNode(Opcodes.PUTSTATIC, "lotr/common/LOTRDimension", dimension.enum_name, "Llotr/common/LOTRDimension;"));
i++;
}
// Insert the new instructions
if (constructor_injection_point != null) {
insns.insertBefore(constructor_injection_point, constructor_injection);
}
// Modifying the $VALUES array
// Create new instruction list to be injected later
InsnList values_array_injection = new InsnList();
// Add instructions to the instruction list
i = 2;
for (DimensionInfo dimension : custom_dimensions) {
values_array_injection.add(new InsnNode(Opcodes.DUP));
values_array_injection.add(new IntInsnNode(Opcodes.BIPUSH, i));
values_array_injection.add(new FieldInsnNode(Opcodes.GETSTATIC, "lotr/common/LOTRDimension", dimension.enum_name, "Llotr/common/LOTRDimension;"));
values_array_injection.add(new InsnNode(Opcodes.AASTORE));
i++;
}
// Find the putstatic instruction for $VALUES
// This is where the fields are injected into a list, we want to inject our instructions before this
AbstractInsnNode values_injection_point = null;
AbstractInsnNode cursor = constructor_injection_point;
while (cursor != null) {
if (cursor.getOpcode() == Opcodes.PUTSTATIC) {
values_injection_point = cursor;
break;
}
cursor = cursor.getNext();
}
if (values_injection_point == null) {
throw new RuntimeException("[CinderLoE] Could not locate $VALUES PUTSTATIC injection point for LOTRDimension!");
}
// Insert the new instructions before the putstatic instruction
if (values_injection_point != null) {
insns.insertBefore(values_injection_point, values_array_injection);
}
// Write the modified class back to a byte array
ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS);
classNode.accept(classWriter);
return classWriter.toByteArray(); // Return the modified class
}
return basicClass; // Return the unmodified class for all other classes
}
public void register(String enum_name, String dimension_name, int dimension_id, Class<?> world_provider, int spawn_limit) {
System.out.println("Registering dimension " + enum_name + " " + dimension_name + " with ID " + dimension_id);
custom_dimensions.add(new DimensionInfo(enum_name, dimension_name, dimension_id, world_provider, spawn_limit));
}
public class DimensionInfo {
String enum_name;
String dimension_name;
int dimension_id;
Class<?> world_provider;
int spawn_limit;
public DimensionInfo(String enum_name, String dimension_name, int dimension_id, Class<?> world_provider, int spawn_limit) {
this.enum_name = enum_name;
this.dimension_name = dimension_name;
this.dimension_id = dimension_id;
this.world_provider = world_provider;
this.spawn_limit = spawn_limit;
}
}
}
/* Reference
L0: new lotr/common/LOTRDimension
L3: dup
L4: ldc 'MIDDLE_EARTH'
L6: iconst_0
L7: ldc 'MiddleEarth'
L9: bipush 100
L11: ldc Class lotr/common/world/LOTRWorldProviderMiddleEarth
L13: iconst_1
L14: bipush 100
L16: getstatic Field lotr/common/LOTRDimension$DimensionRegion WEST Llotr/common/LOTRDimension$DimensionRegion;
L19: getstatic Field lotr/common/LOTRDimension$DimensionRegion EAST Llotr/common/LOTRDimension$DimensionRegion;
L22: getstatic Field lotr/common/LOTRDimension$DimensionRegion SOUTH Llotr/common/LOTRDimension$DimensionRegion;
L25: invokestatic Method java/util/EnumSet of (Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
L28: invokespecial Method lotr/common/LOTRDimension <init> (Ljava/lang/String;ILjava/lang/String;ILjava/lang/Class;ZILjava/util/EnumSet;)V
L31: putstatic Field lotr/common/LOTRDimension MIDDLE_EARTH Llotr/common/LOTRDimension;
L34: new lotr/common/LOTRDimension
*/

@ -64,7 +64,8 @@ public class BladorthinSmith extends LOTREntityDorwinionElf implements LOTRTrade
new LOTRTradeEntry(new ItemStack(LOTRMod.legsDorwinionElf), 22),
new LOTRTradeEntry(new ItemStack(LOTRMod.bootsDorwinionElf), 16),
new LOTRTradeEntry(new ItemStack(LOTRMod.dorwinionElfBow), 15),
new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3)
new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3),
new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200)
}
);

@ -76,7 +76,9 @@ public class RedDwarfSmith extends LOTREntityDwarf implements LOTRTradeable.Smit
new LOTRTradeEntry(new ItemStack(CinderLoE.legsRedDwarf), 30),
new LOTRTradeEntry(new ItemStack(CinderLoE.bootsRedDwarf), 22),
new LOTRTradeEntry(new ItemStack(CinderLoE.boarArmorRedDwarf), 25),
new LOTRTradeEntry(new ItemStack(CinderLoE.barsRedDwarf, 8), 20)
new LOTRTradeEntry(new ItemStack(CinderLoE.barsRedDwarf, 8), 20),
new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200),
new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200)
}
);

@ -0,0 +1,62 @@
package com.zivilon.cinder_loe.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class FieldRepairKit extends ItemFood {
private int damageAmount;
public FieldRepairKit() {
super(0, 0.0F, false); // No hunger, no saturation
this.setAlwaysEdible(); // Allow eating even at full hunger
}
@Override
public int getItemStackLimit() {
return 1;
}
@Override
public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) {
if (!world.isRemote) {
world.playSoundAtEntity(player, "random.anvil_break", 1.0F, 1.0F);
}
return super.onEaten(stack, world, player);
}
@Override
protected void onFoodEaten(ItemStack stack, World world, EntityPlayer player) {
if (!world.isRemote) {
for (int i = 0; i < 4; i++) {
ItemStack armor = player.getCurrentArmor(i);
if (armor != null && armor.getItem() instanceof ItemArmor && armor.isItemDamaged()) {
int maxDamage = armor.getMaxDamage();
int repairAmount = Math.max(1, (int)(maxDamage * 0.05));
armor.setItemDamage(Math.max(0, armor.getItemDamage() - repairAmount));
}
}
}
}
@Override
public void onUsingTick(ItemStack stack, EntityPlayer player, int count) {
if (!player.worldObj.isRemote && count % 20 == 0) {
player.worldObj.playSoundAtEntity(player, "random.anvil_use", 0.7F, 1.0F);
}
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
return stack;
}
@Override
public int getMaxItemUseDuration(ItemStack stack) {
return 200;
}
}

@ -1,27 +1,23 @@
package com.zivilon.cinder_loe.items;
package com.zivilon.cinder_loe.items.specials;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import java.util.List;
import lotr.common.LOTRCreativeTabs;
import lotr.common.LOTRLevelData;
import lotr.common.LOTRMod;
import lotr.common.fac.LOTRFaction;
import lotr.common.network.LOTRPacketHandler;
import lotr.common.network.LOTRPacketWeaponFX;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.potion.Potion;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import com.zivilon.cinder_loe.items.WizardStaff;

@ -0,0 +1,85 @@
package com.zivilon.cinder_loe.items;
import com.zivilon.cinder_loe.LoECreativeTabs;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import java.util.List;
public class spiceIngredient extends Item {
public IIcon[] icons;
public spiceIngredient() {
this.setHasSubtypes(true);
setMaxStackSize(64);
this.setMaxDamage(0);
setCreativeTab(LoECreativeTabs.tabMiscLoE);
}
@Override
public IIcon getIconFromDamage(int damage) {
if (damage < 0 || damage >= icons.length) {
damage = 0;
}
return this.icons[damage];
}
@Override
public void registerIcons(IIconRegister iconRegister) {
this.icons = new IIcon[12];
this.icons[0] = iconRegister.registerIcon("lotr:fine_bone_dust");
this.icons[1] = iconRegister.registerIcon("lotr:dried_morgul_caps");
this.icons[2] = iconRegister.registerIcon("lotr:blighted_root");
this.icons[3] = iconRegister.registerIcon("lotr:coldbreath_leaf");
this.icons[4] = iconRegister.registerIcon("lotr:brambleberry");
this.icons[5] = iconRegister.registerIcon("lotr:willow_bark");
this.icons[6] = iconRegister.registerIcon("lotr:seregon");
this.icons[7] = iconRegister.registerIcon("lotr:niphredil_seeds");
this.icons[8] = iconRegister.registerIcon("lotr:dried_mallorn");
this.icons[9] = iconRegister.registerIcon("lotr:curing_salts");
this.icons[10] = iconRegister.registerIcon("lotr:underroot");
this.icons[11] = iconRegister.registerIcon("lotr:miners_lichen");
}
@Override
public String getUnlocalizedName(ItemStack item) {
switch(item.getItemDamage()) {
case 0:
return "item.fine_bone_dust";
case 1:
return "item.dried_morgul_caps";
case 2:
return "item.blighted_root";
case 3:
return "item.coldbreath_leaf";
case 4:
return "item.brambleberry";
case 5:
return "item.willow_bark";
case 6:
return "item.seregon";
case 7:
return "item.niphredil_seeds";
case 8:
return "item.dried_mallorn";
case 9:
return "item.curing_salts";
case 10:
return "item.underroot";
case 11:
return "item.miners_lichen";
default:
return "item.fine_bone_dust";
}
}
@Override
public void getSubItems(Item item, CreativeTabs tab, List list) {
for (int i = 0; i < icons.length; i++) {
list.add(new ItemStack(item, 1, i));
}
}
}

@ -60,9 +60,7 @@ public abstract class MixinLOTREntityNPC extends EntityCreature implements ILoot
if (success) {
List<ItemStack> drops = DropTable.generate_drops((LOTREntityNPC)(Object)this, new DropContext[]{DropContext.PICKPOCKET}, 0);
ItemStack item = drops.get(DropTable.random.nextInt(drops.size()));
if ((LOTREntityNPC)(Object)this instanceof LOTREntityOlogHai) {
}
if (entityplayer.inventory.addItemStackToInventory(item)) {
last_pickpocket = (int)(System.currentTimeMillis() / 1000L);
} else {
@ -70,7 +68,9 @@ public abstract class MixinLOTREntityNPC extends EntityCreature implements ILoot
} else {
last_pickpocket = (int)(System.currentTimeMillis() / 1000L);
((LOTREntityNPC)(Object)this).setRevengeTarget(entityplayer);
LOTRLevelData.getData(entityplayer).addAchievement(CinderAchievement.pickOlog);
if ((LOTREntityNPC)(Object)this instanceof LOTREntityOlogHai) {
LOTRLevelData.getData(entityplayer).addAchievement(CinderAchievement.pickOlog);
}
}
return true;
}
@ -84,6 +84,7 @@ public abstract class MixinLOTREntityNPC extends EntityCreature implements ILoot
return super.interact(entityplayer);
}
@Inject(method = "func_110161_a", at = @At("HEAD"), remap = false) // onSpawnWithEgg
private void onSpawned(IEntityLivingData entity, CallbackInfoReturnable<IEntityLivingData> cir) {
PickpocketUtils.assign_drop_table((LOTREntityNPC)(Object)this);

@ -0,0 +1,43 @@
package com.zivilon.cinder_loe.mixins;
import com.zivilon.cinder_loe.CinderLoE;
import lotr.common.LOTRMod;
import lotr.common.enchant.LOTREnchantment;
import lotr.common.enchant.LOTREnchantmentHelper;
import lotr.common.entity.npc.LOTREntityNPC;
import lotr.common.entity.npc.LOTREntityOrc;
import lotr.common.entity.npc.LOTREntityWarg;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(LOTREntityOrc.class)
public abstract class MixinLOTREntityOrc extends LOTREntityNPC {
public boolean isWeakOrc = true;
public MixinLOTREntityOrc(World worldIn) {
super(worldIn);
}
/**
* @author KeyLime17
* @reason Mevans
*/
@Overwrite(remap = false)
public int getTotalArmorValue() {
if (this.isWeakOrc) {
return MathHelper.floor_double((double)((double)super.getTotalArmorValue() * 1));
}
return super.getTotalArmorValue();
}
}

@ -2,10 +2,13 @@ package com.zivilon.cinder_loe.mixins;
import com.zivilon.cinder_loe.CinderLoE;
import lotr.common.LOTRMod;
import lotr.common.entity.npc.LOTREntityNPCRideable;
import lotr.common.entity.npc.LOTREntityWarg;
import net.minecraft.entity.Entity;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
@ -20,9 +23,11 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import lotr.common.item.LOTRItemArmor;
import java.util.Random;
@Mixin(LOTREntityWarg.class)
public abstract class MixinLOTREntityWarg extends Entity {
public abstract class MixinLOTREntityWarg extends LOTREntityNPCRideable {
public MixinLOTREntityWarg(World worldIn) {
super(worldIn);
@ -36,6 +41,15 @@ public abstract class MixinLOTREntityWarg extends Entity {
@Shadow
public abstract LOTREntityWarg.WargType getWargType();
@Overwrite(remap = false)
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue((double) MathHelper.getRandomIntegerInRange((Random)this.rand, (int)20, (int)40));
this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(32.0);
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.22);
this.getEntityAttribute(npcAttackDamage).setBaseValue((double)MathHelper.getRandomIntegerInRange((Random)this.rand, (int)3, (int)5));
}
@Overwrite(remap = false)
protected void func_70628_a(boolean flag, int i) {
Item furItem = null;

@ -94,7 +94,7 @@ public class MixinLOTRHiredNPCInfo {
public void increaseDamageGain(EntityLivingBase gainingEntity) {
float damageBoost = 0.25f;
IAttributeInstance attribute = gainingEntity.getEntityAttribute(LOTREntityNPC.npcAttackDamage);
IAttributeInstance attribute = gainingEntity.getEntityAttribute(LOTREntityNPC.npcAttackDamageExtra);
attribute.setBaseValue(attribute.getBaseValue() + (double)damageBoost);
}

@ -99,6 +99,28 @@ public class recipes {
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 13), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 13)));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 14), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 14)));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceOrcish),
new ItemStack(CinderLoE.spiceIngredient, 1, 0),
new ItemStack(CinderLoE.spiceIngredient, 1, 1),
new ItemStack(CinderLoE.spiceIngredient, 1, 2)));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceHuman),
new ItemStack(CinderLoE.spiceIngredient, 1, 3),
new ItemStack(CinderLoE.spiceIngredient, 1, 4),
new ItemStack(CinderLoE.spiceIngredient, 1, 5)));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceElven),
new ItemStack(CinderLoE.spiceIngredient, 1, 6),
new ItemStack(CinderLoE.spiceIngredient, 1, 7),
new ItemStack(CinderLoE.spiceIngredient, 1, 8)));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceDwarven),
new ItemStack(CinderLoE.spiceIngredient, 1, 9),
new ItemStack(CinderLoE.spiceIngredient, 1, 10),
new ItemStack(CinderLoE.spiceIngredient, 1, 11)));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.fieldRepairKit),
new ItemStack(CinderLoE.forgingKit, 1, 0),
new ItemStack(CinderLoE.spiceIngredient, 1, 1)));
OreDictionary.registerOre("vegetable1", CinderLoE.onion);
OreDictionary.registerOre("vegetable1", LOTRMod.leek);
OreDictionary.registerOre("vegetable2", CinderLoE.cabbage);
@ -178,11 +200,19 @@ public class recipes {
'X', Items.paper, 'Y', Blocks.clay));
// Cinder Stony Blocks
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble, 4, 1), "XY", "YX",
<<<<<<< HEAD
'X', new ItemStack(LOTRMod.rock, 1, 0), 'Y', LOTRMod.mordorGravel));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble, 4, 2), "XX", "XX",
'X', new ItemStack(LOTRMod.silver)));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble, 4, 3), "XX", "XX",
'X', new ItemStack(CinderLoE.cindercobble, 1, 2)));
=======
'X', new ItemStack(LOTRMod.rock, 1, 0), 'Y', LOTRMod.mordorGravel));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble, 4, 2), "XX", "XX",
'X', new ItemStack(LOTRMod.silver)));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble, 4, 3), "XX", "XX",
'X', new ItemStack(CinderLoE.cindercobble, 1, 2)));
>>>>>>> origin/main
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 44), " Y ", " X ", " Z ",
'X', "stickWood", 'Y', new ItemStack(Blocks.wool, 1, 14), 'Z', "plankWood"));
@ -367,6 +397,7 @@ public class recipes {
public static void registerBrewingRecipes() {
System.out.println("[CinderLoE] Registering Brewing recipes... We like to drink! jk I hate alcohol");
<<<<<<< HEAD
CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(LOTRMod.mugTauredainCocoa, BARREL_CAPACITY),
new ItemStack(Items.dye, 1, 3),
new ItemStack(Items.dye, 1, 3),
@ -417,6 +448,43 @@ public class recipes {
new ItemStack(CinderLoE.chocolatebar),
new ItemStack(CinderLoE.chocolatebar),
});
=======
CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(LOTRMod.mugTauredainCocoa, BARREL_CAPACITY),
new ItemStack(Items.dye, 1, 3),
new ItemStack(Items.dye, 1, 3),
new ItemStack(Items.dye, 1, 3),
new ItemStack(LOTRMod.doubleFlower, 1, 2),
new ItemStack(LOTRMod.doubleFlower, 1, 3),
new ItemStack(LOTRMod.mugMilk));
CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugElfBrew, BARREL_CAPACITY),
new ItemStack(LOTRMod.elanor),
new ItemStack(LOTRMod.niphredil),
new ItemStack(LOTRMod.mallornNut),
new ItemStack(LOTRMod.mallornNut),
new ItemStack(CinderLoE.spiceElven),
new ItemStack(CinderLoE.spiceElven));
CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugHumanBrew, BARREL_CAPACITY),
new ItemStack(LOTRMod.athelas),
new ItemStack(LOTRMod.athelas),
new ItemStack(LOTRMod.athelas),
new ItemStack(LOTRMod.athelas),
new ItemStack(CinderLoE.spiceHuman),
new ItemStack(CinderLoE.spiceHuman));
CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugOrcBrew, BARREL_CAPACITY),
new ItemStack(LOTRMod.morgulShroom),
new ItemStack(LOTRMod.nauriteGem),
new ItemStack(LOTRMod.morgulShroom),
new ItemStack(LOTRMod.guldurilCrystal),
new ItemStack(CinderLoE.spiceOrcish),
new ItemStack(CinderLoE.spiceOrcish));
CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugDwarfBrew, BARREL_CAPACITY),
new ItemStack(LOTRMod.dwarfHerb),
new ItemStack(LOTRMod.dwarfHerb),
new ItemStack(LOTRMod.dwarfHerb),
new ItemStack(LOTRMod.dwarfHerb),
new ItemStack(CinderLoE.spiceDwarven),
new ItemStack(CinderLoE.spiceDwarven));
>>>>>>> origin/main
}
public static void registerMillstoneRecipes() {

@ -1,6 +1,9 @@
package com.zivilon.cinder_loe.world;
<<<<<<< HEAD
import com.zivilon.cinder_loe.CinderDimension;
=======
>>>>>>> origin/main
import lotr.common.LOTRDimension;
import lotr.common.LOTRLevelData;
import lotr.common.world.LOTRChunkProvider;
@ -9,8 +12,18 @@ import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.chunk.IChunkProvider;
public class CinderWorldProviderIsland extends LOTRWorldProvider {
<<<<<<< HEAD
=======
public static LOTRDimension cached_enum;
static {
for (LOTRDimension dimension : LOTRDimension.values()) {
if (dimension.name().equals("ISLAND")) cached_enum = dimension;
}
}
>>>>>>> origin/main
public IChunkProvider createChunkGenerator() {
return new LOTRChunkProvider(this.worldObj, this.worldObj.getSeed());
@ -34,6 +47,12 @@ public class CinderWorldProviderIsland extends LOTRWorldProvider {
@Override
public LOTRDimension getLOTRDimension() {
<<<<<<< HEAD
return CinderDimension.ISLAND;
}
}
=======
return cached_enum;
}
}
>>>>>>> origin/main

@ -26,6 +26,8 @@ tile.lotr:iceCage.name=Ice Cage
tile.forging_station.name=Forging Station
tile.lotr:woodpanel.name=Wood Panel
tile.onion.name=Onion Crop
tile.lotr:cinderfur.0.name=Brown Warg Fur Block
tile.lotr:cinderfur.1.name=Gray Warg Fur Block
tile.lotr:cinderfur.2.name=Black Warg Fur Block
@ -48,6 +50,7 @@ tile.lotr:cinderfurcarpet.8.name=Lioness Fur Carpet
item.repair_kit.name=Repair Kit
item.upgrade_kit.name=Upgrade Kit
item.lotr:field_repair_kit.name=Field Repair Kit
item.cinder_fur_item_0.name=Gray Warg Fur
item.cinder_fur_item_1.name=Black Warg Fur
item.cinder_fur_item_2.name=White Warg Fur
@ -384,14 +387,26 @@ warband.fac.RENEGADE=renegades
pickpocket.cooldown=You need to wait before pickpocketing again.
pickpocket.cooldown_alt=Maybe get your hands out of his pants first.
item.lotr:spice_human.name=Mannish spice
item.lotr:spice_elven.name=Elven spice
item.lotr:spice_orcish.name=Orcish spice
item.lotr:spice_dwarven.name=Dwarven spice
item.lotr:spice_human.name=Kings Herbs
item.lotr:spice_elven.name=Silverblend
item.lotr:spice_orcish.name=Morgul Salts
item.lotr:spice_dwarven.name=Stonegrit
item.lotr:mugElfBrew.name=Saturated Miruvor
item.lotr:mugOrcBrew.name=Concentrated Orc Draught
item.lotr:mugHumanBrew.name=Athelas Tea
item.lotr:mugDwarfBrew.name=Dwarven Stout
item.fine_bone_dust.name=Fine Bone Dust
item.dried_morgul_caps.name=Dried Morgul Caps
item.blighted_root.name=Blighted Root
item.coldbreath_leaf.name=Coldbreath Leaf
item.brambleberry.name=Brambleberry
item.willow_bark.name=Willow Bark
item.seregon.name=Seregon
item.niphredil_seeds.name=Niphredil Seeds
item.dried_mallorn.name=Dried Mallorn
item.curing_salts.name=Curing Salts
item.underroot.name=Underroot
item.miners_lichen.name=Miners Lichen
potion.overdose=Overdose

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 B

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

@ -47,6 +47,10 @@
"overrides.MixinLOTRTradeEntriesOverrides",
"overrides.MixinLOTRUnitTradeEntries",
"overrides.MixinLOTRBiome",
<<<<<<< HEAD
=======
"MixinLOTREntityOrc",
>>>>>>> origin/main
"MixinEntityLivingBase",
"MixinEntityPlayer",
"MixinLOTREntityAIAttackOnCollide",

Loading…
Cancel
Save