MCPcopy
hub / github.com/EngoEngine/engo / Add

Method Add

common/render.go:261–303  ·  view source on GitHub ↗

Add adds an entity to the RenderSystem. The entity needs a basic, render, and space component to be added to the system.

(basic *ecs.BasicEntity, render *RenderComponent, space *SpaceComponent)

Source from the content-addressed store, hash-verified

259
260// Add adds an entity to the RenderSystem. The entity needs a basic, render, and space component to be added to the system.
261func (rs *RenderSystem) Add(basic *ecs.BasicEntity, render *RenderComponent, space *SpaceComponent) {
262 // Do nothing if entity already exists
263 if _, ok := rs.ids[basic.ID()]; ok {
264 return
265 }
266
267 rs.ids[basic.ID()] = struct{}{}
268
269 render.ensureShader()
270
271 // This is to prevent users from using the wrong one
272 if render.shader == HUDShader {
273 switch render.Drawable.(type) {
274 case Triangle:
275 render.shader = LegacyHUDShader
276 case Circle:
277 render.shader = LegacyHUDShader
278 case Rectangle:
279 render.shader = LegacyHUDShader
280 case ComplexTriangles:
281 render.shader = LegacyHUDShader
282 case Text:
283 render.shader = TextHUDShader
284 default:
285 render.shader = HUDShader
286 }
287 }
288
289 // If the scale is zero, set it to one.
290 if render.Scale.X == 0 {
291 render.Scale.X = 1
292 }
293 if render.Scale.Y == 0 {
294 render.Scale.Y = 1
295 }
296
297 if render.zIndex == 0 {
298 render.zIndex = render.StartZIndex
299 }
300
301 rs.entities = append(rs.entities, renderEntity{basic, render, space})
302 rs.sortingNeeded = true
303}
304
305// EntityExists looks if the entity is already into the System's entities. It will return the index >= 0 of the object into de rs.entities or -1 if it could not be found.
306func (rs *RenderSystem) EntityExists(basic *ecs.BasicEntity) int {

Callers 1

AddByInterfaceMethod · 0.95

Calls 2

IDMethod · 0.80
ensureShaderMethod · 0.80

Tested by

no test coverage detected