down. translated.

@spec.get_opts.each do |name, opt| options[name] = opt.value counts[name] = opt.count end @spec.get_args.each do |name, arg| args << arg.value named[name] = arg.value end args.flatten! args += trailing @report =, named, trailing, options, counts) if @report.opt(:help) self.print_usage() end unless @spec.get_args.values.all? {|arg| arg.fulfilled? } raise InterfaceError, "Required argument '#{name.upcase}' was not given." end if @spec.trailing_error && !@report.trailing.empty? raise InterfaceError, "Error: got trailing argument(s): #{trailing.join


Work is continuing on Majesty. Changes since the last update:

  • A complete rewrite of the code now that I'm a bit more familiar with Phaser
    • Got the GUI working on a second camera
  • Added a class for generating and handling heightmaps more efficiently, with a variety of methods for transforming them
    • Realized I can use easing functions to transform heightmaps, and implemented those
  • Added heightmap color mapping and a Gradient class to define these mappings
  • Implemented the Sobel filter with central differencing to calculate terrain steepness, used in calculating traversability and site suitability maps


These were generated while working on the traversability map. The last two represent its current state.


Examples of the new terrain color mapping, including some bugs.