add new program 'Blocks'

git-svn-id: svn://kolibrios.org@8824 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2021-06-12 11:58:55 +00:00
parent 61c769beee
commit f9d251a1fc
24 changed files with 68649 additions and 47 deletions

View File

@ -49,7 +49,7 @@ void KolibriOnPaint(void)
void KolibriOnButton(long id, TThreadData /*th*/)
{
FileInfoBlock* file;
long int k;
unsigned long int k;
switch(id){
case 2:

View File

@ -0,0 +1,19 @@
# Path to /programs
SVN_PROGR:=../../..
# Path to /programs/bcc32
SVN_BCC32:=$(SVN_PROGR)/bcc32
# Path to t2fasm
T2FASM:=$(SVN_BCC32)/t2fasm
# Path to include
INCLUDE:=$(SVN_BCC32)/include
# Path to Bin folder
KOS32_BCC:=/home/autobuild/borlandcpp/bin
# Filename without .cpp
FILENAME:=blocks
include $(SVN_BCC32)/Makefile_app

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,554 @@
#include <kolibri.h>
#include <kos_heap.h>
#include <kos_file.h>
#include <kos_unpack.h>
#include <load_lib.h>
#include <l_proc_lib.h>
#include <l_tinygl.h>
using namespace Kolibri;
const char header[] = "Blocks";
char library_path[2048];
OpenDialog_data ofd;
unsigned char procinfo[1024];
char plugin_path[4096], openfile_path[4096], filename_area[256];
od_filter filter1 = { 7, "JS\0\0" };
namespace Kolibri{
char CurrentDirectoryPath[2048];
}
struct BlockList{
unsigned char* name;
long int id_l, p_cou;
float* vert_d;
float* norm_d;
};
BlockList* b_list = 0;
long int b_count;
unsigned char* b_data = 0;
unsigned char* f_data = 0;
struct ColorList{
unsigned char* name;
long int color;
};
const long C_COUNT_MAX = 32;
ColorList c_list[C_COUNT_MAX];
long c_count = 0;
struct ModelList{
char* name;
long int color, t_cr;
float x,y,z, r_x,r_y,r_z;
long int level, id_l;
};
ModelList* model_list = 0;
long int m_count;
TinyGLContext ctx1;
float angle_x = 135.0, angle_y = 0.0, angle_z = 0.0, delt_size = 3.0,
scale_o = 0.1, trans_z = 0.0;
double rat_h = 1.0;
bool mouse_drag = false;
short mouse_x, mouse_y;
float angle_dwm, //~ wnd_w/180 - прибавление углов поворота сцены при вращении мышей
angle_dhm; //~ wnd_h/180
float light_position[] = {-30.0, 80.0, -50.0, 1.0}; //Расположение источника [0][1][2]
//[3] = (0.0 - бесконечно удаленный источник, 1.0 - источник света на определенном расстоянии)
float light_dir[] = {0.0,0.0,0.0}; //направление лампы
float mat_specular[] = {0.3, 0.3, 0.3, 1.0}; //Цвет блика
float mat_shininess = 3.0; //Размер блика (обратная пропорция)
float white_light[] = {1.0, 1.0, 1.0, 1.0}; //Цвет и интенсивность освещения, генерируемого источником
float lmodel_ambient[] = {0.3, 0.3, 0.3, 1.0}; //Параметры фонового освещения
void SetLight()
{
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, light_dir);
glLightfv(GL_LIGHT0, GL_DIFFUSE, white_light);
glLightfv(GL_LIGHT0, GL_SPECULAR, white_light);
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialf(GL_FRONT, GL_SHININESS, mat_shininess);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
}
long list_get_id(char* name)
{
long i;
long n = strchr(name, '\'')-name;
if(n) name[n] = 0;
for(i=0;i<b_count;i++){
if(!strcmp(name,b_list[i].name)) return b_list[i].id_l;
}
return b_list[0].id_l; //not found
}
long color_get_id(char* name)
{
long i;
char* buf;
for(i=0;i<c_count;i++){
buf = strchr(c_list[i].name, '=');
if(buf){
buf[0]=0;
while(buf>c_list[i].name && buf[-1]==' '){
buf--; buf[0]=0;
};
}
while(name[0]==' '){
name++;
};
if(!strcmp(name,c_list[i].name)) return i;
}
return -1; //not found
}
void draw_3d()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //очистим буфер цвета и глубины
glPushMatrix();
if(b_list){
SetLight();
glTranslatef(0.0,0.0,0.5);
glScalef(scale_o*rat_h,-scale_o,scale_o/4.0); // z/2.0
glTranslatef(0.0, trans_z, 0.0);
glRotatef(angle_x,1.0,0.0,0.0);
glRotatef(angle_y,0.0,1.0,0.0);
glRotatef(angle_z,0.0,0.0,1.0);
long i;
if(model_list){
unsigned long pu_cou=0, pu_lvl=0;
for(i=0;i<m_count;i++){
while(model_list[i].level<=pu_lvl && pu_cou){
pu_cou--;
pu_lvl--;
glPopMatrix();
};
pu_lvl=model_list[i].level;
pu_cou++;
glPushMatrix();
glTranslatef(model_list[i].x, model_list[i].y, model_list[i].z);
glRotatef(model_list[i].r_x, 1.0,0.0,0.0);
glRotatef(model_list[i].r_y, 0.0,1.0,0.0);
glRotatef(model_list[i].r_z, 0.0,0.0,1.0);
glColor3ub((model_list[i].color>>16)&255,
(model_list[i].color>> 8)&255,
model_list[i].color&255);
glCallList(model_list[i].id_l);
}
while(pu_cou){
pu_cou--;
glPopMatrix();
};
}
else{
glColor3f(1.0, 1.0, 0.0);
glCallList(b_list[0].id_l);
}
}
glPopMatrix();
}
void compile_list(BlockList *list){
long int i;
list->id_l = glGenLists(1);
if(list->id_l<1) return; //not found
glNewList(list->id_l, GL_COMPILE);
glBegin(GL_TRIANGLES);
for(i=0;i<list->p_cou;i++){
glNormal3fv((float*)(list->norm_d+i*3));
glVertex3fv((float*)(list->vert_d+i*3));
}
glEnd();
glEndList();
}
bool init_block(){
FileInfoBlock* file;
unsigned long int k;
file = FileOpen("block.bin");
if (!file){
//SetWindowCaption("Error open file 'block.bin'");
return false;
}
k = FileGetLength(file);
if (k > 0){
if(b_data) delete b_data;
b_data = new unsigned char[k];
if (b_data){
if(FileRead(file, b_data, k) != k){
delete b_data; b_data = 0;
}
else if((long&)b_data[0]==0x4b43504b){ //"KPCK"
k = (long&)b_data[4];
f_data = new unsigned char[k];
unpack(b_data, f_data);
delete b_data;
b_data = f_data;
f_data = 0;
}
}
}
FileClose(file);
if (b_data){
unsigned long i=0, n=0;
b_count=0;
while((long&)b_data[i] && i<k){
while(b_data[i]){ i++; };
i = (i|3)+1;
i += 4+((long&)b_data[i])*24;
b_count++;
};
b_list = new BlockList[b_count];
i=0;
while((long&)b_data[i] && i<k){
b_list[n].name = (unsigned char*)(b_data+i);
while(b_data[i]){ i++; };
i = (i|3)+1;
b_list[n].p_cou = (long&)b_data[i];
i += 4;
b_list[n].vert_d = (float*)(b_data+i);
i += b_list[n].p_cou*12;
b_list[n].norm_d = (float*)(b_data+i);
i += b_list[n].p_cou*12;
compile_list(&b_list[n]);
n++;
};
}
return (bool)b_data;
}
bool init_model()
{
long i, n;
char *ft = strstr(f_data, "const");
char *fe; //end ']'
char *fp; //perv ','
c_count=0;
while(ft && c_count<C_COUNT_MAX){
fp = ft+5;
while(fp[0]==' ') fp++;
c_list[c_count].name = fp;
ft = strchr(ft, '=')+1;
fe = strchr(ft, ';');
fe[0] = 0;
c_list[c_count].color = StrToInt(ft);
fe[0] = ';';
c_count++;
ft = strstr(ft, "const");
}
float mz_min=0.0, mz_max=0.0;
ft = strstr(f_data, "model_list");
if(ft==0) return false;
m_count=0;
fe=strchr(ft, ';');
if(fe==0) return false;
do{
ft=strchr(ft, '[');
ft=strchr(ft, ']');
if(ft && ft<fe) m_count++;
}while(ft && ft<fe);
if(model_list) delete model_list;
model_list = new ModelList[m_count];
ft = strstr(f_data, "model_list");
ft=strchr(ft, '[')+1;
for(i=0;i<m_count;i++){
ft=strchr(ft, '[')+1;
fe=strchr(ft, ']')+1;
ft=strchr(ft, '\'')+1;
model_list[i].name = ft;
ft=strchr(ft, ',')+1; //color
fp=ft;
ft=strchr(ft, ',')+1;
ft[-1]=0;
n=color_get_id(fp);
if(n>-1){
model_list[i].color=c_list[n].color;
}
else{
model_list[i].color=StrToInt(fp);
}
fp=ft;
ft=strchr(ft, ',')+1;
ft[-1]=0;
model_list[i].t_cr=StrToInt(fp);
fp=ft;
ft=strchr(ft, ',')+1;
ft[-1]=0;
model_list[i].x=StrToDouble(fp);
fp=ft;
ft=strchr(ft, ',')+1;
ft[-1]=0;
model_list[i].y=StrToDouble(fp);
fp=ft;
ft=strchr(ft, ',')+1;
ft[-1]=0;
model_list[i].z=StrToDouble(fp);
fp=ft;
ft=strchr(ft, ',')+1;
ft[-1]=0;
model_list[i].r_x=StrToDouble(fp);
fp=ft;
ft=strchr(ft, ',')+1;
ft[-1]=0;
model_list[i].r_y=StrToDouble(fp);
fp=ft;
ft=strchr(ft, ',')+1;
if(!ft || fe<ft){
ft=fe;
model_list[i].level=0;
if(mz_min>model_list[i].z) mz_min=model_list[i].z;
if(mz_max<model_list[i].z) mz_max=model_list[i].z;
}
ft[-1]=0;
model_list[i].r_z=StrToDouble(fp);
if(ft!=fe){
fp=ft;
ft=fe;
ft[-1]=0;
model_list[i].level=StrToInt(fp);
}
model_list[i].id_l = list_get_id(model_list[i].name);
}
trans_z = (mz_max-mz_min)/2.0;
scale_o = .5/trans_z;
angle_x = 135.0;
angle_z = -45.0;
return true;
}
void KolibriOnPaint(void);
void __stdcall DrawWindow()
{
asm{
push ebx
mcall SF_REDRAW,SSF_BEGIN_DRAW
}
KolibriOnPaint();
asm{
mcall SF_REDRAW,SSF_END_DRAW
pop ebx
}
}
bool KolibriOnStart(TStartData &kos_start, TThreadData /*th*/)
{
kos_start.Left = 10;
kos_start.Top = 40;
kos_start.Width = 640;
kos_start.Height = 480;
kos_start.WinData.WindowColor = 0xFFFFFF;
kos_start.WinData.WindowType = 0x33; // 0x34 - fixed, 0x33 - not fixed
kos_start.WinData.Title = header;
if(LoadLibrary("proc_lib.obj", library_path, "/sys/lib/proc_lib.obj", &import_proc_lib))
{
ofd.procinfo = procinfo;
ofd.com_area_name = "FFFFFFFF_open_dialog";
ofd.com_area = 0;
ofd.opendir_path = plugin_path;
ofd.dir_default_path = "/rd/1";
ofd.start_path = "/rd/1/File managers/opendial";
ofd.draw_window = DrawWindow;
ofd.status = 0;
ofd.openfile_path = openfile_path;
ofd.filename_area = filename_area;
ofd.filter_area = &filter1;
ofd.x_size = 420;
ofd.x_start = 10;
ofd.y_size = 320;
ofd.y_start = 10;
OpenDialog_Init(&ofd);
} else return false;
if(LoadLibrary("tinygl.obj", library_path, "/sys/lib/tinygl.obj", &import_tinygl))
{
kosglMakeCurrent(0,0,kos_start.Width,kos_start.Height,&ctx1);
rat_h = kos_start.Height;
rat_h /= kos_start.Width;
angle_dwm = kos_start.Width/180.0;
angle_dhm = kos_start.Height/180.0;
glEnable(GL_DEPTH_TEST);
glClearColor(0.2,0.2,0.2,0.0);
glEnable(GL_NORMALIZE);
//draw_3d();
return init_block();
} else return false;
}
void KolibriOnPaint(void)
{
kosglSwapBuffers();
// If button have ID 1, this is close button
DrawButton(2,0xf0f0f0, 10,10,50,20);
DrawText(20,16,0,"Open");
}
void KolibriOnButton(long id, TThreadData /*th*/)
{
FileInfoBlock* file;
unsigned long int k;
switch(id){
case 2:
ofd.type = 0; // 0 - open
OpenDialog_Start(&ofd);
if(ofd.status==1){
file = FileOpen(ofd.openfile_path);
if (!file){
SetWindowCaption("Error open file ...");
break;
}
k = FileGetLength(file);
if (k > 0){
if(f_data) delete f_data;
f_data = new unsigned char[k];
if (f_data){
if (FileRead(file, f_data, k) != k){
delete f_data; f_data = 0;
}
else{
init_model();
draw_3d();
SetWindowCaption(ofd.openfile_path);
Redraw(1);
}
}
}
FileClose(file);
}
//break;
};
}
void KolibriOnKeyPress(TThreadData /*th*/)
{
long key = GetKey();
switch(key){
case 178: //Up
angle_x+=delt_size;
draw_3d();
kosglSwapBuffers();
break;
case 177: //Down
angle_x-=delt_size;
draw_3d();
kosglSwapBuffers();
break;
case 176: //Left
angle_z+=delt_size;
draw_3d();
kosglSwapBuffers();
break;
case 179: //Right
angle_z-=delt_size;
draw_3d();
kosglSwapBuffers();
//break;
};
}
void KolibriOnMouse(TThreadData /*th*/)
{
int m = GetMouseButton();
short m_x_old, m_y_old;
if(m&1 && mouse_drag){
//mouse l. but. move
m_x_old = mouse_x;
m_y_old = mouse_y;
GetMousePosPicture(mouse_x, mouse_y);
//если курсор движется по оси y (вверх или вниз) то поворот делаем вокруг оси x
angle_x -= (m_y_old - mouse_y) / angle_dwm;
//если курсор движется по оси x (влево или вправо) то поворот делаем вокруг оси z
angle_z -= (m_x_old - mouse_x) / angle_dhm;
draw_3d();
kosglSwapBuffers();
}
if(m&0x10000){
//mouse l. but. up
mouse_drag=false;
}
if(m&0x100){
//mouse l. but. press
GetMousePosPicture(mouse_x, mouse_y);
if(mouse_x>0 && mouse_y>0) mouse_drag=true;
}
GetMouseScrollData(m_x_old, m_y_old);
if(m_y_old<0 && scale_o<0.5){
scale_o *= 1.414213562;
draw_3d();
kosglSwapBuffers();
}
else if(m_y_old>0 && scale_o>0.005){
scale_o /= 1.414213562;
draw_3d();
kosglSwapBuffers();
}
}
void KolibriOnSize(int window_rect[], TThreadData /*th*/)
{
unsigned short int width, height;
GetClientSize(width, height);
if(!width || !height) return;
if(width<100) width=100;
if(height<80) height=80;
rat_h = (float)height / (float)width;
angle_dwm = (float)width/180.0;
angle_dhm = (float)height/180.0;
glViewport(0, 0, width, height);
draw_3d();
}
bool KolibriOnClose(TThreadData /*th*/)
{
if(b_data){
delete b_data;
delete b_list;
}
if(f_data) delete f_data;
if(model_list) delete model_list;
return true;
}

View File

@ -0,0 +1,19 @@
Set NAME=blocks
Set BCC_DIR=..\..\..\bcc32
kos32-bcc -S -v- -R- -6 -a4 -O2 -Og -Oi -Ov -OS -k- -D__KOLIBRI__ -I..\..\..\bcc32\include %NAME%.cpp
echo STACKSIZE equ 8192> kos_make.inc
echo HEAPSIZE equ 0>> kos_make.inc
echo include "%BCC_DIR%\include\kos_start.inc">> kos_make.inc
echo include "%BCC_DIR%\include\kos_func.inc">> kos_make.inc
echo include "%BCC_DIR%\include\kos_heap.inc">> kos_make.inc
echo include "kos_make.inc" > f_%NAME%.asm
t2fasm < %NAME%.asm >> f_%NAME%.asm
fasm f_%NAME%.asm %NAME%.kex
if exist %NAME%.kex kpack %NAME%.kex
if exist %NAME%.kex del kos_make.inc
@fasm.exe -m 65636 block.asm block.bin
@kpack block.bin
pause

View File

