If you don't like running around in Minecraft for days placing wire and torches just to find out that you missed a spot, or your design is flawed, or a creeper just took out your delicately designed adding machine, then this program is for you! It can simulate all the oddities of redstone behavior so you can double-check your designs before actually building them in Minecraft.
Earlier versions: v2.1 • v2.0 • v1.82 • v1.8 • v1.7 • v1.6
I don't still have versions earlier than this, but these are pretty stable if you find a bug in the latest version.
Note that this is super-duper-pre-release-alpha stuff (EDIT: not really anymore), so brace for bugs, and tell me any you find, so I can fix them. My first priority, of course, is making sure that every redstone behavior is mimicked, so if you find a problem there, I definitely want to hear it. I also know that the interface sucks, and I am open to suggestions.
Redstone Simulator v2.2
This program simulates the behavior of redstone in Minecraft.
----- Controls -----
Left click to erase tiles or activate switches.
Right click to place the active material on the map.
Middle click on torches or switches to change the wall they are attached to.
Use the scroll wheel to select a material from the palette.
----- Menus -----
-- File --
New: reset field to empty 30x20x7 map.
Save/Open: save and load .rdat files to keep designs between runs of the program. You can also open .schematic files (exported by MCEdit) and .dat chunk files from the game.
Export as GIF: creates a GIF file containing the entire design, animated to show the layers (bottom to top). Each frame stays for 2 seconds.
Exit: Take a wild guess.
-- Edit --
Clone: copy parts of a map. Click once to set one corner, again to set the diagonally opposite corner (use the layer buttons to make a tall selection box), and once more to set the bottom corner of the paste region. Press Escape to stop cloning before finished. WARNING: separate torches from their blocks, chop doors in half, etc. at your own risk.
Tick - step forward in time by one "tick" - that is, the time for a torch to turn on or off from its previous state.
Play - tick continually (at 10 ticks per second)
Pause - stop simulation
Options...: Opens the Options dialog. (See below.)
Look and Feel: Choose another interface style from the menu if you prefer.
-- View --
Level up/down: Press these buttons (or up and down arrow keys, or W and S) to go through horizontal slices. Level 1 is ground level.
-- Adjust Size --
Adjust Size: Click this button to open a separate panel.
These 12 buttons move each face of the cuboid region in or out, creating more or less space to work in. The circled dot is an arrow pointing at you, and the circled plus is an arrow pointing away from you. If you shrink the area where you have placed components, the program will warn you, unless you hold Shift while doing so.
The two menus do the same thing, but are accessible directly through the menu, or through the numpad key combinations.
----- Options -----
There are several options in this dialog for fine-tuning the interface. In order:
Cyclic (in X and Z only) - torches, wires, power, and everything else "bleeds" over the edges and wraps around. You can even connect a torch to a block on the other side of the field!
"Natural" wire connections - A modification of Minecraft's wire connection algorithm, intended to help visualize the connections without extraneous connections. Wires only point in a direction if they are receiving power from or are powering the tile. To avoid confusion, unconnected wires form "squares" instead of crosses and singly-connected wires don't extend all the way across the tile. That way, screenshots in this mode should be distinctive enough that the different pointing direction doesn't confuse anyone who may be expecting something else.
Ground switches power blocks below - In Minecraft, there are two kinds of ground switches -- E/W, and N/S. One of them powers the block below them, and the other doesn't. This option toggles the behavior of ground switches to behave in on mode or the other.
Show only one layer / Show three layers - deselect both checkboxes for 2 layer mode. In 1 layer mode, no 2-layer palette options are available, and only 1 layer is visible. In 2 layer mode, bridges and wire-block-blocks are not visible. In 3 layer mode, all available tiles are visible.
Show bridges - Enable this option to have a wire on a gray background mean "wire over block over wire" or disable it to show "wire over block over air" instead. They cannot both be viewed simultaneously, as that would cause ambiguity.
Block type - This will be used when exporting to .schematic files. Choose which block you would like the "generic block" to actually become. (Grass/Dirt grows grass everywhere it can, and uses dirt everywhere else.)
----- Main view -----
This is where you make your design. Use the controls described earlier to draw.
Note that you actually view 2 layers at once: the level stated in the toolbar, and the one above that. this is so that you can see most 2D designs. See Palette.
----- Palette -----
Click on the buttons to select the active material, or use the mouse wheel. From left to right, the materials are:
Air: air over air
Block: air over block
Wire: air over wire (note that this will also place a block below, if necessary)
Torch: air over torch (middle click to change orientation)
Switch: air over switch
Button: air over button (button lasts 10 ticks)
Wire over Block
Torch over Block
Switch over Block
Bridge: wire over block over wire (this is the only palette option that will change anything 2 levels above, but is provided for convenience in viewing and editing)
Block over Wire
Block over Torch
Block over Switch
Door: 2-high (unlike Minecraft, this door actually makes the right sounds for open and close, rather than random)
Shadow: special block (see below)
Note that not all combinations of two materials stacked are represented here. In these cases (like torch over torch, switch over plate) only the bottom object will be visible (although you can always use the level up button to get a complete picture).
The shadow block appears the same color as the grid, but is functionally equivalent to air. It is good for drawing the bounds of an irregularly shaped circuit. When exported as GIF, it appears transparent.
----- Status Bar -----
Layer number: This shows what layer you are on. The numbering starts at 1 at the lowest level and goes up from there. If it is blue, you are above or at ground level. If you are underground (by using the "Back (ground) face down" menu item or button), it will be brown.
Size: Number of blocks long, wide, and high. Order is X,Z,Y (for backwards compatibility).
Location: Only visible if the cursor is over the field. Shows the X.Y.Z position of the mouse (with 0-based indices).
Redstone counts (right):
Keep track of your materials budget. The red cross is the number of redstone wires placed, the torch is the number of torches, and the ore is torches + wires = the total amount necessary to mine.
-----
This is still very much a work in progress; please PM or post to Baezon on the Minecraft Forum:
to report any behavior which does not match Minecraft redstone, or any bugs, feature requests, or interface ideas that might help me improve this work.
v2.1
Added icon. Added missing-image and -sound support (which you should never have to experience). Made the save/open dialogs return to the folder of the last save, instead of My Documents. Added GIF export of full design (2 sec frames)
v2.0
Fixed pressure plate behavior so that it now acts like a switch while paused. Fixed minor pressure plate bugs. Added "ground level" information, now shown by the color of the layer number; expansion buttons use this to keep the ground level, regardless of the order of button pressing. Added "Zoom In" and "Zoom Out" buttons. Overhauled UI to include a status bar, toolbar, and menu (in place of the bank of buttons). Icons were created or borrowed from the Java LAF Graphics Repository. Added Look & Feel adjustment settings. Adjusted tooltip movement and partially fixed tooltip disappearing bug. Added XYZ tracking to status bar. Added opened file and modification tracking.
v1.82
Added an option to modify the "generic block" export type for .schematic files. Fixed bug introduced in v1.8 which caused "1/3-layer mode" buttons to fail.
v1.8
Added pressure plate and tooltip info tool.
v1.7
Added export of .schematic files, added Escape from clone mode, automatic return to bottom of selection when placing clone. Fixed minor import bugs.
v1.6
Added import of .schematic and .dat, added "Options" button with "Cyclic", "Natural wire connection", "ground switch", "1/2/3 layer" mode, and "show bridges".
v1.5
Added "torch over air", "torch over wire", "wire on block on block" tiles. Fixed palette compression bug.
v1.41
Fixed bug where torch blocks wire power flow, fixed double door behavior.
v1.4
Added scrollbars, "New" and "Clone" buttons, double doors, and a "hinge" indicator for doors to unambiguously indicate how they move and whether they are powered or not. Palette now resizes with the window.
v1.31
Fixed door bugs, added block-on-block palette material, made block, wire, torch, switch, and button palettes 1-high (instead of replacing above with air)
v1.3
Added button (timed switch, lasts 10 ticks), door (with open and close sounds)
One thing, the speed for the clocks is too fast. I made an 11clock and it doesn't go through each gate at a speed of 1 second of which the one in Minecraft did. We need the speeds to be exact so we can make it to our best intentions. Also add doors please with sound as well from the sound files. http://imgur.com/LXMzn.png
Rollback Post to RevisionRollBack
Quote from MichaeljMM79 »
Talent didn't go anywhere, it just gets lost in all the noise. You have to find it.
Although I only have Windows, it is Java, so it should run anywhere with a VM.
Quote from Blizarn »
I used it and it doesn't turn Redstone torches off when they are powered :tongue.gif:
EDIT:FAIL i forgot i saw a "Tick" and "Play" button...
The program starts up paused, so you need to press "Play" in order for it to behave like Minecraft.
IMPORTANT NOTE: I learned the reason for torch burnouts while making this program. It turns out that "everything on *tick* everything off *tick* repeat" is a stable state, no matter how complicated your circuit, for certain loops, so if you build the whole circuit while paused, there is a high probability that this will happen when you play. In Minecraft, this "deadlock" is solved by turning everything off, then fading the torches back at random. I don't have torch burnouts, so you have to break and remake connections until it settles down.
Quote from Blackwind »
One thing, the speed for the clocks is too fast. I made an 11clock and it doesn't go through each gate at a speed of 1 second of which the one in Minecraft did. We need the speeds to be exact so we can make it to our best intentions.
It's interesting that you say that your 11-clock runs too fast in my program, as the delay I have set is 100ms, so it should flip every 1.1 sec, which is slower than Minecraft (at least, based on your observation). Unfortunately, I think that chunk updates and other non-redstone things interfere too much with tick speeds too much to get an accurate reading on the "speed of a tick". I wasn't actually trying to match speeds with Minecraft; that I got so close is good news, I guess. For the more discriminating type, though, I might add in a speed control for that.
Quote from Blackwind »
Also add doors please with sound as well from the sound files.
Quote from Blackwind »
Don't forget you need to add buttons.
I was trying to keep it simple to keep the palette size down, but I can understand the need for auditory feedback in the form of a door. And I hadn't thought of buttons; TBH I've never used them, but if they operate differently enough from switches I suppose they are necessary.
Quote from Uncreative. »
Not to be that guy, but this belongs in the Modding and Mapping section, I think.
You may be right, although in that case I would question the forum title, is this neither Maps nor Mods the program. I'd prefer to call it an "external reference". (Although a feature I have been contemplating is the ability to port circuits directly into an Alpha map, which would make it a "mod" if I ever get around to it. :tongue.gif: )
I would have moved this, but as he said this doesn't really have much of a mapping or modding feel. It's more of an external program that involved Minecraft in some way. And while it may fit better in the other forum it would probably be best to keep it here for now.
Buttons operate like switches, but only stay on for a moment. t's very easy to delete a switch when you try to simulate a button's delay.
Also, for some reason, things like this aren't working:
= redstone on ground
= a block with a torch on top of it
But
works fine.
Try it yourself in Minecraft to see that that is intended behavior, although I agree it is very counter-intuitive. The way I have the logic is this: a block which is figuring out if it is wire-powered first looks around for adjacent powered wires. (Both examples have this.) Then is ascertains that the powered wire has nothing to its left or right which it wants to connect to (i.e. other wires, switches, or torches). If there are things there, the block won't power, and the torch will stay on. (Even if the wires seem to imply that they are connecting.) Try adding a bit of wire off to the side of your second example and watch the light turn back on. Go figure. [EDIT]
You shouldn't have any problems accidentally deleting switches in my program, since left-clicking will not delete them (you have to right-click with the "air" palette material). Just click once, then again after a second or so. (I'm working on adding a bona fide button anyway, though.)
Also, I'm having trouble characterizing door powering. Does anyone want to take a stab at explaining exactly which blocks need to be powered in which way which will activate a door?
EDIT: Also also, it's probably a question of taste, but should switches be tied to main time control (i.e. pausing quickly after pressing them would keep them on indefinitely), or should they run separately? I'm trying to count how many ticks a button stays down for, but I'm getting inconsistent results, which probably means that Minecraft tracks their timing separately, and lag affects the comparison. Opinions?
EDIT 2: I've added the requested features, pushing the version to 1.3. Now includes switch and door. In response to my own questions just above, I've decided to make the switch run on the global clock, at 10 ticks. I figure it's not as useful if it were an absolute 1 second. The door is activated whenever its blocks, or any blocks it is touching, are wire- or torch-powered. (Note that "torch-powered" is equivalent to switch- or button-powered.)
Really nice :smile.gif:
Spent a couple of minutes and look! Airlock! (not that it hasn't been done already...)
And if anyone wants just just quickly load it up to play around with it: rdat file
Edit: And shortly after...compacted it, and for a proper airlock youll prolly always approach it from the same side anyway, which means the door will always be open and so I removed the 2 outside switches: rdat download
It needs scroll bars on the sides so I can get to work on a CPU.
Also, copy+paste.
(oh, and it runs fine on this mac)
Never mind, it's pretty buggy on the mac... 1 sec and I'll try on a windows VM to see if it's the OS or the program :wink.gif:
Ok, it's mostly the mac, but double-doors aren't implemented.
EDIT #N+1:
-It's VERY frustrating to edit 3 tiles at once when it isn't necessary, especially when working underground.
--Why does placing a block (yellow) remove the block from the space above it?
-Placing torches near other torches is challenging. A user should be able to choose which edge to place it on (or to place it in the center), instead of having to get rid of the others.
-IMO, you should change the graphics to show what's under the current level, so one can avoid placing a wire and erasing a wire directly below.
I thought I might mention there is no sound on Linux. No biggie but something you may want to look into if the door sounds are that important to people.
Get it here: Redstone Simulator v2.2
Earlier versions: v2.1 • v2.0 • v1.82 • v1.8 • v1.7 • v1.6
I don't still have versions earlier than this, but these are pretty stable if you find a bug in the latest version.
Note that this is super-duper-pre-release-alpha stuff (EDIT: not really anymore), so brace for bugs, and tell me any you find, so I can fix them. My first priority, of course, is making sure that every redstone behavior is mimicked, so if you find a problem there, I definitely want to hear it. I also know that the interface sucks, and I am open to suggestions.
http://www.minecraftforum.net/viewtopic.php?f=1&t=51308
Edit: Stupid thing, opening in WinRAR.
EDIT:FAIL i forgot i saw a "Tick" and "Play" button...
http://imgur.com/LXMzn.png
http://www.minerwars.com/?aid=640
That's because it's paused.
Press "play" or at least "step" to make it run as if it were in-game.
This is not a spammy link, but rather a handy guide
DISCLAIMER: any diagrams I post should be taken with a grain of salt.
http://www.minerwars.com/?aid=640
I'm glad to see that you finally finished the program though :biggrin.gif:
Although I only have Windows, it is Java, so it should run anywhere with a VM.
The program starts up paused, so you need to press "Play" in order for it to behave like Minecraft.
IMPORTANT NOTE: I learned the reason for torch burnouts while making this program. It turns out that "everything on *tick* everything off *tick* repeat" is a stable state, no matter how complicated your circuit, for certain loops, so if you build the whole circuit while paused, there is a high probability that this will happen when you play. In Minecraft, this "deadlock" is solved by turning everything off, then fading the torches back at random. I don't have torch burnouts, so you have to break and remake connections until it settles down.
It's interesting that you say that your 11-clock runs too fast in my program, as the delay I have set is 100ms, so it should flip every 1.1 sec, which is slower than Minecraft (at least, based on your observation). Unfortunately, I think that chunk updates and other non-redstone things interfere too much with tick speeds too much to get an accurate reading on the "speed of a tick". I wasn't actually trying to match speeds with Minecraft; that I got so close is good news, I guess. For the more discriminating type, though, I might add in a speed control for that.
I was trying to keep it simple to keep the palette size down, but I can understand the need for auditory feedback in the form of a door. And I hadn't thought of buttons; TBH I've never used them, but if they operate differently enough from switches I suppose they are necessary.
You may be right, although in that case I would question the forum title, is this neither Maps nor Mods the program. I'd prefer to call it an "external reference". (Although a feature I have been contemplating is the ability to port circuits directly into an Alpha map, which would make it a "mod" if I ever get around to it. :tongue.gif: )
Also, for some reason, things like this aren't working:
= redstone on ground
= a block with a torch on top of it
But
works fine.
Try it yourself in Minecraft to see that that is intended behavior, although I agree it is very counter-intuitive. The way I have the logic is this: a block which is figuring out if it is wire-powered first looks around for adjacent powered wires. (Both examples have this.) Then is ascertains that the powered wire has nothing to its left or right which it wants to connect to (i.e. other wires, switches, or torches). If there are things there, the block won't power, and the torch will stay on. (Even if the wires seem to imply that they are connecting.) Try adding a bit of wire off to the side of your second example and watch the light turn back on. Go figure. [EDIT]
You shouldn't have any problems accidentally deleting switches in my program, since left-clicking will not delete them (you have to right-click with the "air" palette material). Just click once, then again after a second or so. (I'm working on adding a bona fide button anyway, though.)
Also, I'm having trouble characterizing door powering. Does anyone want to take a stab at explaining exactly which blocks need to be powered in which way which will activate a door?
EDIT: Also also, it's probably a question of taste, but should switches be tied to main time control (i.e. pausing quickly after pressing them would keep them on indefinitely), or should they run separately? I'm trying to count how many ticks a button stays down for, but I'm getting inconsistent results, which probably means that Minecraft tracks their timing separately, and lag affects the comparison. Opinions?
EDIT 2: I've added the requested features, pushing the version to 1.3. Now includes switch and door. In response to my own questions just above, I've decided to make the switch run on the global clock, at 10 ticks. I figure it's not as useful if it were an absolute 1 second. The door is activated whenever its blocks, or any blocks it is touching, are wire- or torch-powered. (Note that "torch-powered" is equivalent to switch- or button-powered.)
Spent a couple of minutes and look! Airlock! (not that it hasn't been done already...)
And if anyone wants just just quickly load it up to play around with it: rdat file
Edit: And shortly after...compacted it, and for a proper airlock youll prolly always approach it from the same side anyway, which means the door will always be open and so I removed the 2 outside switches:
rdat download
Also, copy+paste.
(oh, and it runs fine on this mac)Never mind, it's pretty buggy on the mac...
1 sec and I'll try on a windows VM to see if it's the OS or the program :wink.gif:Ok, it's mostly the mac, but double-doors aren't implemented.
EDIT #N+1:
-It's VERY frustrating to edit 3 tiles at once when it isn't necessary, especially when working underground.
--Why does placing a block (yellow) remove the block from the space above it?
-Placing torches near other torches is challenging. A user should be able to choose which edge to place it on (or to place it in the center), instead of having to get rid of the others.
-IMO, you should change the graphics to show what's under the current level, so one can avoid placing a wire and erasing a wire directly below.
This is not a spammy link, but rather a handy guide
DISCLAIMER: any diagrams I post should be taken with a grain of salt.
i hope so...
anyway, this is great! i love it.