==== 3.4.9 ====
I played PowerCraft for a while (I rarely have time to play), and found many bugs in Weasel.
I have fixed them all, added few improvements and decided to release it.

I know 1.3 is already out, but I have no intention to update PowerCraft to it.
Nearly everything is changed and without the modding support or a good guide I am lost.
That is why we have one more release for 1.2.5.

I have included a SNAKE GAME library disk I have just finished in the weasel examples folder,
so you can try to run it.

==== 3.4.8 ====
### FIXES ###
	- fixed many bad things in weasel
	- unconnecting devices from weasel network now works properly
	- fixed glitch when you could crash the game by placing light inside the iron ledge block.
	- corrected some redstone updates
	- Weasel's interrupt calls (update, termIn, touchEvent) are no longer interruptible.
		instead the calls are queued, so nothing is lost nor broken
	- fixed bugs where some messing with guis resulted in NullPointers and other cute things
	- corrected many minor mistakes and bugs
	- reworked image manipulation library and image storage format. This means that old image
		disks need to be formatted if you want to use them again.


### WRITABLE DISKS ###
All kinds of disks are now writable by program
For all of these, instead of ???.name, you can use driveName.SLOT

text disks: 
(plain text disk)
	use variable text.name, also you can assign it.
	note: it works as variable, eg. getfirst(text.mytxt, 10) will give you first 10 chars


lists: have now functions 
(these are lists with numeric indexes)
	list.name.set(index, value)
	list.name.remove(index)
	list.name.add(value)
	list.name.clear()

data disk:
(new type, holds variables and can work as dictionary)
	map.name.get("variable_name")
	map.name.set("variable_name", value)
	map.name.clear()
	map.name.has("variable_name")

image disk:
	all things that work for touchscreen, with img.name
	img.name.clear()
	img.name = "red"; (or 0xff0000, or color(...)) - set all pixels to color
	img.resize(w,h) - this also erases the disk.

### NEW IMAGE FUNCTIONS ###
	(for image disks, add img.name. before the func name, for touchscreen touchscreenName.)
	rect(x1,y1,x2,y2,color)
	rect(x1,y1,x2,y2,color, borderColor)
	frame(x1,y1,x2,y2,color) - only frame, dont touch the inside

	ellipse(x, y, w, h, color)
		- x,y is left top of the rect the ellipse is drawn into
	
	fill(x,y,color)
		- fill the area from coords, with color.
		- sorry DarkHog, but your recursive code didn't work well, now it's done using a loop and Stack.


### New features in the DIGITAL WORKBENCH ###
	- it was completely reworked, now the inventory shows only on the front page.
	- added icon button for "back", because its smaller
	- you can edit data disks
	- added gui for libraries
		- obviously library don't have the highlitings you get in Weasel Controller,
		  because the functions and variables aren't known to the library compiler;
          but it is not a problem, it compiles all right.
		- se below for info about LIBS.
	- images up to 260x130, but they cause a bit of lag, please use the smallest size you need.
	- much better zoom range (more room == more zoom)
	- new color picker indicator
	- ** KEY CONTOLS ** !
		- hold L & drag to draw line
		- press F and click to fill (bucket)
		- hold R & drag to draw rectangle
		- hold B & drag to draw border = frame
		- hold C & drag to draw circle (or ellipse)
	- right click is always color -1 = invisible. It works also with fill and others.
	- CTRL or SHIFT while clicking is Color Picking - get color from pixels.

### LIBRARY DISKS ###
	- work in Weasel Controller (put them into a drive)
	- work in Miner

	- library disk is linked to the weasel program when you build it (check&launch)
	- once the program is compiled, the disk is not needed, and canging it has no
	  effect until you rebuild the program. This is for technical reasons, it isn't that
	  I want to make it harder.

	- functions from the library disk are literally added to the main program, though
	  not the source code, but already compiled ones.
	- if there are more functions of the same name in your program, it is not
      a problem.
	- disks are added line-by-line from all connected drivers, and their labels have
	  no effect; you can prefix your functions as you wish - or not at all.

	- when making universal library keep in mind that names of the peripherals may vary
		- use get("name") and set("name", value, and call("name", args...) if you need.

	- this of course does not apply to miners, miners are all equivalent and the libraries are 100% universal.

	- only functions from library disks are accessible	(when it is linked, single END instruction
		is added before each library file)







==== 3.4.7 ====
* Miners now use Weasel
* more than 100 weasel functions
* all will be documented in a separate miner goide asap.

==== 3.4.6 ====
* Weasel's interrupt functions (update, touchEvent, termIn) no longer execute instantly
  = you can use pause, sleep and other things inside them, as well as call other functions.
* Weasel is much more stable, removed several things that caused crashes
* weasel is now less laggy
* Weasel forces chunk saving when modified (or instruction execited etc.), so it should be more reliable
* Using port name as variable now sets all the port sides at once, not only front. Reading this variable gives you F.
* cutfirst and cutlast no longer cause crashes

* many other functions and aliases
 - WEASEL GUIDE IS UPDATED, YOU SHOULD READ IT AGAIN!

* checked all the gates for functionality
* fixed buggy day, night, rain sensors

New things:
* Weasel Disks, Digital Workbench, Terminal, Touchscreen Graphics Display
* Image disks, digital workbench can edit images

* Smelting items on roaster now sets "delayBeforePickup" correctly
* many minor fixes





==== 3.4.5 ====
* Last bigger update before Minecraft 1.3
* Much improved RGB driver functionality
* Weasel function: color("red"), or color(255,0,0) - they make a hex color, useful for rgb display or a background of a display.
* Fixed some things in weasel that could crash your game
* Display will no longer crash if it has some strange text in it
* Chimneys no longer transparent in forge
* rgb driver now can change color without flashing the led.
btw., rgb driver = the Weasel Port, with white display segment connected to it.
* you can easilly connect radio receivers to transmitter, just right click Tx with activator, and the click these Rx, and they will autoconnect.


==== 3.4.4 ====
* all gates and weasel stuff is creeper-proof
* radio & teleporter labels toggleable in GUI
* radio has checkbox "Tiny" - and if its on, it renders tiny. Really tiny. try it.
* ugly thin font renderer is now gone! We are suing the bold one for things where it looks better - minitor, weasel coding, labels for radio etc.

* Added "Display Segments" - overgrown indicators, much better for LED displays
Recipe: glowstone block + redstone + dye

* lights (all 3 kinds) no longer need support block, they can hand on weasel ports, on leaves, fences etc.
* added smoking chimneys:
# #
# # - cobblestone, or stone brick, or brick wall
# #
- smoke when connected to smoke source.

* new commands for weasel
* smarter weasel :)
* RGB led - connect white display segment directly to a weasel port.
 Then set yourport.rgb = 0xff00ff (a hex color), and if you change the on/off state,
 the white segment will have the color you specified.