@ -0,0 +1,110 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x080808; //черный
const m2 = 0xc0c0c0; //серый
const m3 = 0xffffff; //белый
const m4 = 0xc97e3b; //коричневый
model_list=[
['b2x8x1', m4, 0, 8, -4, 18, 0,0,90],
['b1x2x1', m1, 0, 8,-12, 18, 0,0,0],
['b1x2x1', m1, 0, -8,-12, 18, 0,0,0],
['b2x3x1', m3, 0, 4, 4, 18, 0,0,90],
['b2x3x1', m3, 0, 4, 12, 18, 0,0,90],
['b2x4x1', m3, 1, 4, -8, 21, 0,0,0],
['b1x4x1', m3, 1, 0,-12, 21, 0,0,0],
['b2x4x1', m3, 1, -8, -8, 21, 0,0,0],
['b2x4x1', m3, 1, 0, 8, 21, 0,0,90],
['b2x3x1', m3, 1, 12, 8, 21, 0,0,90],
['b2x3x1', m3, 1, 4, 16, 21, 0,0,90],
['b2x3x1', m3, 2, 8, -8, 24, 0,0,0],
['b1x4x1', m3, 2, 4,-12, 24, 0,0,0],
['b1x4x1', m2, 2, 0,-12, 24, 0,0,0],
['b1x4x1', m3, 2, -4,-12, 24, 0,0,0],
['b2x3x1', m3, 2,-12, -8, 24, 0,0,0],
['b2x4x1', m3, 2, -4, 4, 24, 0,0,90],
['b2x3x1', m3, 2, 0, 12, 24, 0,0,90],
['b2x2x1', m3, 2, 8, 12, 24, 0,0,90],
['b2x4x1', m3, 2, 16, 4, 24, 0,0,90],
['l2x2x1', m3, 3, 8, -8, 27, 0,0,-90],
['b1x4x1', m2, 3, 4,-12, 27, 0,0,0],
['b1x4x1', m3, 3, 0,-12, 27, 0,0,0],
['b1x4x1', m2, 3, -4,-12, 27, 0,0,0],
['l2x2x1', m3, 3, -8, -8, 27, 0,0,180],
['l2x2x1', m3, 3,-12, 0, 27, 0,0,180],
['b2x4x1', m3, 3, -4, 4, 27, 0,0,90],
['b2x3x1', m3, 3, -4, 12, 27, 0,0,90],
['b2x4x1', m3, 3, 12, 12, 27, 0,0,90],
['b2x4x1', m3, 3, 16, 4, 27, 0,0,90],
['l2x2x1', m3, 3, 12, 0, 27, 0,0,-90],
['b1x4x1', m2, 4, 0,-12, 30, 0,0,0],
['b1x4x1', m3, 4, -4,-12, 30, 0,0,0],
['b1x4x1', m2, 4, -8,-12, 30, 0,0,0],
['b1x2x1', m3, 4,-12,-12, 30, 0,0,0],
['b2x4x1', m3, 4,-16, -4, 30, 0,0,0],
['l2x2x1', m3, 4, -8, 12, 30, 0,0,90],
['b2x3x1', m3, 4, 4, 12, 30, 0,0,90],
['l2x2x1', m3, 4, 8, 12, 30, 0,0,0],
['b2x4x1', m3, 4, 12, -4, 30, 0,0,0],
['b1x2x1', m3, 4, 12,-12, 30, 0,0,0],
['b1x4x1', m2, 4, 8,-12, 30, 0,0,0],
['b1x4x1', m3, 4, 4,-12, 30, 0,0,0],
['b2x4x1', m3, 5, 0,-12, 33, 0,0,90],
['b2x3x1', m3, 5,-16, -4, 33, 0,0,0],
['l2x2x1', m3, 5, -8, 8, 33, 0,0,90],
['b2x3x1', m3, 5, 4, 12, 33, 0,0,90],
['l2x2x1', m3, 5, 8, 8, 33, 0,0,0],
['b2x3x1', m3, 5, 12, -4, 33, 0,0,0],
['b2x3x1', m3, 5, 12,-12, 33, 0,0,90],
['b2x2x1', m3, 6, -4, -8, 36, 0,0,90],
['b1x3x1', m3, 6,-12, -4, 36, 0,0,0],
['b2x2x1', m3, 6, -4, 8, 36, 0,0,90],
['b2x3x1', m3, 6, 8, 8, 36, 0,0,90],
['b1x3x1', m3, 6, 12, -4, 36, 0,0,0],
['b2x3x1', m3, 6, 8, -8, 36, 0,0,90],
['b2x3x1', m3, 7, -4, -8, 39, 0,0,90],
['b2x4x1', m3, 7, 0, 0, 39, 0,0,90],
['l2x2x1', m3, 7, -8, 8, 39, 0,0,90],
['b2x3x1', m3, 7, 4, 8, 39, 0,0,90],
['l2x2x1', m3, 7, 8, 8, 39, 0,0,0],
['b2x3x1', m3, 7, 12, 0, 39, 0,0,90],
['b2x4x1', m3, 7, 12, -8, 39, 0,0,90],
['b1x3x1', m1, 8, 0,-16, 42, 0,0,0],
['l2x2x1', m3, 8, -4, -8, 42, 0,0,-180],
['l2x2x1', m3, 8,-12, -4, 42, 0,0,-180],
['b2x4x1', m3, 8, -4, 0, 42, 0,0,90],
['b1x2x1', m3, 8, -8, 8, 42, 0,0,90],
['b2x3x1', m3, 8, 4, 8, 42, 0,0,90],
['b1x2x1', m3, 8, 12, 8, 42, 0,0,90],
['b2x4x1', m3, 8, 16, 0, 42, 0,0,90],
['l2x2x1', m3, 8, 12, -4, 42, 0,0,-90],
['l2x2x1', m3, 8, 4, -8, 42, 0,0,-90],
['b1x3x1', m1, 9, 0,-16, 45, 0,0,0],
['b1x3x1', m3, 9, -4, -8, 45, 0,0,0],
['b1x3x1', m1, 9, -8, -8, 45, 0,0,0],
['b2x2x1', m3, 9,-16, -4, 45, 0,0,0],
['l2x2x1', m3, 9, -8, 4, 45, 0,0,90],
['b2x3x1', m3, 9, 4, 4, 45, 0,0,90],
['l2x2x1', m3, 9, 8, 4, 45, 0,0,0],
['b2x2x1', m3, 9, 12, -4, 45, 0,0,0],
['b1x3x1', m1, 9, 8, -8, 45, 0,0,0],
['b1x3x1', m3, 9, 4, -8, 45, 0,0,0],
['b2x3x1', m3, 10, 4,-12, 48, 0,0,90],
['b2x4x1', m3, 10,-12, -8, 48, 0,0,0],
['l2x2x1', m3, 10, -4, 8, 48, 0,0,180],
['b1x3x1', m3, 10, 0, 8, 48, 0,0,180],
['l2x2x1', m3, 10, 4, 8, 48, 0,0,-90],
['b2x4x1', m3, 10, 8, -8, 48, 0,0,0],
['b2x3x1', m3, 11, 4, -4, 51, 0,0,0],
['b1x3x1', m3, 11, 0, -4, 51, 0,0,0],
['b2x3x1', m3, 11, -8, -4, 51, 0,0,0],
['b1x3x1', m3, 11, 4, -8, 51, 0,0,90],
['b10x10x1', m1, 12,-20,-20, 0, 0,0,0],
['b2x2x1', m4, 13, 12, -4, 3, 0,0,90],
['b2x2x1', m4, 14, 12, -4, 6, 0,0,90],
['b2x2x1', m4, 15, 12, -4, 9, 0,0,90],
['b2x2x1', m4, 16, 12, -4, 12, 0,0,90],
['b2x8x1', m4, 17, 20, -4, 15, 0,0,90],
];

View File

@ -0,0 +1,103 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x008000;
const m2 = 0xffffff;
const m3 = 0x080808;
const m4 = 0x00ff00;
model_list=[
['b10x10x1', m1, 0,-20, -20, 0, 0,0,0],
['b2x3x1', m2, 1, -4, -4, 3, 0,0,90],
['b2x3x1', m2, 1, 8, -4, 3, 0,0,90],
['b2x4x1', m2, 1, 4, 12, 3, 0,0,90],
['b2x4x1', m3, 1,-20, -12, 3, 0,0,0],
['b2x4x1', m3, 1, 12, -12, 3, 0,0,0],
['b2x8x1', m3, 1, 12, 4, 3, 0,0,90],
['b2x4x1', m3, 2,-20, -12, 6, 0,0,0],
['b2x4x1', m3, 2, 12, -12, 6, 0,0,0],
['b2x4x1', m2, 2, 4, -8, 6, 0,0,90],
['b2x3x1', m2, 2,-12, 8, 6, 0,0,0],
['b2x4x1', m2, 2, -4, 8, 6, 0,0,0],
['b2x3x1', m2, 2, 4, 8, 6, 0,0,0],
['b1x2x1', m3, 2, 12, 4, 6, 0,0,0],
['b1x2x1', m3, 2,-16, 4, 6, 0,0,0],
['l2x2x1', m2, 2,-12, 0, 6, 0,0,-90],
['l2x2x1', m2, 2, 8, 0, 6, 0,0,180],
['b2x2x1', m2, 3, 4, -8, 9, 0,0,0],
['b2x4x1', m2, 3, 0, -8, 9, 0,0,90],
['b2x4x1', m2, 3, 8, 0, 9, 0,0,0],
['b2x4x1', m2, 3,-16, 0, 9, 0,0,0],
['b1x3x1', m2, 3, -4, 16, 9, 0,0,90],
['b1x3x1', m2, 3, 0, 16, 9, 0,0,-90],
['b1x2x1', m2, 3, 0, 20, 9, 0,0,90],
['l2x2x1', m2, 4, 8, 12, 12, 0,0,0],
['l2x2x1', m2, 4,-12, 12, 12, 0,0,90],
['b2x4x1', m2, 4, 4, 12, 12, 0,0,90],
['b2x4x1', m2, 4, 4, -8, 12, 0,0,90],
['b2x2x1', m2, 4,-16, 4, 12, 0,0,0],
['b2x2x1', m2, 4, 8, 4, 12, 0,0,0],
['b2x3x1', m3, 4,-16, -8, 12, 0,0,0],
['b2x3x1', m3, 4, 8, -8, 12, 0,0,0],
['l2x2x1', m2, 5, 8, 8, 15, 0,0,0],
['l2x2x1', m2, 5,-12, 8, 15, 0,0,90],
['b2x4x1', m2, 5, 4, 12, 15, 0,0,90],
['b2x4x1', m2, 5, 4, -4, 15, 0,0,90],
['b2x4x1', m3, 5,-16, -8, 15, 0,0,0],
['b2x4x1', m3, 5, 8, -8, 15, 0,0,0],
['b2x4x1', m2, 6, 4, 12, 18, 0,0,90],
['b2x4x1', m2, 6, 4, -4, 18, 0,0,90],
['b1x3x1', m3, 6,-12, 4, 18, 0,0,0],
['b1x3x1', m3, 6, 8, 4, 18, 0,0,0],
['b2x4x1', m3, 7, 4, 8, 21, 0,0,90],
['b2x4x1', m2, 7, 4, 0, 21, 0,0,90],
['b1x2x1', m3, 7,-12, 8, 21, 0,0,0],
['b1x2x1', m3, 7, 8, 8, 21, 0,0,0],
['b2x3x1', m2, 8, -4, -8, 24, 0,0,0],
['b2x2x1', m2, 8, 4, -4, 24, 0,0,0],
['b2x2x1', m2, 8,-12, -4, 24, 0,0,0],
['b2x4x1', m2, 8, -4, 4, 24, 0,0,90],
['b2x4x1', m2, 8, 12, 4, 24, 0,0,90],
['b2x4x1', m2, 8, 4, 12, 24, 0,0,90],
['b2x4x1', m2, 9, 4, -8, 27, 0,0,90],
['b2x3x1', m2, 9,-16, 4, 27, 0,0,0],
['b2x3x1', m2, 9, 8, 4, 27, 0,0,0],
['b1x3x1', m2, 9, -4, 16, 27, 0,0,90],
['b1x3x1', m2, 9, 8, 16, 27, 0,0,90],
['l2x2x1', m2, 9,-12, 0, 27, 0,0,180],
['l2x2x1', m2, 9, 8, 0, 27, 0,0,-90],
['b1x2x1', m3, 10, 0, -8, 30, 0,0,90],
['b1x2x1', m3, 10,-12, -4, 30, 0,0,0],
['b1x2x1', m3, 10, 8, -4, 30, 0,0,0],
['b1x4x1', m2, 10,-16, 0, 30, 0,0,0],
['b1x4x1', m2, 10, 12, 0, 30, 0,0,0],
['b2x4x1', m2, 10, 4, -4, 30, 0,0,90],
['b2x3x1', m2, 10, -4, 12, 30, 0,0,90],
['b2x3x1', m2, 10, 8, 12, 30, 0,0,90],
['b1x2x1', m3, 11, -8, -4, 33, 0,0,90],
['b1x2x1', m3, 11, 8, -4, 33, 0,0,90],
['b2x4x1', m2, 11,-16, 0, 33, 0,0,0],
['b2x4x1', m2, 11, 8, 0, 33, 0,0,0],
['b2x3x1', m2, 11, -4, -4, 33, 0,0,0],
['b2x4x1', m2, 11, 4, 12, 33, 0,0,90],
['b2x4x1', m2, 12,-12, 0, 36, 0,0,0],
['b2x4x1', m2, 12, -4, 0, 36, 0,0,0],
['b2x4x1', m2, 12, 4, 0, 36, 0,0,0],
['b2x4x1', m2, 13, 4, 4, 39, 0,0,90],
['b1x2x1', m3, 13,-12, 12, 39, 0,0,90],
['b1x2x1', m3, 13, 8, 12, 39, 0,0,-90],
['b1x2x1', m3, 14,-12, 12, 42, 0,0,90],
['b1x2x1', m3, 14, 8, 12, 42, 0,0,-90],
['c1x1x1', m4, 15,-12, -16, 3, 0,0,0],
['c1x1x1', m4, 15,-12, -16, 6, 0,0,0],
['c1x1x1', m4, 15,-12, -16, 9, 0,0,0],
['c1x1x1', m4, 15,-12, -16, 12, 0,0,0],
['c1x1x1', m4, 15,-12, -16, 15, 0,0,0],
['b1x2x1', m4, 15,-12, -16, 18, 0,0,135],
['c1x1x1', m4, 15,-12, -16, 21, 0,0,0],
['c1x1x1', m4, 16, -8, -20, 3, 0,0,0],
['c1x1x1', m4, 16, -8, -20, 6, 0,0,0],
['c1x1x1', m4, 16, -8, -20, 9, 0,0,0],
['c1x1x1', m4, 16, -8, -20, 12, 0,0,0],
['b1x2x1', m4, 16, -8, -20, 15, 0,0,-135],
['c1x1x1', m4, 16, -8, -20, 18, 0,0,0],
];

View File

