diff --git a/src/Module/Colony/Action/CancelModuleCreation/CancelModuleCreation.php b/src/Module/Colony/Action/CancelModuleCreation/CancelModuleCreation.php index 4f678d8ec..da97fd332 100644 --- a/src/Module/Colony/Action/CancelModuleCreation/CancelModuleCreation.php +++ b/src/Module/Colony/Action/CancelModuleCreation/CancelModuleCreation.php @@ -32,7 +32,6 @@ public function handle(GameControllerInterface $game): void $game->getUser()->getId() ); - $game->setView('SHOW_MODULE_CANCEL'); $module_id = request::postIntFatal('module'); $function = request::postIntFatal('func'); $count = request::postInt('count'); @@ -41,6 +40,9 @@ public function handle(GameControllerInterface $game): void * @var Modules $module */ $module = ResourceCache()->getObject('module', $module_id); + + $game->setView('SHOW_MODULE_CANCEL', ['MODULE' => $module]); + if (count(Colfields::getFieldsByBuildingFunction($colony->getId(), $function)) == 0) { return; } diff --git a/src/Module/Colony/Action/SwitchColonyMenu/SwitchColonyMenu.php b/src/Module/Colony/Action/SwitchColonyMenu/SwitchColonyMenu.php index 44b674fa8..87cd8d641 100644 --- a/src/Module/Colony/Action/SwitchColonyMenu/SwitchColonyMenu.php +++ b/src/Module/Colony/Action/SwitchColonyMenu/SwitchColonyMenu.php @@ -7,7 +7,6 @@ use BuildingFunctions; use Colfields; use Colony; -use ModuleBuildingFunction; use request; use Stu\Module\Control\ActionControllerInterface; use Stu\Module\Control\GameControllerInterface; @@ -73,12 +72,6 @@ public function handle(GameControllerInterface $game): void case MENU_MODULEFAB: if ($colony->hasModuleFab()) { $game->setView('SHOW_MODULEFAB'); - $func = new BuildingFunctions(request::getIntFatal('func')); - $game->setTemplateVar('FUNC', $func); - $game->setTemplateVar( - 'MODULE_LIST', - ModuleBuildingFunction::getByFunctionAndUser($func->getFunction(), $userId) - ); return; } case MENU_FIGHTER_SHIPYARD: diff --git a/src/Module/Colony/View/ShowModuleCancel/ShowModuleCancel.php b/src/Module/Colony/View/ShowModuleCancel/ShowModuleCancel.php index 3b1d9a62a..42930285d 100644 --- a/src/Module/Colony/View/ShowModuleCancel/ShowModuleCancel.php +++ b/src/Module/Colony/View/ShowModuleCancel/ShowModuleCancel.php @@ -4,6 +4,8 @@ namespace Stu\Module\Colony\View\ShowModuleCancel; +use ModuleQueue; +use ModulesData; use Stu\Module\Control\GameControllerInterface; use Stu\Module\Control\ViewControllerInterface; use Stu\Module\Colony\Lib\ColonyLoaderInterface; @@ -33,11 +35,20 @@ public function handle(GameControllerInterface $game): void $userId ); + /** + * @var ModulesData $module + */ + $module = $game->getViewContext()['MODULE']; + + $queuedAmount = ModuleQueue::getAmountByColonyAndModule($colony->getId(), $module->getId()); + $game->showMacro('html/colonymacros.xhtml/queue_count'); $game->setTemplateVar( 'MODULE', ResourceCache()->getObject('module', $this->showModuleCancelRequest->getModuleId()) ); $game->setTemplateVar('COLONY', $colony); + $game->setTemplateVar('MODULE_ID', $module->getId()); + $game->setTemplateVar('QUEUED_AMOUNT', $queuedAmount); } } diff --git a/src/Module/Colony/View/ShowModuleFab/ModuleFabricationListItemTal.php b/src/Module/Colony/View/ShowModuleFab/ModuleFabricationListItemTal.php new file mode 100644 index 000000000..0e3354e30 --- /dev/null +++ b/src/Module/Colony/View/ShowModuleFab/ModuleFabricationListItemTal.php @@ -0,0 +1,69 @@ +colony = $colony; + $this->module = $module; + } + + public function getModule(): ModulesData + { + return $this->module; + } + + public function getModuleId(): int + { + return (int)$this->module->getId(); + } + + public function getGoodId(): int + { + return (int)$this->module->getGoodId(); + } + + public function getName(): string + { + return $this->module->getName(); + } + + public function getEnergyCost(): int + { + return (int)$this->module->getEcost(); + } + + public function getConstructionCosts(): array + { + return $this->module->getCost(); + } + + public function getAmountQueued(): int + { + return ModuleQueue::getAmountByColonyAndModule($this->colony->getId(), $this->module->getId()); + } + + public function getAmountInStock(): int + { + $result = $this->colony->getStorage()[$this->getGoodId()] ?? null; + + if ($result === null) { + return 0; + } + return (int) $result->getAmount(); + } +} \ No newline at end of file diff --git a/src/Module/Colony/View/ShowModuleFab/ShowModuleFab.php b/src/Module/Colony/View/ShowModuleFab/ShowModuleFab.php index 9dce91b22..041924606 100644 --- a/src/Module/Colony/View/ShowModuleFab/ShowModuleFab.php +++ b/src/Module/Colony/View/ShowModuleFab/ShowModuleFab.php @@ -4,10 +4,13 @@ namespace Stu\Module\Colony\View\ShowModuleFab; +use BuildingFunctions; use ColonyMenu; +use ModuleBuildingFunction; +use Modules; +use request; use Stu\Module\Control\GameControllerInterface; use Stu\Module\Control\ViewControllerInterface; -use Stu\Module\Colony\Lib\ColonyGuiHelperInterface; use Stu\Module\Colony\Lib\ColonyLoaderInterface; final class ShowModuleFab implements ViewControllerInterface @@ -16,17 +19,13 @@ final class ShowModuleFab implements ViewControllerInterface private $colonyLoader; - private $colonyGuiHelper; - private $showModuleFabRequest; public function __construct( ColonyLoaderInterface $colonyLoader, - ColonyGuiHelperInterface $colonyGuiHelper, ShowModuleFabRequestInterface $showModuleFabRequest ) { $this->colonyLoader = $colonyLoader; - $this->colonyGuiHelper = $colonyGuiHelper; $this->showModuleFabRequest = $showModuleFabRequest; } @@ -39,11 +38,22 @@ public function handle(GameControllerInterface $game): void $userId ); - $this->colonyGuiHelper->register($colony, $game); + $func = new BuildingFunctions(request::getIntFatal('func')); + $modules = ModuleBuildingFunction::getByFunctionAndUser($func->getFunction(), $userId); + + $list = []; + foreach ($modules as $module) { + $list[] = new ModuleFabricationListItemTal( + new Modules($module->getModuleId()), + $colony + ); + } $game->showMacro('html/colonymacros.xhtml/cm_modulefab'); $game->setTemplateVar('COLONY', $colony); $game->setTemplateVar('COLONY_MENU_SELECTOR', new ColonyMenu(MENU_MODULEFAB)); + $game->setTemplateVar('FUNC', $func); + $game->setTemplateVar('MODULE_LIST', $list); } } diff --git a/src/admin/help/buildingcosts.php b/src/admin/help/buildingcosts.php index 5ef623155..4ba35444e 100644 --- a/src/admin/help/buildingcosts.php +++ b/src/admin/help/buildingcosts.php @@ -30,7 +30,7 @@ Baukosten für '.$building->getName().'
Goodid Count

'; foreach ($building->getCosts() as $key => $obj) { - echo '
'; + echo '
'; } $i = 0; while($i<15) { diff --git a/src/class/module_queue.class.php b/src/class/module_queue.class.php index 81eb0e35b..8ce41a8d5 100644 --- a/src/class/module_queue.class.php +++ b/src/class/module_queue.class.php @@ -103,15 +103,13 @@ static function countInstances($sql="") { #{{{ return DB()->query("SELECT COUNT(*) FROM ".self::tablename." ".$sql,1); } # }}} - /** - */ - static function getByColonyAndModule($colony_id,$module_id) { #{{{ + static function getAmountByColonyAndModule($colony_id,$module_id): int { $result = DB()->query("SELECT * FROM ".self::tablename." WHERE colony_id=".$colony_id." AND module_id=".$module_id,4); if ($result == 0) { - return FALSE; + return 0; } - return new ModuleQueueData($result); - } # }}} + return (int) $result['count']; + } /** */ @@ -148,32 +146,3 @@ static function queueModule($colony_id,$function,$module_id,$count) { #{{{ } # }}} } #}}} - -/** - * @author Daniel Jakob - * @version $Revision: 1.4 $ - * @access public - */ -class ModuleQueueColonyWrapper { #{{{ - - private $module_id = 0; - - /** - */ - function __construct($module_id) { #{{{ - $this->module_id = $module_id; - } # }}} - - /** - */ - function __get($colony_id) { #{{{ - $queue = ModuleQueue::getByColonyAndModule($colony_id,$this->module_id); - if (!$queue) { - return FALSE; - } - return $queue->getAmount(); - } # }}} - -} #}}} - -?> diff --git a/src/class/modules.class.php b/src/class/modules.class.php index d4ae942ba..5d6aac98d 100755 --- a/src/class/modules.class.php +++ b/src/class/modules.class.php @@ -153,12 +153,6 @@ public function setEcost($value) { # {{{ public function getEcost() { # {{{ return $this->data['ecost']; } # }}} - - /** - */ - public function getQueueCount() { #{{{ - return new ModuleQueueColonyWrapper($this->getId()); - } # }}} /** */ diff --git a/src/html/colonymacros.xhtml b/src/html/colonymacros.xhtml index 589eaae34..2c4c6d4f8 100755 --- a/src/html/colonymacros.xhtml +++ b/src/html/colonymacros.xhtml @@ -729,52 +729,66 @@ +
- + + - - - + + + + + +
Verfügbare ModuleAnzahl In BauLagerndAnzahl
+
- NAME + NAME
- ECOST + ECOST
- +
COST
- - - + +
+
+ +
+
+ +
+
+
-
+ + +
+ +
-
-
- -
- -
+ +
- +
- +
-
-
+
-