Skip to content

Station Component Overview

nuciforan0 edited this page Oct 16, 2024 · 11 revisions

Introduction

As per the entity component system, a single station entity contains many different components that provide functionality for each different station. Broadly components for stations were developed on, the need for cooking stations, chopping stations, a collection station, and a submission station. These general station types form the development of all of the different components and shape the design of them.

In general, the components that provide the necessary functionality between the station and the player are the StationItemHandlerComponent used for cooking and chopping stations, or the IngredientStationHandlerComponent used by stations which items can be collected from.

Additionally, components to facilate cooking, chopping, combining and collecting items are added to the station. These interactions can be further explained in the Processing Stations page

As for combining meals together, that can be further discussed in the combining stations page

Other stations not described in these buckets will be described in the miscellaneous stations page. For now this covers the fire extinguisher station and the bin station.

Functionality to provide animations to the stations also exits in the form of the Station Animation Controller.

UML Diagram

The UML here shows the relationships each of the components in the station overview, as well as relevant components from the Ingredient Stations, Processing Stations and Combining Stations.

image

Station Item Handler Component:

This is where interaction with the station & items will work, and is used in all the station components. The handler handles the manipulation & tracking items within stations, as well as identifying the type of station and keeping track of the allowed ingredients for a given station.

Further functionality which is unique to the type of station will be covered in their corresponding seperated component code which can be seen in the code samples below.

Ingredient Station Handler Component

IngredientStationHandlerComponent is similar to StationItemHandlerComponent in that is enables the interaction between that player and the station entity. Like the item handler component this handles the manipulation and tracking of items within stations, as well as keeping track of the type of station it is. This components publically available methods are handleInteraction(), stationGiveItem(), and getType(). In the order written, these implement the logic for handling item interaction, take the item from the station and return it to the player, and return the type of the station to the caller. Presently, the station simply generates a list of items from an internal list, however, the plan is to implement a list of items that can be received from a specific station, however, that was not within scope from the current sprint.

Station Collection Component:

StationCollectionComponent acts as a component which enables the player to collect items from a station. This component only has one method which is collectItem() this method acts as a layer between the station and the item factory, enabling the creation of new items into the game so that orders can be created. Again this component acts as a layer between that station and the player.

Extra info:

Ingredient Stations

Processing Stations

Combining Stations

Miscellaneous Stations

Table of Contents

Home

Team Design Document

Game Features

Inventory System
Scoring System
Food Recipes
Level System
Player Actions
Ordering System
Stations
Items
Map Design
Customers
Pause Menu
Upgrades
End of Day Display
Day Night Cycle
Moral System
Debug Terminal
Game Interactions Tutorial
Backstory Cutscenes

Game

Getting Started

Entities and Components

World Backstory

Service Locator

Loading Resources

Logging

Unit Testing

Debug Terminal

Input Handling

UI

Animations

Audio

AI

Physics

Game Screens and Areas

Terrain

Concurrency & Threading

Settings

Map Design

Test Plans

Sensor Component

Customer Sensor Component

Interaction Component

Inventory Component

Inventory Display

Station Meal Component

Station Progress Display

Keyboard Input Component

Fire Extinguisher Handler Component

Score System

HoverBox Component

MainGameActions Create Docket Triggers

End Day Display Component

Cutscene Area

Docket

Docket Line Display

Docket Meal Display

Main Game Order Button Display

Order Actions

Recipe

Ticket Details Component

BackstoryCutscene Test Plan

BackstoryCutsceneDisplay Test Plan

Test Plan for Tutorial

Keybinds

Keybinds Test Plan

Test Plan for MainGameOrderTicketDisplay

Test Plan for MainGameOrderBtnDisplay

Test Plan for Docket

Test Plan for DocketLineDisplay

Test Plan for OrderActions

Ticket Details

Test plan for RandomComboService

Test plan for LoanUpgrade

Test plan for UpgradesDisplay

Test plan for RageUpgrade

Test plan for SpeedBoostUpgrade

Test plan for DancePartyUpgrade

Test plan for ExtortionUpgrade

Troubleshooting

MacOS Setup Guide

Clone this wiki locally