@ -0,0 +1,107 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x1bff4c; //зеленый
const m2 = 0xc97e3b; //коричневый
const m3 = 0xffff00; //yellow
const m4 = 0x080808; //black
model_list=[
['b2x4x1', m3, 0, 8, 0, 24, 0,0,90],
['l2x2x1', m3, 0, 4, 8, 24, 0,0,0],
['l2x2x1', m2, 0, 0, 8, 24, 0,0,90],
['b1x3x1', m3, 0, -4, 28, 24, 0,0,0],
['b1x3x1', m3, 0, 8, 28, 24, 0,0,0],
['b1x3x1', m2, 1, -4, 28, 27, 0,0,0],
['b1x3x1', m2, 1, 8, 28, 27, 0,0,0],
['b1x4x1', m2, 1, 8, 0, 27, 0,0,90],
['b1x2x1', m2, 1, -4, 4, 27, 0,0,0],
['b2x8x1', m3, 1, 0, 4, 27, 0,0,0],
['b1x2x1', m2, 1, 8, 4, 27, 0,0,0],
['b2x4x1', m3, 2, 8, 32, 30, 0,0,90],
['l2x2x1', m2, 2, -4, 28, 30, 0,0,-90],
['l2x2x1', m3, 2, 8, 28, 30, 0,0,180],
['b2x4x1', m2, 2, 0, 12, 30, 0,0,0],
['b1x4x1', m2, 2, -4, 0, 30, 0,0,0],
['b2x4x1', m2, 2, 0, -4, 30, 0,0,0],
['b1x4x1', m3, 2, 8, 0, 30, 0,0,0],
['b2x4x1', m2, 3, 8, -4, 33, 0,0,90],
['b2x8x1', m3, 3, -4, 4, 33, 0,0,0],
['b2x8x1', m3, 3, 4, 4, 33, 0,0,0],
['b1x1x1', m3, 3, -4, 36, 33, 0,0,0],
['f1x2x1', m2, 3, 4, 36, 33, 0,0,90],
['b1x1x1', m2, 3, 8, 36, 33, 0,0,90],
['b1x2x1', m3, 4, 4, -4, 36, 0,0,90],
['b2x4x1', m3, 4, -4, 0, 36, 0,0,0],
['b2x4x1', m2, 4, -4, 16, 36, 0,0,0],
['b1x4x1', m2, 4, 8, 32, 36, 0,0,90],
['b2x8x1', m3, 4, 4, 0, 36, 0,0,0],
['b1x3x1', m3, 4, 2, 36, 36, 0,0,0],
['b1x2x1', m2, 5, 4, 0, 39, 0,0,90],
['b2x4x1', m3, 5, 8, 4, 39, 0,0,90],
['b2x4x1', m3, 5, 8, 12, 39, 0,0,90],
['b1x2x1', m3, 5, 4, 20, 39, 0,0,90],
['b2x4x1', m2, 6, 0, 4, 42, 0,0,0],
['b1x2x1', m3, 6, 4, 0, 42, 0,0,90],
['b2x4x1', m2, 7, 0, 0, 45, 0,0,0],
['b2x3x1', m3, 8, 0, 0, 48, 0,0,0],
['b2x2x1', m2, 9, 0, 0, 51, 0,0,0],
['b1x2x1', m2, 10, 4, 0, 54, 0,0,90],
['b1x2x1', m3, 10, 4, 4, 54, 0,0,90],
['b2x3x1', m3, 11, 0, -4, 57, 0,0,0],
['b2x3x1', m3, 12, 0, -8, 60, 0,0,0],
['b2x3x1', m2, 13, 0, -8, 63, 0,0,0],
['b2x4x1', m3, 14, 0,-12, 66, 0,0,0],
['b2x2x1', m3, 15, 0,-16, 69, 0,0,0],
['b2x4x1', m3, 15, 8, -8, 69, 0,0,90],
['b1x2x1', m3, 15, 4, 0, 69, 0,0,90],
['b2x2x1', m2, 15, 0,-24, 69, 0,0,0],
['b2x4x1', m3, 16, 8, -4, 72, 0,0,90],
['b2x4x1', m3, 16, 8,-12, 72, 0,0,90],
['l2x2x1', m3, 16, 0,-16, 72, 0,0,-180],
['l2x2x1', m3, 16, 4,-16, 72, 0,0,-90],
['b2x2x1', m3, 17, 0,-16, 75, 0,0,0],
['b2x4x1', m3, 17, 8, -8, 75, 0,0,90],
['c1x1x1', m4, 17, -4,-12, 75, 0,0,0],
['c1x1x1', m4, 17, 8,-12, 75, 0,0,0],
['b2x4x1', m3, 18, 8,-12, 78, 0,0,90],
['b1x3x1', m3, 18, 0, -4, 78, 0,0,90],
['b1x3x1', m3, 18, 4, -4, 78, 0,0,-90],
['c1x1x1', m2, 19, 0, -4, 81, 0,0,0],
['c1x1x1', m2, 19, 4, -4, 81, 0,0,0],
['c1x1x1', m2, 20, 0, -4, 84, 0,0,0],
['c1x1x1', m2, 20, 4, -4, 84, 0,0,0],
['b1x2x1', m3, 21, 2, 44, 33, 0,0,0],
['b1x1x1', m3, 22, 2, 48, 30, 0,0,0],
['c1x1x1', m2, 23, 2, 48, 27, 0,0,0],
['c1x1x1', m2, 24, 2, 48, 24, 0,0,0],
['b10x10x1', m1, 25,-16, 4, 0, 0,0,0],
['c1x1x1', m4, 26, -4, 8, 3, 0,0,0],
['c1x1x1', m4, 26, 8, 8, 3, 0,0,0],
['c1x1x1', m4, 26, -4, 36, 3, 0,0,0],
['c1x1x1', m4, 26, 8, 36, 3, 0,0,0],
['b1x1x1', m3, 27, -4, 8, 6, 0,0,0],
['b1x1x1', m3, 27, 8, 8, 6, 0,0,0],
['b1x1x1', m3, 27, -4, 36, 6, 0,0,0],
['b1x1x1', m3, 27, 8, 36, 6, 0,0,0],
['b1x1x1', m3, 28, -4, 8, 9, 0,0,0],
['b1x1x1', m3, 28, 8, 8, 9, 0,0,0],
['b1x1x1', m2, 28, -4, 36, 9, 0,0,0],
['b1x1x1', m3, 28, 8, 36, 9, 0,0,0],
['b1x1x1', m2, 29, -4, 8, 12, 0,0,0],
['b1x1x1', m3, 29, 8, 8, 12, 0,0,0],
['b1x1x1', m2, 29, 8, 36, 12, 0,0,0],
['b1x1x1', m3, 29, -4, 36, 12, 0,0,0],
['b1x1x1', m3, 30, -4, 8, 15, 0,0,0],
['b1x1x1', m2, 30, 8, 8, 15, 0,0,0],
['b1x1x1', m3, 30, -4, 36, 15, 0,0,0],
['b1x1x1', m3, 30, 8, 36, 15, 0,0,0],
['b1x1x1', m2, 31, -4, 8, 18, 0,0,0],
['b1x1x1', m3, 31, 8, 8, 18, 0,0,0],
['b1x2x1', m3, 31, -4, 32, 18, 0,0,0],
['b1x2x1', m2, 31, 8, 32, 18, 0,0,0],
['b1x2x1', m2, 32, -4, 4, 21, 0,0,0],
['b1x2x1', m2, 32, 8, 4, 21, 0,0,0],
['b1x2x1', m2, 32, -4, 32, 21, 0,0,0],
['b1x2x1', m2, 32, 8, 32, 21, 0,0,0],
];

View File

@ -0,0 +1,93 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x1bff4c; //зеленый
const m2 = 0xffffff; //белый
const m3 = 0xc97e3b; //коричневый
const m4 = 0xff0000; //красный
const m5 = 0xffa0a0; //розовый
const m6 = 0x080808; //черный
model_list=[
['b10x10x1', m1, 0,-20, -20, 0, 0,0,0],
['b1x2x1', m2, 1,-12,-16, 3, 0,0,0],
['b1x2x1', m2, 1, 8,-16, 3, 0,0,0],
['b1x2x1', m2, 1,-12, 8, 3, 0,0,0],
['b1x2x1', m2, 1, 8, 8, 3, 0,0,0],
['b1x1x1', m2, 2,-12,-12, 6, 0,0,0],
['b1x1x1', m2, 2, 8,-12, 6, 0,0,0],
['b1x3x1', m2, 2,-12, 12, 6, 0,0,0],
['b1x3x1', m2, 2, 8, 12, 6, 0,0,0],
['b2x8x1', m2, 2, -4,-12, 6, 0,0,0],
['b2x3x1', m2, 3, -4,-12, 9, 0,0,90],
['b2x3x1', m2, 3, 8,-12, 9, 0,0,90],
['b2x4x1', m2, 3, -8, -4, 9, 0,0,0],
['b2x4x1', m2, 3, 0, -4, 9, 0,0,0],
['b1x3x1', m2, 3, -4, 12, 9, 0,0,90],
['b1x3x1', m2, 3, 8, 12, 9, 0,0,90],
['b2x3x1', m2, 3, -4, 16, 9, 0,0,90],
['b2x3x1', m2, 3, 8, 16, 9, 0,0,90],
['b2x8x1', m3, 4,-12,-12, 12, 0,0,0],
['b2x8x1', m3, 4, 4,-12, 12, 0,0,0],
['b1x3x1', m3, 4, -4, 20, 12, 0,0,90],
['b1x3x1', m3, 4, 8, 20, 12, 0,0,90],
['b2x4x1', m2, 4, -4,-16, 12, 0,0,0],
['b2x4x1', m3, 5, 4,-16, 15, 0,0,90],
['b1x4x1', m3, 5,-12,-12, 15, 0,0,0],
['b1x1x1', m3, 5,-12, 4, 15, 0,0,0],
['b1x4x1', m3, 5,-12, 8, 15, 0,0,0],
['b2x8x1', m3, 5, -8, -8, 15, 0,0,0],
['b2x8x1', m3, 5, 0, -8, 15, 0,0,0],
['b1x4x1', m3, 5, 8, 8, 15, 0,0,0],
['b1x1x1', m3, 5, 8, 4, 15, 0,0,0],
['b1x4x1', m3, 5, 8,-12, 15, 0,0,0],
['b2x4x1', m2, 6, 4,-16, 18, 0,0,90],
['b1x4x1', m3, 6,-12,-12, 18, 0,0,0],
['b1x4x1', m3, 6, 8,-12, 18, 0,0,0],
['b2x4x1', m3, 6, 4, -4, 18, 0,0,90],
['b2x3x1', m3, 6, -4, 4, 18, 0,0,90],
['b2x3x1', m3, 6, 8, 4, 18, 0,0,90],
['b2x3x1', m3, 6, -4, 12, 18, 0,0,90],
['b2x3x1', m3, 6, 8, 12, 18, 0,0,90],
['b1x4x1', m3, 6, 4, 20, 18, 0,0,90],
['b2x2x1', m2, 7, -4,-20, 21, 0,0,0],
['b1x1x1', m2, 7, -8,-16, 21, 0,0,0],
['b1x1x1', m2, 7, 4,-16, 21, 0,0,0],
['b2x4x1', m4, 7, 4,-12, 21, 0,0,90],
['b2x3x1', m3, 7, -4, -4, 21, 0,0,90],
['b2x3x1', m3, 7, 8, -4, 21, 0,0,90],
['b2x4x1', m3, 7, 4, 4, 21, 0,0,90],
['b2x4x1', m2, 8, -4,-32, 24, 0,0,0],
['b1x2x1', m5, 8, 0,-28, 21, 0,0,90],
['b2x4x1', m2, 9, 4, -4, 24, 0,0,90],
['b2x4x1', m2, 9, 4,-12, 24, 0,0,90],
['l2x2x1', m2, 9, -8,-16, 24, 0,0,-90],
['l2x2x1', m2, 9, 4,-16, 24, 0,0,180],
['f1x2x1', m6, 10, 0,-32, 27, 0,0,90],
['b2x4x1', m2, 10, -4,-28, 27, 0,0,0],
['l2x2x1', m3, 10, 4,-16, 27, 0,0,-90],
['l2x2x1', m3, 10, -8,-16, 27, 0,0,180],
['b1x3x1', m3, 10, -4,-12, 27, 0,0,90],
['b1x3x1', m3, 10, 8,-12, 27, 0,0,90],
['b2x4x1', m2, 10, 4, -8, 27, 0,0,90],
['b1x2x1', m2, 10, 0, 0, 27, 0,0,90],
['b2x2x1', m2, 11, -4,-24, 30, 0,0,0],
['c1x1x1', m6, 11, -8,-20, 30, 0,0,0],
['c1x1x1', m6, 11, 4,-20, 30, 0,0,0],
['b2x3x1', m3, 11, -4,-16, 30, 0,0,90],
['b2x3x1', m3, 11, 8,-16, 30, 0,0,90],
['b2x4x1', m3, 11, 4, -8, 30, 0,0,90],
['b2x2x1', m2, 12, -4,-24, 33, 0,0,0],
['l2x2x1', m3, 12, -8,-16, 33, 0,0,-90],
['l2x2x1', m3, 12, 4,-16, 33, 0,0,-180],
['b2x4x1', m3, 12, 4,-12, 33, 0,0,90],
['b1x4x1', m3, 12, 4, -4, 33, 0,0,90],
['b1x2x1', m2, 13, -4,-16, 36, 0,0,-90],
['b2x2x1', m3, 13, -4,-12, 36, 0,0,0],
['b1x2x1', m3, 13, -8, -8, 36, 0,0,90],
['b1x2x1', m3, 13, 4, -8, 36, 0,0,-90],
['b1x2x1', m3, 14, -8, -8, 39, 0,0,90],
['b1x2x1', m3, 14, 4, -8, 39, 0,0,-90],
['b1x1x1', m3, 15,-12, -8, 42, 0,0,0],
['b1x1x1', m3, 15, 8, -8, 42, 0,0,0],
];

View File

@ -0,0 +1,132 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x080808; //черный
const m2 = 0x808080; //серый
const m3 = 0xffff00; //желтый
const m4 = 0x80ff0000; //прозр. красный
const m5 = 0x80a4c2f4; //прозр. голубой
model_list=[
['b2x2x1', m1, 0,-16,-16, 0, 0,0,0],
['b2x8x1', m1, 0,-16, -8, 0, 0,0,0],
['b2x2x1', m1, 1,-16,-20, 3, 0,0,0],
['b1x2x1', m2, 1,-16,-12, 3, 0,0,0],
['b1x3x1', m2, 1,-12,-12, 3, 0,0,0],
['b2x4x1', m2, 1,-12, 0, 3, 0,0,0],
['l2x2x1', m2, 1,-16, 16, 3, 0,0,-90],
['b2x2x1', m1, 1,-16, 20, 3, 0,0,0],
['b2x8x1', m1, 2,-16,-16, 6, 0,0,0],
['b2x2x1', m1, 2,-16, 16, 6, 0,0,0],
['b2x2x1', m1, 3, 8,-16, 0, 0,0,0],
['b2x8x1', m1, 3, 8, -8, 0, 0,0,0],
['b2x2x1', m1, 4, 8,-20, 3, 0,0,0],
['b1x2x1', m2, 4, 12,-12, 3, 0,0,0],
['b1x3x1', m2, 4, 8,-12, 3, 0,0,0],
['b2x4x1', m2, 4, 4, 0, 3, 0,0,0],
['l2x2x1', m2, 4, 12, 16, 3, 0,0,180],
['b2x2x1', m1, 4, 8, 20, 3, 0,0,0],
['b2x8x1', m1, 5, 8,-16, 6, 0,0,0],
['b2x2x1', m1, 5, 8, 16, 6, 0,0,0],
['b2x4x1', m1, 6, -4, 0, 3, 0,0,0],
['b2x4x1', m2, 7, 4, 0, 6, 0,0,90],
['b2x4x1', m2, 7, 4, 8, 6, 0,0,90],
['c1x1x1', m2, 8, -8, 0, 9, 0,0,0],
['c1x1x1', m2, 8, -8, 12, 9, 0,0,0],
['c1x1x1', m2, 8, 4, 12, 9, 0,0,0],
['c1x1x1', m2, 8, 4, 0, 9, 0,0,0],
['b2x2x1', m1, 8, -4, 4, 9, 0,0,0],
['b1x3x1', m3, 9, 12,-12, 12, 0,0,90],
['b2x8x1', m3, 9, 12, -8, 12, 0,0,90],
['b2x8x1', m3, 9, 12, 0, 12, 0,0,90],
['b2x8x1', m3, 9, 12, 8, 12, 0,0,90],
['b2x8x1', m3, 9, 12, 16, 12, 0,0,90],
['b1x3x1', m3, 9, 8, 24, 12, 0,0,90],
['b1x3x1', m3, 9, -4, 24, 12, 0,0,90],
['b2x3x1', m1, 10, 12,-12, 15, 0,0,90],
['b1x2x1', m2, 10, 0, -8, 15, 0,0,90],
['b1x4x1', m2, 10, -8, -8, 15, 0,0,0],
['b2x8x1', m3, 10,-16, -8, 15, 0,0,0],
['b2x4x1', m3, 10, 4, 8, 15, 0,0,90],
['b2x4x1', m3, 10, 8, -4, 15, 0,0,0],
['b2x3x1', m3, 10, 8, 12, 15, 0,0,0],
['b2x4x1', m1, 10, 4, 20, 15, 0,0,90],
['b1x1x1', m2, 10,-12, 24, 15, 0,0,0],
['b1x1x1', m2, 10, 8, 24, 15, 0,0,0],
['b1x1x1', m4, 11,-16, -8, 18, 0,0,0],
['b1x1x1', m4, 11,-12, 24, 18, 0,0,0],
['b1x1x1', m4, 11, 8, 24, 18, 0,0,0],
['sf2x2x1', m2, 11, -2, 2, 19.5, 0,0,0],
['b1x4x1', m2, 12, -8, -8, 18, 0,0,0],
['b2x3x1', m3, 12,-16, 0, 18, 0,0,0],
['b2x3x1', m3, 12,-16, 12, 18, 0,0,0],
['b2x4x1', m1, 12, 4, 20, 18, 0,0,90],
['b2x4x1', m3, 12, 8, 8, 18, 0,0,0],
['b2x3x1', m1, 12, 12, 0, 18, 0,0,90],
['b2x3x1', m1, 12, 12, -8, 18, 0,0,90],
['b1x3x1', m5, 12, 12,-12, 18, 0,0,90],
['b2x3x1', m3, 13, -8, 0, 21, 0,0,90],
['b1x4x1', m3, 13, -4, 8, 21, 0,0,90],
['b1x4x1', m3, 13, 12, 8, 21, 0,0,90],
['b2x8x1', m3, 13, 12, 12, 21, 0,0,90],
['b2x3x1', m3, 13, -4, 20, 21, 0,0,90],
['b2x3x1', m3, 13, 8, 20, 21, 0,0,90],
['b2x3x1', m1, 13, 12, 0, 21, 0,0,90],
['b2x3x1', m5, 13, 12, -8, 21, 0,0,90],
['b1x3x1', m5, 13, 12,-12, 21, 0,0,90],
['b1x3x1', m5, 14, 12, 4, 24, 0,0,90],
['b1x3x1', m1, 14, 12, 0, 24, 0,0,90],
['b2x3x1', m5, 14, 12, -8, 24, 0,0,90],
['b1x3x1', m5, 14, 12,-12, 24, 0,0,90],
['b1x3x1', m5, 15, 12, 4, 27, 0,0,90],
['b1x3x1', m1, 15, 12, 0, 27, 0,0,90],
['b2x3x1', m5, 15, 12, -8, 27, 0,0,90],
['b1x3x1', m5, 15, 12,-12, 27, 0,0,90],
['b2x3x1', m3, 16, 12,-12, 30, 0,0,90],
['b2x3x1', m3, 16, 12, -4, 30, 0,0,90],
['b1x3x1', m3, 16, 12, 4, 30, 0,0,90],
['b2x4x1', m1, 17, 4, 16, 24, 0,0,90],
['sm2x2x1', m3, 18, -2, 2, 19.5, -15,0,180],
['b2x3x1', m3, 19, -2, 6, 1.5, 0,0,0, 1],
['b2x4x1', m3, 20, -2, 2, 4.5, 0,0,0, 1],
['b2x3x1', m3, 21, -2, 6, 7.5, 0,0,0, 1],
['b2x4x1', m3, 22, -2, 6, 10.5, 0,0,0, 1],
['b2x2x1', m3, 23, -2, 6, 13.5, 0,0,0, 1],
['b2x4x1', m3, 23, -2, 14, 13.5, 0,0,0, 1],
['sf2x2x1', m3, 24, 0, 40, 15, 0,0,-180, 1],
['b2x8x1', m3, 25, -2, 6, 16.5, 0,0,0, 1],
['b1x2x1', m2, 26, 2, 14, 19.5, 0,0,90, 1],
['b1x4x1', m2, 26, 2, 18, 19.5, 0,0,0, 1],
['b1x2x1', m2, 26, 2, 34, 19.5, 0,0,90, 1],
['sm2x2x1', m3, 27, 0, 40, 15, -17,0,0, 1],
['b2x3x1', m3, 28, -2, 6, 1.5, 0,0,0, 2],
['b2x2x1', m3, 28, -2, 18, 1.5, 0,0,0, 2],
['sm2x2x1', m3, 28, 0, 36, 3, 0,0,-180, 2],
['sf2x2x1', m3, 31, 0, 36, 3, 0,0,0, 2],
['b2x2x1', m3, 31, -2, 14, -1.5, 0,0,0, 3],
['b1x4x1', m3, 31, 6, 6, -1.5, 0,0,0, 3],
['b1x4x1', m3, 31, -6, 6, -1.5, 0,0,0, 3],
['b2x4x1', m3, 32, 6, 10, 1.5, 0,0,90, 3],
['b1x2x1', m2, 32, -2, 6, 1.5, 0,0,-90, 3],
['b1x2x1', m2, 33, -6, 10, -4.5, 0,0,0, 3],
['b1x2x1', m2, 33, 6, 10, -4.5, 0,0,0, 3],
['b1x4x1', m2, 33, 6, 18, -4.5, 0,0,90, 3],
['b1x4x1', m3, 33, 6, 6, -4.5, 0,0,90, 3],
['l2x2x1', m2, 34, -6, 18, -7.5, 0,0,-90, 3],
['l2x2x1', m2, 34, 6, 18, -7.5, 0,0,-180, 3],
['b2x8x1', m3, 29, -2, 2, 4.5, 0,0,0, 2],
['b2x4x1', m3, 30, -2, -6, 7.5, 0,0,0, 2],
['b1x4x1', m2, 30, 2, 10, 7.5, 0,0,0, 2],
['l2x2x1', m2, 30, -2, 26, 7.5, 0,0,0, 2],
];
//-41,-12,1
//-90,-17,1
//-90,80,1
model_animat=[
[78,'rotation','x','*1', -0.715584993, -0.20943951, 0.017453293],
[90,'rotation','x','*2', -1.570796327, -0.296705973, 0.017453293],
[94,'rotation','x','*3', -1.570796327, 1.396263402, 0.017453293],
];

