use of org.terasology.nui.Color in project Terasology by MovingBlocks.
the class PlayerConfig method defaultPlayerColor.
/**
* Randomly generates a default color for the player via a random int generator using FastRandom object.
*
* @return a Color object with the player's default color.
*/
private Color defaultPlayerColor() {
Random rng = new FastRandom();
List<Color> colors = CieCamColors.L65C65;
return colors.get(rng.nextInt(colors.size()));
}
use of org.terasology.nui.Color in project Terasology by MovingBlocks.
the class ColorConstraintWidgetFactory method findClosestColor.
private Color findClosestColor(float findex) {
int index = DoubleMath.roundToInt(findex * (double) (colors.size() - 1), RoundingMode.HALF_UP);
Color color = colors.get(index);
return color;
}
use of org.terasology.nui.Color in project Terasology by MovingBlocks.
the class PlayerNameTagSystem method onCharacterActivation.
/**
* Listening for {@link OnPlayerSpawnedEvent} does not work, as it is an
* authority event that does not get processed at clients. That is why we listen for the activation.
*/
@ReceiveEvent(components = CharacterComponent.class)
public void onCharacterActivation(OnActivatedComponent event, EntityRef characterEntity, CharacterComponent characterComponent) {
EntityRef ownerEntity = networkSystem.getOwnerEntity(characterEntity);
if (ownerEntity == null) {
// NPC
return;
}
ClientComponent clientComponent = ownerEntity.getComponent(ClientComponent.class);
if (clientComponent == null) {
// the character is not owned by a client (no other player)
return;
}
if (clientComponent.local) {
// the character belongs to the local player and does not need a name tag
return;
}
EntityRef clientInfoEntity = clientComponent.clientInfo;
DisplayNameComponent displayNameComponent = clientInfoEntity.getComponent(DisplayNameComponent.class);
if (displayNameComponent == null) {
logger.debug("Cannot create name tag for client without DisplayNameComponent");
return;
}
String name = displayNameComponent.name;
float yOffset = characterComponent.nameTagOffset;
ColorComponent colorComponent = clientInfoEntity.getComponent(ColorComponent.class);
final Color color = colorComponent != null ? colorComponent.color : Color.WHITE;
characterEntity.upsertComponent(NameTagComponent.class, maybeNameTag -> {
NameTagComponent nameTagComponent = maybeNameTag.orElse(new NameTagComponent());
nameTagComponent.text = name;
nameTagComponent.textColor = color;
nameTagComponent.yOffset = yOffset;
return nameTagComponent;
});
}
use of org.terasology.nui.Color in project Terasology by MovingBlocks.
the class AABBRenderer method generateDisplayListSolid.
private void generateDisplayListSolid() {
MeshBuilder builder = new MeshBuilder();
builder.addBox(aabb.extent(new Vector3f()).mul(-1.0f), aabb.extent(new Vector3f()).mul(2.0f), 0.0f, 0.0f).setTextureMapper(new MeshBuilder.TextureMapper() {
@Override
public void initialize(Vector3fc offset, Vector3fc size) {
}
@Override
public Vector2fc map(int vertexIndex, float u, float v) {
switch(vertexIndex) {
// Front face
case 0:
return new Vector2f(0f, 1f);
case 1:
return new Vector2f(1f, 1f);
case 2:
return new Vector2f(1f, 1);
case 3:
return new Vector2f(0f, 1);
// Back face
case 4:
return new Vector2f(1f, 1f);
case 5:
return new Vector2f(1f, 1);
case 6:
return new Vector2f(0f, 1);
case 7:
return new Vector2f(0f, 1f);
// Top face
case 8:
return new Vector2f(1f, 0f);
case 9:
return new Vector2f(1f, 1f);
case 10:
return new Vector2f(0f, 1f);
case 11:
return new Vector2f(0f, 0f);
// Bottom face
case 12:
return new Vector2f(1f, 0f);
case 13:
return new Vector2f(0f, 0f);
case 14:
return new Vector2f(0f, 1f);
case 15:
return new Vector2f(1f, 1f);
// Right face
case 16:
return new Vector2f(1f, 1f);
case 17:
return new Vector2f(1f, 1);
case 18:
return new Vector2f(0f, 1);
case 19:
return new Vector2f(0f, 1f);
// Left face
case 20:
return new Vector2f(0f, 0f);
case 21:
return new Vector2f(1f, 0f);
case 22:
return new Vector2f(1f, 1.0f);
case 23:
return new Vector2f(0f, 1.0f);
default:
throw new RuntimeException("Unreachable state.");
}
}
});
for (int x = 0; x < 24; x++) {
builder.addColor(new Color(solidColor.x, solidColor.y, solidColor.z, solidColor.w));
}
solidMesh = builder.build();
}
use of org.terasology.nui.Color in project Terasology by MovingBlocks.
the class ColorHueAnimator method apply.
@Override
public void apply(float v) {
int count = colors.size();
int index = (v == 1.0) ? count - 1 : (int) (v * count);
Color color = colors.get(index);
consumer.accept(color);
}
Aggregations