mirror of https://github.com/AxioDL/metaforce.git
68 lines
2.5 KiB
C++
68 lines
2.5 KiB
C++
|
#include "DeafBabe.hpp"
|
||
|
|
||
|
namespace Retro
|
||
|
{
|
||
|
namespace DNAMP1
|
||
|
{
|
||
|
|
||
|
void DeafBabe::BlenderInit(HECL::BlenderConnection::PyOutStream& os)
|
||
|
{
|
||
|
os << "TYPE_COLORS = {'Ground':(1.0, 0.43, 0.15),\n"
|
||
|
" 'Stone':(0.28, 0.28, 0.28),\n"
|
||
|
" 'Hard Stone':(0.1, 0.1, 0.1),\n"
|
||
|
" 'Metal':(0.5, 0.5, 0.5),\n"
|
||
|
" 'Leaves':(0.61, 0.03, 0.05)}\n"
|
||
|
"\n"
|
||
|
"# Diffuse Color Maker\n"
|
||
|
"def make_color(index, mat_type, name):\n"
|
||
|
" new_mat = bpy.data.materials.new(name)\n"
|
||
|
" if mat_type in TYPE_COLORS:\n"
|
||
|
" new_mat.diffuse_color = TYPE_COLORS[mat_type]\n"
|
||
|
" else:\n"
|
||
|
" new_mat.diffuse_color.hsv = ((index / 6.0) % 1.0, 1.0-((index // 6) / 6.0), 1)\n"
|
||
|
" return new_mat\n"
|
||
|
"\n"
|
||
|
"bpy.types.Material.retro_collision_type = bpy.props.IntProperty(name='Retro: Collsion Type')\n"
|
||
|
"bpy.types.Material.retro_projectile_passthrough = bpy.props.BoolProperty(name='Retro: Projectile Passthrough')\n"
|
||
|
"\n"
|
||
|
"material_dict = {}\n"
|
||
|
"material_index = []\n"
|
||
|
"def select_material(data):\n"
|
||
|
"\n"
|
||
|
" type_id = data & 0xff\n"
|
||
|
" mat_type = str(type_id)\n"
|
||
|
" if type_id == 1:\n"
|
||
|
" mat_type = 'Ground'\n"
|
||
|
" elif type_id == 3:\n"
|
||
|
" mat_type = 'Stone'\n"
|
||
|
" elif type_id == 4:\n"
|
||
|
" mat_type = 'Hard Stone'\n"
|
||
|
" elif type_id == 5:\n"
|
||
|
" mat_type = 'Metal'\n"
|
||
|
" elif type_id == 9:\n"
|
||
|
" mat_type = 'Leaves'\n"
|
||
|
"\n"
|
||
|
" if ((data >> 18) & 1):\n"
|
||
|
" mat_name = mat_type + ' Fire Through'\n"
|
||
|
" else:\n"
|
||
|
" mat_name = mat_type\n"
|
||
|
"\n"
|
||
|
" if mat_name in material_index:\n"
|
||
|
" return material_index.index(mat_name)\n"
|
||
|
" elif mat_name in material_dict:\n"
|
||
|
" material_index.append(mat_name)\n"
|
||
|
" return len(material_index)-1\n"
|
||
|
" else:\n"
|
||
|
" mat = make_color(len(material_dict), mat_type, mat_name)\n"
|
||
|
" mat.retro_collision_type = type_id\n"
|
||
|
" mat.retro_projectile_passthrough = ((data >> 18) & 1)\n"
|
||
|
" material_dict[mat_name] = mat\n"
|
||
|
" material_index.append(mat_name)\n"
|
||
|
" return len(material_index)-1\n"
|
||
|
"\n"
|
||
|
"\n";
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|