znmud-0.0.1/benchmark/
znmud-0.0.1/cmd/
znmud-0.0.1/cmd/emotes/
znmud-0.0.1/cmd/objects/
znmud-0.0.1/cmd/tiny/
znmud-0.0.1/doc/
znmud-0.0.1/farts/
znmud-0.0.1/lib/
znmud-0.0.1/lib/combat/
znmud-0.0.1/lib/core/bodytypes/
znmud-0.0.1/lib/engine/
znmud-0.0.1/lib/farts/
znmud-0.0.1/logs/
# File: ContainerEdit.rb
# Author: Craig Smith

# This source code copyright (C) 2009 Craig Smith
# All rights reserved.
#
# Released under the terms of the GNU Public License
# See COPYING file for additional information.
#

require 'olc/oedit'
require 'utility/log'

# Conatiner Editor OLC
class ContainerEdit < Oedit
   logger 'DEBUG'
   attr_accessor :cont_hash, :cont_types

   def initialize(id, oid, args=nil)
	self.title = "Container Editor" if not title
	if not obj and not oid
		self.obj = Container.new(args, id, nil) if not oid
		self.newobj = true
	end
	super(id,oid,args)
	self.cont_types = [ "Food", "Liquid", "Battery", "GameObject" ]
	self.cont_hash = { "max_amt" => [ 1, 2, 3, 4, 5, 10, 15, 20, 30, 50 ],
	                 "max_weight" => [ 5, 10, 20, 25, 40, 55, 75, 100, 120, 150 ],
			 "powered_from" => nil,
			 "filled_with" => nil
		    	 }
	self.default_hash.merge!(cont_hash)
   end   

   # Checks if the object is valid
   def is_valid?(obj)
	return true if obj.kind_of? Container
	false
   end

   def setup_main(m=nil)
	super(m)
	menu.add_text_option(nil,"Container Types",self,:setup_types_menu, obj.types)
   end

   def setup_types_menu(m=nil)
        smenu = olc_basemenu("Container Types", self, :setup_types_menu, m)
	smenu.default_array = cont_types
	smenu.set_array = obj.types
        smenu.add_toggled_numbered_options(self,:add_type);
        submenu(smenu, m)
   end

   def add_type(m=nil)
	if m=~/(\d+)/
		idx = m.to_i
		if idx > 0 and idx <= cont_types.size
			if obj.has_type?(cont_types[idx-1])
				obj.del_type(cont_types[idx-1])
			else
				obj.add_type(cont_types[idx-1])
			end
		end
	end
   end

   def set_weight(m)
	weight = m.to_i
	obj.initial_weight = weight if weight > 0
	show_menu
	obj.initial_weight
   end

end