Moving works-ish, fixed box selection

This commit is contained in:
andreja6
2018-10-27 11:21:09 -07:00
parent 61d07a8557
commit 89f9e0bfa2
2 changed files with 33 additions and 4 deletions

View File

@@ -21,6 +21,7 @@ TextButtonInstance::TextButtonInstance(void)
visible = true; visible = true;
className = "TextButton"; className = "TextButton";
disabled = false; disabled = false;
selected = false;
} }
bool TextButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd) bool TextButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd)
@@ -102,6 +103,11 @@ void TextButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseD
Draw::box(Box(point1, point2), rd, boxColorOvr, boxOutlineColorOvr); Draw::box(Box(point1, point2), rd, boxColorOvr, boxOutlineColorOvr);
font->draw2D(rd, title, RelativeTo, textSize, textColorOvr, textOutlineColorOvr); font->draw2D(rd, title, RelativeTo, textSize, textColorOvr, textOutlineColorOvr);
} }
else if(selected)
{
Draw::box(Box(point1, point2), rd, boxColorOvr, boxOutlineColorOvr);
font->draw2D(rd, title, RelativeTo, textSize, textColorOvr, textOutlineColorOvr);
}
else else
{ {
Draw::box(Box(point1, point2), rd, boxColor, boxOutlineColor); Draw::box(Box(point1, point2), rd, boxColor, boxOutlineColor);

View File

@@ -390,6 +390,7 @@ void Demo::initGUI()
button->title = "Hopper"; button->title = "Hopper";
button->fontLocationRelativeTo = Vector2(10, 3); button->fontLocationRelativeTo = Vector2(10, 3);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, -48); button->boxBegin = Vector2(0, -48);
@@ -402,6 +403,7 @@ void Demo::initGUI()
button->title = "Controller"; button->title = "Controller";
button->fontLocationRelativeTo = Vector2(10, 3); button->fontLocationRelativeTo = Vector2(10, 3);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, -72); button->boxBegin = Vector2(0, -72);
@@ -414,6 +416,7 @@ void Demo::initGUI()
button->title = "Color"; button->title = "Color";
button->fontLocationRelativeTo = Vector2(10, 3); button->fontLocationRelativeTo = Vector2(10, 3);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, -96); button->boxBegin = Vector2(0, -96);
@@ -426,6 +429,7 @@ void Demo::initGUI()
button->title = "Surface"; button->title = "Surface";
button->fontLocationRelativeTo = Vector2(10, 3); button->fontLocationRelativeTo = Vector2(10, 3);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, -120); button->boxBegin = Vector2(0, -120);
@@ -434,10 +438,10 @@ void Demo::initGUI()
button->setParent(dataModel->getGuiRoot()); button->setParent(dataModel->getGuiRoot());
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3(0,255,255); button->textColor = Color3(0,255,255);
button->boxOutlineColor = Color3(0,255,255);
button->title = "Model"; button->title = "Model";
button->fontLocationRelativeTo = Vector2(10, 3); button->fontLocationRelativeTo = Vector2(10, 3);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, 0); button->boxBegin = Vector2(0, 0);
@@ -451,6 +455,7 @@ void Demo::initGUI()
button->textSize = 16; button->textSize = 16;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(125, 0); button->boxBegin = Vector2(125, 0);
@@ -464,6 +469,7 @@ void Demo::initGUI()
button->textSize = 16; button->textSize = 16;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(250, 0); button->boxBegin = Vector2(250, 0);
@@ -477,6 +483,7 @@ void Demo::initGUI()
button->textSize = 16; button->textSize = 16;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(375, 0); button->boxBegin = Vector2(375, 0);
@@ -490,6 +497,7 @@ void Demo::initGUI()
button->textSize = 16; button->textSize = 16;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(500, 0); button->boxBegin = Vector2(500, 0);
@@ -503,6 +511,7 @@ void Demo::initGUI()
button->textSize = 16; button->textSize = 16;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->setAllColorsSame(); button->setAllColorsSame();
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
@@ -991,13 +1000,13 @@ void Demo::onUserInput(UserInput* ui) {
{ {
float __time = testRay.intersectionTime(moveTo->getBox()); float __time = testRay.intersectionTime(moveTo->getBox());
float __nearest=std::numeric_limits<float>::infinity(); float __nearest=std::numeric_limits<float>::infinity();
if (__time != inf()) if (__time != inf() && moveTo != part)
{ {
if (__nearest>__time) if (__nearest>__time)
{ {
Vector3 closest = (dragRay.closestPoint(moveTo->getPosition())); Vector3 closest = (dragRay.closestPoint(moveTo->getPosition()));
part->setPosition(closest); //part->setPosition(closest);
//part->setPosition(Vector3(floor(closest.x),part->getPosition().y,floor(closest.z))); part->setPosition(Vector3(floor(closest.x),floor(closest.y),floor(closest.z)));
} }
} }
} }
@@ -1346,6 +1355,20 @@ void Demo::onGraphics(RenderDevice* rd) {
std::vector<Instance*> instances = dataModel->getWorkspace()->getAllChildren(); std::vector<Instance*> instances = dataModel->getWorkspace()->getAllChildren();
currentcursorid = cursorid; currentcursorid = cursorid;
bool onGUI = false;
std::vector<Instance*> guis = dataModel->getGuiRoot()->getAllChildren();
for(size_t i = 0; i < guis.size(); i++)
{
if(BaseButtonInstance* button = dynamic_cast<BaseButtonInstance*>(guis.at(i)))
{
if(button->mouseInButton(dataModel->mousex,dataModel->mousey, renderDevice))
{
onGUI = true;
break;
}
}
}
if(!onGUI)
for(size_t i = 0; i < instances.size(); i++) for(size_t i = 0; i < instances.size(); i++)
{ {
if(PartInstance* test = dynamic_cast<PartInstance*>(instances.at(i))) if(PartInstance* test = dynamic_cast<PartInstance*>(instances.at(i)))