Documentation ¶
Overview ¶
Package cube provides types and functions to handle positions and rotations of voxel-based objects in a 3D world.
Index ¶
- type Axis
- type Direction
- type Face
- type Orientation
- type Pos
- func (p Pos) Add(pos Pos) Pos
- func (p Pos) Face(other Pos) Face
- func (p Pos) Neighbours(f func(neighbour Pos), r Range)
- func (p Pos) OutOfBounds(r Range) bool
- func (p Pos) Side(face Face) Pos
- func (p Pos) String() string
- func (p Pos) Subtract(pos Pos) Pos
- func (p Pos) Vec3() mgl64.Vec3
- func (p Pos) Vec3Centre() mgl64.Vec3
- func (p Pos) Vec3Middle() mgl64.Vec3
- func (p Pos) X() int
- func (p Pos) Y() int
- func (p Pos) Z() int
- type Range
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Axis ¶
type Axis int
Axis represents the axis that a block may be directed in. Most blocks do not have an axis, but blocks such as logs or pillars do.
func (Axis) RotateLeft ¶ added in v0.2.0
RotateLeft rotates an Axis from X to Z or from Z to X.
func (Axis) RotateRight ¶ added in v0.2.0
RotateRight rotates an Axis from X to Z or from Z to X.
type Direction ¶
type Direction int
Direction represents a direction towards one of the horizontal axes of the world.
func Directions ¶
func Directions() []Direction
Directions returns a list of all directions, going from North to West.
func (Direction) RotateLeft ¶ added in v0.2.0
RotateLeft rotates the direction 90 degrees to the left horizontally and returns the new direction.
func (Direction) RotateRight ¶ added in v0.2.0
RotateRight rotates the direction 90 degrees to the right horizontally and returns the new direction.
type Face ¶
type Face int
Face represents the face of a block or entity.
const ( // FaceDown represents the bottom face of a block. FaceDown Face = iota // FaceUp represents the top face of a block. FaceUp // FaceNorth represents the north face of a block. FaceNorth // FaceSouth represents the south face of a block. FaceSouth // FaceWest represents the west face of the block. FaceWest // FaceEast represents the east face of the block. FaceEast )
func Faces ¶ added in v0.2.0
func Faces() []Face
Faces returns a list of all faces, starting with down, then up, then north to west.
func HorizontalFaces ¶
func HorizontalFaces() []Face
HorizontalFaces returns a list of all horizontal faces, from north to west.
func (Face) Axis ¶
Axis returns the axis the face is facing. FaceEast and west correspond to the x-axis, north and south to the z axis and up and down to the y-axis.
func (Face) Direction ¶
Direction converts the Face to a Direction and returns it, assuming the Face is horizontal and not FaceUp or FaceDown.
func (Face) Opposite ¶
Opposite returns the opposite face. FaceDown will return up, north will return south and west will return east, and vice versa.
func (Face) RotateLeft ¶ added in v0.2.0
RotateLeft rotates the face 90 degrees to the left horizontally and returns the new face.
func (Face) RotateRight ¶ added in v0.2.0
RotateRight rotates the face 90 degrees to the right horizontally and returns the new face.
type Orientation ¶ added in v0.2.0
type Orientation int
Orientation represents the orientation of a sign
func OrientationFromYaw ¶ added in v0.2.0
func OrientationFromYaw(yaw float64) Orientation
OrientationFromYaw returns an Orientation value that (roughly) matches the yaw passed.
func (Orientation) Opposite ¶ added in v0.2.0
func (o Orientation) Opposite() Orientation
Opposite returns the opposite orientation value of the Orientation.
func (Orientation) RotateLeft ¶ added in v0.2.0
func (o Orientation) RotateLeft() Orientation
RotateLeft rotates the orientation left by 90 degrees and returns it.
func (Orientation) RotateRight ¶ added in v0.2.0
func (o Orientation) RotateRight() Orientation
RotateRight rotates the orientation right by 90 degrees and returns it.
func (Orientation) Yaw ¶ added in v0.2.0
func (o Orientation) Yaw() float64
Yaw returns the yaw value that matches the orientation.
type Pos ¶
type Pos [3]int
Pos holds the position of a block. The position is represented of an array with an x, y and z value, where the y value is positive.
func PosFromVec3 ¶
PosFromVec3 returns a block position by a Vec3, rounding the values down adequately.
func (Pos) Add ¶
Add adds two block positions together and returns a new one with the combined values.
func (Pos) Face ¶
Face returns the face that the other Pos was on compared to the current Pos. The other Pos is assumed to be a direct neighbour of the current Pos.
func (Pos) Neighbours ¶
Neighbours calls the function passed for each of the block position's neighbours. If the Y value is out of bounds, the function will not be called for that position.
func (Pos) OutOfBounds ¶
OutOfBounds checks if the Y value is either bigger than r[1] or smaller than r[0].
func (Pos) String ¶ added in v0.4.1
String converts the Pos to a string in the format (1,2,3) and returns it.
func (Pos) Subtract ¶
Subtract subtracts two block positions together and returns a new one with the combined values.
func (Pos) Vec3Centre ¶
Vec3Centre returns a Vec3 holding the coordinates of the block position with 0.5 added on all axes.
func (Pos) Vec3Middle ¶
Vec3Middle returns a Vec3 holding the coordinates of the block position with 0.5 added on both horizontal axes.
type Range ¶ added in v0.5.0
type Range [2]int
Range represents the height range of a Dimension in blocks. The first value of the Range holds the minimum Y value, the second value holds the maximum Y value.
func (Range) Height ¶ added in v0.5.0
Height returns the total height of the Range, the difference between Max and Min.