Module: Drakkon::Init

Defined in:
lib/drakkon/init.rb

Overview

Run Command for CLI

Class Method Summary collapse

Class Method Details

.directoriesObject



64
65
66
67
68
69
70
71
72
# File 'lib/drakkon/init.rb', line 64

def self.directories
  LogBot.info('Init', 'Directories Setup')

  ['app', 'fonts', 'metadata', 'fonts', 'sounds', 'sprites', 'app/drakkon'].each do |dir|
    next if Dir.exist?(dir)

    Dir.mkdir dir
  end
end

.go!(_raw = nil) ⇒ Object

General Run



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/drakkon/init.rb', line 5

def self.go!(_raw = nil)
  if Settings.init?
    LogBot.info('Init', 'Already Configured!')
    exit(0)
  end

  run!
rescue SystemExit, Interrupt
  LogBot.info('Init', 'Exiting')
  exit
end

.main_tickObject



74
75
76
77
78
79
80
81
82
83
# File 'lib/drakkon/init.rb', line 74

def self.main_tick
  <<~MAIN
    require 'app/drakkon/bundle.rb'

    def tick(gtk_args)
      # args.gtk.slowmo! 2
      # =========================================================
    end
  MAIN
end

.metadataObject



33
34
35
36
37
38
39
# File 'lib/drakkon/init.rb', line 33

def self.
  # Icon is required for build
  FileUtils.cp(metdata_dir('icon.png'), 'metadata/')

  # Copy metdata files
  FileUtils.cp(metdata_dir('game_metadata.txt'), 'metadata/')
end

.metdata_dir(file_name = nil) ⇒ Object



41
42
43
# File 'lib/drakkon/init.rb', line 41

def self.metdata_dir(file_name = nil)
  "#{Run.version_dir}/mygame/metadata/#{file_name}"
end

.promptObject



85
86
87
# File 'lib/drakkon/init.rb', line 85

def self.prompt
  TTY::Prompt.new(active_color: :cyan, interrupt: :exit)
end

.run!Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/drakkon/init.rb', line 17

def self.run!
  unless Hub.version_installed?
    LogBot.warn('Init', 'No Drakkon Versions Installed, Run `drakkon install <dragonruby.zip>` first!')
    exit(1)
  end

  exit if prompt.no?("Init Drakkon here? #{Dir.pwd.pastel(:yellow)}")
  LogBot.info('Init', 'Start')
  settings
  directories
  

  # TODO: Validate / Confirm
  File.write('app/main.rb', main_tick)
end

.settingsObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/drakkon/init.rb', line 45

def self.settings
  LogBot.info('Init', 'Settings Setup')

  opts = {
    platforms: [],
    version: Hub.version_latest,
    image_index: true,
    font_index: true,
    manifest: true,
    bundle_compile: true,
    gems: {}
  }

  # TODO: Be better, this is lazy...
  opts.each do |key, value|
    Settings.update(key, value)
  end
end