* Rubntime name generation!
_get("varname") - get a variable with given name
_set("varname", value) - set value to variable
_call("funcname",args,args...) - call a function.

the point of these is that if you have eg. ports called p0,p1,p2,p3...,
you can access them using a for loop, and create the names on the fly, by using "p"+i as variable name

* display has functions:
name.reset(), name.clear(), name.print(), name.add()
but also. name.matrix() - makes green rain!

* many bugfixes around instant gates - they no longer change brightness = they no longer crash the game.
* old programmable gates were converted to signal splitters if you had them in world.


==== 3.4.3 ====
* Fixed bug in XP bank which allowed infinite XP recyclation
* Added missing recipes to some lights
* STRONGLY improved weasel's math parser
* Syntax highlighter now recognizes strings and comments
- Removed programmable gates; break them to get the resources you used to craft them.
+ Syntax highlighting colors are in config file
+ Weasel has it's own ID - all the new weasel devices share this one
+ 3 Weasel gadgets - external devices: Display, Port, Speaker
+ Display has support for formatting (just like in these new books), and colors.
+ Weasels can directly use radio signals, and share variables
+ Use activation crystal to connect weasel with it's peripherals (the gadgets it can use).
+ Each weasel network has it's own unique color, but you can change it, and also rename the network
+ Weasel has new amazing GUI with lots of functions and information.
+ Hacked water to store items to chests and work seamlessly with conveyors.
+ Hacked "splash texts", now they sometimes use our texts.
+ Update notification in splash text, and also ingame, as before.
+ Improved belts (a bit smoother)
+ Reduced some lag in weasel
+ Addition of strings works now.
+ Added simple functions to get current time:
  hours(), mins(), secs(), time() - in seconds, ftime() - HH:MM:SS
  all these with added "_r" for real time (eg. ftime_r())
  Get moon phase: moon();
+ weasel now works correctly with deeply nested function calls in return statement.
+ update notification system should be more reliable.
+ Fixed many other bugs, but I can't remember them :)

==== 3.4.2 ====
*** The short version ***

+ Lightning conductor
+ Transmutation chamber
+ New GUI for item ejection belt
+ GUI for full chest detector
* Programmable gates now use Weasel
+ New "Night sensor" - opposite of Day sensor
+ Trash slot, "trash all" and "sort" buttons in Crafting Tool
* Reorganized Crafting tool's contents
* More vanilla blocks in the crafting tool
* New crafting recipe for lights: Dye + Redstone + Glowstone.
+ New types of lights - the "stable lights". They stay lit even without redstone.
  To craft these, use only Glowstone + Dye.
* Config file options for "wood grouping" and "plank grouping" were removed, instead
  the separator now has checkboxes in the gui.
* Automatic workbench does not require stone brick to be redstone powered, instead
  it has a checkbox in it's GUI.
+ Fixed many bugs in the gates, no more crashes from instant repeaters.
+ Fixed pulsar, does no longer cause lag in "off" state
+ Improved some block-placing policies
+ Fixed weird spacing in some GUIs
+ Full and empty chest sensors now support minecarts and all other IInventory entities.
  For example, some mod can add a pony which carries bags - it will work for him.
+ Fixed bugs in separation belt
+ Improved redirection belt, items will nwo remember their direction even if the direction
  changes before they leave the belt.
+ Fixed all possible ways how to cheat from the crafting tool, if it is not enabled.
+ Removed unused tectures and unused translation keys
+ en_US now regenates each time new langpack is downloaded, so you will always get
  the latest names for blocks and items.
+ Fixed many possible ways how to get NullPointer.
- Removed Herobrine :D

*** New recipes: ***

Lights: shapeless
redstone + dye + glowstone

Stable lights: shapeless
dye + glowstone

Lightning conductor:

-X-
-X-, X = steel cube
XXX

Transmutation chamber:

SOS
OFO, S = iron frame, O = obsidian, F = furnace
SOS




*** Now the long version ***

TRANSMUTATION MACHINE
This is probably the most exciting update ever, except the one which added Miners.
First of all, we now have a machine which converts coal to diamonds. And the best
thing about it is that it is NOT overpowered! It uses lightning conductor to collect
static electricity from the atmosphere, adn this charge is then sent into a
Transmutation Chamber, where the enormous electrical current, together with built-in
piston pressure system compress the stone coal into diamonds. If you feel lucky,
you can also try transmutating diamonds to PowerCrystal, but it is a bit risky.

This process is acompanied by a rather predictable effect, the lightning bolt.
It is always good idea to keep some distance from the machine, because the charges
are really strong and you might get hurt.

Technical details:
- The lightning conductor must be above world's level 80.
- There must be 6 iron cubes under the conductor. 
- If conductor charges, it has blue spars around it.
- Place your reaction chamber right under the iron cube pillar, and click it.
  If you see a growing purple progress-bar, it works. Insert some coal and watch what happens.
- It works only with stone coal, not charcoal!
- To pause the machine (no more lightnings), you can break or push away one of the
  iron cubes in the pillar. It will start to discharge slowly, but it will never
  discharge completely. Once there arent the iron cubes, the transmutation chamber will
  stop detecting the charge level.


WEASEL ENGINE
Another new thig is the powerful, long-awaited Weasel Scripting Engine.
Weasel is, in fact, not a scripting engine. It is a virtual machine, sort of
emulated microcontroller. Weasel has all that you can find in 8-bit microcontollers,
except the slow assembler and limitation to numeric data types.

Weasel has Strings, Integers and Booleans.

It supports these coding structures (in your program, please use lower case letters): 
* IF(condition){} with unlimited number of ELSE IF(condition){} branches and one
  optional ELSE{} branch
* FOR loop, either the c-like for(i=0; i < 100; i++){}, or a simplified syntax
  for(i=0:99){}, or even withnout any variable for(0:99){}
* WHILE(condition){}
* UNTIL(condition){}
* DO{}WHILE(condition);
* DO{}UNTIL(condition);
* Functions are defined by "function" keyword, followed by function name and argument
  names in brackets.
  The follows the function body, with optional return statement.

    function myFunc(argA, argB, argC){
      ... do somethign here...
      return argA + argB;
    }

  function can then be called like this:

    myFunc(13,10,16);

  You can also include function inside some expression, in order to work with result value.
  Function arguments are variable-type, but you must take care not to do some 
  undefined operations with them, eg. divide strings.

  Many functions are defined by the controlled hardware.

* Keywords BREAK and CONTINUE are supported too.
  break 3; will break three loops, by default break; means break 1;
  continue; continues the current loop, while continue 3; breaks the two inner loops and
  continues the third.

* PAUSE interrupts the execution and gives focus back to the hardware, which usually
  resumes the execution next update tick. Note that each tick only limited amount of
  assembler instructions is executed, therefore infinite loops in your program can not
  crash the game. However it is usually good to place one pause; into your main loop.
  Some hardwares, like the Programmable Gate, also provide function sleep(ticks), which
  is the same as calling pause() multiple times.

* PUSH and POP. These work with the data stack, which is separated from system stack,
  so you can't crash the engine by calling these. push(expression) saves result of the expression
  - it can be value of a variable - into stack. pop(varname) takes the topmost element from stack
  and stores it into the given variable. If stack is empty while calling pop, your engine will crash.


Variables.
Weasel has two basic types of variables: local and global.
Local variables are visible in the whole scope, which means you can access them everywhere
in your program, after they were initialized, but not in functions.

Global variables are visible even in functions, and are preserved when your program calls
"restart;" and restarts the program. During this restart, all data in stack and variable map
are removed, only the globals stay unchanged.

There are also Hardware Variables. These are provided by the ahrdware controlled by Weasel.
Program can read and write them, but the hardware does not have to accept your changes.



Weasel program's life cycle
When you launch the program, it is compiled into a sequence of assembler instructions. These
are then stored in an instruction list, and each clock cycle one instruction is executed. 

Engine is controlled by hardware, which means hardware can say how many instructions should
be executed each update tick. It may be from 100 to 400, not more, to prevent lagging.
When you call pause; in your program, this execution is paused and the hardware can continue
doing it's stuff. Hardware functions you call can also pause the engine, for example if the command
you requested consumes some time.

There can also be so called External Calls. Tha means that the hardware requires a function
with certain name in your program. It can call this function on it's own, without actually
executing the surrounding code. Returned value from this function is the processed by the
hardware and your main program can be resumed. This kind of function should not pause the program,
neither call hardware functions that require pause. If you do so, your engine will most probably
crash.


PROGRAMMABLE GATES - Microcontrollers
* Gates have 6 ports: U, D, L, R, B, F. they can also be accessed by thes enames:
  up, down, left, right, front, back, and also top and bottom.
* These variables are read/write, writing them will set the given port's redstone state.

* Each time a neighbor block changes, your function update(){} is called.

You can use these hardware functions:

function sleep(ticks)
 - suspend the engine for given number of ticks.
 - one second has 20 ticks.

function oink();
function moo();
function baa();
function cluck();
function woof();

function sound(resource, volume);
 (argument volume is optional.)

 : resource - minecraft sound resource name. eg. "mob.pig", "mob.pigdeath", mob.slime",
              "random.click", "random.orb". In fact, these names are made up of directory names in
              folder "resources"
 : volume   - sound volume. This is not only the strength of the sound, but also it defines how far
              from the source it can be heard. Default is 10. Note blocks use 30, limit is 50.

function note(instrument, tone, volume);
 : instrument - name of the misical instrument. it supports vaious aliases, but the defaults are:
                "piano", "bassguitar", "bassdrum", "snaredrum", "sticks".
                Possible aliases: "harp", "guitar", "drum", "snare", "clicks"
 : tone     - the note. It is a number from range 0-24, probably inclusive. Itn uses exactly the same
              tones as note blocks.
 : volume   - sound volume, the same as for sound function.

function isDay();
function isNight();
function time(); - the 24000-unit time in minecraft. Divide by 1000 and you get hours.
function isRaining();

function emptyChest(side)
 - checks whether there is an empty chest on given side. Side: "L","R","F","B".
 - works also with carts and other inventory blocks
function empty(side) - the same

