note
	description: "[
		Class combining the various widget factories into one.
		]"
	author:    "Jimmy J. Johnson"
	date:      "5/15/24"
	copyright: "Copyright (c) 2024, Jimmy J. Johnson"
	license:   "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"

class
	ALL_WIDGETS_FACTORY

inherit

	ATTACK_WIDGETS_FACTORY
		redefine
			make_widgets,
			extend_widgets,
			pair_widgets,
			fill_widgets
		end

	LOCATION_WIDGITS_FACTORY
		redefine
			make_widgets,
			extend_widgets,
			pair_widgets,
			fill_widgets
		end

create
	make

feature {NONE} -- Initialization

	make_widgets
			-- Create widgets for the corresponding game item
			-- for each of the ancestors
		do
--			create all_widgets.make (100)
			print ("ALL_WIDGETS_FACTORY.make_widgets %N")
			Precursor {ATTACK_WIDGETS_FACTORY}
			Precursor {LOCATION_WIDGITS_FACTORY}
			print ("%T end  ALL_WIDGETS_FACTORY.make_widgets %N")
		end

--feature -- Access

--	all_widgets:  VITP_WIDGET_TABLE [VITP_WIDGET, VITP_ITEM]
--			-- Keeps track of all widgets

feature {NONE} -- Implementation

	extend_widgets
			-- Put each widget into `world'
			-- for each of the ancetors
		do
			Precursor {ATTACK_WIDGETS_FACTORY}
			Precursor {LOCATION_WIDGITS_FACTORY}
--			widgets.merge (attack_widgets)
--			widgets.merge (location_widgets)
		end

	pair_widgets
			-- Associate each widget with a unit
			-- for each of the ancestors
		do
			Precursor {ATTACK_WIDGETS_FACTORY}
			Precursor {LOCATION_WIDGITS_FACTORY}
		end

	fill_widgets
			-- Call `set_target' to give each widget a target
			-- for each of the ancestors
		do
			Precursor {ATTACK_WIDGETS_FACTORY}
			Precursor {LOCATION_WIDGITS_FACTORY}
		end

end
