A forest fire simulation with 2D graphics and random tree generation.
Copyright Peter "Felix" Nguyen and Emmanuel Medina Lopez
#Current Features
- Can simulate 50,000 trees.
- The ReplaySlider is partially working, but it is not 100% completed.
- [FIXED] ignited and newlyIgnitedTrees are added even though they are not on fire. Happens when user clicks on an area that has trees that have already been burnt.
- [POSSIBLY FIXED] Sometimes trees are not cleared from ignitedTrees
- [FIXED] Sometimes, a tree positioned beside the northern edge of the map can not be ignited when clicked.
- [POSSIBLY FIXED] Graphically, burnt tree trunks position are different from healthy tree trunks.
- [FIXED] Clicking to start a fire does not work correctly (does not logically trigger nearby trees in a logical way).
- [NOT SURE IF I WANT THIS] Clicking needs to be more accurate. Should target nearest tree instead of trees within click radius.
- [IMPORTANT] Need to make sure to re-render a VolatileImage if it is gone from memory.
- [DONE] Click on area to start fire at given location
- Prompt user for numTrees, burnRadius, burnSpeed
- Notify the end of forest fire by checking for lack of fire.
- Draw polygon obstacles and terrain.
- Different trees have different spread rates.
- Rain, wind, lightning, and weather.
- Critters, tree size, and elevation.
- Square bushes and shrubs.
- Flammable structures.
- Dynamic weather (rng or God-mode).
- Map editor and map loader.
- [DONE] If burning and nearbyTrees added, remove from list of burning trees (or have two sets of burning trees: new burning trees and old burning trees.
- Add a skip button to skip to next instance of a click (Replay Mode)
- Add seek feature and a timer display
- Status of map: remaining trees, number of trees on fire, number of trees on map, dead trees.
- [In-progress] allow unlimited replay of the same replay
- Save map replays (requires original map).
- Progress bar should be added for tasks that take a while such as rendering a large map or a map with a large population of trees.
- Map scrolling for maps that are larger than the device screen.
- http://content.gpwiki.org/index.php/Java:Tutorials:VolatileImage
- https://docs.oracle.com/javase/8/docs/api/java/awt/image/VolatileImage.html
- https://docs.oracle.com/javase/tutorial/2d/advanced/compositing.html
- http://stackoverflow.com/questions/2684123/java-volatileimage-slower-than-bufferedimage
- http://stackoverflow.com/questions/3680221/how-can-i-get-the-monitor-size-in-java
- http://stackoverflow.com/questions/11831029/mousemotionlistener-in-child-component-disables-mouselistener-in-parent-componen