mirror of
https://bitbucket.org/seefoe/dockerized-swg-src.git
synced 2026-07-28 23:16:01 -04:00
315 lines
8.4 KiB
Plaintext
315 lines
8.4 KiB
Plaintext
PROMPT CREATE OR REPLACE PACKAGE asset.asset_exporter
|
|
|
|
CREATE OR REPLACE PACKAGE asset.ASSET_EXPORTER
|
|
as
|
|
function update_shader (p_pathname varchar2, p_filename varchar2, p_effect varchar2)
|
|
return number;
|
|
function update_mesh (
|
|
p_pathname varchar2,
|
|
p_filename varchar2,
|
|
p_type varchar2,
|
|
p_num_polygons number,
|
|
p_num_verts number,
|
|
p_num_uv_sets number,
|
|
p_extent_center_x float,
|
|
p_extent_center_y float,
|
|
p_extent_center_z float,
|
|
p_extent_radius float,
|
|
p_extent_box_min_x float,
|
|
p_extent_box_min_y float,
|
|
p_extent_box_min_z float,
|
|
p_extent_box_max_x float,
|
|
p_extent_box_max_y float,
|
|
p_extent_box_max_z float,
|
|
p_num_hardpoints number)
|
|
return number;
|
|
function update_texture (p_pathname varchar2, p_filename varchar2, p_texture_size number, p_depth number, p_num_mips number)
|
|
return number;
|
|
function update_lod (p_pathname varchar2, p_filename varchar2)
|
|
return number;
|
|
function update_component (p_pathname varchar2, p_filename varchar2)
|
|
return number;
|
|
function update_sprite (p_pathname varchar2, p_filename varchar2, p_radius float, p_center_x float,
|
|
p_center_y float, p_center_z float)
|
|
return number;
|
|
function update_skeleton (p_pathname varchar2, p_filename varchar2, p_num_bones number)
|
|
return number;
|
|
function update_animation (p_pathname varchar2, p_filename varchar2, p_num_frames number, p_type varchar2, p_gender number)
|
|
return number;
|
|
function find_art_item(p_pathname varchar2, p_filename varchar2, p_type number)
|
|
return number;
|
|
|
|
procedure wipe_tree(p_appearance_id number);
|
|
procedure add_tree_node(p_appearance_id number, p_item_id number, p_entry_index number, p_exit_index number, p_parent_entry number);
|
|
|
|
procedure set_appearance_property(p_appearance_id number, p_name varchar2, p_value varchar2);
|
|
procedure update_appearance(p_appearance_id number, p_author varchar2);
|
|
procedure update_appearance2(p_appearance_id number, p_author varchar2, p_status number);
|
|
end;
|
|
|
|
/
|
|
|
|
PROMPT CREATE OR REPLACE PACKAGE BODY asset.asset_exporter
|
|
|
|
CREATE OR REPLACE PACKAGE BODY asset.ASSET_EXPORTER as
|
|
|
|
function update_shader (p_pathname varchar2, p_filename varchar2, p_effect varchar2)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,1);
|
|
|
|
update shaders
|
|
set effect=p_effect
|
|
where id=item_id;
|
|
|
|
if sql%rowcount = 0 then
|
|
insert into shaders (id,effect)
|
|
values (item_id,p_effect);
|
|
end if;
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function update_mesh (
|
|
p_pathname varchar2,
|
|
p_filename varchar2,
|
|
p_type varchar2,
|
|
p_num_polygons number,
|
|
p_num_verts number,
|
|
p_num_uv_sets number,
|
|
p_extent_center_x float,
|
|
p_extent_center_y float,
|
|
p_extent_center_z float,
|
|
p_extent_radius float,
|
|
p_extent_box_min_x float,
|
|
p_extent_box_min_y float,
|
|
p_extent_box_min_z float,
|
|
p_extent_box_max_x float,
|
|
p_extent_box_max_y float,
|
|
p_extent_box_max_z float,
|
|
p_num_hardpoints number)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,2);
|
|
|
|
update meshes
|
|
set
|
|
type=p_type,
|
|
num_verts=p_num_verts,
|
|
num_uv_sets=p_num_uv_sets,
|
|
extent_center_x=p_extent_center_x,
|
|
extent_center_y=p_extent_center_y,
|
|
extent_center_z=p_extent_center_z,
|
|
extent_radius=p_extent_radius,
|
|
extent_box_min_x=p_extent_box_min_x,
|
|
extent_box_min_y=p_extent_box_min_y,
|
|
extent_box_min_z=p_extent_box_min_z,
|
|
extent_box_max_x=p_extent_box_max_x,
|
|
extent_box_max_y=p_extent_box_max_y,
|
|
extent_box_max_z=p_extent_box_max_z
|
|
where id=item_id;
|
|
|
|
if sql%rowcount = 0 then
|
|
insert into meshes (id,type,num_polygons,num_verts,num_uv_sets,extent_center_x,extent_center_y,
|
|
extent_center_z,extent_radius,extent_box_min_x,extent_box_min_y,extent_box_min_z,
|
|
extent_box_max_x,extent_box_max_y,extent_box_max_z)
|
|
values (item_id,p_type,p_num_polygons,p_num_verts,p_num_uv_sets,p_extent_center_x,p_extent_center_y,
|
|
p_extent_center_z,p_extent_radius,p_extent_box_min_x,p_extent_box_min_y,p_extent_box_min_z,
|
|
p_extent_box_max_x,p_extent_box_max_y,p_extent_box_max_z);
|
|
end if;
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function update_texture (p_pathname varchar2, p_filename varchar2, p_texture_size number, p_depth number, p_num_mips number)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,3);
|
|
|
|
update textures
|
|
set texture_size=p_texture_size, depth=p_depth, num_mips=p_num_mips
|
|
where id=item_id;
|
|
|
|
if sql%rowcount = 0 then
|
|
insert into textures (id,texture_size,depth,num_mips)
|
|
values (item_id,p_texture_size,p_depth,p_num_mips);
|
|
end if;
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function update_lod (p_pathname varchar2, p_filename varchar2)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,4);
|
|
|
|
insert into lods (id)
|
|
select item_id
|
|
from dual
|
|
where not exists (
|
|
select * from lods
|
|
where id=item_id);
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function update_component (p_pathname varchar2, p_filename varchar2)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,5);
|
|
|
|
insert into components (id)
|
|
select item_id
|
|
from dual
|
|
where not exists (
|
|
select * from components
|
|
where id=item_id);
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function update_sprite (p_pathname varchar2, p_filename varchar2, p_radius float, p_center_x float,
|
|
p_center_y float, p_center_z float)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,6);
|
|
|
|
update sprites
|
|
set radius=p_radius, center_x=p_center_x, center_y=p_center_y, center_z=p_center_z
|
|
where id=item_id;
|
|
|
|
if sql%rowcount = 0 then
|
|
insert into sprites (id,radius,center_x,center_y,center_z)
|
|
values (item_id, p_radius, p_center_x, p_center_y, p_center_z);
|
|
end if;
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function update_skeleton (p_pathname varchar2, p_filename varchar2, p_num_bones number)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,7);
|
|
|
|
update skeletons
|
|
set num_bones=p_num_bones
|
|
where id=item_id;
|
|
|
|
if sql%rowcount = 0 then
|
|
insert into skeletons (id,num_bones)
|
|
values (item_id, p_num_bones);
|
|
end if;
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function update_animation (p_pathname varchar2, p_filename varchar2, p_num_frames number, p_type varchar2, p_gender number)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
item_id := find_art_item(p_pathname, p_filename,8);
|
|
|
|
update animations
|
|
set num_frames=p_num_frames, type=p_type, gender=p_gender
|
|
where id=item_id;
|
|
|
|
if sql%rowcount = 0 then
|
|
insert into animations (id, num_frames, type, gender)
|
|
values (item_id, p_num_frames, p_type, p_gender);
|
|
end if;
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
function find_art_item(p_pathname varchar2, p_filename varchar2, p_type number)
|
|
return number
|
|
as
|
|
item_id number;
|
|
begin
|
|
select id
|
|
into item_id
|
|
from art_items
|
|
where pathname = p_pathname
|
|
and filename = p_filename;
|
|
|
|
return item_id;
|
|
|
|
exception
|
|
when NO_DATA_FOUND then
|
|
select art_item_ids.nextval
|
|
into item_id
|
|
from dual;
|
|
|
|
insert into art_items (id, pathname, filename, type_id)
|
|
values (item_id, p_pathname, p_filename, p_type);
|
|
|
|
return item_id;
|
|
end;
|
|
|
|
procedure wipe_tree(p_appearance_id number)
|
|
as
|
|
begin
|
|
delete from art_asset_tree where appearance_id=p_appearance_id;
|
|
end;
|
|
|
|
|
|
procedure add_tree_node(p_appearance_id number, p_item_id number, p_entry_index number, p_exit_index number, p_parent_entry number)
|
|
as
|
|
begin
|
|
insert into art_asset_tree (appearance_id,parent_entry,entry_index,exit_index,item_id)
|
|
values (p_appearance_id, p_parent_entry, p_entry_index, p_exit_index, p_item_id);
|
|
end;
|
|
|
|
procedure set_appearance_property(p_appearance_id number, p_name varchar2, p_value varchar2)
|
|
as
|
|
begin
|
|
update appearance_properties
|
|
set property_value=p_value
|
|
where appearance_id = p_appearance_id
|
|
and property_name = p_name;
|
|
|
|
if sql%rowcount = 0 then
|
|
insert into appearance_properties (appearance_id, property_name, property_value)
|
|
values (p_appearance_id, p_name, p_value);
|
|
end if;
|
|
end;
|
|
|
|
procedure update_appearance(p_appearance_id number, p_author varchar2)
|
|
as
|
|
begin
|
|
update appearances
|
|
set author=p_author,
|
|
exported_date = sysdate
|
|
where id = p_appearance_id;
|
|
end;
|
|
|
|
procedure update_appearance2(p_appearance_id number, p_author varchar2, p_status number)
|
|
as
|
|
begin
|
|
update appearances
|
|
set author=p_author,
|
|
status_id=p_status,
|
|
exported_date = sysdate
|
|
where id = p_appearance_id;
|
|
end;
|
|
|
|
end;
|
|
|
|
/
|
|
|