diff --git a/dev-assets/doodads/box/box-1.png b/dev-assets/doodads/box/box-1.png new file mode 100644 index 0000000..29b33bd Binary files /dev/null and b/dev-assets/doodads/box/box-1.png differ diff --git a/dev-assets/doodads/box/box-2.png b/dev-assets/doodads/box/box-2.png new file mode 100644 index 0000000..d6028af Binary files /dev/null and b/dev-assets/doodads/box/box-2.png differ diff --git a/dev-assets/doodads/box/box-3.png b/dev-assets/doodads/box/box-3.png new file mode 100644 index 0000000..f94618f Binary files /dev/null and b/dev-assets/doodads/box/box-3.png differ diff --git a/dev-assets/doodads/box/box-4.png b/dev-assets/doodads/box/box-4.png new file mode 100644 index 0000000..204421e Binary files /dev/null and b/dev-assets/doodads/box/box-4.png differ diff --git a/dev-assets/doodads/box/box.js b/dev-assets/doodads/box/box.js new file mode 100644 index 0000000..941ff66 --- /dev/null +++ b/dev-assets/doodads/box/box.js @@ -0,0 +1,51 @@ +// Pushable Box. +var speed = 4; +var size = 75; + +function main() { + Self.SetMobile(true); + Self.SetGravity(true); + Self.SetHitbox(0, 0, size, size); + + Events.OnCollide(function (e) { + if (e.Actor.IsMobile() && e.InHitbox) { + var overlap = e.Overlap; + if (overlap.Y === 0) { + // Standing on top, ignore. + return false; + } else if (overlap.Y === size) { + // From the bottom, boop it up. + Self.SetVelocity(Vector(0, -speed * 2)) + } + + // If touching from the sides, slide away. + if (overlap.X === 0) { + Self.SetVelocity(Vector(speed, 0)) + } else if (overlap.X === size) { + Self.SetVelocity(Vector(-speed, 0)) + } + + return false; + } + }); + Events.OnLeave(function (e) { + Self.SetVelocity(Vector(0, 0)); + }); + + // Start animation on a loop. + animate(); +} + +function animate() { + Self.AddAnimation("animate", 100, [0, 1, 2, 3, 2, 1]); + + var running = false; + setInterval(function () { + if (!running) { + running = true; + Self.PlayAnimation("animate", function () { + running = false; + }) + } + }, 100); +} \ No newline at end of file diff --git a/dev-assets/doodads/build.sh b/dev-assets/doodads/build.sh index d9d7f8a..268dffd 100755 --- a/dev-assets/doodads/build.sh +++ b/dev-assets/doodads/build.sh @@ -127,6 +127,12 @@ objects() { doodad install-script crumbly-floor.js crumbly-floor.doodad cp *.doodad ../../../assets/doodads/ + cd ../box + + doodad convert -t "Box" box-1.png box-2.png box-3.png box-4.png box.doodad + doodad install-script box.js box.doodad + cp *.doodad ../../../assets/doodads/ + cd .. }