diff --git a/articles/dynamic_systems_in_games.article.html b/articles/dynamic_systems_in_games.article.html
index bc4a68b..b32ff2f 100644
--- a/articles/dynamic_systems_in_games.article.html
+++ b/articles/dynamic_systems_in_games.article.html
@@ -10,9 +10,9 @@
@@ -39,9 +39,9 @@
diff --git a/articles/dynamic_systems_in_games/engine.js b/articles/dynamic_systems_in_games/engine.js
index c8614fd..e118118 100644
--- a/articles/dynamic_systems_in_games/engine.js
+++ b/articles/dynamic_systems_in_games/engine.js
@@ -1,114 +1,163 @@
var a=true;
function engine(element, reaction_rate_function) {
- var container = $(element);
+ var e = {}; // the engine object!
+ e.container = $(element);
var q = {};
+ e.quantities = q;
q.temperature = {
"update": function () {
+ var old_value = this.value;
this.value += reaction_rate_function(q)*timestep/1000
if (this.value < 0) { this.value = 0; }
+ if (old_value != this.value) { return true; }
},
"out": function () {
- container.find('.temp-out').html(this.value.toFixed(2));
- if (this.value > damage_threshhold) { container.find('.damage').show();}
- else { container.find('.damage').hide(); }
- if (this.value < q.ignition_threshhold.value) { container.find('.noignition').show(); }
- else { container.find('.noignition').hide(); }
+ e.container.find('.temp-out').html(this.value.toFixed(2));
+ if (this.value > q.damage_threshhold.value) { e.container.find('.damage').show();}
+ else { e.container.find('.damage').hide(); }
+ if (this.value < q.ignition_threshhold.value) { e.container.find('.noignition').show(); }
+ else { e.container.find('.noignition').hide(); }
+
+ for (var i=0; i