function fullChest(side, strict)
 - checks whether there is a full chest on given side. Side: "L","R","F","B".
 - works also with carts and other inventory blocks
 - argument "strict" is optional, defaults to false.
 - strict = require all slots to be fully used. If strict is false, at least one
   item per slot is sufficient.
function full(side, strict) - the same


Example programs for gate:

# T flip-flop

global last = B;

update(){
    if(B != last && B){
        F = !F;
    }
    
    last = B;
}


Make pig sound each second:

while(true){
    sleep(20);
    oink();
}

function update(){}


-----------








==== 3.4.1 ====
* Fixed the bug where items got stuck on conveyors
* Fixed buggy item separator
* Improved GUI of the programmable gate (smaller buttons)
* Fixed buggy Spawner Editor's GUI
* Fixed bug where miner could not be built in one direction

+ Added STICKY BOOTS
  Crafting: iron boots over slimeball
  Usage: Conveyors won't move you while wearing them.

+ Right click your Activation Crystal in front of (or under) some inventroy block,
  and you will get a special item called "Picked-up XX" where XX is name of the picked block.
  It works for chest, dispenser, auto-workbench, separation belt, brewing stand, furnace,
  roaster and all other inventory blocks, but also most non-inventory blocks with tile entity,
  such as Pulsar or Programmable Gate.

+ Absolutely amazing new thing is the reworked ORE SNIFFER. Click it on wall in your mine,
  and you'll know why I'm saying it's so awesome. Or watch this: http://t.co/aqCsDkuN



==== 3.4.0 ====
If you did not try 3.4 prereleases, you should read the older changelogs. 
There is a lot of useful information.

General
* New versioning system - now it is [0-9].[0-9].[0-9]
* Improved GRES, element spacing should be correct again
* Removed testing dirt recipes from 3.4p4
* Added iron fence to crafting tool
* The crash with Forge ModLoader might be fixed, but - we didnt test it
* NEI should have all blocks.

Programmable gates
* Heavily improved programmable gate, now uses Weasel's ALU
* Programmable gates have many new functions available, and syntax coloring

Gates
* We now have these new gates: ("/" = new line in recipe)

 - Quick Repeater - recipe: R/R/R, R = redstone
 - Instant repeater - R/Q, R = redstone, Q = quick repeater
 - Quick Angled Repeater - RR/[]R, R = redstone, [] = nothing
 - Instant Angled Repeater - R/A, R = redstone, A = quick angled repeater

* Right click Angled Repeater to change the output direction.
* Right click AND and OR gates, and they will change into a subtype with
  inputs on back and on side. Click again to cycle through the 3 subtypes.
* Gates now have a burnout functionality - if gate quickly changes state
  for too long, it burns out and continues working after 6-tick cooldown.
  This prevents some lags.
* Fixed recipe for random gate

Machines
* Now support faster pulses, which makes them even more POWERful.

Miner
* I started working on weasel, but it is far from finished
* Miners are still the same as in 3.3, except they have unglier gui, because
  we converted it to GRES but didn't have time to improve it :P 



==== 3.4p4 ====
* XOR19 with Rupus joined the team - development will go faster now

* Added Iron Stairs
* Iron Ledge and Stairs moved from Deco Block to their's own block ID.

= Ledges, Stairs =
Ledge crafting:

I
I
III  = 16 ledges

Stairs crafting:

I
II   = 8 stairs

If you place ledge "on top" od other ledge, this new one will be instead placed forwards
from you in the direction you are facing.
This works also with stairs, but they use CTRL key differently - to deterine UP/DOWN direction.
It's really easy to use, but hard to explain.

* -> thus torches and ladders can be attached to iron frames again.
* New Gui Layout manager, with automatic scaling, alignment and other useful stuff
* Nearly all the PowerCraft GUIs now use this new gui system, called GRES.
* GRES stretches smartly when the texts labels grow / shrink, which happens when
  you use some translations.
* Reworked Update Notification screen, now with better image, more info and fancier layout.
* If you hold CTRL in Crafting tool, you get 64-stacks.
* Shift now works in all inventories where it makes any sense.
* New "block type" interface system, for better cross-module interaction
* Iron Frames' holes are rendered as "filled" if a coal torch is attached to them.
* New gate: Programmable Logic Gate. You can insert your own formula into the gui, eg. !(L^R)&B
* Changing texture pack no longer makes minecraft crash
* Teleporter can't eject you into other teleporter, and you can also set the output side
* Added new machine:

= Block Replacer. =
Hit this machine with left mouse button, and a particle frame will appear around the target position.
Each time replacer is powered/unpowered, it replaces the block inside it's inventory with the block
in world, at the target position. You can use the GUI to alter target position coordinate
(offset, limit 16 blocks from the device), or you can click different sides of the device with STICK
to move the target frame in the direction you're facing. Control moves it backwards.
Shift selects Y axis, this Shift = up, Shift+Ctrl = down.



 


==== 3.4p3 ====
* New iron frame renderer
* Added redstone storage block
* Added Steel Ledge block (really cool)
* Automatic translation downloader added

==== 3.4p2 ====
* Fixed miner bug (nullpointer)
* Fixed bug in harvester (two nullpointers)
* Fixed fishing machine (works again)
* Removed few possible null pointers from optical blocks
* Miner can newly harvest crops and replant them (wheat, f.e.)
* Teleporter GUI is much improved, and you cna now select primary output directioon (NSEW)
* Buttons stretch smartly based on language (though something is usually as min width)
* Added option to disable update notify for the one given new version
* Fixed few other nasty bugs and glitches
* Spawner Gui is now translated
* Fixed crafting recipe for prisms (now gives prism)
* Miner level 7 is no longer super slow
* Miner can harvest leaves again
* Option to mute sound
* All errors (even runtime) are now logged into log file.


