void HandleDoorUp(Dor door) { if (WasVisitedFromSide(door.direction)) { return; } //can the door up give this water? if (door.door.isOpen && door.water.fillAmount > 0 && fillAmount < 100) { over = (door.water.fillAmount - minVerticalHeightToDrip) * .1f; door.water.CacheWater(-over, Side.UP); fillAmount += over; return; } //can door up receive water from this? if (door.door.isOpen && door.water.fillAmount < 100 && fillAmount > 100) { //if (door.water.fillAmount <= 95) { over = fillAmount - 100; over = over + fillAmount > 100 ? (over + fillAmount) - 100 : over; door.water.CacheWater(over, Side.UP); fillAmount -= over; return; //} } }
void HandleDoorSideways(Dor.Side originalDir, Dor door) { if (WasVisitedFromSide(door.direction)) { return; } //Can this give the other side water? if (door.door.isOpen && door.water.fillAmount < fillAmount && fillAmount > minVerticalHeightToDrip) { auxDiff = fillAmount - door.water.fillAmount; //if(auxDiff < 5) { // over = auxDiff / 2f; // fillAmount -= over; // door.water.CacheWater(over, door.direction); // return; //} over = auxDiff * .1f; fillAmount -= over; door.water.CacheWater(over, door.direction); return; } //Can the other side give this side water? if (door.door.isOpen && door.water.fillAmount > fillAmount && door.water.fillAmount > minVerticalHeightToDrip) { auxDiff = door.water.fillAmount - fillAmount; //if (auxDiff < 5) { // over = auxDiff / 2f; // fillAmount += over; // door.water.CacheWater(-over, door.direction); // return; //} over = auxDiff * .1f; fillAmount += over; door.water.CacheWater(-over, door.direction); return; } }