Ejemplo n.º 1
0
    def finish_loading(self):
        if self.creature_template and self.creature_instance:
            if not self.fully_loaded:
                creature_model_info = WorldDatabaseManager.creature_get_model_info(self.current_display_id)
                if creature_model_info:
                    self.bounding_radius = creature_model_info.bounding_radius
                    self.combat_reach = creature_model_info.combat_reach
                    self.gender = creature_model_info.gender

                if self.creature_template.scale == 0:
                    display_scale = DbcDatabaseManager.creature_display_info_get_by_id(self.current_display_id)
                    if display_scale and display_scale.CreatureModelScale > 0:
                        self.native_scale = display_scale.CreatureModelScale
                    else:
                        self.native_scale = 1
                else:
                    self.native_scale = self.creature_template.scale
                self.current_scale = self.native_scale

                if self.creature_template.equipment_id > 0:
                    creature_equip_template = WorldDatabaseManager.creature_get_equipment_by_id(
                        self.creature_template.equipment_id
                    )
                    if creature_equip_template:
                        self.set_virtual_item(0, creature_equip_template.equipentry1)
                        self.set_virtual_item(1, creature_equip_template.equipentry2)
                        self.set_virtual_item(2, creature_equip_template.equipentry3)

                self.fully_loaded = True
Ejemplo n.º 2
0
    def set_display_id(self, display_id):
        super().set_display_id(display_id)
        if display_id <= 0 or not \
                DbcDatabaseManager.creature_display_info_get_by_id(display_id):
            return

        self.set_uint32(UnitFields.UNIT_FIELD_DISPLAYID,
                        self.current_display_id)
Ejemplo n.º 3
0
 def mount(self, mount_display_id):
     if mount_display_id > 0 and DbcDatabaseManager.creature_display_info_get_by_id(
             mount_display_id):
         self.mount_display_id = mount_display_id
         self.unit_flags |= UnitFlags.UNIT_MASK_MOUNTED
         self.set_uint32(UnitFields.UNIT_FIELD_MOUNTDISPLAYID,
                         self.mount_display_id)
         self.set_uint32(UnitFields.UNIT_FIELD_FLAGS, self.unit_flags)
Ejemplo n.º 4
0
    def preload_model_info(self):
        if self.creature_template and self.creature_instance:
            if not self.model_info_loaded:
                creature_model_info = WorldDatabaseManager.creature_get_model_info(
                    self.display_id)
                if creature_model_info:
                    self.bounding_radius = creature_model_info.bounding_radius
                    self.combat_reach = creature_model_info.combat_reach

                if self.creature_template.scale == 0:
                    display_scale = DbcDatabaseManager.creature_display_info_get_by_id(
                        self.display_id)
                    if display_scale and display_scale.CreatureModelScale > 0:
                        self.scale = display_scale.CreatureModelScale
                    else:
                        self.scale = 1
                else:
                    self.scale = self.creature_template.scale

                self.model_info_loaded = True
Ejemplo n.º 5
0
 def set_display_id(self, display_id):
     if display_id > 0 and \
             DbcDatabaseManager.creature_display_info_get_by_id(display_id):
         self.display_id = display_id
         self.set_uint32(UnitFields.UNIT_FIELD_DISPLAYID, self.display_id)
         self.set_dirty()