1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-06-08 09:31:58 +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); return (foodHolderIngredient == 0);
} }
bool FoodHolder::isValid()
{
return this->alpha.x > 0 && this->alphaMod > 0;
}
IngredientData *FoodHolder::getIngredient() IngredientData *FoodHolder::getIngredient()
{ {
return foodHolderIngredient; 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() void Game::enqueuePreviewRecipe()
{ {
enqueuedPreviewRecipe = 1; enqueuedPreviewRecipe = 1;
@ -477,7 +486,7 @@ void FoodSlot::moveRight()
for (int i = foodHolders.size()-1; i >= 0; i--) 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); foodHolders[i]->setIngredient(ingredient);
inCookSlot = true; inCookSlot = true;
@ -564,7 +573,7 @@ void FoodSlot::onUpdate(float dt)
break; break;
//return; //return;
} }
else if (foodHolders[i]->isEmpty()) else if (foodHolders[i]->isEmpty() && foodHolders[i]->isValid())
{ {
foodHolders[i]->setIngredient(ingredient); foodHolders[i]->setIngredient(ingredient);
inCookSlot = true; inCookSlot = true;
@ -3745,7 +3754,7 @@ void Game::createInGameMenu()
for (i = 0; i < foodHolders.size(); i++) for (i = 0; i < foodHolders.size(); i++)
{ {
foodHolders[i] = new FoodHolder(i); foodHolders[i] = new FoodHolder(i);
foodHolders[i]->alpha = 0; foodHolders[i]->toggleValid(false);
float angle = (float(holders)/float(foodHolders.size()))*PI*2; float angle = (float(holders)/float(foodHolders.size()))*PI*2;
foodHolders[i]->position = rightCenter + Vector(sinf(angle), cosf(angle))*radius; foodHolders[i]->position = rightCenter + Vector(sinf(angle), cosf(angle))*radius;
@ -3832,7 +3841,7 @@ void Game::createInGameMenu()
foodHolders.resize(4); foodHolders.resize(4);
foodHolders[3] = new FoodHolder(-1, true); foodHolders[3] = new FoodHolder(-1, true);
foodHolders[3]->alpha = 0; foodHolders[3]->toggleValid(false);
foodHolders[3]->position = rightCenter + Vector(96, 150); foodHolders[3]->position = rightCenter + Vector(96, 150);
menuBg->addChild(foodHolders[3], PM_POINTER); menuBg->addChild(foodHolders[3], PM_POINTER);
@ -6078,7 +6087,7 @@ void Game::action(int id, int state)
int trashIndex = -1; int trashIndex = -1;
for (int i = 0; i < foodHolders.size(); i++) 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; trashIndex = i;
break; break;
@ -7393,7 +7402,7 @@ void Game::onCook()
longAnim = false; longAnim = false;
for (int i = foodHolders.size()-1; i >= 0; i--) 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); foodHolders[i]->animateLid(true, longAnim);
//dsq->main(0.2); //dsq->main(0.2);
@ -7481,7 +7490,7 @@ void Game::onCook()
dsq->sound->playSfx("Cook"); dsq->sound->playSfx("Cook");
for (int i = 0; i < foodHolders.size(); i++) 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); foodHolders[i]->animateLid(false);
dsq->spawnParticleEffect("cook-food", Vector(575,250), 0, 0, LR_HUD3, 1); 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++) for (int i = 0; i < foodHolders.size(); i++)
{ {
if (f) foodHolders[i]->toggleValid(f);
foodHolders[i]->alpha = 1;
else
foodHolders[i]->alpha = 0;
} }
if (f) if (f)
@ -9081,11 +9087,11 @@ void Game::toggleFoodMenu(bool f)
&& p->isCoordinateInside(dsq->game->avatar->position))) && p->isCoordinateInside(dsq->game->avatar->position)))
{ {
//cook->alpha = 1; //cook->alpha = 1;
foodHolders[0]->alpha = 1; foodHolders[0]->toggleValid(true);
} }
else else
{ {
foodHolders[0]->alpha = 0; foodHolders[0]->toggleValid(false);
} }
} }
} }

View file

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