View File

@ -0,0 +1,125 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0xff0000; //red
const m2 = 0xffffff; //white
const m3 = 0x808080; //gray
const m4 = 0xffff00; //yellow
const m5 = 0x080808; //black
model_list=[
['b2x3x1', m1, 0, -4,-24, 3, 0,0,-90],
['b2x2x1', m2, 0, -8,-20, 3, 0,0,0],
['b2x2x1', m2, 0, 4,-20, 3, 0,0,0],
['b2x4x1', m1, 0, -8,-12, 3, 0,0,0],
['b2x4x1', m1, 0, 4,-12, 3, 0,0,0],
['b1x2x1', m1, 0, -8, 4, 3, 0,0,90],
['b1x2x1', m1, 0, 12, 4, 3, 0,0,90],
['b1x3x1', m1, 0, -8, 8, 3, 0,0,0],
['b1x3x1', m1, 0, 8, 8, 3, 0,0,0],
['b1x3x1', m3, 0,-12, 8, 3, 0,0,0],
['b1x3x1', m3, 0, 12, 8, 3, 0,0,0],
['b2x4x1', m1, 1,-12, 4, 6, 0,0,0],
['b2x4x1', m1, 1, 8, 4, 6, 0,0,0],
['b1x4x1', m1, 1, 0,-36, 6, 0,0,0],
['b1x4x1', m1, 1, -4,-32, 6, 0,0,0],
['b1x4x1', m1, 1, 4,-32, 6, 0,0,0],
['b1x4x1', m1, 1, -8,-24, 6, 0,0,0],
['b1x4x1', m1, 1, 8,-24, 6, 0,0,0],
['b2x3x1', m1, 1, -8, -8, 6, 0,0,0],
['b2x3x1', m1, 1, 4, -8, 6, 0,0,0],
['b1x1x1', m4, 1, -8,-28, 6, 0,0,0],
['b1x1x1', m4, 1, 8,-28, 6, 0,0,0],
['b2x3x1', m1, 2, 4,-36, 9, 0,0,90],
['b2x3x1', m1, 2, -8,-28, 9, 0,0,0],
['b2x3x1', m1, 2, 4,-28, 9, 0,0,0],
['b1x4x1', m2, 2, -8,-16, 9, 0,0,0],
['b1x4x1', m2, 2, 8,-16, 9, 0,0,0],
['b1x4x1', m2, 2, -8, 0, 9, 0,0,0],
['b1x4x1', m2, 2, 8, 0, 9, 0,0,0],
['b1x2x1', m1, 2, -8, 16, 9, 0,0,0],
['b1x2x1', m1, 2, 8, 16, 9, 0,0,0],
['b2x3x1', m1, 3, 4, 4, 9, 0,0,90],
['b1x3x1', m3, 3, 4, 4, 6, 0,0,90],
['b1x3x1', m3, 3, 4, 8, 6, 0,0,90],
['sf2x2x1', m1, 3, 0, 14, 4.5, 0,0,180],
['b1x4x1', m2, 4, -8, 12, 12, 0,0,0],
['b1x4x1', m2, 4, 8, 12, 12, 0,0,0],
['b2x8x1', m1, 4, -8,-20, 12, 0,0,0],
['b2x8x1', m1, 4, 4,-20, 12, 0,0,0],
['l2x2x1', m5, 4, -8,-24, 12, 0,0,-90],
['l2x2x1', m5, 4, 8,-24, 12, 0,0,-180],
['b2x3x1', m5, 4, 4,-32, 12, 0,0,90],
['l2x2x1', m5, 5, -8,-20, 15, 0,0,-90],
['l2x2x1', m5, 5, 8,-20, 15, 0,0,-180],
['b2x3x1', m5, 5, 4,-28, 15, 0,0,90],
['b1x1x1', m1, 5, -8,-16, 15, 0,0,0],
['b1x1x1', m1, 5, 8,-16, 15, 0,0,0],
['b1x4x1', m5, 5, -8,-12, 15, 0,0,0],
['b1x4x1', m5, 5, 8,-12, 15, 0,0,0],
['b1x4x1', m1, 5, -8, 4, 15, 0,0,0],
['b1x4x1', m1, 5, 8, 4, 15, 0,0,0],
['b2x2x1', m1, 6, -8, 8, 18, 0,0,0],
['b2x2x1', m1, 6, 4, 8, 18, 0,0,0],
['b1x4x1', m5, 6, -8, -8, 18, 0,0,0],
['b1x4x1', m5, 6, 8, -8, 18, 0,0,0],
['b1x1x1', m1, 6, -8,-12, 18, 0,0,0],
['b1x1x1', m1, 6, 8,-12, 18, 0,0,0],
['b2x3x1', m5, 6, 4,-24, 18, 0,0,90],
['l2x2x1', m5, 6, -8,-16, 18, 0,0,-90],
['l2x2x1', m5, 6, 8,-16, 18, 0,0,180],
['b1x3x1', m1, 7, 4,-20, 21, 0,0,90],
['b2x3x1', m1, 7, -8,-16, 21, 0,0,0],
['b2x3x1', m1, 7, 4,-16, 21, 0,0,0],
['b2x3x1', m1, 7, -8, -4, 21, 0,0,0],
['b2x3x1', m1, 7, 4, -4, 21, 0,0,0],
['b1x2x1', m1, 7, -8, 8, 21, 0,0,0],
['b2x4x1', m1, 7, -4, 12, 21, 0,0,-90],
['b1x3x1', m1, 7, -4, 16, 21, 0,0,-90],
['b2x3x1', m1, 8, 4, 0, 24, 0,0,90],
['b2x3x1', m1, 8, 4, -8, 24, 0,0,90],
['b2x3x1', m1, 8, 4,-16, 24, 0,0,90],
['f1x2x1', m3, 9, 0, -4, 27, 0,0,0],
['sm2x2x1', m1, 10, 0, 14, 4.5, 90,90,0],
['b2x8x1', m1, 11, 2, 14, -4.5, 0,0,-90, 1],
['b2x4x1', m1, 11, 42, 10, -4.5, 0,0,0, 1],
['b2x8x1', m1, 12, 46, 10, -1.5, 0,0,90, 1],
['b1x4x1', m1, 12, 46, 18, -1.5, 0,0,0, 1],
['b2x3x1', m1, 12, 14, 10, -1.5, 0,0,90, 1],
['f1x2x1', m3, 12, 42, 18, -1.5, 0,0,0, 1],
['b1x1x1', m3, 13, 42, 20, 1.5, 0,0,45, 1],
['b1x3x1', m3, 14, 0, -4, 3, 0,0,0, 2],
['b1x3x1', m3, 14, 4, 0, 6, 0,0,90, 2],
['b1x2x1', m1, 13, 46, 10, 1.5, 0,0,90, 1],
['b2x8x1', m1, 13, 2, 14, 1.5, 0,0,-90, 1],
['b1x2x1', m1, 15, 46, 10, 4.5, 0,0,90, 1],
['b1x1x1', m1, 15, 46, 10, 7.5, 0,0,90, 1],
['b1x2x1', m1, 15, 46, 10, -7.5, 0,0,90, 1],
['b1x2x1', m5, 16, 0,-28, 0, 0,0,0],
['b1x2x1', m5, 16, 8, 8, 0, 0,0,0],
['b1x2x1', m5, 16, -8, 8, 0, 0,0,0],
['b1x1x1', m1, 18, 0, -2, 36, 0,0,-45],
['b1x3x1', m1, 16, 0, -4, -6, 0,0,0, 1],
['b1x1x1', m1, 17, 0, 4, -3, 0,0,0, 1],
['b1x1x1', m1, 17, 0, -4, -3, 0,0,0, 1],
['b1x3x1', m1, 17, 4, 0, -3, 0,0,90, 1],
['b1x4x1', m3, 18, 0, 4, 0, 0,0,0, 1],
['b1x4x1', m3, 18, -4, 0, 0, 0,0,90, 1],
['b1x4x1', m3, 18, 0, -4, 0, 0,0,180, 1],
['b1x4x1', m3, 18, 4, 0, 0, 0,0,-90, 1],
['b1x3x1', m3, 19, 0, -4, 3, 0,0,0, 1],
['b1x1x1', m3, 19, -4, 0, 3, 0,0,0, 1],
['b1x1x1', m3, 19, 4, 0, 3, 0,0,0, 1],
['b2x8x1', m5, 19, -4, 12, 3, 0,0,0, 1],
['b2x8x1', m5, 19,-12, -4, 3, 0,0,90, 1],
['b2x8x1', m5, 19, 4,-12, 3, 0,0,180, 1],
['b2x8x1', m5, 19, 40, 0, 3, 0,0,90, 1],
['b1x3x1', m4, 20, 4, 0, 6, 0,0,90, 1],
['b1x1x1', m4, 20, 0, -4, 6, 0,0,0, 1],
['b1x1x1', m4, 20, 0, 4, 6, 0,0,0, 1],
];
model_animat=[
[90,'rotation','z','Screw 1', 0,3.141592654,.09817477],
[79,'rotation','z','Screw 2', 0,3.141592654,.09817477],
];

View File

@ -0,0 +1,121 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x1bff4c; //зеленый
const m2 = 0xffffff; //white
const m3 = 0x808080; //gray
const m4 = 0x080808; //black
model_list=[
['b10x10x1', m1, 0,-16, -8, 0, 0,0,0],
['b1x2x1', m2, 1, -4, -8, 3, 0,0,90],
['b1x2x1', m2, 1, 12, -8, 3, 0,0,90],
['b1x2x1', m2, 1, -4, 24, 3, 0,0,90],
['b1x2x1', m2, 1, 12, 24, 3, 0,0,90],
['b2x2x1', m3, 1, -8, -4, 3, 0,0,0],
['b2x2x1', m3, 1, 8, -4, 3, 0,0,0],
['b2x2x1', m3, 1, -8, 28, 3, 0,0,0],
['b2x2x1', m3, 1, 8, 28, 3, 0,0,0],
['b2x3x1', m3, 2, -8, -8, 6, 0,0,0],
['b2x3x1', m3, 2, 8, -8, 6, 0,0,0],
['b2x3x1', m3, 2, -8, 24, 6, 0,0,0],
['b2x3x1', m3, 2, 8, 24, 6, 0,0,0],
['b2x3x1', m3, 3, -8, -8, 9, 0,0,0],
['b2x3x1', m3, 3, 8, -8, 9, 0,0,0],
['b2x3x1', m3, 3, -8, 24, 9, 0,0,0],
['b2x3x1', m3, 3, 8, 24, 9, 0,0,0],
['b2x3x1', m3, 4, -8, -8, 12, 0,0,0],
['b2x3x1', m3, 4, 8, -8, 12, 0,0,0],
['b2x4x1', m3, 4, -8, 20, 12, 0,0,0],
['b2x4x1', m3, 4, 8, 20, 12, 0,0,0],
['b2x4x1', m3, 5, -8, -8, 15, 0,0,0],
['b2x4x1', m3, 5, 8, -8, 15, 0,0,0],
['b2x4x1', m3, 5, -8, 20, 15, 0,0,0],
['b2x4x1', m3, 5, 8, 20, 15, 0,0,0],
['b2x4x1', m3, 5, 8, 12, 15, 0,0,90],
['b1x4x1', m3, 5, 8, 8, 15, 0,0,90],
['b2x8x1', m3, 6, -8, -8, 18, 0,0,0],
['b2x8x1', m3, 6, 0, -4, 18, 0,0,0],
['b2x8x1', m3, 6, 8, -8, 18, 0,0,0],
['b2x3x1', m3, 6, -8, 24, 18, 0,0,0],
['b2x3x1', m3, 6, 8, 24, 18, 0,0,0],
['b2x8x1', m3, 7, -8, -8, 21, 0,0,0],
['b2x3x1', m3, 7, 0, 24, 21, 0,0,90],
['b1x6x1', m3, 7, 12, 32, 21, 0,0,90],
['b2x3x1', m3, 7, 12, 24, 21, 0,0,90],
['b2x8x1', m3, 7, 8, -8, 21, 0,0,0],
['b2x4x1', m3, 7, 0,-12, 21, 0,0,0],
['b2x2x1', m3, 8, 0,-16, 24, 0,0,0],
['b2x4x1', m3, 8, 8, -8, 24, 0,0,90],
['l2x2x1', m3, 8, -8, 0, 24, 0,0,-90],
['l2x2x1', m3, 8, 12, 0, 24, 0,0,180],
['b2x8x1', m3, 8, -8, 4, 24, 0,0,0],
['b2x8x1', m3, 8, 8, 4, 24, 0,0,0],
['f1x2x1', m3, 8, 4, 32, 24, 0,0,90],
['l2x2x1', m3, 9, 0, -8, 27, 0,0,180],
['l2x2x1', m3, 9, 4, -8, 27, 0,0,-90],
['b2x8x1', m3, 9, -8, -4, 27, 0,0,0],
['b2x8x1', m3, 9, 8, -4, 27, 0,0,0],
['b2x2x1', m3, 9, -8, 28, 27, 0,0,0],
['b2x2x1', m3, 9, 8, 28, 27, 0,0,0],
['b1x2x1', m3, 9, 2, 32, 27, 0,0,0],
['b2x4x1', m3, 10, 8, -8, 30, 0,0,90],
['b2x8x1', m3, 10, -8, 0, 30, 0,0,0],
['b2x8x1', m3, 10, 8, 0, 30, 0,0,0],
['b1x4x1', m3, 10, 8, 32, 30, 0,0,90],
['b2x2x1', m3, 11, 0, -8, 33, 0,0,0],
['b2x8x1', m3, 11, -4, 0, 33, 0,0,0],
['b2x8x1', m3, 11, 4, 0, 33, 0,0,0],
['b2x4x1', m3, 12, 0,-32, 24, 0,0,0],
['b1x2x1', m3, 12, -4,-20, 24, 0,0,0],
['b1x2x1', m3, 12, 8,-20, 24, 0,0,0],
['b1x2x1', m3, 13, 4,-32, 27, 0,0,90],
['b2x4x1', m3, 13, 8,-28, 27, 0,0,90],
['b2x4x1', m3, 13, 8,-20, 27, 0,0,90],
['b1x2x1', m2, 13, -8,-32, 27, 0,0,0],
['b1x2x1', m2, 13, 12,-32, 27, 0,0,0],
['b1x2x1', m3, 13, -8,-12, 27, 0,0,75],
['b1x3x1', m3, 14, 0, 0, 3, 0,0,0, 1],
['b1x2x1', m3, 15, 0, 8, 6, 0,0,0, 1],
['b1x3x1', m3, 16, 0, 0, 9, 0,0,0, 1],
['b1x2x1', m3, 16, 0, 12, 9, 0,0,0, 1],
['b1x2x1', m3, 17, 0, 8, 12, 0,0,0, 1],
['b1x3x1', m3, 18, 0, 0, 15, 0,0,0, 1],
['b1x2x1', m3, 13, 12,-12, 27, 0,0,-75],
['b1x3x1', m3, 14, 0, 0, 3, 0,0,0, 1],
['b1x2x1', m3, 15, 0, 8, 6, 0,0,0, 1],
['b1x3x1', m3, 16, 0, 0, 9, 0,0,0, 1],
['b1x2x1', m3, 16, 0, 12, 9, 0,0,0, 1],
['b1x2x1', m3, 17, 0, 8, 12, 0,0,0, 1],
['b1x3x1', m3, 18, 0, 0, 15, 0,0,0, 1],
['b2x2x1', m3, 14, 0,-16, 30, 0,0,0],
['b2x4x1', m3, 14, 0,-32, 30, 0,0,0],
['b2x3x1', m3, 14, -8,-28, 30, 0,0,0],
['b2x3x1', m3, 14, 8,-28, 30, 0,0,0],
['b2x3x1', m3, 15, 0,-16, 33, 0,0,90],
['b2x3x1', m3, 15, 12,-16, 33, 0,0,90],
['b2x3x1', m3, 15, 0,-24, 33, 0,0,90],
['b2x3x1', m3, 15, 12,-24, 33, 0,0,90],
['l2x2x1', m3, 15, 0,-28, 33, 0,0,180],
['l2x2x1', m3, 15, 4,-28, 33, 0,0,-90],
['c1x1x1', m4, 16, -4,-28, 36, 0,0,0],
['c1x1x1', m4, 16, 8,-28, 36, 0,0,0],
['b2x4x1', m3, 16, 0,-28, 36, 0,0,0],
['b2x2x1', m3, 16, -8,-24, 36, 0,0,0],
['b2x2x1', m3, 16, 8,-24, 36, 0,0,0],
['b1x2x1', m3, 16, 4,-12, 36, 0,0,90],
['b2x4x1', m3, 17, 8,-28, 39, 0,0,90],
['b2x3x1', m3, 17, -8,-20, 39, 0,0,0],
['b2x3x1', m3, 17, 0,-20, 39, 0,0,0],
['b2x3x1', m3, 17, 8,-20, 39, 0,0,0],
['b2x3x1', m3, 19, 0,-36, 21, 0,0,0],
['b2x2x1', m3, 20, 0,-36, 18, 0,0,0],
['b2x2x1', m3, 21, 0,-36, 15, 0,0,0],
['b2x2x1', m3, 22, 0,-36, 12, 0,0,0],
//['b2x2x1', m3, 23, 0,-40, 9, 0,0,0],
];
model_animat=[
[67,'rotation','z','*1', 0.49087385,2.15984494,.09817477],
[74,'rotation','z','*2', -2.15984494,-0.49087385,.09817477],
];

