# This is a simplified representation of what the device does struct GridEntity { Prop: PropAsset # The 3D model Name: string # "MyCoolTree" Size: vector2 # 1x1, 2x2 } struct UnlockPack { Entities: list # List of allowed props IsUnlocked: bool # True if player earned it } class GridEntity_Manager { # The list of all possible props Available_Props: list # The list of packs Packs: list # Function called when player opens build menu function Get_Buildable_Props(Player: Player) -> list: Result: list = [] for Pack in Packs: if Pack.IsUnlocked: # Add all props in this pack to the result for Entity in Pack.Entities: Result.Add(Entity) return Result }