interfaces

package
v0.0.0-...-e7326f8 Latest Latest
Warning

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

Go to latest
Published: May 18, 2024 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	RBTypeStatic    = RBType(box2d.B2BodyType.B2_staticBody)
	RBTypeKinematic = RBType(box2d.B2BodyType.B2_kinematicBody)
	RBTypeDynamic   = RBType(box2d.B2BodyType.B2_dynamicBody)
)

Functions

This section is empty.

Types

type FontOptions

type FontOptions struct {
	FontColor            color.Color
	FontSize             float64
	LineSpacing          float64
	LineSpacingMutiplier float64
}

type IBgColor

type IBgColor interface {
	// Set a background color
	SetBgColor(clr color.Color)
	// Returns current background color
	GetBgColor() color.Color
}

type ICamera

type ICamera interface {
	// Returns transform of the camera. Rotation doesn't
	// implemented and will be ignored.
	GetTransform() ITransform
	// Returns layer limit (Z coordinate) at which the
	// camera stops displaying the object.
	GetViewRange() float64
	// Set the layer limit (Z coordinate) at which the
	// camera stops displaying the object.
	SetViewRange(viewRange float64)
	// Returns a width of the screen resolution.
	// Measured in pixels.
	GetResolutionWidth() int
	// Returns a height of the screen resolution.
	// Measured in pixels.
	GetResolutionHeight() int
	// Returns a vector with the screen resolution.
	// Measured in pixels.
	GetResolutionVector() *vector2.Vector2
	// Set a resolution of the screen. Measured in
	// pixels.
	SetResolution(width int, height int)
	// Set a width of the screen resolution. Measured in
	// pixels.
	SetResolutionWidth(width int)
	// Set a height of the screen resolution. Measured in
	//pixels.
	SetResolutionHeight(height int)
	// Get a screen offset of the camera. Offset -
	// Is a vector thattakes into account the current
	// camera coordinates and resolution size. Also takes into
	// account the camera scale.
	GetOffset() *vector2.Vector2
	// * BE CAREFUL
	//
	// Set a offset of the camera. Offset - Is a vector
	// thattakes into account the current camera coordinates
	// and resolution size. Also takes into account the
	// camera scale.
	SetOffset(offset *vector2.Vector2)
	// Implementation of the goi.Component
	GetID() string
}

type IGOMap

type IGOMap interface {
	// Must be called before all the operations.
	SetupGame(gameBase IGameBase)
	// Tries to get the game object by given name.
	Get(name string) (i interface{}, ok bool)
	// Registers a new game object. If Awake() function implemented,
	// it will be called. This will be applied to all the components
	// of the game object.
	Register(name string, gameObject interface{}) error
	// Unregisters the game object. If Destroy() function implemented,
	// it will be called. This will be applied to all the components
	// of the game object.
	Unregister(name string) error
	// Calls Update(), PhysUpdate() functions.
	Update() error
	// Calls Draw(), DrawUI() functions, previously sorts it by
	// priority.
	Draw(screen *ebiten.Image) error
	// One-time function, that must be called from Scene.Enter()
	// only once. Starts all the queued startables, that implements
	// StartableQueued interface.
	StartQueuedStartables() error
	// Unregisters all the game objects.
	UnregisterAll() error
}

Not full implementation of the GOMap interface.

type IGameBase

type IGameBase interface {
	// Changes a current scene of the game.
	SetScene(s IScene) error
	// Returns current showing scene.
	GetCurrentScene() IScene
	// Returns true if debugging is enabled.
	GetDebugMode() bool
	// Changes the debug mode.
	SetDebugMode(debug bool)
	// Returns defined running side. Client \ Server \ Singleplayer.
	GetRunSide() RunSide

	Update() error
	Draw(screen *ebiten.Image)
	Layout(outsideWidth, outsideHeight int) (screenWidth, screenHeight int)
	Run(windowSizeX int, windowSizeY int, title string) error
	RunAsMobile()
}

type IPhysSystem

type IPhysSystem interface {
	// Returns new Box2D body that created in the Box2D
	// world.
	NewB2Body(def *box2d.B2BodyDef) *box2d.B2Body
	// Registers the rigidbody in the rigidbodies registry.
	// All the non-registered rigidbodies wouldn't be calculated.
	RegisterRigidbody(rb IRigidbody)
	// Unregisters the rigidbody.
	UnregisterRigidbody(rb IRigidbody)
	// Returns Box2D world.
	GetB2World() *box2d.B2World
}

An interface over Box2D that defines all the physics in the scene.

type IRichText

type IRichText interface {
	GetOriginalText() string
	SetColorDict(colorsDict map[string]color.Color)
	GetColorDict() map[string]color.Color
	SetRichTextOptions(rtOptions RichTextOptions)
	GetRichTextOptions() RichTextOptions
	SetEnableHexCommands(v bool)
	SetEnableNamedCommands(v bool)
}

type IRigidbody