View File

@ -0,0 +1,115 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x80000080; //синий прозр.
const m2 = 0x000050; //синий тёмн.
const m3 = 0xffffff; //белый
model_list=[
['b2x2x1', m3, 0, -4,-20, 21, 0,0,0],
['l2x2x1', m3, 0, 4,-16, 21, 0,0,-90],
['l2x2x1', m3, 0, -8,-16, 21, 0,0,-180],
['b2x3x1', m3, 0, -4,-12, 21, 0,0,90],
['b2x3x1', m3, 0, 8,-12, 21, 0,0,90],
['b2x3x1', m2, 0, -4, -4, 21, 0,0,90],
['b2x3x1', m2, 0, 8, -4, 21, 0,0,90],
['b2x4x1', m2, 0, -8, 4, 21, 0,0,90],
['b2x4x1', m2, 0, 16, 4, 21, 0,0,90],
['b2x3x1', m2, 0, -4, 12, 21, 0,0,90],
['b2x3x1', m2, 0, 8, 12, 21, 0,0,90],
['b2x4x1', m3, 0, 4, 20, 21, 0,0,90],
['b1x2x1', m3, 0, 0, 28, 21, 0,0,90],
['b2x4x1', m2, 1, 4,-20, 24, 0,0,90],
['l2x2x1', m2, 1, 8,-12, 24, 0,0,-90],
['l2x2x1', m2, 1,-12,-12, 24, 0,0,-180],
['b2x4x1', m2, 1,-12, 4, 24, 0,0,-180],
['b2x4x1', m2, 1, 12, 4, 24, 0,0,-180],
['b2x2x1', m2, 1,-12, 12, 24, 0,0,-180],
['b2x2x1', m2, 1, 12, 12, 24, 0,0,-180],
['b2x3x1', m2, 1, -4, 16, 24, 0,0,90],
['b2x3x1', m2, 1, 8, 16, 24, 0,0,90],
['l2x2x1', m2, 1, -4, 24, 24, 0,0,90],
['l2x2x1', m2, 1, 0, 24, 24, 0,0,0],
['b1x2x1', m2, 1, 0, 32, 24, 0,0,90],
['b2x8x1', m3, 2, -4,-16, 18, 0,0,0],
['b1x2x1', m3, 2, 4,-12, 18, 0,0,0],
['b1x2x1', m3, 2, -8,-12, 18, 0,0,0],
['b2x3x1', m3, 2, 4, -4, 18, 0,0,0],
['b2x3x1', m3, 2,-12, -4, 18, 0,0,0],
['b2x2x1', m3, 2, 4, 8, 18, 0,0,0],
['b2x2x1', m3, 2,-12, 8, 18, 0,0,0],
['b2x3x1', m3, 2, -4, 16, 18, 0,0,0],
['b1x2x1', m3, 2, 4, 16, 18, 0,0,0],
['b1x2x1', m3, 2, -8, 16, 18, 0,0,0],
['b2x4x1', m2, 3, 4,-20, 27, 0,0,90],
['l2x2x1', m2, 3,-12,-12, 27, 0,0,180],
['l2x2x1', m2, 3, 8,-12, 27, 0,0,-90],
['b2x3x1', m2, 3,-12, 0, 27, 0,0,-180],
['b2x3x1', m2, 3, 12, 0, 27, 0,0,-180],
['b2x3x1', m2, 3,-12, 12, 27, 0,0,-180],
['b2x3x1', m2, 3, 12, 12, 27, 0,0,-180],
['l2x2x1', m2, 3, -8, 16, 27, 0,0,90],
['l2x2x1', m2, 3, 4, 16, 27, 0,0,0],
['b2x4x1', m2, 3, -4, 24, 27, 0,0,0],
['l2x2x1', m2, 4, -8,-16, 30, 0,0,180],
['l2x2x1', m2, 4,-12, -8, 30, 0,0,180],
['l2x2x1', m2, 4, 4,-16, 30, 0,0,-90],
['l2x2x1', m2, 4, 8, -8, 30, 0,0,-90],
['b2x4x1', m2, 4, -4,-20, 30, 0,0,0],
['c1x1x1', m3, 4,-16,-12, 30, 0,0,0],
['c1x1x1', m3, 4, 12,-12, 30, 0,0,0],
['b2x4x1', m2, 4,-16, -4, 30, 0,0,0],
['b2x4x1', m2, 4, 8, -4, 30, 0,0,0],
['l2x2x1', m2, 4,-12, 12, 30, 0,0,90],
['l2x2x1', m2, 4, 8, 12, 30, 0,0,0],
['b2x4x1', m2, 4, 4, 16, 30, 0,0,90],
['b1x2x1', m2, 4, 0, 24, 30, 0,0,90],
['b2x2x1', m2, 4, 0, 36, 30, 0,0,90],
['b2x4x1', m2, 5, 4,-20, 33, 0,0,90],
['l2x2x1', m2, 5,-12,-12, 33, 0,0,-90],
['l2x2x1', m2, 5, 8,-12, 33, 0,0,180],
['b2x4x1', m2, 5,-16, -8, 33, 0,0,0],
['b2x4x1', m2, 5, 8, -8, 33, 0,0,0],
['l2x2x1', m2, 5,-12, 8, 33, 0,0,90],
['l2x2x1', m2, 5, 8, 8, 33, 0,0,0],
['b2x4x1', m2, 5, 4, 12, 33, 0,0,90],
['b1x2x1', m2, 5, 0, 20, 33, 0,0,90],
['b1x2x1', m2, 6, 0,-20, 36, 0,0,90],
['b1x4x1', m2, 6, 4,-16, 36, 0,0,90],
['l2x2x1', m2, 6,-12,-12, 36, 0,0,-90],
['l2x2x1', m2, 6, 8,-12, 36, 0,0,-180],
['b2x4x1', m2, 6,-12, 4, 36, 0,0,-180],
['b2x4x1', m2, 6, 12, 4, 36, 0,0,-180],
['l2x2x1', m2, 6, -8, 8, 36, 0,0,90],
['l2x2x1', m2, 6, 4, 8, 36, 0,0,0],
['b2x2x1', m2, 6, -4, 12, 36, 0,0,0],
['b1x4x1', m2, 7, 4,-16, 39, 0,0,90],
['b2x3x1', m2, 7,-12,-12, 39, 0,0,0],
['b2x3x1', m2, 7, 4,-12, 39, 0,0,0],
['b2x3x1', m2, 7, -4, 0, 39, 0,0,90],
['b2x3x1', m2, 7, 8, 0, 39, 0,0,90],
['b1x4x1', m2, 7, 4, 8, 39, 0,0,90],
['b1x2x1', m2, 7, 0, 12, 39, 0,0,90],
['b2x4x1', m2, 8, 4,-12, 42, 0,0,90],
['l2x2x1', m2, 8, -8, -4, 42, 0,0,0],
['l2x2x1', m2, 8, 4, -4, 42, 0,0,90],
['f1x2x1', m2, 8, 0, 0, 42, 0,0,90],
['b1x2x1', m2, 8, 0, 4, 42, 0,0,90],
['b1x4x1', m2, 9, 4, 40, 33, 0,0,90],
['b1x1x1', m2, 10, -8, 40, 36, 0,0,0],
['b1x1x1', m2, 10, 4, 40, 36, 0,0,0],
['b1x2x1', m2, 11,-20, 8, 18, 0,0,0],
['b1x2x1', m2, 11, 16, 8, 18, 0,0,0],
['b10x10x1', m1, 12,-20,-20, 0, 0,0,0],
['b2x2x1', m1, 13, -4, -4, 3, 0,0,0],
['b2x2x1', m1, 14, -4, -4, 6, 0,0,0],
['b2x2x1', m1, 15, -4, -4, 9, 0,0,0],
['b2x2x1', m1, 16, -4, -4, 12, 0,0,0],
['b2x2x1', m1, 17, -4, -4, 15, 0,0,0],
['b1x1x1', m1, 18, -2, 0, 45, 0,0,0],
['b1x1x1', m1, 19, -2, 0, 48, 0,0,0],
['b1x3x1', m1, 20, 2, 0, 51, 0,0,90],
['b1x3x1', m1, 21, -6, 0, 54, 0,0,90],
['b1x3x1', m1, 21, 2, 0, 54, 0,0,-90],
];

View File

@ -0,0 +1,144 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0xa49121; //темный
const m2 = 0xffdf52; //светлый
const m3 = 0xffffff;
const m4 = 0xffacac; //розовый
const m5 = 0x080808;
model_list=[
['b1x6x1', m1, 0, -4, 4, 18, 0,0,0],
['b1x6x1', m1, 0, 0, 0, 18, 0,0,0],
['b1x4x1', m1, 0, 4, 4, 18, 0,0,0],
['b1x4x1', m1, 0, -8, 4, 18, 0,0,0],
['b1x4x1', m1, 0, -8, -8, 18, 0,0,-90],
['b1x4x1', m2, 0, -8, -4, 18, 0,0,-90],
['b1x1x1', m1, 0,-12, 8, 18, 0,0,0],
['b1x1x1', m1, 0, 8, 8, 18, 0,0,0],
['b1x1x1', m2, 0, 8, 12, 18, 0,0,0],
['b1x1x1', m2, 0, 8, 4, 18, 0,0,0],
['b1x1x1', m2, 0,-12, 12, 18, 0,0,0],
['b1x1x1', m2, 0,-12, 4, 18, 0,0,0],
['u1x2x1', m1, 0, -8, 0, 18, 0,0,90],
['u1x2x1', m1, 0, 4, 0, 18, 0,0,-90],
['b2x4x1', m2, 1, -4, -12, 21, 0,0,0],
['b1x1x1', m1, 1, -8, -8, 21, 0,0,0],
['b1x1x1', m1, 1, 4, -8, 21, 0,0,0],
['b1x2x1', m2, 1, -8, -4, 21, 0,0,90],
['b1x2x1', m2, 1, 8, -4, 21, 0,0,90],
['b1x1x1', m1, 1,-12, 0, 21, 0,0,0],
['b1x1x1', m1, 1, 8, 0, 21, 0,0,0],
['l2x2x1', m2, 1, 4, 4, 21, 0,0,-90],
['l2x2x1', m2, 1, -8, 4, 21, 0,0,180],
['b1x6x1', m1, 1, 8, 8, 21, 0,0,90],
['b1x3x1', m2, 1, 8, 12, 21, 0,0,90],
['b1x3x1', m2, 1, -4, 12, 21, 0,0,90],
['b1x4x1', m1, 1, 4, 16, 21, 0,0,90],
['b1x2x1', m2, 1, 0, 20, 21, 0,0,90],
['b1x1x1', m1, 1, -4, 24, 21, 0,0,0],
['a1x2x2', m1, 2,-12, 0, 24, 0,0,180],
['a1x2x2', m1, 2, 8, 0, 24, 0,0,180],
['a1x2x2', m1, 2, -8, 8, 24, 0,0,90],
['a1x2x2', m1, 2, 4, 8, 24, 0,0,-90],
['a1x2x2', m1, 2, -4, 16, 24, 0,0,90],
['a1x2x2', m1, 2, 0, 16, 24, 0,0,-90],
['a1x2x2', m2, 2, -8, 12, 24, 0,0,90],
['a1x2x2', m2, 2, 4, 12, 24, 0,0,-90],
['b1x1x1', m2, 2, -4, 24, 24, 0,0,0],
['b1x1x1', m2, 2, 8, 4, 24, 0,0,0],
['b1x1x1', m2, 2,-12, 4, 24, 0,0,0],
['b2x4x1', m2, 2, -8, -8, 24, 0,0,0],
['b2x4x1', m2, 2, 0, -8, 24, 0,0,0],
['a1x2x2', m1, 3, -4, -4, 27, 0,0,180],
['a1x2x2', m2, 3, -8, -4, 27, 0,0,180],
['a1x2x2', m1, 3, 0, -4, 27, 0,0,-180],
['a1x2x2', m2, 3, 4, -4, 27, 0,0,180],
['a1x2x2', m1, 3, 4, 0, 27, 0,0,-90],
['a1x2x2', m2, 3, 4, 4, 27, 0,0,-90],
['a1x2x2', m1, 3, -8, 0, 27, 0,0,90],
['a1x2x2', m2, 3, -8, 4, 27, 0,0,90],
['l2x2x1', m1, 3, 0, 8, 27, 0,0,-90],
['l2x2x1', m1, 3, -4, 8, 27, 0,0,180],
['l2x2x1', m2, 3, 0, 12, 27, 0,0,0],
['l2x2x1', m2, 3, -4, 12, 27, 0,0,90],
['b1x1x1', m1, 3, -4, 24, 27, 0,0,0],
['b2x4x1', m1, 4, 4, -4, 30, 0,0,90],
['b1x4x1', m2, 4, 4, 4, 30, 0,0,90],
['b1x2x1', m1, 4, 0, 8, 30, 0,0,90],
['b1x2x1', m2, 4, 0, 12, 30, 0,0,90],
['b1x1x1', m2, 4, -4, 24, 30, 0,0,0],
['b1x1x1', m1, 5, -4, 24, 33, 0,0,0],
['b1x2x1', m2, 6, -4, 24, 36, 0,0,0],
['b1x2x1', m1, 7, -4, 28, 39, 0,0,0],
['u1x2x1', m2, 8, -4, -4, 15, 0,0,90],
['u1x2x1', m2, 8, -8, 4, 15, 0,0,90],
['u1x2x1', m2, 8, 0, -4, 15, 0,0,-90],
['u1x2x1', m2, 8, 4, 4, 15, 0,0,-90],
['b2x2x1', m3, 8, -4, 0, 15, 0,0,0],
['b1x6x1', m1, 8, 8, 8, 15, 0,0,90],
['b1x3x1', m2, 8, -4, 12, 15, 0,0,90],
['b1x3x1', m2, 8, 8, 12, 15, 0,0,90],
['b1x2x1', m1, 8, 0, 16, 15, 0,0,-90],
['l2x2x1', m1, 8, -4, 16, 15, 0,0,90],
['b2x2x1', m3, 9, -4, 4, 12, 0,0,0],
['u1x2x1', m1, 9, -8, 8, 12, 0,0,90],
['u1x2x1', m1, 9, 4, 8, 12, 0,0,-90],
['u1x2x1', m2, 9, -8, 12, 12, 0,0,90],
['u1x2x1', m2, 9, 4, 12, 12, 0,0,-90],
['b1x2x1', m1, 9, 0, 12, 12, 0,0,0],
['b1x2x1', m1, 9, -4, 12, 12, 0,0,0],
['b2x2x1', m3, 10, -4, 8, 9, 0,0,0],
['f1x2x1', m1, 10, -8, 10, 9, 0,0,0],
['f1x2x1', m1, 10, 4, 10, 9, 0,0,0],
['f1x2x1', m2, 11, -8, 10, 6, 0,0,0],
['f1x2x1', m2, 11, 4, 10, 6, 0,0,0],
['b1x1x1', m1, 12, -8, 10, 3, 0,0,45],
['b1x1x1', m1, 12, 4, 10, 3, 0,0,45],
['c2x2x1', m2, 13, -8, 10, 0, 0,0,-135],
['c2x2x1', m2, 13, 4, 10, 0, 0,0,-135],
['b1x1x1', m1, 14, 4, -8, 15, 0,0,0],
['b1x1x1', m1, 14, -8, -8, 15, 0,0,0],
['b1x1x1', m2, 14, 4, -8, 12, 0,0,0],
['b1x1x1', m2, 14, -8, -8, 12, 0,0,0],
['b1x1x1', m1, 14, 4, -8, 9, 0,0,0],
['b1x1x1', m1, 14, -8, -8, 9, 0,0,0],
['b1x1x1', m2, 14, 4, -8, 6, 0,0,0],
['b1x1x1', m2, 14, -8, -8, 6, 0,0,0],
['b1x1x1', m1, 15, 4, -8, 3, 0,0,45],
['b1x1x1', m1, 15, -8, -8, 3, 0,0,45],
['c2x2x1', m2, 15, 4, -8, 0, 0,0,-135],
['c2x2x1', m2, 15, -8, -8, 0, 0,0,-135],
['t2x3x1', m2, 16, -2, -12, 24, 0,0,-90],
['b1x3x1', m2, 16,-10, -22, 24, 0,0,0],
['b1x3x1', m2, 16, 6, -22, 24, 0,0,0],
['f1x3x1', m3, 16, -6, -26, 24, 0,0,0],
['f1x3x1', m3, 16, 2, -26, 24, 0,0,0],
['f1x3x1', m4, 16, -2, -28, 24, 0,0,0],
['f1x3x1', m1, 17,-10, -22, 27, 0,0,0],
['f1x3x1', m1, 17, 6, -22, 27, 0,0,0],
['b1x3x1', m1, 17, 2, -20, 27, 0,0,0],
['l2x2x1', m1, 17, -6, -12, 27, 0,0,-90],
['b1x1x1', m1, 17, -6, -20, 27, 0,0,0],
['f1x2x1', m3, 17, -2, -26, 27, 0,0,0],
['c1x1x1', m5, 17, -6, -24, 27, 0,0,0],
['c1x1x1', m5, 17, 2, -24, 27, 0,0,0],
['c1x1x1', m2, 18, -6, -24, 30, 0,0,0],
['c1x1x1', m2, 18, 2, -24, 30, 0,0,0],
['a1x2x2', m1, 18, -2, -20, 30, 0,0,180],
['a1x2x2', m2, 18, 2, -20, 30, 0,0,-90],
['a1x2x2', m2, 18, -6, -20, 30, 0,0,90],
['b1x6x1', m1, 18, 8, -16, 30, 0,0,90],
['f1x3x1', m2, 18, 2, -12, 30, 0,0,90],
['f1x3x1', m1, 19, 2, -20, 33, 0,0,90],
['a1x2x2', m2, 19,-12, -16, 33, 0,0,-90],
['a1x2x2', m2, 19, 8, -16, 33, 0,0,90],
['b2x2x1', m1, 19, -4, -16, 33, 0,0,0],
['b1x1x1', m1, 20,-12, -16, 36, 0,0,0],
['b1x1x1', m1, 20, 8, -16, 36, 0,0,0],
['u1x2x1', m3, 21, -6, -22, 21, 0,0,90],
['u1x2x1', m3, 21, -6, -18, 21, 0,0,90],
['u1x2x1', m3, 21, 2, -22, 21, 0,0,-90],
['u1x2x1', m3, 21, 2, -18, 21, 0,0,-90],
['f1x2x1', m3, 21, -2, -22, 21, 0,0,0],
['f1x2x1', m3, 21, -4, -26, 21, 0,0,-90],
];

View File

@ -0,0 +1,152 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0xffffff; //белый
const m2 = 0x9e5d1a; //коричневый
const m3 = 0x080808; //черный
const m4 = 0xff8080; //
model_list=[
['b2x3x1', m1, 0, 4, -16, 6, 0,0,90],
['b2x3x1', m1, 0, 0, -8, 6, 0,0,90],
['b2x2x1', m1, 0, 4, -8, 6, 0,0,0],
['b2x3x1', m1, 0, 4, 0, 6, 0,0,90],
['b2x3x1', m1, 0,-12, 4, 6, 0,0,0],
['b2x3x1', m1, 0, 4, 8, 6, 0,0,90],
['b2x3x1', m1, 0, 8, 4, 6, 0,0,0],
['b2x3x1', m1, 0, 8, 16, 6, 0,0,90],
['b2x2x1', m1, 0, -8, 16, 6, 0,0,0],
['b1x3x1', m1, 1, 4, -16, 9, 0,0,90],
['b2x3x1', m1, 1, 0, -12, 9, 0,0,90],
['b2x2x1', m2, 1, 8, -12, 9, 0,0,90],
['b2x2x1', m1, 1, -8, -4, 9, 0,0,0],
['b2x3x1', m1, 1, 8, -4, 9, 0,0,90],
['b2x3x1', m1, 1, -4, 4, 9, 0,0,90],
['b2x3x1', m1, 1, -4, 12, 9, 0,0,90],
['b2x3x1', m1, 1, 12, 4, 9, 0,0,90],
['b2x3x1', m1, 1, 12, 12, 9, 0,0,90],
['b1x1x1', m1, 1, 0, 16, 9, 0,0,0],
['b1x1x1', m1, 1, -8, 20, 9, 0,0,0],
['b1x2x1', m3, 1, 0, 20, 9, 0,0,90],
['b1x2x1', m1, 1, 8, 20, 9, 0,0,90],
['b1x3x1', m1, 2, 0, -20, 12, 0,0,0],
['b1x2x1', m1, 2, -4, -16, 12, 0,0,0],
['b1x2x1', m1, 2, 4, -16, 12, 0,0,0],
['a1x2x2', m3, 2, -8, -8, 12, 0,0,180],
['a1x2x2', m2, 2, 8, -8, 12, 0,0,180],
['t2x3x1', m1, 2, -4, -4, 12, 0,0,180],
['t2x3x1', m1, 2, 4, -4, 12, 0,0,0],
['b2x3x1', m1, 2,-12, 0, 12, 0,0,0],
['b2x3x1', m1, 2, 8, 0, 12, 0,0,0],
['a1x2x3', m3, 2,-12, 12, 12, 0,0,0],
['a1x2x2', m1, 2, -8, 16, 12, 0,0,0],
['a1x2x2', m3, 2, -4, 16, 12, 0,0,0],
['a1x2x2', m3, 2, 0, 16, 12, 0,0,0],
['a1x2x2', m1, 2, 4, 16, 12, 0,0,0],
['a1x2x2', m1, 2, 8, 16, 12, 0,0,0],
['a1x2x3', m2, 2, 12, 12, 12, 0,0,0],
['f1x3x1', m3, 3, 4,-20, 15, 0,0,90],
['f1x3x1', m1, 3, 4,-16, 15, 0,0,90],
['b1x3x1', m1, 3, 4,-12, 15, 0,0,90],
['b1x2x1', m3, 3, -8, -8, 15, 0,0,0],
['b2x2x1', m1, 3, -4, -8, 15, 0,0,0],
['b2x2x1', m2, 3, 4, -8, 15, 0,0,0],
['b2x3x1', m1, 3, -4, 0, 15, 0,0,90],
['b2x3x1', m1, 3, 8, 0, 15, 0,0,90],
['b1x2x1', m3, 3, 12, 0, 15, 0,0,0],
['b2x2x1', m2, 3,-12, 8, 15, 0,0,0],
['b2x3x1', m1, 3, 4, 12, 15, 0,0,90],
['b2x2x1', m1, 3, 8, 8, 15, 0,0,0],
['b1x1x1', m3, 3, -8, 16, 15, 0,0,0],
['b1x1x1', m1, 3, 8, 16, 15, 0,0,0],
['f1x2x1', m1, 4, 2,-16, 18, 0,0,90],
['b1x1x1', m1, 4, -8, -4, 18, 0,0,0],
['a1x3x2', m1, 4, -4, -4, 18, 0,0,180],
['a1x3x2', m1, 4, 0, -4, 18, 0,0,180],
['a1x3x2', m1, 4, 4, -4, 18, 0,0,180],
['b1x1x1', m1, 4, 8, -4, 18, 0,0,0],
['a1x2x2', m1, 4, -8, 0, 18, 0,0,90],
['a1x2x2', m1, 4, -8, 4, 18, 0,0,90],
['a1x2x2', m3, 4, -8, 8, 18, 0,0,90],
['b2x3x1', m1, 4, -4, 0, 18, 0,0,0],
['b1x3x1', m1, 4, 4, 0, 18, 0,0,0],
['a1x2x2', m3, 4, 8, 0, 18, 0,0,-90],
['a1x2x2', m3, 4, 8, 4, 18, 0,0,-90],
['a1x2x2', m1, 4, 8, 8, 18, 0,0,-90],
['b1x1x1', m2, 4,-12, 12, 18, 0,0,0],
['b1x1x1', m1, 4, 12, 12, 18, 0,0,0],
['a1x2x2', m2, 4, -8, 12, 18, 0,0,0],
['a1x2x2', m2, 4, -4, 12, 18, 0,0,0],
['a1x2x2', m3, 4, 0, 12, 18, 0,0,0],
['a1x2x2', m3, 4, 4, 12, 18, 0,0,0],
['a1x2x2', m1, 4, 8, 12, 18, 0,0,0],
['b1x1x1', m2, 5, -8, 0, 21, 0,0,0],
['b2x2x1', m2, 5, -4, -4, 21, 0,0,0],
['b1x1x1', m1, 5, 4, -4, 21, 0,0,0],
['b1x2x1', m3, 5, 8, 0, 21, 0,0,90],
['b1x2x1', m3, 5, 8, 4, 21, 0,0,90],
['b1x2x1', m1, 5, -4, 4, 21, 0,0,90],
['b1x3x1', m1, 5, 0, 4, 21, 0,0,0],
['b2x2x1', m2, 5, -8, 8, 21, 0,0,0],
['b2x2x1', m1, 5, 4, 8, 21, 0,0,0],
['b1x2x1', m1, 6, 4, -12, 3, 0,0,0],
['b1x3x1', m1, 6, 0, -16, 3, 0,0,0],
['b1x2x1', m1, 6, -4, -12, 3, 0,0,0],
['b2x3x1', m1, 6, 4, 4, 3, 0,0,90],
['b1x3x1', m1, 6, 8, 8, 3, 0,0,0],
['b1x3x1', m1, 6, 4, 12, 3, 0,0,0],
['b1x2x1', m1, 6, 0, 12, 3, 0,0,0],
['a1x2x2', m2, 6, 0, 20, 3, 0,0,0],
['b1x3x1', m1, 6, -4, 12, 3, 0,0,0],
['b1x3x1', m1, 6, -8, 8, 3, 0,0,0],
['u1x2x1', m1, 7, -4,-30, 6, 0,0,90],
['u1x2x1', m1, 7, -4,-26, 6, 0,0,90],
['b1x3x1', m1, 8, -8,-30, 9, 0,0,0],
['f1x3x1', m1, 8, -4,-34, 9, 0,0,0],
['f1x3x1', m3, 9, -8,-30, 12, 0,0,0],
['b1x3x1', m1, 9, -4,-28, 12, 0,0,0],
['c1x1x1', m3, 10, -4,-32, 12, 0,0,0],
['c1x1x1', m3, 10, -4,-32, 15, 0,0,0],
['f1x2x1', m1, 11, 2,-34, 6, 0,0,90],
['f1x3x1', m1, 11, 0,-30, 6, 0,0,0],
['f1x3x1', m4, 12, 0,-36, 9, 0,0,0],
['t2x3x1', m1, 12, 0,-20, 9, 0,0,-90],
['f1x2x1', m1, 13, 0,-34, 12, 0,0,0],
['a1x2x2', m2, 13, 0,-28, 15, 0,0,180],
['u1x2x1', m1, 14, 4,-30, 6, 0,0,-90],
['u1x2x1', m1, 14, 4,-26, 6, 0,0,-90],
['b1x3x1', m1, 15, 8,-30, 9, 0,0,0],
['f1x3x1', m1, 15, 4,-34, 9, 0,0,0],
['f1x3x1', m2, 16, 8,-30, 12, 0,0,0],
['b1x3x1', m1, 16, 4,-28, 12, 0,0,0],
['c1x1x1', m3, 17, 4,-32, 12, 0,0,0],
['c1x1x1', m2, 17, 4,-32, 15, 0,0,0],
['a1x2x2', m3, 18, -4,-28, 15, 0,0,90],
['a1x2x2', m2, 18, 4,-28, 15, 0,0,-90],
['b1x3x1', m2, 18, -2,-24, 15, 0,0,90],
['b1x3x1', m3, 18, 10,-24, 15, 0,0,90],
['f1x3x1', m3, 19, 4,-28, 18, 0,0,90],
['b1x2x1', m3, 19, 2,-24, 18, 0,0,90],
['a1x2x2', m3, 19, 10,-24, 18, 0,0,90],
['a1x2x2', m2, 19,-10,-24, 18, 0,0,-90],
['b1x1x1', m3, 20, 10,-24, 21, 0,0,0],
['b1x1x1', m3, 20,-10,-24, 21, 0,0,0],
['b1x1x1', m2, 21, 10,-24, 24, 0,0,0],
['b1x1x1', m2, 21,-10,-24, 24, 0,0,0],
['c1x3x1', m1, 22, 4,-20, 0, 0,0,0],
['c1x3x1', m1, 22, -4,-20, 0, 0,0,0],
['c1x4x1', m1, 22, 8, 0, 0, 0,0,0],
['c1x4x1', m1, 22, -8, 0, 0, 0,0,0],
['b2x3x1', m1, 22, 4, 8, 0, 0,0,90],
['t2x3x1', m1, 22, 0, 16, 0, 0,0,90],
['c1x3x1', m2, 22, 0, 24, 0, 0,0,-45],
['c1x4x1', m3, 23, 0, 8, 3, 0,0,-45, 1],
['c1x4x1', m3, 23, 0, 12, -3, 0,0,-45, 2],
['c1x4x1', m3, 23, 0, 12, 3, 0,0,-45, 3],
];
model_animat=[
[132,'rotation','z','*1', -0.883572934,0.883572934,.09817477],
[133,'rotation','z','*2', -0.883572934,0.883572934,.09817477],
[134,'rotation','z','*3', -0.883572934,0.883572934,.09817477],
[135,'rotation','z','*4', -0.883572934,0.883572934,.09817477],
];

View File

