/
SecondCameraTemplate.java
43 lines (31 loc) · 1.47 KB
/
SecondCameraTemplate.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.gemserk.games.superflyingthing.templates;
import com.artemis.Entity;
import com.gemserk.commons.artemis.components.CameraComponent;
import com.gemserk.commons.artemis.components.Components;
import com.gemserk.commons.artemis.components.ScriptComponent;
import com.gemserk.commons.artemis.scripts.ScriptJavaImpl;
import com.gemserk.commons.artemis.templates.EntityTemplateImpl;
import com.gemserk.commons.gdx.camera.Camera;
import com.gemserk.commons.gdx.camera.Libgdx2dCamera;
import com.gemserk.games.superflyingthing.entities.Tags;
public class SecondCameraTemplate extends EntityTemplateImpl {
@Override
public void apply(Entity entity) {
Libgdx2dCamera libgdx2dCamera = parameters.get("libgdx2dCamera");
Camera camera = parameters.get("camera");
entity.addComponent(new CameraComponent(libgdx2dCamera, camera));
entity.addComponent(new ScriptComponent(new ScriptJavaImpl() {
@Override
public void update(com.artemis.World world, Entity e) {
Entity mainCameraEntity = world.getTagManager().getEntity(Tags.MainCamera);
CameraComponent mainCameraComponent = Components.getCameraComponent(mainCameraEntity);
Camera mainCamera = mainCameraComponent.getCamera();
CameraComponent cameraComponent = Components.getCameraComponent(e);
Camera camera = cameraComponent.getCamera();
camera.setPosition(mainCamera.getX(), mainCamera.getY());
camera.setZoom(mainCamera.getZoom() * 0.25f);
camera.setAngle(mainCamera.getAngle());
}
}));
}
}