aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2019-11-22 18:29:05 +0000
committers-ol <s-ol@users.noreply.github.com>2019-11-22 18:29:05 +0000
commit670fa39a8feed54b9d11ae9cf5768e3bb4059f02 (patch)
tree1ae4a89171fb80e9cd098b93e760651a91c948dd
parentmore examples (diff)
downloadwatch-cad-670fa39a8feed54b9d11ae9cf5768e3bb4059f02.tar.gz
watch-cad-670fa39a8feed54b9d11ae9cf5768e3bb4059f02.zip
move examples to library folder
-rw-r--r--api.moon21
-rw-r--r--library/axis_lock.moon (renamed from examples/axis_lock.moon)0
-rw-r--r--library/bulk-move.moon16
-rw-r--r--library/capsule.moon (renamed from examples/capsule.moon)0
-rw-r--r--library/create_star.lua (renamed from examples/create_star.lua)0
-rw-r--r--library/delete.moon4
-rw-r--r--library/place.moon22
-rw-r--r--library/place_on_line.lua (renamed from examples/place_on_line.lua)0
-rw-r--r--library/place_on_line.moon (renamed from examples/place_on_line.moon)0
-rw-r--r--library/scratch.moon18
-rw-r--r--library/test.moon (renamed from examples/test.moon)0
-rw-r--r--session.moon5
12 files changed, 83 insertions, 3 deletions
diff --git a/api.moon b/api.moon
index 7fdd0bf..f305318 100644
--- a/api.moon
+++ b/api.moon
@@ -152,7 +152,7 @@ input =
frm, to = @frm!, @to!
@set :frm, :to
- draw.line frm, to
+ draw.arrow frm, to
rect: do
meta = size: => @max - @min
@@ -236,6 +236,25 @@ op =
tmp
+ remove: pushpop (obj) ->
+ lg.setColor .8, 0, 0
+ copy = obj\copy!
+ copy\draw!
+
+ if COMMIT
+ SESSION.objects = [o for o in *SESSION.objects when o != obj]
+
+ copy: pushpop (obj, pos) ->
+ lg.setColor 0, .8, 0
+ copy = obj\copy!
+ copy.pos = pos
+ copy\draw!
+
+ if COMMIT
+ table.insert SESSION.objects, copy
+
+ copy
+
{
:hit
:random
diff --git a/examples/axis_lock.moon b/library/axis_lock.moon
index 91a85fd..91a85fd 100644
--- a/examples/axis_lock.moon
+++ b/library/axis_lock.moon
diff --git a/library/bulk-move.moon b/library/bulk-move.moon
new file mode 100644
index 0000000..9daceff
--- /dev/null
+++ b/library/bulk-move.moon
@@ -0,0 +1,16 @@
+import vec2 from require 'cpml'
+
+=>
+ input.selection @objs
+
+ center = vec2!
+ for o in *@objs!
+ center += o.pos
+ num = #@objs!
+ if num > 0
+ center /= num
+ input.arrow @delta, center
+
+ delta = @delta!.to - @delta!.frm
+ for o in *@objs!
+ op.move o, o.pos + delta
diff --git a/examples/capsule.moon b/library/capsule.moon
index fe546e2..fe546e2 100644
--- a/examples/capsule.moon
+++ b/library/capsule.moon
diff --git a/examples/create_star.lua b/library/create_star.lua
index 197180c..197180c 100644
--- a/examples/create_star.lua
+++ b/library/create_star.lua
diff --git a/library/delete.moon b/library/delete.moon
new file mode 100644
index 0000000..493ef3d
--- /dev/null
+++ b/library/delete.moon
@@ -0,0 +1,4 @@
+=>
+ input.selection @to_delete
+ for b in *@to_delete!
+ op.remove b
diff --git a/library/place.moon b/library/place.moon
new file mode 100644
index 0000000..005b957
--- /dev/null
+++ b/library/place.moon
@@ -0,0 +1,22 @@
+=>
+ @init {}
+
+ if INPUT\mouse_down!
+ @start\set INPUT.mouse
+
+ if INPUT\mouse_held!
+ if INPUT\key_held 'lshift'
+ size = INPUT.mouse - @start!
+ draw.rect @start! - size, @start! + size
+ else
+ draw.rect @start!, INPUT.mouse
+
+ if INPUT\mouse_up!
+ size = INPUT.mouse - @start!
+ if INPUT\key_held 'lshift'
+ table.insert @!, pos: @start!, size: size*2
+ else
+ table.insert @!, pos: @start! + size/2, size: size
+
+ for o in *@!
+ op.add o.pos, o.size
diff --git a/examples/place_on_line.lua b/library/place_on_line.lua
index f89a831..f89a831 100644
--- a/examples/place_on_line.lua
+++ b/library/place_on_line.lua
diff --git a/examples/place_on_line.moon b/library/place_on_line.moon
index 0d806be..0d806be 100644
--- a/examples/place_on_line.moon
+++ b/library/place_on_line.moon
diff --git a/library/scratch.moon b/library/scratch.moon
new file mode 100644
index 0000000..eaaf4e5
--- /dev/null
+++ b/library/scratch.moon
@@ -0,0 +1,18 @@
+import vec2 from require 'cpml'
+
+=>
+ input.selection @objs
+
+ center = vec2!
+ for o in *@objs!
+ center += o.pos
+ num = #@objs!
+ if num > 0
+ center /= num
+ input.arrow @delta, center
+
+ delta = @delta!.to - @delta!.frm
+ -- delta.x = 25 * math.floor delta.x / 25
+ -- delta.y = 25 * math.floor delta.y / 25
+ for o in *@objs!
+ op.copy o, o.pos + delta
diff --git a/examples/test.moon b/library/test.moon
index ef25cd8..ef25cd8 100644
--- a/examples/test.moon
+++ b/library/test.moon
diff --git a/session.moon b/session.moon
index 91fc60f..a4ad5e7 100644
--- a/session.moon
+++ b/session.moon
@@ -6,7 +6,8 @@ moon = require 'moonscript.base'
trace = (msg) -> debug.traceback msg, 2
class Script
- new: (@file) =>
+ new: (file='scratch.moon') =>
+ @file = "library/#{file}"
@last_modification = 0
@func = ->
@@ -83,7 +84,7 @@ class Session
love.event.quit!
when 'run'
arg = command\match '^run%s+(.+)'
- @script = arg and Script arg
+ @script = Script arg
frame: =>
lg.setColor 1, 1, 1