name = readString(reader, "name"); reader.readLine(); delayValue.load(reader); reader.readLine(); durationValue.load(reader); reader.readLine(); setMinParticleCount(readInt(reader, "minParticleCount")); lifeOffsetValue.load(reader); reader.readLine(); xOffsetValue.load(reader); reader.readLine(); yOffsetValue.load(reader); reader.readLine(); spawnShapeValue.load(reader);
public void save (Writer output) throws IOException { output.write(name + "\n"); output.write("- Delay -\n"); delayValue.save(output); output.write("- Duration - \n"); durationValue.save(output); output.write("- Count - \n"); output.write("min: " + minParticleCount + "\n"); lifeOffsetValue.save(output); output.write("- X Offset - \n"); xOffsetValue.save(output); output.write("- Y Offset - \n"); yOffsetValue.save(output); output.write("- Spawn Shape - \n"); spawnShapeValue.save(output);
public void set (ScaledNumericValue value) { super.set(value); this.highMin = value.highMin; this.highMax = value.highMax; if (scaling.length != value.scaling.length) scaling = Arrays.copyOf(value.scaling, value.scaling.length); else System.arraycopy(value.scaling, 0, scaling, 0, scaling.length); if (timeline.length != value.timeline.length) timeline = Arrays.copyOf(value.timeline, value.timeline.length); else System.arraycopy(value.timeline, 0, timeline, 0, timeline.length); this.relative = value.relative; }
if (xOffsetValue.active) x += xOffsetValue.newLowValue(); float y = this.y; if (yOffsetValue.active) y += yOffsetValue.newLowValue(); switch (spawnShapeValue.shape) { case square: {
name = readString(reader, "name"); reader.readLine(); delayValue.load(reader); reader.readLine(); durationValue.load(reader); reader.readLine(); setMinParticleCount(readInt(reader, "minParticleCount")); lifeOffsetValue.load(reader); reader.readLine(); xOffsetValue.load(reader); reader.readLine(); yOffsetValue.load(reader); reader.readLine(); spawnShapeValue.load(reader);
public void save (Writer output) throws IOException { output.write(name + "\n"); output.write("- Delay -\n"); delayValue.save(output); output.write("- Duration - \n"); durationValue.save(output); output.write("- Count - \n"); output.write("min: " + minParticleCount + "\n"); lifeOffsetValue.save(output); output.write("- X Offset - \n"); xOffsetValue.save(output); output.write("- Y Offset - \n"); yOffsetValue.save(output); output.write("- Spawn Shape - \n"); spawnShapeValue.save(output);
public ParticleEmitter newExampleEmitter (String name, boolean select) { final ParticleEmitter emitter = new ParticleEmitter(); emitter.getDuration().setLow(3000); emitter.getEmission().setHigh(250); emitter.getLife().setHigh(500, 1000); emitter.getLife().setTimeline(new float[] {0, 0.66f, 1}); emitter.getLife().setScaling(new float[] {1, 1, 0.3f}); emitter.getXScale().setHigh(32, 32); emitter.getRotation().setLow(1, 360); emitter.getRotation().setHigh(180, 180); emitter.getRotation().setTimeline(new float[] {0, 1}); emitter.getRotation().setScaling(new float[] {0, 1}); emitter.getRotation().setRelative(true); emitter.getAngle().setHigh(45, 135); emitter.getAngle().setLow(90); emitter.getAngle().setTimeline(new float[] {0, 0.5f, 1}); emitter.getAngle().setScaling(new float[] {1, 0, 0}); emitter.getAngle().setActive(true); emitter.getVelocity().setHigh(30, 300); emitter.getVelocity().setActive(true); emitter.getTint().setColors(new float[] {1, 0.12156863f, 0.047058824f}); emitter.getTransparency().setHigh(1, 1); emitter.getTransparency().setTimeline(new float[] {0, 0.2f, 0.8f, 1}); emitter.getTransparency().setScaling(new float[] {0, 1, 0.75f, 0}); emitter.setMaxParticleCount(200); emitter.setImagePaths(new Array<String>(new String[] { ParticleEditor.DEFAULT_PARTICLE })); addEmitter(name, select, emitter); return emitter; }
setMaxParticleCount(emitter.maxParticleCount); minParticleCount = emitter.minParticleCount; delayValue.load(emitter.delayValue); durationValue.load(emitter.durationValue); emissionValue.load(emitter.emissionValue); lifeValue.load(emitter.lifeValue); transparencyValue.load(emitter.transparencyValue); tintValue.load(emitter.tintValue); xOffsetValue.load(emitter.xOffsetValue); yOffsetValue.load(emitter.yOffsetValue); spawnWidthValue.load(emitter.spawnWidthValue); spawnHeightValue.load(emitter.spawnHeightValue);
private void restart () { delay = delayValue.active ? delayValue.newLowValue() : 0; delayTimer = 0; durationTimer -= duration; duration = durationValue.newLowValue(); emission = (int)emissionValue.newLowValue(); emissionDiff = (int)emissionValue.newHighValue(); if (!emissionValue.isRelative()) emissionDiff -= emission; if (!lifeValue.independent) generateLifeValues(); if (!lifeOffsetValue.independent) generateLifeOffsetValues(); spawnWidth = spawnWidthValue.newLowValue(); spawnWidthDiff = spawnWidthValue.newHighValue(); if (!spawnWidthValue.isRelative()) spawnWidthDiff -= spawnWidth; spawnHeight = spawnHeightValue.newLowValue(); spawnHeightDiff = spawnHeightValue.newHighValue(); if (!spawnHeightValue.isRelative()) spawnHeightDiff -= spawnHeight; updateFlags = 0; if (angleValue.active && angleValue.timeline.length > 1) updateFlags |= UPDATE_ANGLE; if (velocityValue.active) updateFlags |= UPDATE_VELOCITY; if (xScaleValue.timeline.length > 1) updateFlags |= UPDATE_SCALE; if (yScaleValue.active && yScaleValue.timeline.length > 1) updateFlags |= UPDATE_SCALE; if (rotationValue.active && rotationValue.timeline.length > 1) updateFlags |= UPDATE_ROTATION; if (windValue.active) updateFlags |= UPDATE_WIND; if (gravityValue.active) updateFlags |= UPDATE_GRAVITY; if (tintValue.timeline.length > 1) updateFlags |= UPDATE_TINT; if (spriteMode == SpriteMode.animated) updateFlags |= UPDATE_SPRITE; }
public RangedNumericPanel (final RangedNumericValue value, String name, String description) { super(value, name, description); this.value = value; initializeComponents(); minSlider.setValue(value.getLowMin()); maxSlider.setValue(value.getLowMax()); minSlider.addChangeListener(new ChangeListener() { public void stateChanged (ChangeEvent event) { value.setLowMin((Float)minSlider.getValue()); if (!maxSlider.isVisible()) value.setLowMax((Float)minSlider.getValue()); } }); maxSlider.addChangeListener(new ChangeListener() { public void stateChanged (ChangeEvent event) { value.setLowMax((Float)maxSlider.getValue()); } }); rangeButton.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent event) { boolean visible = !maxSlider.isVisible(); maxSlider.setVisible(visible); rangeButton.setText(visible ? "<" : ">"); Slider slider = visible ? maxSlider : minSlider; value.setLowMax((Float)slider.getValue()); } }); if (value.getLowMin() == value.getLowMax()) rangeButton.doClick(0); }
public ParticleEmitter newEmitter (String name, boolean select) { final ParticleEmitter emitter = new ParticleEmitter(); emitter.getDuration().setLow(1000); emitter.getEmission().setHigh(50); emitter.getLife().setHigh(500); emitter.getXScale().setHigh(32, 32); emitter.getTint().setColors(new float[] {1, 0.12156863f, 0.047058824f}); emitter.getTransparency().setHigh(1); emitter.setMaxParticleCount(25); emitter.setImagePaths(new Array<String>(new String[] { ParticleEditor.DEFAULT_PARTICLE })); addEmitter(name, select, emitter); return emitter; }
public void stateChanged (ChangeEvent event) { value.setLowMax((Float)maxSlider.getValue()); } });
public void set (ScaledNumericValue value) { super.set(value); this.highMin = value.highMin; this.highMax = value.highMax; if (scaling.length != value.scaling.length) scaling = Arrays.copyOf(value.scaling, value.scaling.length); else System.arraycopy(value.scaling, 0, scaling, 0, scaling.length); if (timeline.length != value.timeline.length) timeline = Arrays.copyOf(value.timeline, value.timeline.length); else System.arraycopy(value.timeline, 0, timeline, 0, timeline.length); this.relative = value.relative; }
public void load (BufferedReader reader) throws IOException { super.load(reader); if (!active) return; highMin = readFloat(reader, "highMin"); highMax = readFloat(reader, "highMax"); relative = readBoolean(reader, "relative"); scaling = new float[readInt(reader, "scalingCount")]; for (int i = 0; i < scaling.length; i++) scaling[i] = readFloat(reader, "scaling" + i); timeline = new float[readInt(reader, "timelineCount")]; for (int i = 0; i < timeline.length; i++) timeline[i] = readFloat(reader, "timeline" + i); }
public void save (Writer output) throws IOException { super.save(output); if (!active) return; output.write("highMin: " + highMin + "\n"); output.write("highMax: " + highMax + "\n"); output.write("relative: " + relative + "\n"); output.write("scalingCount: " + scaling.length + "\n"); for (int i = 0; i < scaling.length; i++) output.write("scaling" + i + ": " + scaling[i] + "\n"); output.write("timelineCount: " + timeline.length + "\n"); for (int i = 0; i < timeline.length; i++) output.write("timeline" + i + ": " + timeline[i] + "\n"); }
public void load (ScaledNumericValue value) { super.load(value); highMax = value.highMax; highMin = value.highMin; scaling = new float[value.scaling.length]; System.arraycopy(value.scaling, 0, scaling, 0, scaling.length); timeline = new float[value.timeline.length]; System.arraycopy(value.timeline, 0, timeline, 0, timeline.length); relative = value.relative; } }
/** Sets all motion-related ranged values to match those of the template emitter. */ public void matchMotion (ParticleEmitter template) { RangedNumericValue[] values = getMotionValues(); RangedNumericValue[] templateValues = template.getMotionValues(); for (int i = 0; i < values.length; i++) { values[i].set(templateValues[i]); } }
/** Sets all horizontal size-related ranged values to match those of the template emitter. */ public void matchXSize (ParticleEmitter template) { RangedNumericValue[] values = getXSizeValues(); RangedNumericValue[] templateValues = template.getXSizeValues(); for (int i = 0; i < values.length; i++) { values[i].set(templateValues[i]); } }
public void actionPerformed (ActionEvent event) { boolean visible = !maxSlider.isVisible(); maxSlider.setVisible(visible); rangeButton.setText(visible ? "<" : ">"); Slider slider = visible ? maxSlider : minSlider; value.setLowMax((Float)slider.getValue()); } });
/** Sets all vertical size-related ranged values to match those of the template emitter. */ public void matchYSize (ParticleEmitter template) { RangedNumericValue[] values = getYSizeValues(); RangedNumericValue[] templateValues = template.getYSizeValues(); for (int i = 0; i < values.length; i++) { values[i].set(templateValues[i]); } }