mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 02:36:54 +02:00
added --domain option and --BuildStreet option
This commit is contained in:
parent
a5f472254d
commit
ac693c703a
1 changed files with 73 additions and 4 deletions
|
@ -31,11 +31,12 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool shouldShowPacketsPerSecond = false; // do we want to debug packets per second
|
bool shouldShowPacketsPerSecond = false; // do we want to debug packets per second
|
||||||
bool includeBillboard = true;
|
bool includeBillboard = false;
|
||||||
bool includeBorderTracer = true;
|
bool includeBorderTracer = false;
|
||||||
bool includeMovingBug = true;
|
bool includeMovingBug = false;
|
||||||
bool includeBlinkingVoxel = false;
|
bool includeBlinkingVoxel = false;
|
||||||
bool includeDanceFloor = true;
|
bool includeDanceFloor = false;
|
||||||
|
bool buildStreet = false;
|
||||||
|
|
||||||
|
|
||||||
const int ANIMATION_LISTEN_PORT = 40107;
|
const int ANIMATION_LISTEN_PORT = 40107;
|
||||||
|
@ -616,6 +617,62 @@ static void sendBillboard() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool roadInitialized = false;
|
||||||
|
const int ROAD_WIDTH_METERS = 3.0f;
|
||||||
|
const int BRICKS_ACROSS_ROAD = 32;
|
||||||
|
const float ROAD_BRICK_SIZE = 0.125f/TREE_SCALE; //(ROAD_WIDTH_METERS / TREE_SCALE) / BRICKS_ACROSS_ROAD; // in voxel units
|
||||||
|
const int ROAD_LENGTH = 1.0f / ROAD_BRICK_SIZE; // in bricks
|
||||||
|
const int ROAD_WIDTH = BRICKS_ACROSS_ROAD; // in bricks
|
||||||
|
glm::vec3 roadPosition(0.5f - (ROAD_BRICK_SIZE * BRICKS_ACROSS_ROAD), 0.0f, 0.0f);
|
||||||
|
//glm::vec3 roadPosition(0.0f, 0.0f, 0.0f);
|
||||||
|
const int BRICKS_PER_PACKET = 32; // guessing
|
||||||
|
const int PACKETS_PER_ROAD = VOXELS_PER_PACKET / (ROAD_LENGTH * ROAD_WIDTH);
|
||||||
|
|
||||||
|
void doBuildStreet() {
|
||||||
|
if (roadInitialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PACKET_TYPE message = PACKET_TYPE_SET_VOXEL_DESTRUCTIVE; // we're a bully!
|
||||||
|
static VoxelDetail details[BRICKS_PER_PACKET];
|
||||||
|
unsigned char* bufferOut;
|
||||||
|
int sizeOut;
|
||||||
|
|
||||||
|
for (int z = 0; z < ROAD_LENGTH; z++) {
|
||||||
|
for (int x = 0; x < ROAD_WIDTH; x++) {
|
||||||
|
|
||||||
|
int nthVoxel = ((z * ROAD_WIDTH) + x);
|
||||||
|
int item = nthVoxel % BRICKS_PER_PACKET;
|
||||||
|
|
||||||
|
glm::vec3 brick = roadPosition + glm::vec3(x * ROAD_BRICK_SIZE, 0, z * ROAD_BRICK_SIZE);
|
||||||
|
|
||||||
|
details[item].s = ROAD_BRICK_SIZE;
|
||||||
|
details[item].x = brick.x;
|
||||||
|
details[item].y = brick.y;
|
||||||
|
details[item].z = brick.z;
|
||||||
|
|
||||||
|
unsigned char randomTone = randIntInRange(118,138);
|
||||||
|
details[item].red = randomTone;
|
||||||
|
details[item].green = randomTone;
|
||||||
|
details[item].blue = randomTone;
|
||||||
|
|
||||||
|
if (item == BRICKS_PER_PACKET - 1) {
|
||||||
|
if (createVoxelEditMessage(message, 0, BRICKS_PER_PACKET, (VoxelDetail*)&details, bufferOut, sizeOut)){
|
||||||
|
::packetsSent++;
|
||||||
|
::bytesSent += sizeOut;
|
||||||
|
if (true || ::shouldShowPacketsPerSecond) {
|
||||||
|
printf("building road sending packet of size=%d\n", sizeOut);
|
||||||
|
}
|
||||||
|
NodeList::getInstance()->broadcastToNodes(bufferOut, sizeOut, &NODE_TYPE_VOXEL_SERVER, 1);
|
||||||
|
delete[] bufferOut;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
roadInitialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
double start = 0;
|
double start = 0;
|
||||||
|
|
||||||
|
|
||||||
|
@ -645,6 +702,10 @@ void* animateVoxels(void* args) {
|
||||||
sendDanceFloor();
|
sendDanceFloor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (::buildStreet) {
|
||||||
|
doBuildStreet();
|
||||||
|
}
|
||||||
|
|
||||||
uint64_t end = usecTimestampNow();
|
uint64_t end = usecTimestampNow();
|
||||||
uint64_t elapsedSeconds = (end - ::start) / 1000000;
|
uint64_t elapsedSeconds = (end - ::start) / 1000000;
|
||||||
if (::shouldShowPacketsPerSecond) {
|
if (::shouldShowPacketsPerSecond) {
|
||||||
|
@ -688,6 +749,9 @@ int main(int argc, const char * argv[])
|
||||||
const char* NO_DANCE_FLOOR = "--NoDanceFloor";
|
const char* NO_DANCE_FLOOR = "--NoDanceFloor";
|
||||||
::includeDanceFloor = !cmdOptionExists(argc, argv, NO_DANCE_FLOOR);
|
::includeDanceFloor = !cmdOptionExists(argc, argv, NO_DANCE_FLOOR);
|
||||||
|
|
||||||
|
const char* BUILD_STREET = "--BuildStreet";
|
||||||
|
::buildStreet = cmdOptionExists(argc, argv, BUILD_STREET);
|
||||||
|
|
||||||
// Handle Local Domain testing with the --local command line
|
// Handle Local Domain testing with the --local command line
|
||||||
const char* showPPS = "--showPPS";
|
const char* showPPS = "--showPPS";
|
||||||
::shouldShowPacketsPerSecond = cmdOptionExists(argc, argv, showPPS);
|
::shouldShowPacketsPerSecond = cmdOptionExists(argc, argv, showPPS);
|
||||||
|
@ -700,6 +764,11 @@ int main(int argc, const char * argv[])
|
||||||
nodeList->setDomainIPToLocalhost();
|
nodeList->setDomainIPToLocalhost();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* domainIP = getCmdOption(argc, argv, "--domain");
|
||||||
|
if (domainIP) {
|
||||||
|
NodeList::getInstance()->setDomainIP(domainIP);
|
||||||
|
}
|
||||||
|
|
||||||
nodeList->linkedDataCreateCallback = NULL; // do we need a callback?
|
nodeList->linkedDataCreateCallback = NULL; // do we need a callback?
|
||||||
nodeList->startSilentNodeRemovalThread();
|
nodeList->startSilentNodeRemovalThread();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue