forked from SteamWar/SteamWar
Lower drawn wings to the shoulder blades
The drawn shapes had their shoulder joint at head height. They now sit about 1.3 blocks above the feet at the default size.
This commit is contained in:
@@ -101,11 +101,15 @@ public enum DrawnWings {
|
||||
abstract List<List<Vector>> rightWing();
|
||||
|
||||
private static final Map<String, WingDesign> CACHE = new HashMap<>();
|
||||
// The shapes are drawn with the shoulder joint at y = 7; moving it to 3.3 puts it at the shoulder blades
|
||||
// (about 1.3 blocks above the feet at the default size) instead of at head height
|
||||
private static final double SHOULDER_SHIFT = 7 - 3.3;
|
||||
|
||||
// Both wings with the given number of points per wing, spread evenly along the lines
|
||||
public WingDesign withDetail(int pointsPerWing) {
|
||||
return CACHE.computeIfAbsent(name() + "@" + pointsPerWing, key -> {
|
||||
List<Vector> right = sample(rightWing(), pointsPerWing);
|
||||
right.forEach(point -> point.setY(point.getY() - SHOULDER_SHIFT));
|
||||
List<Vector> both = new ArrayList<>(right);
|
||||
right.forEach(point -> both.add(new Vector(-point.getX(), point.getY(), 0)));
|
||||
return new WingDesign.WingDesignImpl(both.toArray(new Vector[0]));
|
||||
|
||||
Reference in New Issue
Block a user