type IRigidbody interface {
	// Returns a type of this rigidbody.
	GetType() RBType
	// Returns a transform that controlled by physics.
	GetB2Body() *box2d.B2Body
	// Returns a Box2D body.
	GetFixture() *box2d.B2Fixture
	// Retruns the physical system to which this rigidbody
	// is attached.
	GetPhysSystem() IPhysSystem
	// Updates the transform according to physics.
	// Called by PhysSystem with PhysUpdate().
	UpdateTransform()
	// Implementation of the goi.Component
	GetID() string
}

type IScene

type IScene interface {
	Enter() error
	Exit() error
	SetEnterF(enterF SceneF)
	SetExitF(exitF SceneF)
	SetMainCamera(cam ICamera) error
	GetMainCamera() ICamera
	GetGOMap() IGOMap

	GetPhysSystem() IPhysSystem
}

type ISprite

type ISprite interface {
	// Returns the transform that this component is using.
	GetTransform() ITransform
	// Returns current image of the sprite.
	GetImage() *ebiten.Image
	// Set a image of the sprite.
	SetImage(image *ebiten.Image)
	// Returns options of the sprite.
	GetOptions() *SpriteOptions
	// Set options of the sprite.
	SetOptions(opts *SpriteOptions)
	// Returns a pivot of the sprite.
	GetPivot() *vector2.Vector2
	// Returns an opposite value of the sprite pivot.
	GetPivotOpposite() *vector2.Vector2
	// Returns a scaled pivot of the sprite. Mulitplies
	// pivot by the scale of the transform.
	GetPivotScaled() *vector2.Vector2
	// Returns an scaled opposite value of the sprite pivot.
	// Multiplies opposite value of the pivot by the scale
	// of the transform.
	GetPivotOppositeScaled() *vector2.Vector2
	// Changes pivot of the sprite.
	SetPivot(pivot *vector2.Vector2)
	// Get size of the image.
	GetImageSize() *vector2.Vector2
	// Get the bounding box of the sprite.
	GetBoudingBox() (bbA, bbB *vector2.Vector2)
	// Changes visiblity of the sprite.
	SetVisible(v bool)
	// Changes color of the sprite. By default is white. This
	// color doesn't changes the color of the image.
	SetColor(c color.Color)
	// Implementation of the goi.Component
	GetID() string
}

type ITileMap

type ITileMap[T any] interface {
	// Returns the transform used by this tilemap.
	GetTransform() ITransform
	// Places a tile at the given position. Returns the transform,
	// that must be set to this tile.
	PlaceTile(localX, localY int, localRot, localLayer float64, tile T) ITransform
	// Removes tile at the given position.
	RemoveTile(localX, localY int, localLayer float64) bool
	// Tries to get a tile with given position. If there is no
	// tile, ok is equals to "false".
	TileAt(localX, localY int, localLayer float64) (tile T, ok bool)
	// Converts given point to the tilemap coordinates system.
	OffsetVector2(point *vector2.Vector2) *vector2.Vector2
	// Converts coordinates of the tilemap coordinates system to
	// the default coordinates.
	OffsetCoordinates(point *vector2.Vector2) (int, int)
}

type ITransform

type ITransform interface {
	// Changes current position of the object.
	SetPosition(pos *vector2.Vector2)
	// Changes scale of the object.
	SetScale(scale *vector2.Vector2)
	// Changes rotation of the object.
	SetRotation(rot float64)
	// Changes displaying layer of the object. This
	// also known as Z coordinate.
	SetLayer(layer float64)
	// Changes parent of the transform.
	SetParent(parent ITransform)

	// Returns current position of the object.
	GetPosition() *vector2.Vector2
	// Returns current scale of the object.
	GetScale() *vector2.Vector2
	// Returns rotation of the object.
	GetRotation() float64
	// Returns displaying layer of the object.
	// Also known as Z coordinate.
	GetLayer() float64
	// Returns parent of the object. If there is no
	// parent, nil will be returned.
	GetParent() ITransform
	// Returns the local position of the object.
	GetLocalPosition() *vector2.Vector2
	// Returns the local scale of the object.
	GetLocalScale() *vector2.Vector2
	// Returns the local rotation of the object.
	GetLocalRotation() float64
	// Returns the local position of the object.
	GetLocalLayer() float64
	// Changes a local position of the object.
	SetLocalPosition(pos *vector2.Vector2)
	// Changes a local scale of the object.
	SetLocalScale(scale *vector2.Vector2)
	// Changes a local rotation of the object.
	SetLocalRotation(rot float64)
	// Changes a local displaying layer of the object.
	// This also known as Z coordinate.
	SetLocalLayer(layer float64)
}

type IUIButton

