blueprint

package
v0.0.0-...-1add882 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2024 License: GPL-3.0, GPL-3.0-only Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decode

func Decode[T Book | Blueprint](in io.Reader, v *T) error

func Encode

func Encode(in IsBlueprint, out io.Writer) error

Types

type Blueprint

type Blueprint struct {
	Item                   string          `json:"item"`
	Label                  string          `json:"label"`
	LabelColor             *Color          `json:"label_color,omitempty"`
	Entities               []Entity        `json:"entities,omitempty"`
	Tiles                  []Tile          `json:"tiles,omitempty"`
	Icons                  []Icon          `json:"icons,omitempty"`
	Schedules              []Schedule      `json:"schedules,omitempty"`
	Description            *string         `json:"description,omitempty"`
	SnapToGrid             *Position       `json:"snap-to-grid,omitempty"`
	AbsoluteSnapping       *bool           `json:"absolute-snapping,omitempty"`
	PositionRelativeToGrid *Position       `json:"position-relative-to-grid,omitempty"`
	Version                version.Version `json:"version"`
}

type Book

type Book struct {
	Item        string          `json:"item"`
	Label       string          `json:"label"`
	LabelColor  *Color          `json:"label_color,omitempty"`
	Blueprints  []BookEntry     `json:"blueprints"`
	ActiveIndex int             `json:"active_index"`
	Icons       []Icon          `json:"icons"`
	Description *string         `json:"description,omitempty"`
	Version     version.Version `json:"version"`
}

type BookEntry

type BookEntry struct {
	Index *int
	Entry IsBlueprint
}

func (BookEntry) MarshalJSON

func (be BookEntry) MarshalJSON() ([]byte, error)

func (*BookEntry) UnmarshalJSON

func (be *BookEntry) UnmarshalJSON(in []byte) error

type Color

type Color struct {
	R float64 `json:"r"`
	G float64 `json:"g"`
	B float64 `json:"b"`
	A float64 `json:"a"`
}

type Entity

type Entity struct {
	EntityNumber int      `json:"entity_number"`
	Name         string   `json:"name"`
	Position     Position `json:"position"`
	Direction    *int     `json:"direction,omitempty"`
	Type         *string  `json:"type,omitempty"` // Optional ("input" or "output")
}

type Icon

type Icon struct {
	Index  int      `json:"index"`
	Signal SignalID `json:"signal"`
}

type InfinityFilter

type InfinityFilter struct {
	Name  string             `json:"name"`
	Count uint32             `json:"count"`
	Mode  InfinityFilterMode `json:"mode"`
	Index int                `json:"index"`
}

type InfinityFilterMode

type InfinityFilterMode uint
const (
	InfinityFilterModeUnknown InfinityFilterMode = iota
	InfinityFilterModeAtLeast
	InfinityFilterModeExactly
	InfinityFilterModeAtMost
)

func ParseInfinityFilterMode

func ParseInfinityFilterMode(s string) (InfinityFilterMode, error)

func (InfinityFilterMode) MarshalJSON

func (s InfinityFilterMode) MarshalJSON() ([]byte, error)

func (InfinityFilterMode) String

func (s InfinityFilterMode) String() string

func (*InfinityFilterMode) UnmarshalJSON

func (s *InfinityFilterMode) UnmarshalJSON(data []byte) error

type IsBlueprint

type IsBlueprint interface {
	// contains filtered or unexported methods
}

type Position

type Position struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
}

type Schedule

type Schedule struct {
	Schedule    []ScheduleRecord `json:"schedule"`
	Locomotives []int            `json:"locomotives"`
}

type ScheduleRecord

type ScheduleRecord struct {
	Station        string          `json:"station"`
	WaitConditions []WaitCondition `json:"wait_conditions"`
	Temporary      *bool           `json:"temporary,omitempty"`
}

type SignalID

type SignalID struct {
	Name string        `json:"name"`
	Type *SignalIDType `json:"type,omitempty"`
}

type SignalIDType

type SignalIDType uint
const (
	SignalIDTypeUnknown SignalIDType = iota
	SignalIDTypeItem
	SignalIDTypeFluid
	SignalIDTypeVirtual
)

func ParseSignalIDType

func ParseSignalIDType(s string) (SignalIDType, error)

func (SignalIDType) MarshalJSON

func (s SignalIDType) MarshalJSON() ([]byte, error)

func (SignalIDType) String

func (s SignalIDType) String() string

func (*SignalIDType) UnmarshalJSON

func (s *SignalIDType) UnmarshalJSON(data []byte) error

type Tile

type Tile struct {
	Name     string   `json:"name"`
	Position Position `json:"position"`
}

type WaitCondition

type WaitCondition struct {
	Type        WaitConditionType        `json:"type"`
	CompareType WaitConditionCompareType `json:"compare_type"`
	Ticks       *uint                    `json:"ticks,omitempty"`
	Condition   any                      `json:"condition,omitempty"` // FIXME
}

type WaitConditionCompareType

type WaitConditionCompareType uint
const (
	WaitConditionCompareTypeUnknown WaitConditionCompareType = iota
	WaitConditionCompareTypeAnd
	WaitConditionCompareTypeOr
)

func ParseWaitConditionCompareType

func ParseWaitConditionCompareType(s string) (WaitConditionCompareType, error)

func (WaitConditionCompareType) MarshalJSON

func (s WaitConditionCompareType) MarshalJSON() ([]byte, error)

func (WaitConditionCompareType) String

func (s WaitConditionCompareType) String() string

func (*WaitConditionCompareType) UnmarshalJSON

func (s *WaitConditionCompareType) UnmarshalJSON(data []byte) error

type WaitConditionType

type WaitConditionType uint
const (
	WaitConditionTypeUnknown WaitConditionType = iota
	WaitConditionTypeTime
	WaitConditionTypeInactivity
	WaitConditionTypeFull
	WaitConditionTypeEmpty
	WaitConditionTypeItemCount
	WaitConditionTypeCircuit
	WaitConditionTypeRobotsInactive
	WaitConditionTypeFluidCount
	WaitConditionTypePassengerPresent
	WaitConditionTypePassengerNotPresent
)

func ParseWaitConditionType

func ParseWaitConditionType(s string) (WaitConditionType, error)

func (WaitConditionType) MarshalJSON

func (s WaitConditionType) MarshalJSON() ([]byte, error)

func (WaitConditionType) String

func (s WaitConditionType) String() string

func (*WaitConditionType) UnmarshalJSON

func (s *WaitConditionType) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL