mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add player:set_sky() with simple skybox support
This commit is contained in:
parent
e258675eab
commit
86a6cca3cf
11 changed files with 181 additions and 5 deletions
36
src/game.cpp
36
src/game.cpp
|
@ -1337,6 +1337,8 @@ void the_game(
|
|||
|
||||
Sky *sky = NULL;
|
||||
sky = new Sky(smgr->getRootSceneNode(), smgr, -1, client.getEnv().getLocalPlayer());
|
||||
|
||||
scene::ISceneNode* skybox = NULL;
|
||||
|
||||
/*
|
||||
A copy of the local inventory
|
||||
|
@ -2462,6 +2464,40 @@ void the_game(
|
|||
delete event.hudchange.v2fdata;
|
||||
delete event.hudchange.sdata;
|
||||
}
|
||||
else if (event.type == CE_SET_SKY)
|
||||
{
|
||||
sky->setVisible(false);
|
||||
if(skybox){
|
||||
skybox->drop();
|
||||
skybox = NULL;
|
||||
}
|
||||
// Handle according to type
|
||||
if(*event.set_sky.type == "regular"){
|
||||
sky->setVisible(true);
|
||||
}
|
||||
else if(*event.set_sky.type == "skybox" &&
|
||||
event.set_sky.params->size() == 6){
|
||||
sky->setFallbackBgColor(*event.set_sky.bgcolor);
|
||||
skybox = smgr->addSkyBoxSceneNode(
|
||||
tsrc->getTexture((*event.set_sky.params)[0]),
|
||||
tsrc->getTexture((*event.set_sky.params)[1]),
|
||||
tsrc->getTexture((*event.set_sky.params)[2]),
|
||||
tsrc->getTexture((*event.set_sky.params)[3]),
|
||||
tsrc->getTexture((*event.set_sky.params)[4]),
|
||||
tsrc->getTexture((*event.set_sky.params)[5]));
|
||||
}
|
||||
// Handle everything else as plain color
|
||||
else {
|
||||
if(*event.set_sky.type != "plain")
|
||||
infostream<<"Unknown sky type: "
|
||||
<<(*event.set_sky.type)<<std::endl;
|
||||
sky->setFallbackBgColor(*event.set_sky.bgcolor);
|
||||
}
|
||||
|
||||
delete event.set_sky.bgcolor;
|
||||
delete event.set_sky.type;
|
||||
delete event.set_sky.params;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue