def generate(template=None): spawn_obj = Spawn(template) template = spawn_obj.template spawn_obj.ARG_TYPES = [Mob] spawn_obj._mob_args = Arguments({ "mob_location": None, "repeat_key": None, "repeat_location": None }) # the number of repetitions for Action if any spawn_obj._repeat_args = Arguments({ "repeat_key": None, "repeat_count": None, "repeat_dir": None }) # change default arguments for ARG_TYPE classes using the template_objects. for j, templ in enumerate(template): for i, t in enumerate(templ): if type(t) != str: if callable(getattr(t, "add_generate_args", None)): t.add_generate_args(index=i, templ_index=j) # Append the ARG_TYPE object with arguments, to generate the action tree spawn_obj.args = [Mob(**spawn_obj._mob_args)] # Repeat is optional, only add if default values were updated if spawn_obj._repeat_args.values_updated: spawn_obj.ARG_TYPES.append(Repeat) spawn_obj.args.append(Repeat(**spawn_obj._repeat_args)) return spawn_obj
def generate(cls, template=None, template_attr={}): build_obj = Build(template, template_attr) template = build_obj.template build_obj.ARG_TYPES = [] build_obj._no_children = False # no ARG_TYPE if _no_children is True build_obj._schematics_args = Arguments({ "only_block_type": False, "block_type": False, "schematic_attributes": False, "schematic_type": None, "abstract_size": None, "colour": None, "repeat_key": None, "repeat_dir": None, "template_attr": template_attr, "multiple_schematics": False, }) build_obj._location_args = Arguments({ "location_type": "ANY", "relative_direction": False, "steps": None, "repeat_key": None, "coref_resolve": None, "template_attr": template_attr, }) # the number of repetitions for Action if any build_obj._repeat_args = Arguments({ "repeat_key": None, "repeat_count": None, "repeat_dir": None }) # change default arguments for ARG_TYPE classes using the template_objects. for j, templ in enumerate(template): for i, t in enumerate(templ): if type(t) != str: if callable(getattr(t, "add_generate_args", None)): t.add_generate_args(index=i, templ_index=j) # Append the ARG_TYPE object with arguments, to generate the action tree build_obj.args = [] if build_obj._schematics_args.values_updated or not build_obj._no_children: build_obj.ARG_TYPES.append(Schematic) build_obj.args.append(Schematic(**build_obj._schematics_args)) # Location is optional, only add if the default arguments were changed. if build_obj._location_args.values_updated: build_obj.ARG_TYPES.append(Location) build_obj.args.append(Location(**build_obj._location_args)) # Repeat is optional, only add if default values were updated if build_obj._repeat_args.values_updated: build_obj.ARG_TYPES.append(Repeat) build_obj.args.append(Repeat(**build_obj._repeat_args)) return build_obj
def generate(template=None, template_attr={}): copy_obj = Copy(template, template_attr) template = copy_obj.template copy_obj.ARG_TYPES = [] copy_obj._no_children = False # no ARG_TYPE if _no_children is True copy_obj._block_obj_args = Arguments({ "block_object_type": Object, "block_object_attributes": None, "block_object_location": False, "no_child": False, "repeat_key": None, "repeat_location": None, "coref_type": None, "template_attr": template_attr, }) copy_obj._location_args = Arguments({ "location_type": "ANY", "relative_direction": False, "steps": None, "repeat_key": None, "template_attr": template_attr, }) # the number of repetitions for Action if any copy_obj._repeat_args = Arguments({ "repeat_key": None, "repeat_count": None, "repeat_dir": None }) # change default arguments for ARG_TYPE classes using the template_objects. for j, templ in enumerate(template): for i, t in enumerate(templ): if type(t) != str: if callable(getattr(t, "add_generate_args", None)): t.add_generate_args(index=i, templ_index=j) # Append the ARG_TYPE object with arguments, to generate the action tree copy_obj.args = [] if copy_obj._no_children: return copy_obj if copy_obj._block_obj_args.values_updated: copy_obj.ARG_TYPES.append(BlockObject) copy_obj.args.append(BlockObject(**copy_obj._block_obj_args)) # Location is optional, only add if the default arguments were changed. if copy_obj._location_args.values_updated: copy_obj.ARG_TYPES.append(Location) copy_obj.args.append(Location(**copy_obj._location_args)) # Repeat is optional, only add if default values were updated if copy_obj._repeat_args.values_updated: copy_obj.ARG_TYPES.append(Repeat) copy_obj.args.append(Repeat(**copy_obj._repeat_args)) return copy_obj
def generate(template=None): dig_obj = Dig(template) template = dig_obj.template dig_obj.ARG_TYPES = [] dig_obj._no_children = False # no ARG_TYPE if _no_children is True dig_obj.has_length = None # length of hole dig_obj.has_width = None # width of hole dig_obj.has_depth = None # depth of hole dig_obj.has_size = None # abstract size of hole dig_obj._location_args = Arguments({ "location_type": "ANY", "relative_direction": False, "steps": None, "repeat_key": None, "coref_resolve": None, }) dig_obj._condition_args = Arguments({ "condition_type": None, "block_type": None }) # the number of repetitions for Action if any dig_obj._repeat_args = Arguments({ "repeat_key": None, "repeat_count": None, "repeat_dir": None }) # change default arguments for ARG_TYPE classes using the template_objects. for j, templ in enumerate(template): for i, t in enumerate(templ): if type(t) != str: if callable(getattr(t, "add_generate_args", None)): t.add_generate_args(index=i, templ_index=j) # Append the ARG_TYPE object with arguments, to generate the action tree dig_obj.args = [] if dig_obj._no_children: return dig_obj # Location is optional, only add if the default arguments were changed. if dig_obj._location_args.values_updated: dig_obj.ARG_TYPES.append(Location) dig_obj.args.append(Location(**dig_obj._location_args)) # StopCondition is optional, only add if the default arguments were changed. if dig_obj._condition_args.values_updated: dig_obj.ARG_TYPES.append(StopCondition) dig_obj.args.append(StopCondition(**dig_obj._condition_args)) # Repeat is optional, only add if default values were updated if dig_obj._repeat_args.values_updated: dig_obj.ARG_TYPES.append(Repeat) dig_obj.args.append(Repeat(**dig_obj._repeat_args)) return dig_obj
def generate(cls, template=None, template_attr={}): move_obj = Move(template, template_attr) template = move_obj.template move_obj.ARG_TYPES = [] move_obj._no_children = False # no ARG_TYPE if _no_children is True move_obj._location_args = Arguments({ "location_type": "ANY", "relative_direction": False, "steps": None, "coref_resolve": None, "relative_direction_value": None, "bo_coref_resolve": None, "template_attr": template_attr, }) move_obj._condition_args = Arguments({ "condition_type": None, "block_type": None }) # the number of repetitions for Action if any move_obj._repeat_args = Arguments({ "repeat_key": None, "repeat_count": None, "repeat_dir": None }) # change default arguments for ARG_TYPE classes using the template_objects. for j, templ in enumerate(template): for i, t in enumerate(templ): if type(t) != str: if callable(getattr(t, "add_generate_args", None)): t.add_generate_args(index=i, templ_index=j) # Append the ARG_TYPE object with arguments, to generate the action tree move_obj.args = [] if move_obj._no_children: return move_obj move_obj.ARG_TYPES.append(Location) move_obj.args.append(Location(**move_obj._location_args)) # StopCondition is optional, only add if the default arguments were changed. if move_obj._condition_args.values_updated: move_obj.ARG_TYPES.append(StopCondition) move_obj.args.append(StopCondition(**move_obj._condition_args)) # Repeat is optional, only add if default values were updated if move_obj._repeat_args.values_updated: move_obj.ARG_TYPES.append(Repeat) move_obj.args.append(Repeat(**move_obj._repeat_args)) return move_obj