
Lethman427
Members-
Posts
18 -
Joined
-
Last visited
Everything posted by Lethman427
-
Yeah, It's mostly just for a small private server... Also, I know it may be bad, but my technique for learning is to dive headfirst at what I want to do, then usually spend hours on google And i just found the installer on github... cool beans!
-
Hmm, that's odd. Are you running the latest version of forge?
-
i was kidding about the actually doing it, you will go to prison if you do that btw [sigh] nowadays you go to prison for sneezing in the wrong place I wish there was still a way so that the forge team could still get paid, but if not I guess I'll stick with a link on the main form.
-
Yessir. just make a folder inside the mods folder and name it after the version. Example .minecraft - mods -1.6.2 -Foo -Bar -1.5.2 -Blah -ModName
-
well we can make everyone except you win make a bot that downloads it through adfly, so youll go to prison but your feature will be released kidding btw jars are zip files btw, jsut a different name, nothing else is different Lol. yeah, the big problem is I don't know if C#/.net 4.0 even supports editing zip files... Maybe i should do some searching. Also, I wonder how the adfly works. If I were to launch the adfly link, wait a second, then end the process, I wonder if the forge team still gets paid.
-
New custom launcher. 1.6 Open Source
Lethman427 replied to bigbearhminer's topic in General Discussion
I'm fairly decent with C# and winforms. All i need is how to actually launch minecraft.jar. I have an idea for handling a modpack system through the launcher, where the user can pick from a list of installed mods, or from a list of packs. If you have a github or anything, please, point me there! -
Hmmm.. I guess I could, but then I'd still need to set up the profiles and such. Also, I'd need a DLL or something to copy files to and from the .jar format... I'm trying to keep it as simple as possible. I guess if the users can't even figure out how to install the new forge, they shouldn't be playing. PS. Great job on the installer. Makes trying to tell friends over the phone how to set up mods much less of a hassle
-
True. Is there any way to somehow make it so everyone wins?
-
Hey, not sure were I'm supposed to post this, or even if I should, but are there any ways to pass arguments to the Forge installer? I'm working on an app in C# that fetches the latest forge, installs it, then copies mods to the Minecraft directory, but is there anyway to tell the forge installer to just install the client? If there is I'd definitely still put a forge logo and a link to the site on the launcher
-
Aight, so the issue is when crafting just one item, it works and my new planks are returned. Shift clicking though, causes it to return the items as normal planks.
-
Shift-Clicking not filling stacks using ICraftingHandler
Lethman427 posted a topic in Modder Support
Hey, so I'm using a CraftingHandler to override the default planks with custom planks, but for some reason shift-clicking is acting strangely. For instance, if I only turn one log into planks, it outputs my new planks, while if I shift-click, it returns the default planks. Here's the CraftingHandler: package lethman.DecayMod; import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import cpw.mods.fml.common.ICraftingHandler; import cpw.mods.fml.common.Mod; public class PlankCraftingHandler implements ICraftingHandler { @Override public void onCrafting(EntityPlayer player, ItemStack item, IInventory craftMatrix) { if(item.itemID == Block.planks.blockID) { item.itemID = lethman.DecayMod.Generic.newWoodID; if (lethman.DecayMod.Generic.DebugLog) System.out.println("Overrode generic planks."); } } @Override public void onSmelting(EntityPlayer player, ItemStack item) { if(item.itemID == Block.planks.blockID) { item.itemID = lethman.DecayMod.Generic.newWoodID; } } } and in the mod.load(): GameRegistry.registerCraftingHandler(new PlankCraftingHandler()); OreDictionary.registerOre("plankWood", wood); Any help would be awesome. -
OOOHHHhhhhKay.So. I'm using both the OreDictionary and CraftingHandlers. It works awesome, but shift-clicking the recipe balls things up. Here's in the mod.load(): GameRegistry.registerCraftingHandler(new PlankCraftingHandler()); OreDictionary.registerOre("plankWood", wood); and PlankCraftingHandler(): if(item.itemID == Block.planks.blockID){ item.itemID = lethman.DecayMod.Generic.newWoodID; if (lethman.DecayMod.Generic.DebugLog) System.out.println("Overrode generic planks."); } How should I fix shift-clicking?
-
Hmm. The craftingHandler looks like an awesome bit of code. But I'm not sure on how to implement it. I can replace the recipes that output default planks with my planks, but then my planks can't do anything, like make chests. Here's the code so far: if(item.itemID == lethman.DecayMod.Generic.newWoodID){ item.itemID = Block.planks.blockID; if (lethman.DecayMod.Generic.DebugLog) System.out.println("Overrode custom planks."); return; } if(item.itemID == Block.planks.blockID){ item.itemID = lethman.DecayMod.Generic.newWoodID; if (lethman.DecayMod.Generic.DebugLog) System.out.println("Overrode generic planks."); return; } Any good articles or something on how to use it?
-
gotchya... Is there any way to quickly replace all recipes using planks with my planks? Or do I manually have to re-add each recipe using planks. Sorry for the noobish questions. I really have no excuse...
-
Allright, so how can I replace all blocks with block ID 5 with a block with a new ID? (Again, new to Forge, and modding and such)
-
...Oops. Okay, so tearing out the texture related stuff means that my custom blocks use the missing texture and all other blocks are still messed... Could it possibly be the fact that I'm replacing id 5 in block.blockList with my custom class? Block.blocksList[5] = null; Block wood = new BlockCustomWood(); LanguageRegistry.addName(wood, "Wood"); GameRegistry.registerBlock(wood, CustomWoodItemBlock.class); MinecraftForge.setBlockHarvestLevel(wood, "axe", 0);
-
So just tear out all the texture related stuff?
-
Hey, I just started modding (looks at watch) 8 hours ago, and I've run into a weird problem. I'm making a decay mod, and I've overridden the BlockWood class with a custom class. The issue is: all wood-type blocks such as stairs and slabs have the wrong texture. package lethman.DecayMod; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import java.util.Random; import java.util.logging.Level; import net.minecraft.block.Block; import net.minecraft.block.BlockWood; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.common.MinecraftForge; public class BlockCustomWood extends BlockWood { /** The type of tree this block came from. */ public static final String[] woodType = new String[] {"oak", "spruce", "birch", "jungle"}; @SideOnly(Side.CLIENT) private Icon[] iconArray; public BlockCustomWood() { super(5); this.setCreativeTab(CreativeTabs.tabBlock); needsRandomTick = true; setBurnProperties(5, 5, 20); } @SideOnly(Side.CLIENT) /** * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) */ public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) { par3List.add(new ItemStack(par1, 1, 0)); par3List.add(new ItemStack(par1, 1, 1)); par3List.add(new ItemStack(par1, 1, 2)); par3List.add(new ItemStack(par1, 1, 3)); } /** * When this method is called, your block should register all the icons it needs with the given IconRegister. This * is the only chance you get to register icons. */ public void registerIcons(IconRegister par1IconRegister) { this.iconArray = new Icon[woodType.length]; for (int i = 0; i < this.iconArray.length; ++i) { this.iconArray[i] = par1IconRegister.registerIcon("minecraft:planks_" + woodType[i]); } } @SideOnly(Side.CLIENT) public Icon getBlockTextureFromSideAndMetadata(int side, int meta) { return iconArray[meta]; } /** * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata */ public Icon getIcon(int par1, int par2) { if (par2 < 0 || par2 >= this.iconArray.length) { par2 = 0; } return this.iconArray[par2]; } /** * Determines the damage on the item the block drops. Used in cloth and wood. */ public int damageDropped(int par1) { return par1; } /** * Called whenever the block is added into the world. Args: world, x, y, z */ public void onBlockAdded(World par1World, int par2, int par3, int par4) { super.onBlockAdded(par1World, par2, par3, par4); par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, this.tickRate(par1World)); } /** * How many world ticks before ticking */ public int tickRate(World par1World) { return 30 + par1World.rand.nextInt(20); } /** * Ticks the block if it's been scheduled */ public void updateTick(World par1World, int x, int y, int z, Random par5Random) { super.updateTick(par1World, x, y, z, par5Random); if (par1World.isRaining()) { if (par5Random.nextInt(lethman.DecayMod.Generic.WoodInRain) == 0 && par1World.canBlockSeeTheSky(x, y + 1, z)) { par1World.setBlock(x, y, z, lethman.DecayMod.Generic.rottenWoodID , par1World.getBlockMetadata(x, y, z), 2); } } if (par1World.getBlockMaterial(x, y-1, z) == Material.water | par1World.getBlockMaterial(x, y + 1, z) == Material.water | par1World.getBlockMaterial(x - 1, y, z) == Material.water | par1World.getBlockMaterial(x + 1, y, z) == Material.water | par1World.getBlockMaterial(x, y, z - 1) == Material.water | par1World.getBlockMaterial(x, y, z + 1) == Material.water) { if (par5Random.nextInt(lethman.DecayMod.Generic.WoodInWater) == 0) par1World.setBlock(x, y, z, lethman.DecayMod.Generic.rottenWoodID, par1World.getBlockMetadata(x, y, z), 2); } par1World.scheduleBlockUpdate(x, y, z, this.blockID, this.tickRate(par1World)); } } And here's a pic: I'm new to using other people's API's, and I rarely ever code in java. Any way someone could try to point out any mistakes? Thanks