diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-11-22 18:29:05 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-11-22 18:29:05 +0000 |
| commit | 670fa39a8feed54b9d11ae9cf5768e3bb4059f02 (patch) | |
| tree | 1ae4a89171fb80e9cd098b93e760651a91c948dd | |
| parent | more examples (diff) | |
| download | watch-cad-670fa39a8feed54b9d11ae9cf5768e3bb4059f02.tar.gz watch-cad-670fa39a8feed54b9d11ae9cf5768e3bb4059f02.zip | |
move examples to library folder
| -rw-r--r-- | api.moon | 21 | ||||
| -rw-r--r-- | library/axis_lock.moon (renamed from examples/axis_lock.moon) | 0 | ||||
| -rw-r--r-- | library/bulk-move.moon | 16 | ||||
| -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.moon | 4 | ||||
| -rw-r--r-- | library/place.moon | 22 | ||||
| -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.moon | 18 | ||||
| -rw-r--r-- | library/test.moon (renamed from examples/test.moon) | 0 | ||||
| -rw-r--r-- | session.moon | 5 |
12 files changed, 83 insertions, 3 deletions
@@ -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 |
