summaryrefslogtreecommitdiff
path: root/scripts/character/spring.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/character/spring.lua')
-rw-r--r--scripts/character/spring.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/scripts/character/spring.lua b/scripts/character/spring.lua
new file mode 100644
index 0000000..ed3e878
--- /dev/null
+++ b/scripts/character/spring.lua
@@ -0,0 +1,29 @@
+require 'honey.std'
+
+
+local values = {}
+local sum = 0
+function integral(value)
+ sum = sum + value
+ table.insert(values, value)
+ if #values > 20 then
+ sum = sum - values[1]
+ table.remove(values, 1)
+ end
+ return sum
+end
+
+local prev = 0
+function derivative(value)
+ local delta = value - prev
+ prev = value
+ return delta
+end
+
+return function(db, self, other, point)
+ local tbl = ode.ContactGeomTable(point)
+ local x = tbl.depth - 3.8
+ local spring = db:getComponent(self, "spring")
+ spring.F = math.abs(200 * x)
+ print("depth", x)
+end