function getMap() {
$Map[0] = 0;
for(%i = 0; %i < BrickGroup_27690.getCount(); %i = %i + 1) {
%brick = BrickGroup_27690.getObject(%i);
if(%brick.getDatablock().uiName $= "1x1f") {
$Map[0] = $Map[0] + 1;
$Map[$Map[0],0] = %brick.colorID;
%x = getWord(%brick.getPosition(),0);
%y = getWord(%brick.getPosition(),1);
%x = (%x + 173.25)*16;
%y = (%y - 110.25)*16;
$Map[$Map[0],1] = %x SPC %y SPC "0.1";
}
}
}
function makeMap() {
for(%i = 0; %i < $Map[0]; %i = %i + 1) {
%newbrick = new fxDTSBrick() {
dataBlock = brick16x16fData;
scale = "1 1 1";
client = 0;
stackBL_ID = 0;
angleID = 0;
colorID = $Map[%i,0];
colorFXID = 0;
printID = 0;
shapeFXID = "0";
rotation = "1 0 0 0";
};
%newbrick.setTransform($Map[%i,1] SPC %height);
%newbrick.setTrusted(1);
%newbrick.plant();
BrickGroup_27690.add(%newbrick);
}
}
Ok now here's how it works. First, you need to set it up. To set it up, change Brickgroup_27690 to Brickgroup_YOURID in both occurances. Change Brickgroup_33576 to a friend's ID or don't. It won't affect you at all.
Next, build a map made purely out of 1x1f. This code will pass the map to largescale with 16x16 baseplates.
Now, to pass the map to largescale, you must do the following:
$Map[0]=0;
getMap();
makeMap();
It is super important to set $Map[0] to 0 to avoid having bricks overlap eachother. If you want to use a different baseplate, use the following:
For 8x8 Plates:
function getMap() {
$Map[0] = 0;
for(%i = 0; %i < BrickGroup_27690.getCount(); %i = %i + 1) {
%brick = BrickGroup_27690.getObject(%i);
if(%brick.getDatablock().uiName $= "1x1f") {
$Map[0] = $Map[0] + 1;
$Map[$Map[0],0] = %brick.colorID;
%x = getWord(%brick.getPosition(),0);
%y = getWord(%brick.getPosition(),1);
%x = (%x + 173.25)*8;
%y = (%y - 110.25)*8;
$Map[$Map[0],1] = %x SPC %y SPC "0.1";
}
}
}
function makeMap() {
for(%i = 0; %i < $Map[0]; %i = %i + 1) {
%newbrick = new fxDTSBrick() {
dataBlock = brick8x8fData;
scale = "1 1 1";
client = 0;
stackBL_ID = 0;
angleID = 0;
colorID = $Map[%i,0];
colorFXID = 0;
printID = 0;
shapeFXID = "0";
rotation = "1 0 0 0";
};
%newbrick.setTransform($Map[%i,1] SPC %height);
%newbrick.setTrusted(1);
%newbrick.plant();
BrickGroup_27690.add(%newbrick);
}
}
For 32x32 plates:
function getMap() {
$Map[0] = 0;
for(%i = 0; %i < BrickGroup_27690.getCount(); %i = %i + 1) {
%brick = BrickGroup_27690.getObject(%i);
if(%brick.getDatablock().uiName $= "1x1f") {
$Map[0] = $Map[0] + 1;
$Map[$Map[0],0] = %brick.colorID;
%x = getWord(%brick.getPosition(),0);
%y = getWord(%brick.getPosition(),1);
%x = (%x + 173.25)*32;
%y = (%y - 110.25)*32;
$Map[$Map[0],1] = %x SPC %y SPC "0.1";
}
}
}
function makeMap() {
for(%i = 0; %i < $Map[0]; %i = %i + 1) {
%newbrick = new fxDTSBrick() {
dataBlock = brick32x32fData;
scale = "1 1 1";
client = 0;
stackBL_ID = 0;
angleID = 0;
colorID = $Map[%i,0];
colorFXID = 0;
printID = 0;
shapeFXID = "0";
rotation = "1 0 0 0";
};
%newbrick.setTransform($Map[%i,1] SPC %height);
%newbrick.setTrusted(1);
%newbrick.plant();
BrickGroup_27690.add(%newbrick);
}
}
For 64x baseplates (damn this is huge)
function getMap() {
$Map[0] = 0;
for(%i = 0; %i < BrickGroup_27690.getCount(); %i = %i + 1) {
%brick = BrickGroup_27690.getObject(%i);
if(%brick.getDatablock().uiName $= "1x1f") {
$Map[0] = $Map[0] + 1;
$Map[$Map[0],0] = %brick.colorID;
%x = getWord(%brick.getPosition(),0);
%y = getWord(%brick.getPosition(),1);
%x = (%x + 173.25)*64;
%y = (%y - 110.25)*64;
$Map[$Map[0],1] = %x SPC %y SPC "0.1";
}
}
}
function makeMap() {
for(%i = 0; %i < $Map[0]; %i = %i + 1) {
%newbrick = new fxDTSBrick() {
dataBlock = brick64x64fData;
scale = "1 1 1";
client = 0;
stackBL_ID = 0;
angleID = 0;
colorID = $Map[%i,0];
colorFXID = 0;
printID = 0;
shapeFXID = "0";
rotation = "1 0 0 0";
};
%newbrick.setTransform($Map[%i,1] SPC %height);
%newbrick.setTrusted(1);
%newbrick.plant();
BrickGroup_27690.add(%newbrick);
}
}