@ -0,0 +1,324 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1 = 0x80000080; //синий
const m2 = 0xffd14a; //16765258 //желт.
const m3 = 0x844a00; //8669696 //коричн.
const m4 = 0x1bff4c; //зеленый
const m5 = 0xff0000; //красный
const m6 = 0x126a2b; //зеленый тёмн.
const m7 = 0xffffff; //белый
const m8 = 0xfc8031; //оранжевый
const m9 = 0x808080; //серый
const m10 = 0x000040; //синий тёмн.
const m11 = 0x90c7fe; //голубой
model_list=[
['b20x20x1', m1, 0,-40, -40, 0, 0,0,0],
['b1x4x1', m2, 1,-28, 36, 3, 0,0,90],
['b1x4x1', m2, 1,-28, 32, 3, 0,0,90],
['b1x4x1', m2, 1,-28, 28, 3, 0,0,90],
['b1x4x1', m2, 1,-40, 12, 3, 0,0,0],
['b1x2x1', m2, 1,-40, 4, 3, 0,0,0],
['b2x8x1', m2, 1,-12, -4, 3, 0,0,90],
['b1x4x1', m2, 1,-24, -8, 3, 0,0,90],
['c1x1x1', m3, 1, -8, 0, 3, 0,0,0],
['c1x1x1', m3, 1, -8, 4, 3, 0,0,0],
['b1x2x1', m2, 1,-12, 4, 3, 0,0,0],
['b1x4x1', m2, 1,-12, 12, 3, 0,0,0],
['b1x4x1', m2, 1,-12, 28, 3, 0,0,90],
['b2x8x1', m2, 1, 4, 32, 3, 0,0,90],
['b2x8x1', m2, 1, 36, 32, 3, 0,0,90],
['b2x8x1', m4, 2, 36, 24, 3, 0,0,90],
['b1x2x1', m4, 2, 4, 24, 3, 0,0,0],
['b1x2x1', m4, 2, 0, 24, 3, 0,0,0],
['b1x2x1', m4, 2, -4, 24, 3, 0,0,0],
['b1x4x1', m4, 2, -4, 8, 3, 0,0,0],
['b1x2x1', m4, 2, 4, 8, 3, 0,0,90],
['b1x2x1', m4, 2, 4, 20, 3, 0,0,90],
['b1x2x1', m2, 2, -8, 24, 3, 0,0,0],
['b1x4x1', m2, 2, -8, 8, 3, 0,0,0],
['c1x1x1', m3, 2, 4, 4, 3, 0,0,0],
['c1x1x1', m3, 2, 4, 0, 3, 0,0,0],
['b2x8x1', m2, 2, 36, 4, 3, 0,0,90],
['b1x4x1', m2, 2, 20, 0, 3, 0,0,90],
['b1x3x1', m3, 2, 32, 0, 3, 0,0,90],
['b2x8x1', m4, 2, 36, 12, 3, 0,0,90],
['b1x2x1', m4, 2, 36, 20, 3, 0,0,90],
['b1x4x1', m4, 3, 36, 36, 6, 0,0,90],
['c1x1x1', m5, 3, 32, 32, 6, 0,0,0],
['b1x4x1', m4, 3, 20, 36, 6, 0,0,90],
['b1x4x1', m4, 3, 4, 36, 6, 0,0,90],
['b1x4x1', m4, 3,-12, 36, 6, 0,0,90],
['b1x4x1', m4, 3, -4, 8, 6, 0,0,90],
['b1x4x1', m4, 3, -28,36, 6, 0,0,90],
['b2x8x1', m4, 3,-40, 0, 6, 0,0,0],
['b2x8x1', m4, 3,-32, 0, 6, 0,0,0],
['b2x8x1', m4, 3,-24, 0, 6, 0,0,0],
['b2x8x1', m4, 3,-16, 0, 6, 0,0,0],
['b1x4x1', m4, 3,-24, -4, 6, 0,0,90],
['b1x4x1', m3, 4, 4, 0, 6, 0,0,90],
['b1x4x1', m3, 4, 4, 4, 6, 0,0,90],
['b1x4x1', m4, 4, 0, 8, 6, 0,0,0],
['b1x4x1', m4, 4, 4, 8, 6, 0,0,0],
['b1x2x1', m4, 4, 4, 24, 6, 0,0,90],
['b2x8x1', m4, 4, 36, 20, 6, 0,0,90],
['b1x2x1', m6, 4, 8, 12, 6, 0,0,0],
['b1x2x1', m7, 4, 12, 12, 6, 0,0,0],
['b1x2x1', m7, 4, 20, 16, 6, 0,0,90],
['b1x3x1', m7, 4, 24, 8, 6, 0,0,0],
['b1x1x1', m3, 4, 20, 8, 6, 0,0,90],
['b1x2x1', m7, 4, 16, 8, 6, 0,0,90],
['c1x1x1', m6, 5, 8, 12, 9, 0,0,0],
['c1x1x1', m6, 5, 8, 16, 9, 0,0,0],
['b1x2x1', m7, 5, 16, 16, 9, 0,0,90],
['b1x2x1', m7, 5, 24, 16, 9, 0,0,90],
['b1x1x1', m1, 5, 24, 12, 9, 0,0,0],
['b1x1x1', m7, 5, 24, 8, 9, 0,0,0],
['b1x1x1', m3, 5, 20, 8, 9, 0,0,0],
['b1x1x1', m1, 5, 16, 8, 9, 0,0,0],
['b1x2x1', m7, 5, 12, 8, 9, 0,0,0],
['b1x4x1', m8, 6, 12, 6, 12, 0,0,0],
['b1x4x1', m8, 6, 24, 6, 12, 0,0,0],
['b1x2x1', m7, 6, 20, 8, 12, 0,0,90],
['b1x2x1', m7, 6, 20, 16, 12, 0,0,90],
['b1x4x1', m8, 7, 16, 6, 15, 0,0,0],
['b1x4x1', m8, 7, 20, 6, 15, 0,0,0],
['c1x1x1', m3, 8, 32, 8, 6, 0,0,0],
['b1x2x1', m6, 8, 32, 8, 9, 0,0,-90],
['b1x2x1', m6, 8, 32, 8, 12, 0,0,-30],
['b1x2x1', m6, 8, 32, 8, 15, 0,0,30],
['b1x2x1', m6, 8, 32, 8, 18, 0,0,-30],
['c1x1x1', m2, 9, 32, 32, 9, 0,0,0],
['c1x1x1', m6, 9, 8, 36, 9, 0,0,0],
['c1x1x1', m6, 9, 4, 36, 9, 0,0,0],
['c1x1x1', m6, 9,-12, 36, 9, 0,0,0],
['c1x1x1', m6, 9,-36, 36, 9, 0,0,0],
['c1x1x1', m6, 9,-40, 36, 9, 0,0,0],
['c1x1x1', m6, 9,-40, 0, 9, 0,0,0],
['c1x1x1', m6, 9,-16, 0, 9, 0,0,0],
['c1x1x1', m6, 9,-12, 0, 9, 0,0,0],
['b1x2x1', m7, 10,-20, 4, 9, 0,0,90],
['b1x2x1', m7, 10,-16, 8, 9, 0,0,90],
['b1x1x1', m7, 10,-16, 12, 9, 0,0,0],
['b1x2x1', m6, 10,-16, 16, 9, 0,0,90],
['b1x2x1', m7, 10,-16, 20, 9, 0,0,90],
['b1x2x1', m7, 10,-20, 24, 9, 0,0,90],
['b1x2x1', m7, 10,-28, 24, 9, 0,0,90],
['b1x2x1', m7, 10,-32, 20, 9, 0,0,90],
['b1x2x1', m7, 10,-36, 12, 9, 0,0,0],
['b1x2x1', m7, 10,-32, 8, 9, 0,0,90],
['b1x2x1', m7, 10,-28, 4, 9, 0,0,90],
['b1x1x1', m7, 11,-24, 4, 12, 0,0,0],
['b1x2x1', m7, 11,-20, 4, 12, 0,0,0],
['b1x1x1', m7, 11,-16, 8, 12, 0,0,0],
['b1x1x1', m1, 11,-16, 12, 12, 0,0,0],
['b1x2x1', m6, 11,-16, 16, 12, 0,0,90],
['b1x1x1', m7, 11,-16, 20, 12, 0,0,0],
['b1x2x1', m7, 11,-20, 20, 12, 0,0,0],
['b1x2x1', m7, 11,-24, 24, 12, 0,0,90],
['b1x2x1', m7, 11,-32, 20, 12, 0,0,0],
['b1x2x1', m7, 11,-36, 16, 12, 0,0,0],
['b1x2x1', m7, 11,-36, 8, 12, 0,0,0],
['b1x2x1', m7, 11,-32, 4, 12, 0,0,0],
['b1x1x1', m1, 11,-28, 4, 12, 0,0,0],
['b2x4x1', m9, 12,-20, 4, 15, 0,0,0],
['b2x4x1', m9, 12,-16, 20, 15, 0,0,90],
['b2x4x1', m9, 12,-32, 24, 15, 0,0,180],
['b2x4x1', m9, 12,-36, 8, 15, 0,0,-90],
['b2x4x1', m9, 13,-16, 8, 18, 0,0,0],
['b1x4x1', m9, 13,-20, 8, 18, 0,0,0],
['b1x1x1', m9, 13,-16, 24, 18, 0,0,0],
['b2x4x1', m9, 13,-20, 24, 18, 0,0,90],
['b1x1x1', m9, 13,-36, 24, 18, 0,0,0],
['b2x4x1', m9, 13,-40, 8, 18, 0,0,0],
['b1x4x1', m9, 13,-32, 8, 18, 0,0,0],
['b1x1x1', m9, 13,-36, 4, 18, 0,0,0],
['b2x4x1', m9, 13,-20, 0, 18, 0,0,90],
['b1x1x1', m9, 13,-16, 4, 18, 0,0,0],
['b1x2x1', m9, 14,-20, 4, 21, 0,0,0],
['b1x4x1', m9, 14,-16, 8, 21, 0,0,0],
['b1x2x1', m9, 14,-20, 20, 21, 0,0,0],
['b1x2x1', m9, 14,-24, 24, 21, 0,0,90],
['b1x2x1', m9, 14,-32, 20, 21, 0,0,0],
['b1x4x1', m9, 14,-36, 8, 21, 0,0,0],
['b1x2x1', m9, 14,-32, 4, 21, 0,0,0],
['b1x2x1', m9, 14,-24, 4, 21, 0,0,90],
['b1x2x1', m9, 15,-16, 8, 24, 0,0,90],
['f1x2x1', m9, 15,-16, 12, 24, 0,0,0],
['b1x2x1', m9, 15,-16, 20, 24, 0,0,90],
['b1x4x1', m9, 15,-20, 24, 24, 0,0,90],
['b1x2x1', m9, 15,-32, 20, 24, 0,0,90],
['f1x2x1', m9, 15,-36, 12, 24, 0,0,0],
['b1x2x1', m9, 15,-32, 8, 24, 0,0,90],
['b1x4x1', m9, 15,-20, 4, 24, 0,0,90],
['b1x4x1', m9, 16,-20, 4, 27, 0,0,90],
['b1x4x1', m9, 16,-20, 8, 27, 0,0,0],
['b1x1x1', m9, 16,-16, 8, 27, 0,0,0],
['b1x1x1', m7, 16,-16, 14, 27, 0,0,0],
['b1x1x1', m9, 16,-16, 20, 27, 0,0,0],
['b1x4x1', m9, 16,-20, 24, 27, 0,0,90],
['b1x4x1', m9, 16,-32, 8, 27, 0,0,0],
['b1x1x1', m9, 16,-36, 20, 27, 0,0,0],
['b1x1x1', m7, 16,-36, 14, 27, 0,0,0],
['b1x1x1', m9, 16,-36, 8, 27, 0,0,0],
['b1x2x1', m9, 17,-20, 4, 30, 0,0,0],
['b1x4x1', m9, 17,-16, 8, 30, 0,0,0],
['b1x2x1', m9, 17,-20, 20, 30, 0,0,0],
['b1x2x1', m9, 17,-24, 24, 30, 0,0,90],
['b1x2x1', m9, 17,-32, 20, 30, 0,0,0],
['b1x4x1', m9, 17,-36, 8, 30, 0,0,0],
['b1x2x1', m9, 17,-32, 4, 30, 0,0,0],
['b1x2x1', m9, 17,-24, 4, 30, 0,0,90],
['b1x2x1', m9, 18,-16, 8, 33, 0,0,90],
['f1x2x1', m9, 18,-16, 12, 33, 0,0,0],
['b1x2x1', m9, 18,-16, 20, 33, 0,0,90],
['b1x4x1', m9, 18,-20, 24, 33, 0,0,90],
['b1x2x1', m9, 18,-32, 20, 33, 0,0,90],
['f1x2x1', m9, 18,-36, 12, 33, 0,0,0],
['b1x2x1', m9, 18,-32, 8, 33, 0,0,90],
['b1x4x1', m9, 18,-20, 4, 33, 0,0,90],
['b1x2x1', m9, 19,-20, 4, 36, 0,0,0],
['b1x4x1', m9, 19,-16, 8, 36, 0,0,0],
['b1x2x1', m9, 19,-20, 20, 36, 0,0,0],
['b1x2x1', m9, 19,-24, 24, 36, 0,0,90],
['b1x2x1', m9, 19,-32, 20, 36, 0,0,0],
['b1x4x1', m9, 19,-36, 8, 36, 0,0,0],
['b1x2x1', m9, 19,-32, 4, 36, 0,0,0],
['b1x2x1', m9, 19,-24, 4, 36, 0,0,90],
['b1x2x1', m9, 20,-16, 8, 39, 0,0,90],
['f1x2x1', m9, 20,-16, 12, 39, 0,0,0],
['b1x2x1', m9, 20,-16, 20, 39, 0,0,90],
['b1x4x1', m9, 20,-20, 24, 39, 0,0,90],
['b1x2x1', m9, 20,-32, 20, 39, 0,0,90],
['f1x2x1', m9, 20,-36, 12, 39, 0,0,0],
['b1x2x1', m9, 20,-32, 8, 39, 0,0,90],
['b1x4x1', m9, 20,-20, 4, 39, 0,0,90],
['b1x4x1', m9, 21,-20, 4, 42, 0,0,90],
['f1x2x1', m9, 21,-20, 16, 42, 0,0,0],
['b1x2x1', m9, 21,-16, 8, 42, 0,0,90],
['b1x1x1', m7, 21,-16, 14, 42, 0,0,0],
['b1x1x1', m9, 21,-16, 20, 42, 0,0,0],
['b1x4x1', m9, 21,-20, 24, 42, 0,0,90],
['f1x2x1', m9, 21,-32, 16, 42, 0,0,0],
['b1x1x1', m9, 21,-36, 20, 42, 0,0,0],
['b1x1x1', m7, 21,-36, 14, 42, 0,0,0],
['b1x2x1', m9, 21,-32, 8, 42, 0,0,90],
['b1x1x1', m9, 22,-20, 8, 45, 0,0,0],
['b1x4x1', m9, 22,-16, 8, 45, 0,0,0],
['b1x1x1', m10, 22,-20, 24, 45, 0,0,0],
['f1x2x1', m10, 22,-24, 24, 45, 0,0,0],
['f1x2x1', m10, 22,-28, 24, 45, 0,0,0],
['b1x1x1', m10, 22,-32, 24, 45, 0,0,0],
['b1x4x1', m9, 22,-36, 8, 45, 0,0,0],
['b1x1x1', m9, 22,-32, 8, 45, 0,0,0],
['f1x2x1', m9, 22,-20, 4, 45, 0,0,90],
['f1x2x1', m9, 22,-28, 4, 45, 0,0,90],
['b1x2x1', m9, 23,-24, 18, 42, 0,0,90],
['f1x2x1', m9, 23,-28, 18, 45, 0,0,90],
['f1x2x1', m9, 23,-20, 18, 45, 0,0,90],
['f1x2x1', m10, 24,-20, 24, 48, 0,0,0],
['b1x2x1', m10, 24,-24, 26, 48, 0,0,0],
['b1x2x1', m10, 24,-28, 26, 48, 0,0,0],
['f1x2x1', m10, 24,-32, 24, 48, 0,0,0],
['b1x3x1', m10, 24,-22, 18, 48, 0,0,90],
['b2x4x1', m10, 24,-40, 8, 48, 0,0,0],
['b2x4x1', m10, 24,-16, 8, 48, 0,0,0],
['b1x3x1', m10, 24,-22, 4, 48, 0,0,90],
['b2x4x1', m10, 25,-20, 26, 51, 0,0,90],
['b1x1x1', m10, 25,-22, 18, 51, 0,0,0],
['b1x1x1', m10, 25,-30, 18, 51, 0,0,0],
['b1x1x1', m10, 25,-40, 8, 51, 0,0,0],
['b1x1x1', m10, 25,-36, 8, 51, 0,0,0],
['b1x2x1', m10, 25,-40, 12, 51, 0,0,0],
['b1x4x1', m10, 25,-36, 12, 51, 0,0,0],
['b1x1x1', m10, 25,-16, 8, 51, 0,0,0],
['b1x1x1', m10, 25,-12, 8, 51, 0,0,0],
['b1x2x1', m10, 25,-12, 12, 51, 0,0,0],
['b1x4x1', m10, 25,-16, 12, 51, 0,0,0],
['b1x2x1', m10, 25,-22, 4, 51, 0,0,-90],
['b1x2x1', m10, 25,-30, 4, 51, 0,0,90],
['b1x1x1', m10, 26,-18, 4, 48, 0,0,0],
['b1x1x1', m10, 26,-34, 4, 48, 0,0,0],
['b1x2x1', m10, 27,-24, 30, 54, 0,0,90],
['b1x4x1', m10, 27,-20, 26, 54, 0,0,90],
['b1x1x1', m10, 27,-22, 18, 54, 0,0,0],
['b1x1x1', m10, 27,-30, 18, 54, 0,0,0],
['b1x3x1', m10, 27,-40, 8, 54, 0,0,-90],
['b1x3x1', m10, 27,-12, 8, 54, 0,0,90],
['f1x2x1', m10, 27,-22, 4, 54, 0,0,-90],
['f1x2x1', m10, 27,-30, 4, 54, 0,0,90],
['b1x4x1', m10, 27,-36, 12, 54, 0,0,0],
['b1x4x1', m10, 27,-16, 12, 54, 0,0,0],
['b1x1x1', m10, 27,-40, 12, 54, 0,0,0],
['b1x1x1', m10, 27,-12, 12, 54, 0,0,0],
['c1x1x1', m3, 28,-26, 20, 55, 90,0,45],
['f1x2x1', m7, 28, 0, -2, -3, 0,0,0, 1],
['c1x1x1', m3, 28, 0, 0, 3, 0,0,0, 1],
['c1x1x1', m3, 28, 0, 0, 6, 0,0,0, 1],
['c1x1x1', m3, 28, 0, 0, 9, 0,0,0, 1],
['c1x1x1', m3, 28, 0, 0, 12, 0,0,0, 1],
['c1x1x1', m3, 28, 0, 0, 15, 0,0,0, 1],
['b1x3x1', m3, 29, -4, -4, 18, 0,0,0, 1],
['b1x3x1', m3, 29, 0, -4, 18, 0,0,0, 1],
['b1x3x1', m3, 29, 4, -4, 18, 0,0,0, 1],
['b1x4x1', m3, 30, 0, 4, 21, 0,0,0, 1],
['b1x4x1', m3, 30, 0,-16, 21, 0,0,0, 1],
['b1x4x1', m3, 30, 4, 0, 21, 0,0,-90, 1],
['b1x4x1', m3, 30, -4, 0, 21, 0,0,90, 1],
['b1x1x1', m3, 30, 4, 4, 21, 0,0,0, 1],
['b1x1x1', m3, 30, 4, -4, 21, 0,0,0, 1],
['b1x1x1', m3, 30, -4, -4, 21, 0,0,0, 1],
['b1x1x1', m3, 30, -4, 4, 21, 0,0,0, 1],
['b1x1x1', m3, 30, 0, 0, 21, 0,0,0, 1],
['b1x3x1', m3, 31, 4, -4, 24, 0,0,90, 1],
['b1x3x1', m3, 31, 4, 0, 24, 0,0,90, 1],
['b1x3x1', m3, 31, 4, 4, 24, 0,0,90, 1],
['b2x8x1', m7, 31, 0, 12, 24, 0,0,0, 1],
['b2x8x1', m7, 31, 12, 0, 24, 0,0,-90, 1],
['b2x8x1', m7, 31, 0,-12, 24, 0,0,-180, 1],
['b2x8x1', m7, 31,-12, 0, 24, 0,0,90, 1],
['c1x1x1', m5, 32, 0, 0, 27, 0,0,0, 1],
['b1x1x1', m10, 33,-16, 8, 57, 0,0,0],
['b1x4x1', m10, 33,-16, 12, 57, 0,0,0],
['b1x4x1', m10, 33,-20, 4, 57, 0,0,90],
['b1x4x1', m10, 33,-20, 8, 57, 0,0,90],
['b1x4x1', m10, 33,-36, 12, 57, 0,0,0],
['b1x4x1', m10, 33,-20, 18, 57, 0,0,90],
['b1x1x1', m10, 33,-36, 8, 57, 0,0,0],
['b2x4x1', m10, 33,-20, 26, 57, 0,0,90],
['b1x3x1', m10, 34,-16, 8, 60, 0,0,0],
['b2x4x1', m10, 34,-20, 22, 60, 0,0,90],
['b1x4x1', m10, 34,-20, 18, 60, 0,0,90],
['b1x3x1', m10, 34,-36, 8, 60, 0,0,0],
['f1x2x1', m10, 34,-32, 4, 60, 0,0,0],
['f1x2x1', m10, 34,-28, 4, 60, 0,0,0],
['f1x2x1', m10, 34,-24, 4, 60, 0,0,0],
['f1x2x1', m10, 34,-20, 4, 60, 0,0,0],
['b2x4x1', m10, 35,-24, 6, 63, 0,0,0],
['b2x4x1', m10, 35,-32, 6, 63, 0,0,0],
['b1x2x1', m2, 36,-36, -40, 3, 0,0,90],
['b1x4x1', m2, 36,-20, -40, 3, 0,0,90],
['b1x4x1', m2, 36,-28, -36, 3, 0,0,90],
['b1x4x1', m6, 37,-28, -40, 6, 0,0,90],
['c1x1x1', m4, 37,-40, -36, 6, 0,0,0],
['c1x1x1', m4, 37,-36, -36, 6, 0,0,0],
['c1x1x1', m4, 37,-24, -40, 6, 0,0,0],
['f1x2x1', m5, 38, 0,-24, 3, 0,0,0],
['b2x4x1', m5, 38, 16, 0, 0, 0,0,90, 1],
['f1x2x1', m5, 38, 20, 0, 0, 0,0,0, 1],
['b1x1x1', m7, 39, 0, 2, 3, 0,0,0, 1],
['b2x2x1', m7, 39, 4, 0, 3, 0,0,0, 1],
['b2x2x1', m7, 39, 12, 0, 3, 0,0,0, 1],
['b1x1x1', m7, 39, 20, 2, 3, 0,0,0, 1],
['b1x2x1', m1, 39, 8, 0, 6, 0,0,0, 1],
['b1x2x1', m5, 39, 12, 0, 6, 0,0,0, 1],
['b2x2x1', m7, 41, 8, 0, 9, 0,0,0, 1],
['c1x1x1', m3, 41, 12, 0, 12, 0,0,0, 1],
['c1x1x1', m11, 42, 0, 4, 9, 0,0,0],
['c1x1x1', m2, 42, 0, 4, 12, 0,0,0],
];
model_animat=[
[238,'rotation','z','Mill', 0,3.141592654,.09817477],
[290,'position','x','Ship', -40,16,4],
];

