public static function FromIDResource(IDResource $resource, $position, $oldPosition, $scheduledTime, BuildGroup $bg = NULL) { $buildItem = new BuildItem(); $buildItem->Name($resource->Name()); $buildItem->Cost($resource->Cost()); $buildItem->NextCostModifier($resource->NextCostModifier()); $buildItem->Prerequisite($resource->Prerequisite()); $buildItem->ID($resource->ID()); $buildItem->Amount($resource->Amount(), false); $buildItem->PositionInList($position, false); $buildItem->OldPositionInList($oldPosition, false); $buildItem->FirstBuildTime($scheduledTime); $buildItem->HasChanged(false); $buildItem->BuildGroup($bg); return $buildItem; }
public function DeleteItemFromDatabase(BuildItem $item) { $colonyID = $this->BuildList()->Colony()->ID(); $type = $item->ID(); $pos = $item->OldPositionInList(); $query = "DELETE FROM production WHERE colonyID = {$colonyID} AND resource_type_being_built = {$type} AND build_list_position = {$pos};"; $result = Database::Instance()->ExecuteQuery($query, "DElETE"); }
public function ContainsBuildItem(BuildItem $needle) { foreach ($this->Members() as $item) { if ($item->ID() === $needle->ID() && $item->PositionInList() === $needle->PositionInList() && $item->BuildGroup()->Colony()->Equals($needle->BuildGroup()->Colony())) { return true; } } return false; }