summaryrefslogtreecommitdiffhomepage
path: root/dragon/help.rb
diff options
context:
space:
mode:
authorAmir Rajan <[email protected]>2020-02-27 20:14:39 -0600
committerAmir Rajan <[email protected]>2020-02-27 20:14:39 -0600
commit5d0c0305854633122b3e800dd9058e93c2950eb6 (patch)
tree0283825a7055cebd59ad1b3aff1b3dec1f2ac03c /dragon/help.rb
parent07468bf3f309c21ea3f7fcf47195ca275177dc7f (diff)
downloaddragonruby-game-toolkit-contrib-5d0c0305854633122b3e800dd9058e93c2950eb6.tar.gz
dragonruby-game-toolkit-contrib-5d0c0305854633122b3e800dd9058e93c2950eb6.zip
open sourced parts of game toolkit.
Diffstat (limited to 'dragon/help.rb')
-rw-r--r--dragon/help.rb72
1 files changed, 72 insertions, 0 deletions
diff --git a/dragon/help.rb b/dragon/help.rb
new file mode 100644
index 0000000..aee60d8
--- /dev/null
+++ b/dragon/help.rb
@@ -0,0 +1,72 @@
+# coding: utf-8
+# Copyright 2019 DragonRuby LLC
+# MIT License
+# help.rb has been released under MIT (*only this file*).
+
+module GTK
+ class Help
+ def self.primitive_contract primitive_name
+ if primitive_name == :label
+ label_contract
+ elsif primitive_name == :solid
+ solid_border_contract
+ elsif primitive_name == :border
+ solid_border_contract
+ elsif primitive_name == :sprite
+ sprite_contract
+ else
+ help_text = "No contract found for primitive #{primitive_name}. The supported primitives are :label, :solid, :border, :sprite."
+ end
+ end
+
+ def self.label_contract
+ <<-S
+* :label (if :primitive_marker returns :label)
+** :x, :y, :text
+** :size_enum
+default: 0
+negative value means smaller text
+positive value means larger text
+** :alignment_enum default: 0
+default: 0
+0: left aligned, 1: center aligned, 2: right aligned
+** :r, :g, :b, :a
+default: 0's for rgb and 255 for a
+** :font
+default nil
+path to ttf file
+S
+ end
+
+ def self.solid_border_contract
+ <<-S
+* :solid, :border (if :primitive_marker returns :solid or :border)
+** :x, :y, :w, :h, :r, :g, :b, :a
+S
+ end
+
+ def self.label_contract
+ <<-S
+* :line (if :primitive_marker returns :line)
+** :x, :y, :x2, :y2, :r, :g, :b, :a
+S
+ end
+
+ def self.sprite_contract
+ <<-S
+* :sprite (if :primitive_marker returns :sprite)
+** :x, :y, :w, :h
+** :angle, :angle_anchor_x, :angle_anchor_y
+default for angle: 0 (0 to 360 degress)
+default for angle_anchor_(x|y): 0 (decimal value between 0 and 1.0, 0.5 means center)
+** :r, :g, :b, :a
+** :tile_x, :tile_y
+default: 0, x, y offset for sprite to crop at
+** :tile_w, :tile_h
+default: -1, width and height of crop (-1 means full width and height)
+** :flip_horizontally, :flip_vertically
+default: falsey value
+S
+ end
+ end
+end