toolstroke: new class to represent the application of a tool

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@620 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: cleanup: rename 'engine' variable to 'city' variable

for consistency

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@621 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: refactor- do not pass engine variable to every function

since it is a class property

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@622 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: apply at end of mouse click, show drag preview

not completely there yet

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@623 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: on mouse up, fill the selected area with the tool

also- for roads, rails, and wires, force the selected area to be
single-unit width or height.

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@624 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: rename getPreview to getBounds

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@625 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: start implementing a check() method

This checks the overall result of applying a tool to see if there's
enough money for the whole operating, before applying any of it.

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@626 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: move bulldozer tool code to a separate file

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@627 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: separate class for road-like tools

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@628 d9718cc8-9f43-0410-858b-315f434eb58c
ToolPreview: a class for holding the effect of a tool

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@629 d9718cc8-9f43-0410-858b-315f434eb58c
ToolPreview: a helper class for translating the effect of a tool

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@630 d9718cc8-9f43-0410-858b-315f434eb58c
ToolEffect: stores effect of tool and then applies it as transaction

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@631 d9718cc8-9f43-0410-858b-315f434eb58c
ToolStroke: update Park tool to use new ToolEffect class

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@632 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: convert fixSingle to use ToolEffect class

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@633 d9718cc8-9f43-0410-858b-315f434eb58c
ToolPreview: fix a bug in how arrays are re-allocated

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@634 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: apply ToolEffect-conversion to fixZone()

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@635 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: continue refactoring for ToolEffect

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@636 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: layRoad: convert to use ToolEffect

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@637 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: layWire, layRail: convert to ToolEffect

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@638 d9718cc8-9f43-0410-858b-315f434eb58c
toolstroke: convert RoadLikeTool completely to use ToolEffect

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@639 d9718cc8-9f43-0410-858b-315f434eb58c