type IUIButton interface {
	// is clicked. Know that here can be only
	// one handler.
	//
	// * NOTE: function-handler can be called
	// multiply times because of clicking
	// different mouse buttons (left, right,
	// center, etc.)
	//
	// Function must have this type:
	//
	//   func(e interfaces.UIButtonClickEvent) error
	OnClick(onClickF UIButtonClickF)
	// When mouse button is released, this
	// function-handler will be called. Know
	// that here can be only one handler.
	//
	// * NOTE: function-handler can be called
	// multiply times because of clicking
	// different mouse buttons (left, right,
	// center, etc.)
	//
	// Function must have this type:
	//
	//   func(e interfaces.UIButtonClickEvent) error
	ExitClick(exitClickF UIButtonClickF)
	// When the cursor will be hovered on the
	// button, i.e. will enter into the borders
	// of the button then the function-handler
	// will be called. Know that here can be
	// only one handler.
	//
	// Function must have this type:
	//
	//   func(e UIButtonHoverEvent) error
	OnHover(onHover UIButtonHoverF)
	// When the cursor exits from the borders
	// of the button then function-handler
	// will be called. Know that here can be
	// only one handler.
	//
	// Function must have this type:
	//
	//   func(e UIButtonHoverEvent) error
	ExitHover(exitHover UIButtonHoverF)
	// Implementation of the goi.Component
	GetID() string
}

type IUICollider

type IUICollider interface {
	// Changes the size scalar of the collider. Because
	// the collider is attached to a sprite, this value
	// resizes relative to the size of the sprite. The default
	// value is Vector2(1,1) which does not resize the collider
	// relative to the sprite.
	//
	// Calculated by this algorithm:
	//   colliderSize := sprite.size * sizeScalar
	SetSizeScalar(ss *vector2.Vector2)
	// Returns the value of the size scalar. As the documentation
	// for function SetSizeScalar() says, this value is relative
	// to the size of the sprite.
	//
	// Calculated by this algorithm:
	//   colliderSize := sprite.size * sizeScalar
	GetSizeScalar() *vector2.Vector2
	// Changes the offset of the collider position relative to
	// the sprite position. The default value is Vector(0,0) which
	// does not changes the position of the collider.
	//
	// Calculates using this algorithm:
	//   colliderPosition := sprite.position + positionOffset
	SetPositionOffset(posOffset *vector2.Vector2)
	// Returns the position of the collider. As the documentation
	// for function SetPositionOffset() says, this value is relative
	// to the position of the sprite.
	//
	// Calculates using this algorithm:
	//   colliderPosition := sprite.position + positionOffset
	GetPositionOffset() *vector2.Vector2
	// Returns the sprite this collider is attached to.
	GetSprite() ISprite
	// Returns internal value of the polygon. This value is
	// calculated each frame in the PhysUpdate() function.
	// Used for use with collision2d API.
	GetPolygon() *collision2d.Polygon
	// Returns collider tags. Most common use is triggers
	// when using a collider on Sprite.
	GetCTags() *ctags.CTags
	// Returns boxPolygon (internal value) at the given position.
	// Main use is in PhysUpdate() function.
	GetPolygonAtPosition(pos *vector2.Vector2) *collision2d.Polygon
	GetID() string // Implementation of the goi.Component
}

type IUIText

type IUIText interface {
	// Returns GoTextFaceSource object (see ebiten/v2/text/v2).
	GetFontFaceSource() *text.GoTextFaceSource
	// Returns GoTextFace object (see ebiten/v2/text/v2).
	GetFontFace() *text.GoTextFace
	// Changes the displaying text.
	SetText(text string)
	// Changes the color of the text.
	SetFontColor(fontColor color.Color)
	// Sets a size of the font.
	//
	// * IMPORTANT: This function changes the value
	// of the line spacing.
	SetFontSize(fontSize float64)
	// Sets the line spacing option directly.
	//
	// * BE CAREFUL!
	SetLineSpacing(lineSpacing float64)
	// Changes the multiplier of linespacing.
	SetLineSpacingMultiplier(multiplier float64)
	// Returns the transform used by this text object.
	GetTransform() ITransform
	// Returns current text.
	GetText() string
	// Returns the font options.
	GetFontOptions() *FontOptions
	// Changes the font options.
	SetFontOptions(fontOptions *FontOptions)
	// Directly install "font" value to the given font. It
	// is bypasses "FontSize" parameter of the font options.
	//
	// This function useful for UIText interfaces, such as
	// RichText.
	//
	// * BE CAREFUL!
	SetFontDirectly(font *text.GoTextFace)
}

type PhysSettings

type PhysSettings struct {
	TimeStep           float64
	VelocityIterations int
	PositionIterations int
}

type RBType

type RBType uint8

type RichTextOptions

type RichTextOptions struct {
	EnableHexCommands   bool
	EnableNamedCommands bool
}

Regulates some options of the rich text

type RunSide

type RunSide uint8
const (
	RunSideSingleplayer RunSide = iota
	RunSideClient
	RunSideServer
)

type SceneF

type SceneF func(scene IScene) error

type SpriteOptions

type SpriteOptions struct {
	Visible bool        // Defines if sprite will be visible on screen.
	Color   color.Color // Color mask of the sprite.
}

type UIButtonClickEvent

type UIButtonClickEvent struct {
	GameBase    IGameBase
	Button      IUIButton
	MouseButton ebiten.MouseButton
}

type UIButtonClickF

type UIButtonClickF func(e UIButtonClickEvent) error

type UIButtonHoverEvent

type UIButtonHoverEvent struct {
	GameBase IGameBase
	Button   IUIButton
}

type UIButtonHoverF

type UIButtonHoverF func(e UIButtonHoverEvent) error

Jump to

Keyboard shortcuts

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