==== 3.4pre1 ====
* New update notification system
* New uniform and efficient module system
* All modules are standalone (or should be), only core is needed by all
* New translation system
* New logging system
* New system of 3D coordinates instead of ints
* Reworked and improved property management system

  Properties and all data is now stored in .minecraft/powerCraft folder. 
  You should not remove the old configuration file .minecraftconfig/PC_WIRELESS.properties,
  it is used by the Radio Migration plugin ("FIX" module).

* Improved rendering system
* Improved radio rendering and functionality
* Reduced some laggy operations
* Harvester harvests all, including leaves
* Harvester refractable on prisms
* Armour protects you from killer laser (the more & better the better protection)
* Reworked system of block type information interfaces
* Support for modded trees
* New kinds of utilities in dedicated classes
* Crystals moved to core
* Crafting tool much improved, and recursive crafting works perfectly
* Crafting tool moved to core
* Sniffer moved to core
* Activator and PowerDust moved to core
* Activator now uses system of listeners, all modules can handle activator clicks without modifying the item
* Added "random gate" - crafting: T-gate, redstone on top.
* Laser raytracing system moved to dedicated class, all lasers use the same system now.

Many things are not finished yet, and new things will come.
You'll be informed in-game about the updates.
This can be switched off in property file.






==== 3.3 ====

* Added Slow Delayer gate
* Added Redstone Crossing gate, for wire intersections
* Advanced Delayer renamed to Buffered Delayer, and it's bugs were fixed

* Added Javadoc to some files around gates

==== 3.2 ====

* Fixed the bug with wheat and nether wart not being harvested.
* You must delete default.xml from PC_CROPS for the fix to fully work.

* Laser can now trigger TNT (transmitter laser and killer laser)
* Placing spawner eggs by builder was fixed, no more placing 50 creepers each tick :P
* Block builder's range extended to 150 blocks, use stone brick or obsidian to stop it.
* Miner now makes sound when placing blocks (and believe me that digging through lava and water is now really noisy!)



==== 3.1 ====

BIGFIXES
* Fixed bug with flashing grass near iron frames
* Fixed bug with break particles spawned even if the block is not harvested
* Fixed bug where items sometimes got stuck on conveyors, and related glitches. (Yay, this was really annoying!)
* Conveyor now saves items into chests more effectively, smartly filling not-full stacks first.


XML CROPS
* The crops folder and file will now always appear on first Minecraft startup, instead of only when it's needed (people thought it does not work if it didn't appear instantly).
* Added "priority" attribute to the xml file for crops
  - Each time block is harvested, the "1" items are checked first.
  - If nothing is dropped from priority "1", items "2" have chance.
  - This can be used for blocks like gravel, where if flint is droped, gravel disappears.
  - there can be up to 20 priorities per one crop, and more than one item with the same priority.
  - IMPORTANT: Priorities must be in one sequence - eg. 1,2,5 will not work (it will stop at 2).
* Rarity now suports fractions, for example 2/3 (every 2 out of 3 times)

GATES
* Added "Advanced Delayer" gate, crafted like this:

    RRR repeaters
    SSS smooth stone

  Right click it to open config GUI.
  It has 3 inputs - data, reset (red) and hold (purple)

HARVESTER
* Harvester's beam can now be reflected by mirrors (not prisms!)
* You can now use PowerCrystals instead of Lapis blocks to make the harvesting range larger.
* One harvester is now able to harvest whole field.

MINER
* Key "Start program" was force-remapped to Numpad enter (was normal Enter before), so you will now have two "RunProgram" entries in your PC_MOBILE config file. The one with "NEW" at the end is used, you can delete the normal one. This was important, because if you closed some gui by hitting Enter, all connected miners would start moving.



==== 3.0 ====
* Added support for custom (modded) crops, using XML config files
* After you run Minecraft with powerCraft 3.0 installed, go to config/PC_CROPS and you
  will find the default config file there.
* You should not edit this file, but rather create other files in the same directory.
* There don't have to be only crops, you can for example add the following "crop" entry, if
  you want harvested sand to sometimes drop gold nugget (like in real life). That, of course,
  will work only if harvested by harvester, not by shovel, for example. 50% of sand will be destroyed,
  because sand's count is set to 0-1.

<crop name='Gold in sand'>
	<block id='12' metaMature='-1' metaReplant='-1' />
	<item id='371' meta='0' count='1-2' rarity='100' />
	<item id='12' meta='0' count='0-1' rarity='1' />
</crop>


* Miner with bridge building enabled will now stop when it runs out of material, instead of
  falling down. After you insert some more blocks, it will continue.

* Right click mirror with power crystal to set it's color.
* Coloured mirror reflects only laser of the same color, while the other colours will simply go through.
* This can be used to separate laser beams combined by prisms - good for laser communication, you 
  can transmit up to eight different signals by single beam!


==== 2.9 ====
* Miner won't fall into caves anymore (builds helper blocks when digging down)
  Don't forget to enable bridge building when goind forwards (number or F). Use (b) and (!b) to control bridge mode.
* Miner can now push items and mobs (like real bulldozer!)

* Clicking activation crystal on Spawner opens PowerCraft's own SPAWNER GUI for mob type selecting.
* Added simple recipe for spawner:

   %=%
   = =
   %=%

  = iron ingot
  % mossy cobblestone

* Spawner controller now spawns also SLIMES and other cool mobs (the purple arrow is the side where redstone should enter the device)

* Miner consumes a bit less fuel than before
* Killer laser will explode only if it hits the starting device, not any laser, as before.
* Fixed power dust crafting recipe
* Removed some recipes where cobble was used instead of smoothstone
* Improved crafting tool's crafting functionality
* Added all redstone-related blocks into the crafting tool
* Added some REVERSE RECIPES - craft wooden things back to source items, works also with furnace and clock.

* Started making javadoc, but there is too much code so it will take months to finish it

* PowerCraft should now be compatible with NOT ENOUGH ITEMS, as well as TOO MANY ITEMS, but I didn't test it yet. Report crashes so I can fix it quickly.


==== 2.8 ====

GENERAL
* Did 'cleanup' using Eclipse, so Overrides are now correct.
* Made CRAFTING TOOL super large with really all kinds of blocks in PowerCraft
* Dispenser can now dispense wheat for animal breeding
* Works also with all kinds of food and bones
* Crafting tool now contains dispenser, door, trapdoor and redstone, which is useful in creative.

TELEPORTER
* Fixed teleporter cross-save bug
* Fixed teleporter cross dimension bug (you may have to rebuild your teleporters for this to have any effect.
* Teleporter Target has now the lower pad rendered as gold, to make it easier to tell which one is which.
* Teleporters now let you select which entities should be teleported, and they also let you teleport only after pressing SHIFT (sneak).

LASERS
* Laser sensor now has particles rendered forwards and backwards (the movement), so it looks realistic.
* Added two new laser types, backwards compatible
* No new crafting, laser will ask you what type you want when you place it.
* Killer on roaster still works
* Laser sensor can't detect items anymore
* Laser body is now larger, and has coloured lens instead of that old spot on texture. this, however, will make troubles with texturepacks, as laser no longer loads from tiles.png file, but from separate texture instead.
* Now the power crystals for coloring beam, prisms and mirrors have a very good use - for beam control. Colouring may make it easier for you to distinguish different beams. 
* Laser transmitter has to be powered by redstoen if you want it to flash and activate the sensor.
* Sensor can ATM be triggered by beam from all sides and angles, which is a bug, but I felt too lazy to fix it.

==== 2.7 ====
* Added PRISM
* Added TELEPORTERS
* Improved mirrors
* killer beam reflected back into it's source laser makes it go boom
* Added TMI compatibility
* Improved loads of other stuff
* Code is now using iniform TAB indentaion with prefered size of 4 spaces per tab.

==== 2.6 ====
* Simplified some recipes (chest detector, spawner controller)
* Spawner controller renamed to Special Controller
* Checked functionality of some blocks
* Fixed Miner crashing with invalid loop syntax

* Added new block: IRON FRAME (crafting: Like chest of iron ingots)

* Laser beam going through Power Crystal changes color
* Laser beam is by default 100 blocks long; Power Crystal in the way adds 100 more blocks. Total limit is 2000 blocks.
* Added LASER MIRROR block: Looks almost like sign, is gray and reflects laser beam.
* Right click (or w/ shift) the mirror to rotate it when placed.

* Added ORE SNIFFER (craft: like Watch, with Crystal in the middle)
* Hold Shift with sniffer for further reach
* Sniffer is a protable block radar
* It lets you easilly find ores even from surface, prevent falling into lava pools and much more.

* Changed the recently added "Separate wood types" option name to more adequate one
* Some reformating
* Testing functionality



==== 2.5 ====
* Updated to 1.2.5
* Fixed pulsar button Focusing bug
* Block Harvester can now harvest red mushrooms from Mooshroom cows
* Laser now forces killed blaze to drop blaze rod.

* Sorting options for separator:
    Added more options to sort missing mobs (Mob: Item/Block)
    Ocelot: Raw Fish
    Mooshroom: Red Mushroom
    Wolf: Cookie
    Blaze: BlazePowder
    Magma Cube: MagmaCream
    Pig Zombie: Gold Nugget
    Iron Golem: Iron Ingot

* New config option called "conveyorFilterGroupWoodSort" (default = true)
    true = Placing a single wood block in the filter will redirect all 4 different types of wood (default in older versions)
    false = Each of the 4 different types of wood can be sorted individually.

==== 2.4 ====
* Ported to 1.2.4
* Added option for Roaster to don't smelt specified IDs
* Checked if nether field works - and it does.

==== 2.3 ====
* Firstly, this release updates PowerCraft for 1.2.3.
* I've fixed the crashes caused by half-coded method in Spawner Activator
* PowerCraft adds now few new recipes, such as sandstone->sand, 
    woodenStuff->wood and ironDoor->ingots. Reverse crafting also supports clock and compass.
    You can disable this using PC_CORE config file.
* Most things were revised and doublechecked, but I am sure some bugs are left there.
    If your MC crashes, quickly send your crash report on forums so I can fix it asap.
* In next release will be included some new decorative blocks, as block count is now increased to 4096.


==== 2.2 ====
* GateCrafter now contains everything from PowerCraft, plus some basic redstone things.
* Gate Crafter works now for free in Creative.
* Option in PC_LOGIC.properties lets you enable Creative mode for Gate Crafter 
   in survival -> it becomes a "TMI extension"
* Enable "recursive crafting" in PC_LOGIC for the fastest (but sometimes expensive) usage of GateCrafter in Survival

* Most GUI screens have an icon of golden porkchop in upper right corner

* Improved gate descriptions (now without brackets -> beter readability)
* Spawner Controller got new ability: It can stop nearby pulsars!
* T flip flop got a reset input (two, on both sides). That makes it more dynamic
   and useful, ideal for advanced logic circuits.
* D flip flop got a reset input, too. Its inputs were changed altogether, so this
   may cause some problems in your circuits. Ds with RST input let you build watchdog
   circuit, timeout, counter and many other cool things. Together with toggleable pulsars
   you can make things like "press button to dispense 5 porkchops".

* Miners now support <a=b> directive
* Activation Crystal now tells you what's wrong if you try to use it and it fails (was quiet before).

* Dispensers can throw empty buckets, and when they hit cow, thay milk it.
* This makes it possible to build cake factory.

==== 2.1 ====
* Fixed black screen crashes (multiplayerWorld error)
* Corectly updated MCP -> all errors should be gone.
* Fishers shall work again

==== 2.0A ====
* Fixed broken "RND" function in Miners' code
* Aded support for new calculations with "RND"

* Added Gate Crafting Device 
- crafting: "+" pattern on 3x3 crafting table:
 Iron cube in the middle, sides of redstone.
* This device opens a chest-like inventory on right click. It offers
you all available gates that are currently craftable from your inventory
contents. You can enable "recursive crafting" for faster and more advanced
functionality, which is disabled by default (it is a bit buggy and has problems
with few recipes)

* Added automatic fishing machine with extremely cool renderer
* Buildable (just like miners).
* Activate by activation crystal.
* Fuel it with coal (into chest), and it will catch fish.
* You can connect conveyor to sides of the plank blocks for fish output.
* Mount conveyor on top of the plank blocks for coal filling.
* Break some of the blocks to get rid if the fishing machine.
* 10-block deep water under the whole 3x3 block pattern is required.
* More info in the Guide.



==== 1.9B ===
* fixed crashes with dispenser and harvester
* roaster checked and it should work with no problems, same with laser.


==== 1.9 ===

* You can now place all crystal colors (was broken)
* Fixed a null pointer bug in laser
* Fixed harvester harvesting large non-tree wooden bodies
* Fixed elevatro not inserting items into chests
* Separator can now insert items into nearby chests (sorted)
* Source code is now available online - goid Open Source!

* Pulsar got a brand new GUI with new cool feature:

    You can now select how long should the pulse be.

    Delay time - length of one whole cycle
    Hold time - time when its on

    Cycle:
    #####%%%%%%%%%%%%
    #-on, %-off

    - Length of the whole cycle is Delay time.
    - ##### is hold time

    Right click pulsar to open this GUI.
    Right click with stick to add one tick, sneak to remove one tick.



==== 1.8 B ===
* Roaster's conflict with forge fixed (probably)
* Fixed bug in Elevators code (could not create descender)
* Added different names for Power crystals (Greek characters) -> should be now visible in TMI
* Added names for all signal lights -> Should be now visible in TMI
* Increased spawning limit for spawner controller - it now spawns even if more mobs are nearby
* Fixed scrollbar in Miners' programming screen
* Added few more variants of variable syntax.
* Block harvester can now shear sheep (wool regrows, so its really handy)
* Added new features to conveyor belts:
 - You can't pick up items unless they are on active brake
 - If there are more than 40 Entity Items on a conveyor belt piece, they will despawn naturally
 - This does not mean stack of 40 items. Its 40 separate itemstacks.
 - Conveyors can group similar items into larger stacks, so its quite safe.
* Fixed many minor bugs


==== 1.8 A ===
Miners
* Added scrolling of text field with arrows or mouse wheel (preferred).
* Added more possible variable operations

* Added if-else statement
(a>15 ? FFF : L5R), or only true branch. (a>15 ? L5R)
Can be used: >, <, >=, <=, ==, =, != and RND (random choice)


* Added RND into variable parsing code.
<a=RND*15>, <a=RND*15+1>, <RND*50>
RND*## where ## is upper limit for random number. numbers are from range 0 to ##-1.
RND*5 can give you 0,1,2,3,4

* Added spawner activator "gate".
craft:

-B
RS

B - iron bars, R - redstone, S - stone.

It can force spawner to spawn when redstone pulse is received, and blocks natural spawning form the attached spawners.
There is a limit - spawns only if 12x12x4 area around it contains no mobs of the same type.


==== 1.7 C ===
* Programming field is now larger
* Removed buffer field
* Removed append adn prepend buttons, replaced with one GO button
* Improved error reporting
* improved keyboard control (move-stop-move-stop bug fixed)
* added VARIABLES!
<a=123> <b=123> <a=-2> <a=a+12> <a+=63> <a++> <a=a+b> <a+=b>
also *, /, -, -- and % available!
All letters of the alphaped can be used. And you can use these in loops, too.
(@<a>: 2L5R2R5L ) - changing of <a> inside the loop won't affect number of cycles.

* smoother movement
* faster rotation
* few bugs fixed
* bigger item picking range
* Added support for mouse interaction in the text field, adn ENTER now inserts newline.
I wrote the text editor myself, thats why i mention it :D

==== 1.7 A,B ===
* This release is very stable and well debugged.
* In one of the next releases multiplayer support will be added.
* Development will be slower now. I have to study.

Miners:
* Up command works now even without F, so UUUU is all right.
* Code for fancy downwards corridor was discovered:
  it is (@50:DFFRRDFURRFF)
* Added copy and paste buttons into the GUI.
* Rewritten code parser, it now shows error messages in the GUI instead of crashing.
* Nested loops now work perfectly
* Fixed strange bridge building
* Fixed outpositioned blocks due to Math.floor rounding 0.9999999F down.
* Fixed water filling (it now really works)
* Lava filling is much more reliable and realistic.
* Torch placing in water fixed.
* Iron ore placing as bridge is now removed (as well as gold ore).
* Item picking range highly increased.
* Refactoring and cleanup of code
* Added GUI option to prevent storing of coal and other fuel into chests
* Bridge + half step bug is fixed
* This release is the most stable ever.

Machines:
* Harvester will no longer dispense null-size seeds stacks. 
* Some minor improvements

General:
* Added texture preloading = no more white texture bugs!
* Added config file options for brightness - for Crystals and Signal Lights.
* Unfortunately, some new links between modules were created, so modules can't be used alone.




==== 1.6 C ====
* Enables "UP" command (+ on numpad)
* Adds Miners' programming interface - openned by right click while SNEAKING
* Fixes many bugs in Miners
* Increases fuel consumption (was broken before, now its fixed)
* Added water fix function (not ideal, of course. But sort of works.)
* added programming - really advanced
* roaster's consumption is higher when it has laser
* sensors have right click interface (since 1.6B)


==== 1.6 B ====
* fixed gravel falling bug
* added bedrock mining for 8-level miner
* more realistic mining speed
* better crystals sound (limited range)
* improved carts logic
* ready for gui
* added keys K and L - toggles cobble,dirt,gravel destruction
* added key DELETE - stop all operations
* added AWESOME support for multiple miner control (select more at once)
* miners remeber whether they are keyboard controlled
* debug info fixed
* lava fix much better
* slightly changed level speed and strength
* added GUI for sensors (right click)

==== 1.6 A ====
* removed duplicate gates from TMI.
* added descriptions to gates.
* added mining vehicles.
* added power crystals.
* added activation crystal (craft p. crystal above iron ingot)
* many bugfixes
* even more stuff is waiting.

==== 1.5 A ====

(note: ACT = Automatic Crafting Table, Automatic Workbench)

* Fixed horrible duplication bug in separator
* Separator's code was improved

* Automatic workbench's code was completely rewritten,
  hence it does not pause game anymore and overall performance
  is much better. Workbench is now ready to be ported to SMP.
* Fixed item duplication and removal bugs in ACT.
* ACT placed on stone brick will craft ONE STACK when it
  receives redstone signal. If it is on other block, it will work
  as usual - craft as many products as possible immedaitely.

* Ejector will no longer eject recipe from ACT.
* Full and empty chest detectors will now - sort of - work with automatci workbench.
  Empty - storage grid is empty.
  Full - all recipe slots in storage grid are not empty.
  It's nothing extremely usefyul, but you may need this functionality now, when you can create "Craft On Demand" mechanisms.

* Incredibly improved conveyors - items are now animated correctly.
* Insertion animation is much better - items are moved almost into the chest.
* Vertical storage border was restored.
* Conveyor's orientation determines which chest will be used first. 1) front, 2) sides, 3)top, bottom. 
* Conveyors can't store items in backwards direction, hence you can now place conveyor right next to dispenser with no problems.

* Nether field generators can now be turned off.

* Added downwards elevator
* Elevator improved - not throwing stuff to sides

* discovery - more nether field generators == faster netherwart growth rate.
* discovery - teleporter is possible with harvester and minecart.



==== 1.4 E ====
* added Nether Field function to Roaster
 (burning netherrack -> forcing nether wart to grow
 & changing gravel to soulsand in a range of 12x12x4 around the roaster.
* few fixes
* improved roaster.

==== 1.4 D ====
* re-enables storing items into minecarts (was disabled = bug)
* improves how conveyor brakes affect minecarts.

==== 1.4 C ====
* added water-taking ability to lower sides. Which means: belts can now take water into buckets from nearby water pools.
* few bugfixes.
* refactoring.

==== 1.4 B ====
FIXES
* rendering of XP Bank with forge installed is now correct
* brewing system slightly improved (advanced ejection)
* many bugfixes
* dispenser wont dispense buttons and gates (caused bugs)

==== 1.4 A ====
DEBUG

    * Right clicking on conveyor causing black screen
    * Dispenser dispensing wrong things
    * Items not inserting into chests properly
    * Add fallback in ejection routine
    * Conveyor will primary try to insert to / eject from the storage in correct orientation.
    * MAYBE optifine + forge compatible.
    * fixed invedit compatibility (strange illegal blocks appearing there)

NEW STUFF

    * Automatic bucket filling
    * Cauldron filling with bucket
    * Bottle filling from cauldron
    * Brewing stand: item insertion, potion dispensing, waiting for brewing to finish
    * XP Storage can't drop XP orbs when destroyed!
    * XP storage changing size of "green thingy" according to contained XP points.
    * XP depositing.




==== 1.3 F ====
* re-added particles to harvester
* reduced harvester's lag
* laser can now go through all transparent blocks (glass for example)
* harvester causes less lag

==== 1.3 E ====
* (probably) improved compatibility with "more then 256 block ids" mod 
* melon and pumpkin harvesting -> tilled field under it
* disables fire harvesting with harvester
* some minor fixes

==== 1.3 d ====

* improved almost everything
* harvester improved, wont break rails, wont stop on conveyors, only machines.
* dispenser can place minecarts (infinite cart bug fixed :P)
* harvester can break minecarts
* gray belts can now store items into chest minecarts. Includes brakes -> new use for brakes.
* minecarts can be placed onto conveyors (excluding separator)

* minor gate improvements
* conveyor belt's auto stacking function improved (stacks more often)
* elevator can now perform auto stacking, too
* items on halted conveyors won't despawn
* added full chest detector (craft empty chest detector with inverter)
* XP storage will now break XP orbs when destroyed




===== 1.3c ====

* improved special detectors
* added EMPTY CHEST DETECTOR
* fixed bugs in this new device (it took 3 more subreleases, but now it is working correctly ;)

===== 1.3b ====

* improved lasers (cause less lag - does not render invisible particles)
* improved separator
* added spider separating
* added XP storage block. With chat message info! And redstone signal when somethign is inside.


===== 1.3 =====

Added daytime and rain sensor
added laser and laser killer (if mounted on roaster)
added stack splitting for separator
added xp separation adn harvesting (with laser)


===== 1.2 =====

Bug list:

FIXED:
- Roaster's shift stack transfer ignores stacking limit.
- Conveyor belt's filling routine ignores stacking limit.
- Property file loading utility.

UNFIXED:
- Ejector ejecting recipe from ACT - still present.
