Versions in this module Expand all Collapse all v0 v0.0.3 Dec 21, 2022 v0.0.2 Aug 5, 2022 Changes in this version type FloatMagnet + func (self *FloatMagnet) Update() type FloatMagnetState + const StCreate type PowerDock + func (self *PowerDock) MarkEphemerousDock() + func (self *PowerDock) Update() + type Target struct + func NewTarget(initCol, initRow int16, looping bool) *Target + func (self *Target) AddPos(col, row int16) + func (self *Target) Draw(screen *ebiten.Image) + func (self *Target) GetColRow() (int16, int16) + func (self *Target) Move() + func (self *Target) Update() type TransferDock + Source *TransferSource + func (self *TransferDock) Update() + type TransferProc struct + func NewTransferProc(transfer *TransferSource, magnet *FloatMagnet) TransferProc + func (self TransferProc) OnDockChange(magnet *FloatMagnet) + type TransferSource struct + func (self *TransferSource) OnDockChange(magnet *FloatMagnet) + func (self *TransferSource) Output() (PolarityType, imgcolor.RGBA) + func (self *TransferSource) Update() type WinPoint + func (self *WinPoint) Update() type Wire2 + func (self *Wire2) Update() type WireSwitch + func (self *WireSwitch) Update() v0.0.1 Jul 3, 2022 Changes in this version + func NewTransferDockPair(col1, row1 int16, col2, row2 int16) (*TransferDock, *TransferDock) + type CandidateMovesPack struct + Magnet *FloatMagnet + NE int16 + NW int16 + SE int16 + SW int16 + func (self *CandidateMovesPack) ApplyInertia(state FloatMagnetState) + func (self *CandidateMovesPack) CanUnlock() bool + func (self *CandidateMovesPack) CorrectOpposing() + func (self *CandidateMovesPack) DisableMove(targetCol, targetRow int16) bool + func (self *CandidateMovesPack) Empty() bool + func (self *CandidateMovesPack) TileNE() (int16, int16) + func (self *CandidateMovesPack) TileNW() (int16, int16) + func (self *CandidateMovesPack) TileSE() (int16, int16) + func (self *CandidateMovesPack) TileSW() (int16, int16) + type FallingMagnet struct + func (self *FallingMagnet) Draw(screen *ebiten.Image, _ float64) + func (self *FallingMagnet) FallUpdate() bool + func (self *FallingMagnet) LogicalY() int + type FloatMagnet struct + func NewFloatMagnet(col, row int16, state FloatMagnetState, polarity PolarityType) *FloatMagnet + func (self *FloatMagnet) CanDock() bool + func (self *FloatMagnet) CanSpectre() bool + func (self *FloatMagnet) CanSwitch() bool + func (self *FloatMagnet) CanUndock() bool + func (self *FloatMagnet) Column() int16 + func (self *FloatMagnet) ConfirmMove(col, row int16) + func (self *FloatMagnet) CreateRaising() *RaisingMagnet + func (self *FloatMagnet) Dock(dch dockChangeHandler) bool + func (self *FloatMagnet) Draw(screen *ebiten.Image, cycle float64) + func (self *FloatMagnet) HasPendingSwitch() bool + func (self *FloatMagnet) IsAboveHighlight(cycle float64) bool + func (self *FloatMagnet) LogicalY() int + func (self *FloatMagnet) MagneticRange() int16 + func (self *FloatMagnet) MagneticSim(magnets iso.Map[Magnet]) *CandidateMovesPack + func (self *FloatMagnet) OnDockChange(magnet *FloatMagnet) + func (self *FloatMagnet) Polarity() PolarityType + func (self *FloatMagnet) PreSetDockChangeHandler(dch dockChangeHandler) + func (self *FloatMagnet) Row() int16 + func (self *FloatMagnet) Spectre() bool + func (self *FloatMagnet) StateSim(surface iso.Map[struct{}], floatTilePolarity PolarityType, simUpdateCount int) *FallingMagnet + func (self *FloatMagnet) Switch() bool + func (self *FloatMagnet) Undock() bool + type FloatMagnetState uint8 + const StDocked + const StDocking + const StFloating + const StMoveNE + const StMoveNW + const StMoveSE + const StMoveSW + const StUndocking + type Magnet interface + Draw func(screen *ebiten.Image, cycle float64) + IsAboveHighlight func(cycle float64) bool + LogicalY func() int + MagneticRange func() int16 + type MoveChoice struct + Magnet *FloatMagnet + TargetColumn int16 + TargetRow int16 + func SolveCandidateMovesSystem(unsolvedPacks []*CandidateMovesPack, magnets iso.Map[Magnet]) []MoveChoice + type PolarityType uint8 + const PolarityHack + const PolarityNegative + const PolarityNeutral + const PolarityPositive + func (self PolarityType) AsFunc() func() PolarityType + func (self PolarityType) Color() color.RGBA + type Polarized interface + Polarity func() PolarityType + func NewStaticSource(polarity PolarityType) Polarized + type PowerDock struct + func NewPowerDock(col, row int16) *PowerDock + func (self *PowerDock) Draw(screen *ebiten.Image) + func (self *PowerDock) OnDockChange(magnet *FloatMagnet) + func (self *PowerDock) Output() PolarityType + func (self *PowerDock) PreSetMagnet(magnet *FloatMagnet) + type RaisingMagnet struct + func (self *RaisingMagnet) Draw(screen *ebiten.Image) + func (self *RaisingMagnet) Update() + func (self *RaisingMagnet) Y() int + type StaticMagnet struct + func NewStaticMagnet(col, row int16, polarityFunc func() PolarityType) *StaticMagnet + func (self *StaticMagnet) Draw(screen *ebiten.Image, _ float64) + func (self *StaticMagnet) IsAboveHighlight(_ float64) bool + func (self *StaticMagnet) LogicalY() int + func (self *StaticMagnet) MagneticRange() int16 + func (self *StaticMagnet) Polarity() PolarityType + func (self *StaticMagnet) Update() + type TransferDock struct + TargetCol int16 + TargetRow int16 + X int + Y int + func (self *TransferDock) Draw(screen *ebiten.Image) + type WinPoint struct + Col int16 + Polarity PolarityType + Row int16 + func (self *WinPoint) Draw(screen *ebiten.Image) + type Wire2 struct + func NewWire2(col, row int16, a, b WireConn, polaritySrcFunc func() PolarityType) *Wire2 + func (self *Wire2) Draw(screen *ebiten.Image) + type WireConn uint8 + const ConnNE + const ConnNW + const ConnSE + const ConnSW + type WireSwitch struct + func NewWireSwitch(col, row int16, src, a, b WireConn, polaritySrcFunc func() PolarityType) *WireSwitch + func (self *WireSwitch) CanSwitch() bool + func (self *WireSwitch) Draw(screen *ebiten.Image) + func (self *WireSwitch) OutA() PolarityType + func (self *WireSwitch) OutB() PolarityType + func (self *WireSwitch) SetPendingSwitch() + func (self *WireSwitch) Switch()