• 162

    posted a message on [1.8.1] SteamCraft - SOURCE CODE RELEASED[ML][v0.5.4][WIP]


    Current Version: 0.5.4

    Since this mod has stopped being run by me, a continuation project by
    0xC6607Eo1 can be found here

    I CAN NO LONGER CONTINUE UPDATING THIS MOD, THEREFORE, I HAVE RELEASED THE SOURCE CODE FOR ANYONE WANTING TO UPDATE THIS. I APOLOGISE DEARLY, BUT I JUST DON'T HAVE THE TIME OR MOTIVATION ANY MORE. CLICK HERE FOR THE POST.

    Please be sure to install ModLoader BEFORE Steamcraft. Otherwise, a few items will not work correctly.

    After installing this mod, you should start a new world. Otherwise the ores will not generate.

    If you have any questions about the mod, please consult the Steamcraft Wiki before posting in this thread. If you don't find your answer there, then ask here


    If the mod does not work, please do not just post saying: "Why did it crash?" or "I got a black screen!". If you have a problem with the mod, please find your ModLoader.txt in your .minecraft folder and post the contents of it, preferably in spoiler tags. I'm not psychic. A lot of things can cause a crash, and that will tell me which one it is.

    If you want to support me in this mod, please donate. Anyone who donates will have their name put in the "thanks" section at the bottom of the post:


    Alternatively, if you don't have any money to donate, just scroll down and click the + at the bottom of this post!

    Downloads:
    1.8.1:
    0.5.4-Current

    0.5.3
    0.5.2
    0.5.1
    0.5
    1.7.3:
    0.4.1
    0.4
    0.3

    How to Install:
    • Install Risugami's ModLoader
    • Run Minecraft. This creates the "mods" folder needed later in the installation
    • Find the folder named "Place in minecraft jar"
    • Find your minecraft.jar
    • Drag all files and folders inside the "Place contents in minecraft jar" folder straight into your minecraft.jar
    • Find the folder named "Place in minecraft folder"
    • Find your .minecraft folder
    • Drag the folders in the "Place contents in .minecraft folder" into your .minecraft folder
    • DO NOT UNZIP ANYTHING.
    • The mod should now be installed
    Here is a video tutorial for v0.5. The installation is identical in v0.5.1.

    List of Known Bugs:
    • Stats are buggy on items such as the new Furnaces and the Spanner
    If you find any bugs not on this list, be sure to report them!

    Latest Update Change List:
    • Fixed bug that caused a crash when touching a Uranium Block (any worlds that were made unusable due to this bug should be perfectly fine now)
    • Nerfed Pneumatic Braces
    • Reprogrammed the Roller Skates to get rid of a bug that caused them to accelerate the player in random directions
    -----
    • Cast Iron Railing will now join with any solid block
    • Stone Brick Stairs will always drop Stone Bricks, and not Cracked or Mossy Stone Bricks
    • Fixed lighting bug with Stairs
    • Added new achievement
    -----
    • Cast Iron Gates will now join with Cast Iron Railing
    • Diamond Ore is no longer mineable with a Drill
    • Fixed lighting bug with half blocks
    -----
    • Fixed achievements bug
    • Cut down on some terrain sprites
    • Added Electric Lamp and Wireless Lamp as items to move their sprites to item sprites
    • Fixed Timber! compatibility
    -----
    • Updated for 1.8.1
    • Reorganised the mod IDs. Redstone is now replaced by Quartz, not Bornite, to save on a block ID
    • Fixed new Furnace shift-clicking
    • Fixed Copper Wire overlay
    • Highwayman Hideouts are now made of Stone Bricks and Glass Panes
    • Firearms now take in ammunition to load rather than to fire
    • Percussion weapons now require both Percussion Caps and Musket Cartridges to load
    • Original mod Stone Bricks have been removed, and replaced with Carved Stone
    • Added Cast Iron Gates
    • Stone Bricks can be smelted into Stone
    • Aqualung has a new way of altering the GUI to avoid breaking with the 1.8 placement
    • Added Roller Skates, which allow faster movement without sprinting (but lack the ability to climb half blocks)
    • Added Pneumatic Braces, which greatly lessen fall damage
    • Breaking Wild Grass may relinquish Tea Seeds
    • Planting Tea Seeds will make a Tea Plant, which can be harvested for Tea Leaves
    • Cast Iron Ingots can be made into a Kettle
    • Crafting a Kettle with a Bucket of Water and Tea Leaves will give a Kettle of Cold Tea
    • Smelting a Kettle of Cold Tea will give you a Kettle of Tea
    • Teacups can be made from Clay
    • Right clicking with a Kettle of Tea will fill a Teacup to make a Cup of Tea
    • Right clicking with a Cup of Tea will instantly recover 2 hearts
    So what is Steamcraft?
    Steamcraft is a complete overhaul of Minecraft. It adds roughly 40 new blocks, and about 70 new items. It also changes the way some items are crafted, notably Redstone, which is completely replaced. It does this to attempt to make Minecraft fit in with a steam punk style. A lot of the new content focusses on making the game feel more like it is set in the late 1800's.



    Texture Packs:

    If these packs are listed as "Seperate Download", then be sure to scroll down and find the correct version!

    With the exception of DokiDoki, these packs were not made by me, and the authors of the packs deserve full credit.

    Glimmar's Steampunk
    Author: Glimmar
    Compatible with: v0.5
    Seperate Download: Yes


    Faithful 32x32
    Author: Vattic
    Compatible with: v0.4
    Seperate Download: Yes


    ♥DokiDoki♥
    Author: Proloe
    Compatible with: v0.5
    Seperate Download: No

    Planned Features:

    • Craftable Robotic Mobs to perform various tasks
    • Steam Trains to allow faster travel
    • Steam-Powered Zeppelin
    • Craftable Mob Spawners
    • Gears to provide "Kinetic" power instead of "Electric" power
    • Electric Motors and Kinetic Generators to convert between Kinetic and Electric power
    • Portcullis blocks, which can be put together in any shape and raised by Gears
    • Expanded Nether dungeons

    Screenshots:

    These screenshots are taken from some of the latest update logs in the thread.













    Support Banners:



    [url=http://www.minecraftforum.net/viewtopic.php?f=1039&t=273274][img]http://i61.servimg.com/u/f61/13/61/43/02/steamc11.png[/img][/url]




    [url=http://www.minecraftforum.net/viewtopic.php?f=1039&t=273274][img]http://img845.imageshack.us/img845/7862/normaln.png[/img][/url]




    [url=http://www.minecraftforum.net/viewtopic.php?f=1039&t=273274][img]http://img845.imageshack.us/img845/5042/smallp.png[/img][/url]



    Made by Avalanchetter

    [url=http://www.minecraftforum.net/viewtopic.php?f=1039&t=273274][img]http://new01.ugc.kontain.com/photo/20111121/prod_0789af5b-f388-4b7d-af0f-4b04430b5423/tb_1920x1080.jpg[/img][/url]

    This mod may be downloadable, but it is still a work in progress. More features are planned but have not yet been implemented.

    Special Thanks:
    • Glimmar - For allowing me to edit his texture pack for use with this mod.
    ___________________________________________________________________________

    TERMS AND CONDITIONS

    This mod was created by, and is the property of, Proloe of minecraftforum.net

    0. USED TERMS
    MOD - modification, plugin, a piece of software that interfaces with the Minecraft client to extend, add, change or remove original capabilities.
    MOJANG - Mojang AB
    OWNER - Original author(s) of the MOD. Under the copyright terms accepted when purchasing Minecraft (http://www.minecraft.net/copyright.jsp) the OWNER has full rights over their MOD despite use of MOJANG code.
    USER - End user of the mod, person installing the mod.

    1. LIABILITY
    THIS MOD IS PROVIDED 'AS IS' WITH NO WARRANTIES, IMPLIED OR OTHERWISE. THE OWNER OF THIS MOD TAKES NO RESPONSIBILITY FOR ANY DAMAGES INCURRED FROM THE USE OF THIS MOD. THIS MOD ALTERS FUNDAMENTAL PARTS OF THE MINECRAFT GAME, PARTS OF MINECRAFT MAY NOT WORK WITH THIS MOD INSTALLED. ALL DAMAGES CAUSED FROM THE USE OR MISUSE OF THIS MOD FALL ON THE USER.

    2. USE
    Use of this MOD to be installed, manually or automatically, is given to the USER without restriction. Use of this MOD for the purposes of videos or other forms of media without redistribution of the content (including graphics) is given to the USER with the request that a link to this page be provided with said media. It is not necessary to inform the OWNER of any media containing this MOD, but it is appreciated.

    3. REDISTRIBUTION
    This MOD may only be distributed where uploaded, mirrored, or otherwise linked to by the OWNER solely. All mirrors of this mod must have advance written permission from the OWNER. ANY attempts to make money from this MOD (selling, selling modified versions, adfly, sharecash, etc.) are STRICTLY FORBIDDEN, and the OWNER may claim damages or take other action to rectify the situation.

    4. DERIVATIVE WORKS/MODIFICATION
    This mod is provided freely and may be decompiled and modified for private use, either with a decompiler or a bytecode editor. Public distribution of modified versions or the original version of this MOD require advance written permission of the OWNER and may be subject to certain terms. A notice of permission, when given, must be posted within the derivative work's thread. If this is not done, then the work is in breach of this license and permission is void.


    Hit Me! ↓
    Posted in: WIP Mods
  • 0

    posted a message on Using Item.dyePowder in a tool recipe?
    I think you can just specify it in the code.

    I did a similar thing using a tool for crafting (just using the tool as an item will only allow it if it has not taken any damage, so I set the damage to -1 to allow for any)

    Instead of
    Item.dyePowder

    try this:
    new ItemStack(Item.dyePowder, 1, 4)
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Re-obfuscating error.
    I've been making a mod for the past week or so, and decided it was high time to release the first alpha version for testing and such. However, I haven't made a log of which files I've edited in this mod. I'm fairly sure I put all the ones I did in the client_obfuscation file, but I can't be certain.

    I'm not sure if a missing file is causing this, but the game seems to run perfectly well until I try to load up a world. If I start a new world, it begins to generate the terrain, and manages that step fine. It then moves on to the "Saving Chunks" section. The bar scrolls over to a few pixels from the end, and then freezes. It stays frozen for 30 seconds or so, and then Minecraft crashes. Unfortunately, it brings up an error screen, which then immediately shuts down, so I am completely unable to read it, and find where the error is.

    Now, I'm not using ModLoader in this mod, but I think someone must have some inkling as to what causes this problem, and, if it is a missing file, would someone be able to get hold of a list of all the default .java files (the decompiled class files). Typing out 500 file names is a painful process, and I'm bound to make a few mistakes.

    If anyone can help, I would be very grateful.

    EDIT: Problem solved by using a client to re-obfuscate everything. It's a lot of files, but at least it works.
    Posted in: Mods Discussion
  • 0

    posted a message on New Furnace/Workbench block?
    Quote from Pandex292 »
    Thanks abunch, this really gives me a step to getting my ideas to work. A :iapprove: for you good sir!


    I made new furnace blocks by going into the BlockFurnace file and the TileEntityFurnace file, copying them both, and going through all the files they reference, copying them and changing the names and a few values.

    It also helps to open ALL the .java files and do a search on the word "furnace", just to be sure you haven't missed anything.
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    Quote from BackUp1 »
    Hmmmm Using MCP same but ive created some mods by copying some source codes how about copy BlockRedstoneTorch and edit that texture in blocks.txt and modafie it like you wanted


    It would still render as a Torch, I believe. I want this block to render as a block, and also to power irrespective of whether or not current is reaching it. Having said that, a lot of this code is taken from the Redstone Torch.
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    Quote from IVI4tt »
    I suspect the reason you can't find any help or tutorials is... No-one has a clue.

    I recommend you read the source code REALLY CAREFULLY and gently make edits to it just to find out what everything does. That's as much as most of the forum can help, I'm afraid :C


    I've seen mods that handle similar things before though, so I figured someone must know.

    As for reading the code, I've read through it to the best of my ability, but, as I said, I'm pretty new to Java, and a fair bit of it is gibberish to me. It doesn't help that I'm trying to find the point at which these Redstone methods are defined, but since they are public, I don't have much of a hint. I'm still trying to solve it myself, as well as desperately asking for help.
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    I'm sorry for bumping this so much, but I'm pretty desperate, and I can't find any instructions for modding redstone anywhere on the internet...
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    Because I'm reconstructing circuitry. Redstone Torches WOULD do the job, but I'm changing the recipe to make them crafted using battery blocks plus more. Thus, batteries are cheaper, and with the new construction, solid power is needed in more areas, if everything goes to plan.
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    Any sort of help would be really appreciated, guys. Is there seriously no-one who knows anything about how the redstone works?
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    So, does this mean that nobody knows, or that no-one is willing to help?

    I'm sorry if I'm coming across a little impatient, but I do really need to know how to manipulate this.
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    Bumping up to the front page, because I'm totally stumped here, and really need some help.

    All I really need is someone to talk me through what all the variables do, and where they are used in other files.

    Particularly the l variable that crops up a lot, as well as the i1 variable. I have no idea what these are, but I really feel they are key to understanding how this all fits together.
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    I've made an update on the code I posted.

    package net.minecraft.src;
    // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
    // Jad home page: http://www.kpdus.com/jad.html
    // Decompiler options: packimports(3) braces deadcode 
    
    import java.util.Random;
    
    public class BlockBattery extends Block
    {
    
        public int getBlockTextureFromSideAndMetadata(int i, int j)
        {
                return super.getBlockTextureFromSideAndMetadata(i, j);
        }
    	
        public BlockBattery(int i, int j)
        {
            super(i, j, Material.iron);
    		setTickOnLoad(true);
        }
    	
    	public int tickRate()
        {
            return 2;
        }
    	
    	 public void onBlockAdded(World world, int i, int j, int k)
        {
            if(world.getBlockMetadata(i, j, k) == 0)
            {
                super.onBlockAdded(world, i, j, k);
            }
                world.notifyBlocksOfNeighborChange(i, j - 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j + 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i - 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i + 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k - 1, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k + 1, blockID);
        }
    	
    	public void onBlockRemoval(World world, int i, int j, int k)
        {
                world.notifyBlocksOfNeighborChange(i, j - 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j + 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i - 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i + 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k - 1, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k + 1, blockID);
        }
    
    	
    	 public void onNeighborBlockChange(World world, int i, int j, int k, int l)
        {
            super.onNeighborBlockChange(world, i, j, k, l);
            world.scheduleBlockUpdate(i, j, k, blockID, tickRate());
        }
    	
    	public boolean isPoweringTo(IBlockAccess iblockaccess, int i, int j, int k, int l)
        {
    			return true;
    	}
    	
        public boolean isIndirectlyPoweringTo(World world, int i, int j, int k, int l)
        {
                return false;
        }
    
    	public int idDropped(int i, Random random)
        {
            return Block.battery.blockID;
        }
    
        public int quantityDropped(Random random)
        {
            return 1;
        }
    	
    	public boolean canProvidePower()
        {
            return true;
        }
    	
    }


    It seems isIndirectlyPoweringTo controls power to diagonal blocks and blocks 2 above and 1 below. That would suggest that isPoweringTo controls power to adjacent blocks, however, setting it to invariably true does nothing. Could anyone help enlighten me?
    Posted in: Mods Discussion
  • 0

    posted a message on [HELP] Understanding Redstone as handled by Java
    Hello there! I am making a mod for Minecraft which requires heavily expanded Redstone Circuitry. However, I am fairly new to Java, and completely new to modding Minecraft. I am also not using Modloader. I have managed so far to construct some basic things such as an electric lighting system, new ore blocks, new items, etc. but more complex Redstone really has me puzzled. I'm really unsure what all the code does, or how it achieves it. My biggest source of puzzlement lies in how blocks receive and transmit power. This is something both of the blocks I currently have in mind require manipulation of.

    The first is a Battery block. This is a regular block with sends out a signal to wire on top of it, and to either side.

    Currently, my code for this is as follows:

    package net.minecraft.src;
    // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
    // Jad home page: http://www.kpdus.com/jad.html
    // Decompiler options: packimports(3) braces deadcode 
    
    import java.util.Random;
    
    public class BlockBattery extends Block
    {
    
        public int getBlockTextureFromSideAndMetadata(int i, int j)
        {
                return super.getBlockTextureFromSideAndMetadata(i, j);
        }
    	
        public BlockBattery(int i, int j)
        {
            super(i, j, Material.iron);
    		setTickOnLoad(true);
        }
    	
    	public int tickRate()
        {
            return 2;
        }
    	
    	 public void onBlockAdded(World world, int i, int j, int k)
        {
            if(world.getBlockMetadata(i, j, k) == 0)
            {
                super.onBlockAdded(world, i, j, k);
            }
                world.notifyBlocksOfNeighborChange(i, j - 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j + 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i - 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i + 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k - 1, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k + 1, blockID);
        }
    	
    	public void onBlockRemoval(World world, int i, int j, int k)
        {
                world.notifyBlocksOfNeighborChange(i, j - 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j + 1, k, blockID);
                world.notifyBlocksOfNeighborChange(i - 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i + 1, j, k, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k - 1, blockID);
                world.notifyBlocksOfNeighborChange(i, j, k + 1, blockID);
        }
    	
    		
    	public boolean isPoweringTo(IBlockAccess iblockaccess, int i, int j, int k, int l)
        {
            return true;
        }
    
    	
    	 public void onNeighborBlockChange(World world, int i, int j, int k, int l)
        {
            super.onNeighborBlockChange(world, i, j, k, l);
            world.scheduleBlockUpdate(i, j, k, blockID, tickRate());
        }
    	
        public boolean isIndirectlyPoweringTo(World world, int i, int j, int k, int l)
        {
                return l == 1;
        }
    
    	public int idDropped(int i, Random random)
        {
            return Block.battery.blockID;
        }
    
        public int quantityDropped(Random random)
        {
            return 1;
        }
    	
    	public boolean canProvidePower()
        {
            return true;
        }
    	
    }


    As you may have guessed, this does not work. I don't really know what I'm doing here, so I made some guesses, but it doesn't seem to work. It is placed just like a regular block, breaks correctly, and wires automatically focus into it, but it doesn't provide any power.

    My second block does not have any code worth showing. The plan is for a mod of the Redstone Torch, with the same physics, and activated in a similar way (though in reverse, so it needs to receive power to transmit), but transmits power only to the 3 blocks directly above it, or directly in front if it is placed on a wall (Though I understand if this is not possible). The point of this is to make hidden circuitry easier to manage.

    Now, I don't ask anyone to just write this code for me and be done with it. What I ask is for help in understanding how Minecraft's code handles the pieces of data I need to manipulate, in order that I might make the necessary modifications myself. If anyone can help me to understand how the transmission of power works, I would be more than grateful.
    Posted in: Mods Discussion
  • 0

    posted a message on [Creating Mods] Modding tutorials [21/5/11]
    Something new involving Redstone has come up since my last request, and so I'm going to make a more general one:

    Would someone mind going through how Redstone equipment interacts? I'm really unsure which bits of the code do what, and how powering blocks works from a programming perspective.

    I'm doing this raw, by the way, not with Modloader.

    I'm looking to, as I said before, create an item that transfers power 3 blocks instead of the normal Torch distance of 1 (though perhaps only upwards, since it would be unmanageable otherwise). I am also looking to create an item that will provide power indefinitely, without being turned off when a current flows through it, but I hope to make it a solid block, rather than a "torch" style object.

    My aim here is to try and make the circuitry more realistic, part of which involves switches not activating unless there is power given to them first (which is the purpose of the aforementioned "battery" block). I think the easiest way to achieve all I want to is to get someone to talk me through how it all works in general. I've got the hang of most of the rest of it, I think, but Redstone still confuses the hell out of me. Anyone willing to give me a little help in understanding how the circuitry works has my sincerest thanks.

    Oh, and as for my other problem, I managed to fix it by browsing through the files, and eventually stumbling upon the ChunkProviderGenerate.java file, and messing with some variables and numbers.
    Posted in: Tutorials
  • 0

    posted a message on [Creating Mods] Modding tutorials [21/5/11]
    I'm pretty new to Java, and I'm trying to work out which part of the Redstone Torch's code controls which blocks it powers. I already made an item based on the Redstone Torch, and successfully took out it's ability to power wires by removing this code:

     public boolean isPoweringTo(IBlockAccess iblockaccess, int i, int j, int k, int l)
        {
            if(!torchActive)
            {
                return false;
            }
            int i1 = iblockaccess.getBlockMetadata(i, j, k);
            if(i1 == 5 && l == 1)
            {
                return false;
            }
            if(i1 == 3 && l == 3)
            {
                return false;
            }
            if(i1 == 4 && l == 2)
            {
                return false;
            }
            if(i1 == 1 && l == 5)
            {
                return false;
            }
            return i1 != 2 || l != 4;
        }


    However, I doubt very much that is all there is to it. I am attempting to make an item that can power wire from a distance of 3 blocks instead of 1 (allowing for hidden circuits to be constructed with greater ease, as this can also power upwards), but I've been tinkering with it for a bit, and have not yet found a method that works. I tried running nested for loops in various places to no avail, could someone give me a hand with this? I'm a little stumped.

    EDIT: I'm also having trouble finding where I can get into the world generator in order to add new ores and modify the stats of existing ones.
    Posted in: Tutorials
  • To post a comment, please .