Skip to content

Instantly share code, notes, and snippets.

View owenbutler's full-sized avatar

Owen Butler owenbutler

View GitHub Profile
@owenbutler
owenbutler / main.rb
Last active October 5, 2023 10:30
render target labels with motion
class Text
def initialize label_hash
@l = label_hash.dup
if !@l.key?(:vertical_alignment_enum)
@l.vertical_alignment_enum = 0
end
if !@l.key?(:blendmode_enum)
@l.blendmode_enum = 0
end
if !@l.key?(:font)
@owenbutler
owenbutler / main.rb
Last active September 14, 2023 11:45
DragonRuby Game Toolkit Cosine based Palette Test
$debug = false
$current_palette = 0
$palettes = [
[[0.5,0.5,0.5],[0.5,0.5,0.5],[1.0,1.0,1.0],[0,0.3333,0.6666]],
[[0.5,0.5,0.5],[0.666,0.666,0.666],[1.0,1.0,1.0],[0,0.3333,0.6666]],
[[0.5,0.5,0.5],[0.75,0.75,0.75],[1.0,1.0,1.0],[0,0.3333,0.6666]],
[[0.5,0.5,0.5],[1,1,1],[1.0,1.0,1.0],[0,0.3333,0.6666]],
[[1,0.5,0.5],[0.5,0.5,0.5],[0.75,1.0,0.6666],[0.8,1.0,0.3333]],
[[0.5,0.5,0.5],[0.5,0.5,0.5],[0.8,0.8,0.5],[0,0.2,0.5]],
@owenbutler
owenbutler / main.rb
Created August 30, 2023 23:58
DR simple Verlet with collisions
require "xenobrain/ruby_vectormath/vectormath_2d.rb"
$sub_steps = 2
$all_objects = []
$frame_elapsed_time = 0.0
$gravity = Vec2.new(0.0, -1000.0)
$size = 20.0
$spawn_timer = 0
$spawn_rate = 2
@owenbutler
owenbutler / README.md
Last active March 4, 2024 03:24
DragonRuby snippets

Description

Collection of small snippets for potentially useful things in DragonRuby

Intended to be copy/pasted.

@owenbutler
owenbutler / keybindings.json
Created March 21, 2023 22:31
Small keyboard shortcuts to run Dragonruby, and build the distribution, vscode
// To get to your user keybindings, you can use CTRL+Shift+P then search for:
// "Preferences: Open Keyboard Shortcuts (JSON)"
// this should open up this empty json file.
[
{
"key": "alt+r",
"args": "rundr",
"command": "workbench.action.tasks.runTask",
},
{
@owenbutler
owenbutler / main.rb
Created March 15, 2023 10:52
tiled rendering of 16x16 sprites
def tick args
if args.tick_count == 0
init_state args
$noise = Noise.new(2000, 4)
end
visible_tiles = get_visible_tiles(args, args.state.zoom_level, args.state.x, args.state.y)
args.outputs.sprites << visible_tiles
@owenbutler
owenbutler / main.rb
Created February 15, 2023 10:58
Klondike clone using Dragonruby
$deck = []
$game = {}
$card_width = 100
$card_height = 145
$space_between_cards = 156
$waste_and_foundation_y = 560
$waste_x_stagger = 3
$waste_number_of_cards = 30
@owenbutler
owenbutler / main.rb
Created February 6, 2023 10:33
noninteractive line visualisation using dragonruby
def tick args
front_buffer, back_buffer = prepare_buffers args
tc = args.state.tick_count
w = 1280
h = 720
yoffset = (w - h) / 2
args.outputs[back_buffer].lines << [
{

Keybase proof

I hereby claim:

  • I am owenbutler on github.
  • I am owenbutler (https://keybase.io/owenbutler) on keybase.
  • I have a public key ASCUcOK0BSNp88JSUu6162k-fNZLekjYE43cMI4P3FS6PAo

To claim this, I am signing this object:

[2012-08-01 14:42:13,257][INFO ][node ] [isolatednode] {0.20.0.Beta1-SNAPSHOT}[3236]: initializing ...
[2012-08-01 14:42:13,262][INFO ][plugins ] [isolatednode] loaded [], sites []
[2012-08-01 14:42:14,205][DEBUG][discovery.zen.ping.multicast] [isolatednode] using group [224.2.2.4], with port [54328], ttl [3], and address [null]
[2012-08-01 14:42:14,207][DEBUG][discovery.zen.ping.unicast] [isolatednode] using initial hosts [], with concurrent_connects [10]
[2012-08-01 14:42:14,208][DEBUG][discovery.zen ] [isolatednode] using ping.timeout [3s], master_election.filter_client [true], master_election.filter_data [false]
[2012-08-01 14:42:14,212][DEBUG][discovery.zen.elect ] [isolatednode] using minimum_master_nodes [2]
[2012-08-01 14:42:14,213][DEBUG][discovery.zen.fd ] [isolatednode] [master] uses ping_interval [1s], ping_timeout [3s], ping_retries [2]
[2012-08-01 14:42:14,215][DEBUG][discovery.zen.fd ] [isolatednode] [node ] uses ping_interva