View File

@ -121,10 +121,11 @@ namespace Kolibri // All kolibri functions, types and data are nested in the (
void DebugPutChar(char c); // Put the character to the debug board.
void DebugPutString(const char *s); // Put the string to the debug board.
int GetKey(); // Return key pressed by user or -1 if no key was pressed.
int GetMouseButton(); // Return buttons pressed: 0 - no buttons, 1 - left button, 2 - right button, 3 - both buttons.
void GetMousePosition(short &x, short &y, bool absolute = false);
// Write mouse position to (x) and (y): absolute if (absolute) is true and relative the window otherwise.
void GetMousePosPicture(short &x, short &y);
int GetMouseButton(); // Return buttons pressed: bit 0 - left button, bit 1 - right button...
void GetMouseScrollData(short &x, short &y);
int GetThreadNumber(); // Return the number of threads currently executing.
bool WasThreadCreated(); // Return true if there was created at least one thread except the main thred.

View File

@ -1029,22 +1029,35 @@ proc @Kolibri@GetKey$qv
ret
endp
align 4
proc @Kolibri@GetMousePosition$qrst1o uses ebx
mov eax,SF_MOUSE_GET
xor ebx,ebx ;SSF_SCREEN_POSITION
cmp byte [esp+16],0
jnz @f
inc ebx ;SSF_WINDOW_POSITION
@@:
int 0x40
mov ecx,[esp+12]
mov word [ecx],ax
mov ecx,[esp+8]
shr eax,16
mov word [ecx],ax
ret
endp
align 4
proc @Kolibri@GetMouseButton$qv uses ebx
mov eax,SF_MOUSE_GET
mov ebx,SSF_BUTTON
mov ebx,SSF_BUTTON_EXT
int 0x40
ret
endp
align 4
proc @Kolibri@GetMousePosition$qrst1o uses ebx
proc @Kolibri@GetMouseScrollData$qrst1 uses ebx
mov eax,SF_MOUSE_GET
xor ebx,ebx ;SSF_SCREEN_POSITION
cmp byte [esp+16],0
jnz .get_mouse_pos_absolute
inc ebx
.get_mouse_pos_absolute:
mov ebx,SSF_SCROLL_DATA
int 0x40
mov ecx,[esp+12]
mov word [ecx],ax

View File

@ -1,13 +1,13 @@
;/***
KolibriHeapInit = @Kolibri@HeapInit$qv
KolibriHeapAlloc = @Kolibri@Alloc$qul
KolibriHeapReAlloc = @Kolibri@ReAlloc$qpvul
KolibriHeapFree = @Kolibri@Free$qpv
@$bnwa$qui equ @Kolibri@Alloc$qul ;new variable
@$bnew$qui equ @Kolibri@Alloc$qul ;new struct or class
@$bdele$qpv equ @Kolibri@Free$qpv ;delete
align 4
proc @Kolibri@HeapInit$qv uses ebx
mov eax,SF_SYS_MISC
@ -43,5 +43,3 @@ proc @Kolibri@Free$qpv uses ebx
int 0x40
ret
endp
;/**/

View File

@ -1,16 +1,13 @@
#ifndef __KOLIBRI_LIB_H_INCLUDED_
#define __KOLIBRI_LIB_H_INCLUDED_
// Kolibri interface.
unsigned int strlen(const char *str);
char *strcpy(char *dest, const char *src);
void *memcpy(void *dest, const void *src, unsigned int n);
void *memset(void *s, char c, unsigned int n);
int strcmp(const char *str1, const char *str2);
char *strchr(const char *str, int ch);
char *strstr(const char *str1, const char *str2);
namespace Kolibri // All kolibri functions, types and data are nested in the (Kolibri) namespace.
{
unsigned int StrLen(const char *str);
char *StrCopy(char *dest, const char *src);
void *MemCopy(void *dest, const void *src, unsigned int n);
void *MemSet(void *s, char c, unsigned int n);
double Floor(double x);
}
#endif // __KOLIBRI_LIB_H_INCLUDED_
double floor(double x);
const char *DoubleToStr(double x, unsigned short digits = 5, bool crop_0 = false);
double StrToDouble(char *str);
long StrToInt(char *str);

View File

@ -1,34 +1,149 @@
proc @Kolibri@StrLen$qpxc uses edi
include "..\..\..\develop\info3ds\info_fun_float.inc"
align 4
proc @DoubleToStr$qduso uses esi edi
cld
lea esi,[esp+12]
mov edi,Data_Double
movsd
movsd
mov ax,[esp+20]
mov [NumberSymbolsAD],ax
call DoubleFloat_to_String
cmp dword[esp+24],0
je @f
call String_crop_0
@@:
mov eax,Data_String
ret
endp
align 4
proc @StrToDouble$qpc uses esi edi
cld
mov edi,Data_String
mov esi,[esp+12]
mov ecx,32
repnz movsb
call String_to_DoubleFloat
fld qword[Data_Double]
ret
endp
;input:
; *str - указатель на строку, число должно быть в 10 или 16 ричном виде
;output:
; eax - число
align 4
proc @StrToInt$qpc uses ebx esi
xor eax,eax
xor ebx,ebx
mov esi,[esp+12]
;на случай если перед числом находятся пробелы
@@:
cmp byte[esi],' '
jne @f
inc esi
jmp @b
@@:
;определение отрицательных чисел
xor ecx,ecx
inc ecx
cmp byte[esi],'-'
jne @f
dec ecx
inc esi
@@:
cmp word[esi],'0x'
je .load_digit_16
.load_digit_10: ;считывание 10-тичных цифр
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'9'
jg @f
sub bl,'0'
imul eax,10
add eax,ebx
inc esi
jmp .load_digit_10
jmp @f
.load_digit_16: ;считывание 16-ричных цифр
add esi,2
.cycle_16:
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'f'
jg @f
cmp bl,'9'
jle .us1
cmp bl,'A'
jl @f ;отсеиваем символы >'9' и <'A'
.us1: ;составное условие
cmp bl,'F'
jle .us2
cmp bl,'a'
jl @f ;отсеиваем символы >'F' и <'a'
sub bl,32 ;переводим символы в верхний регистр, для упрощения их последущей обработки
.us2: ;составное условие
sub bl,'0'
cmp bl,9
jle .cor1
sub bl,7 ;convert 'A' to '10'
.cor1:
shl eax,4
add eax,ebx
inc esi
jmp .cycle_16
@@:
or ecx,ecx ;если число отрицательное
jnz @f
sub ecx,eax
mov eax,ecx
@@:
ret
endp
align 4
proc @strlen$qpxc uses edi
cld
mov edi,[esp+8]
mov ecx,-1
xor al,al
repnz scas byte [edi]
repnz scasb
not ecx
lea eax,[ecx-1]
ret
endp
proc @Kolibri@StrCopy$qpcpxc uses esi edi
align 4
proc @strcpy$qpcpxc uses esi edi
cld
mov edi,[esp+16]
mov ecx,-1
mov esi,edi
xor al,al
repnz scas byte [edi]
repnz scasb
not ecx
mov edi,[esp+12]
mov edx,ecx
mov eax,edi
shr ecx,2
rep movs dword [edi],[esi]
rep movsd
mov ecx,edx
and ecx,3
rep movs byte [edi],[esi]
rep movsb
ret
endp
proc @Kolibri@MemCopy$qpvpxvui uses esi edi
align 4
proc @memcpy$qpvpxvui uses esi edi
cld
mov edi,[esp+12]
mov eax,edi
@ -36,14 +151,15 @@ proc @Kolibri@MemCopy$qpvpxvui uses esi edi
mov esi,[esp+16]
mov edx,ecx
shr ecx,2
rep movs dword [edi],[esi]
rep movsd
mov ecx,edx
and ecx,3
rep movs byte [edi],[esi]
rep movsb
ret
endp
proc @Kolibri@MemSet$qpvcui uses edi
align 4
proc @memset$qpvcui uses edi
cld
mov edi,[esp+8]
mov al,[esp+12]
@ -54,21 +170,93 @@ proc @Kolibri@MemSet$qpvcui uses edi
mov ecx,[esp+16]
mov edx,ecx
shr ecx,2
rep stos dword [edi]
rep stosd
mov ecx,edx
and ecx,3
rep stos byte [edi]
rep stosb
mov eax,[esp+4]
ret
endp
align 4
proc @strcmp$qpxct1 uses esi edi
cld
xor eax,eax
mov edi,[esp+16]
mov esi,edi
mov ecx,-1
repne scasb
not ecx
mov edi,esi
mov esi,[esp+12]
repe cmpsb
mov al,[esi-1]
movzx edx,byte[edi-1]
sub eax,edx
ret
endp
align 4
proc @strchr$qpxci uses edi
mov edi,[esp+8]
mov edx,edi
mov ecx,-1
xor eax,eax
cld
repne scasb
not ecx
mov edi,edx
mov al,[esp+12]
repne scasb
jnz @f
lea eax,[edi-1]
ret
@@:
xor eax,eax
ret
endp
align 4
proc @strstr$qpxct1 uses ebx esi edi
xor eax,eax
mov esi,[esp+16]
test esi,esi
je .not_f
mov edi,[esp+20]
test edi,edi
je .not_f
mov edx,edi
mov ecx,-1
cld
repne scasb
not ecx
mov ebx,ecx ;ebx = strlen(str2)
align 4
.cycle:
cmp byte[esi],0
je .not_f
mov edi,edx
push esi
mov ecx,ebx
repe cmpsb
pop esi
inc esi
cmp byte[edi-1],0
jne .cycle
lea eax,[esi-1]
.not_f:
ret
endp
align 4
proc __ftol
sub esp,12
wait
fstcw word [esp+8]
wait
mov al,[esp+9]
or byte [esp+9],0x0c
or byte [esp+9],0x0c
fldcw word [esp+8]
fistp qword [esp]
mov [esp+9],al
@ -79,12 +267,13 @@ proc __ftol
ret
endp
proc @Kolibri@Floor$qd
align 4
proc @floor$qd
fld qword [esp+4]
mov ax,[esp+10]
shl ax,1
cmp ax,0x8680
ja .floor_end
ja .floor_end
mov ch,4
sub esp,2
wait
@ -93,7 +282,7 @@ proc @Kolibri@Floor$qd
wait
mov dx,[esp]
and ax,dx
or ah,ch
or ah,ch
mov [esp],ax
fldcw word [esp]
frndint
@ -103,4 +292,3 @@ proc @Kolibri@Floor$qd
.floor_end:
ret
endp

View File

@ -0,0 +1,5 @@
void __stdcall unpack(void* packed_data, void* unpacked_data);
asm{
include '..\..\include\kos_unpack.inc'
}

View File

@ -0,0 +1,7 @@
@@unpack$qqspvt1 equ unpack
include "..\..\..\system\skincfg\trunk\kglobals.inc"
include "..\..\..\system\skincfg\trunk\unpacker.inc"
IncludeIGlobals
IncludeUGlobals

View File

@ -756,7 +756,7 @@ void (__stdcall* glTranslatef)(float x, float y, float z) = (void (__stdcall*)(f
void (__stdcall* glScalef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glScalef";
void (__stdcall* glViewport)(int x, int y, int width, int height) = (void (__stdcall*)(int, int, int, int))&"glViewport";
void (__stdcall* glFrustum)(double l, double r, double b, double t, double n, double f) = (void (__stdcall*)(double, double, double, double, double, double))&"glFrustum";
void (__stdcall* glGenLists)(int range) = (void (__stdcall*)(int))&"glGenLists";
int (__stdcall* glGenLists)(int range) = (int (__stdcall*)(int))&"glGenLists";
//void (__stdcall* glIsList)(...) = (void (__stdcall*)(...))&"glIsList";
void (__stdcall* glNewList)(unsigned int list, int mode) = (void (__stdcall*)(unsigned int, int))&"glNewList";
void (__stdcall* glEndList)() = (void (__stdcall*)())&"glEndList";