1package com.fs.starfarer.api.util;
3import java.util.Random;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.graphics.SpriteAPI;
12 for (
int i = 0; i < numCopies; i++) {
13 Vector2f jv =
new Vector2f();
14 jv.x = (float) Math.random() * maxJitter - maxJitter/2f;
15 jv.y = (float) Math.random() * maxJitter - maxJitter/2f;
22 private Random random =
new Random(seed);
34 public void render(
SpriteAPI s,
float x,
float y,
float maxJitter,
int numCopies) {
35 render(s, x, y, 0f, maxJitter, numCopies);
38 private boolean setSeedOnRender =
true;
39 private boolean circular;
41 return setSeedOnRender;
45 this.setSeedOnRender = resetSeedOnRender;
49 this.circular = circular;
52 public void render(
SpriteAPI s,
float x,
float y,
float minJitter,
float maxJitter,
int numCopies) {
53 if (setSeedOnRender) {
56 for (
int i = 0; i < numCopies; i++) {
57 Vector2f jv =
new Vector2f();
70 float r = minJitter + (maxJitter - minJitter) * (
float) random.nextFloat();
74 jv.x = random.nextFloat() * maxJitter - maxJitter/2f;
75 jv.y = random.nextFloat() * maxJitter - maxJitter/2f;
77 jv.x = random.nextFloat() * (maxJitter - minJitter) + minJitter;
78 jv.y = random.nextFloat() * (maxJitter - minJitter) + minJitter;
79 if (jv.x < minJitter) jv.x = minJitter;
80 if (jv.y < minJitter) jv.y = minJitter;
81 jv.x *= Math.signum(random.nextFloat() - 0.5f);
82 jv.y *= Math.signum(random.nextFloat() - 0.5f);
boolean isSetSeedOnRender()
void render(SpriteAPI s, float x, float y, float maxJitter, int numCopies)
static void renderWithJitter(SpriteAPI s, float x, float y, float maxJitter, int numCopies)
void setUseCircularJitter(boolean circular)
void render(SpriteAPI s, float x, float y, float minJitter, float maxJitter, int numCopies)
void setSetSeedOnRender(boolean resetSeedOnRender)
static long genRandomSeed()
static Vector2f getPointAtRadius(Vector2f from, float r)
void renderAtCenter(float x, float y)