@Override public ConfiguredComponentStandard[] defaultComponents(ChassisBase aChassis) { ChassisStandard chassis = (ChassisStandard) aChassis; ConfiguredComponentStandard[] ans = new ConfiguredComponentStandard[Location.values().length]; for (ComponentStandard component : chassis.getComponents()) { ans[component.getLocation().ordinal()] = new ConfiguredComponentStandard(component, true); } return ans; }
public void updateGraph() { DefaultTableXYDataset dataset = new DefaultTableXYDataset(); for (Entry entry : chassis) { XYSeries series = new XYSeries(entry.name, false, false); if (entry.representant instanceof ChassisStandard) { ChassisStandard chassisStandard = (ChassisStandard) entry.representant; for (int rating = chassisStandard.getEngineMin(); rating <= chassisStandard.getEngineMax(); rating += 5) { if (rating < 100) { continue; // TODO: Remove this when they remove the engine limit. } double speed = TopSpeed.calculate( rating, chassisStandard.getMovementProfileBase(), chassisStandard.getMassMax(), efficiencies.getSpeedModifier()); series.add(speed, payloadStatistics.calculate(chassisStandard, rating)); } } else { // Omnimech ChassisOmniMech chassisOmniMech = (ChassisOmniMech) entry.representant; Engine engine = chassisOmniMech.getFixedEngine(); double minSpeed = TopSpeed.calculate( engine.getRating(), chassisOmniMech.getMovementProfileMin(), chassisOmniMech.getMassMax(), efficiencies.getSpeedModifier()); double stockSpeed = TopSpeed.calculate( engine.getRating(), chassisOmniMech.getMovementProfileStock(), chassisOmniMech.getMassMax(), efficiencies.getSpeedModifier()); double maxSpeed = TopSpeed.calculate( engine.getRating(), chassisOmniMech.getMovementProfileMax(), chassisOmniMech.getMassMax(), efficiencies.getSpeedModifier()); double payload = payloadStatistics.calculate(chassisOmniMech); if (minSpeed != stockSpeed) { series.add(minSpeed, payload); } series.add(stockSpeed, payload); if (maxSpeed != stockSpeed) { series.add(maxSpeed, payload); } } dataset.addSeries(series); } setChart(makeChart(dataset)); XYPlot plot = (XYPlot) getChart().getPlot(); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true, true); renderer.setBaseShapesFilled(false); plot.setRenderer(renderer); }