1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-02-18 02:34:57 +00:00

Merge pull request #42 from Cat-Ion/foodholders

FoodHolder changes
This commit is contained in:
False.Genesis 2017-01-12 23:53:38 +01:00 committed by GitHub
commit fe0a91129f
2 changed files with 21 additions and 13 deletions

View file

@ -212,6 +212,11 @@ bool FoodHolder::isEmpty()
return (foodHolderIngredient == 0);
}
bool FoodHolder::isValid()
{
return this->alpha.x > 0 && this->alphaMod > 0;
}
IngredientData *FoodHolder::getIngredient()
{
return foodHolderIngredient;
@ -264,6 +269,10 @@ void FoodHolder::setIngredient(IngredientData *i, bool effects)
}
}
void FoodHolder::toggleValid(bool v) {
this->alpha = this->alphaMod = (float) v;
}
void Game::enqueuePreviewRecipe()
{
enqueuedPreviewRecipe = 1;
@ -477,7 +486,7 @@ void FoodSlot::moveRight()
for (int i = foodHolders.size()-1; i >= 0; i--)
{
if (foodHolders[i]->alpha.x > 0 && foodHolders[i]->alphaMod > 0 && foodHolders[i]->isEmpty() && !foodHolders[i]->isTrash())
if (foodHolders[i]->isValid() && foodHolders[i]->isEmpty() && !foodHolders[i]->isTrash())
{
foodHolders[i]->setIngredient(ingredient);
inCookSlot = true;
@ -564,7 +573,7 @@ void FoodSlot::onUpdate(float dt)
break;
//return;
}
else if (foodHolders[i]->isEmpty())
else if (foodHolders[i]->isEmpty() && foodHolders[i]->isValid())
{
foodHolders[i]->setIngredient(ingredient);
inCookSlot = true;
@ -3745,7 +3754,7 @@ void Game::createInGameMenu()
for (i = 0; i < foodHolders.size(); i++)
{
foodHolders[i] = new FoodHolder(i);
foodHolders[i]->alpha = 0;
foodHolders[i]->toggleValid(false);
float angle = (float(holders)/float(foodHolders.size()))*PI*2;
foodHolders[i]->position = rightCenter + Vector(sinf(angle), cosf(angle))*radius;
@ -3832,7 +3841,7 @@ void Game::createInGameMenu()
foodHolders.resize(4);
foodHolders[3] = new FoodHolder(-1, true);
foodHolders[3]->alpha = 0;
foodHolders[3]->toggleValid(false);
foodHolders[3]->position = rightCenter + Vector(96, 150);
menuBg->addChild(foodHolders[3], PM_POINTER);
@ -6078,7 +6087,7 @@ void Game::action(int id, int state)
int trashIndex = -1;
for (int i = 0; i < foodHolders.size(); i++)
{
if (foodHolders[i]->alpha.x > 0 && foodHolders[i]->alphaMod > 0 && foodHolders[i]->isTrash())
if (foodHolders[i]->isValid() && foodHolders[i]->isTrash())
{
trashIndex = i;
break;
@ -7393,7 +7402,7 @@ void Game::onCook()
longAnim = false;
for (int i = foodHolders.size()-1; i >= 0; i--)
if (foodHolders[i]->alpha.x > 0 && !foodHolders[i]->isEmpty() && !foodHolders[i]->isTrash())
if (foodHolders[i]->isValid() && !foodHolders[i]->isEmpty() && !foodHolders[i]->isTrash())
foodHolders[i]->animateLid(true, longAnim);
//dsq->main(0.2);
@ -7481,7 +7490,7 @@ void Game::onCook()
dsq->sound->playSfx("Cook");
for (int i = 0; i < foodHolders.size(); i++)
if (foodHolders[i]->alpha.x > 0 && !foodHolders[i]->isTrash())
if (foodHolders[i]->isValid() && !foodHolders[i]->isTrash())
foodHolders[i]->animateLid(false);
dsq->spawnParticleEffect("cook-food", Vector(575,250), 0, 0, LR_HUD3, 1);
@ -9065,10 +9074,7 @@ void Game::toggleFoodMenu(bool f)
for (int i = 0; i < foodHolders.size(); i++)
{
if (f)
foodHolders[i]->alpha = 1;
else
foodHolders[i]->alpha = 0;
foodHolders[i]->toggleValid(f);
}
if (f)
@ -9081,11 +9087,11 @@ void Game::toggleFoodMenu(bool f)
&& p->isCoordinateInside(dsq->game->avatar->position)))
{
//cook->alpha = 1;
foodHolders[0]->alpha = 1;
foodHolders[0]->toggleValid(true);
}
else
{
foodHolders[0]->alpha = 0;
foodHolders[0]->toggleValid(false);
}
}
}

View file

@ -283,7 +283,9 @@ public:
bool isEmpty();
bool isTrash();
bool isValid();
void setIngredient(IngredientData *i, bool effects=true);
void toggleValid(bool v);
void dropFood();
IngredientData *getIngredient();
void animateLid(bool down, bool longAnim=true);