()
| 55 | } |
| 56 | |
| 57 | public static void init() { |
| 58 | for (java.lang.reflect.Field f : mindustry.content.Fx.class.getDeclaredFields()) { |
| 59 | try { |
| 60 | if (f.get(null) instanceof Effect) effects.add(new Effects((Effect) f.get(null), f.getName())); |
| 61 | } catch (IllegalArgumentException e) { e.printStackTrace(); } |
| 62 | catch (IllegalAccessException e) {} |
| 63 | } |
| 64 | |
| 65 | if (Core.settings.has("removedEffects")) { |
| 66 | try { |
| 67 | for (String line : Core.settings.getString("removedEffects").split(" \\| ")) { |
| 68 | Effects effect = getByName(line); |
| 69 | if (effect != null) effect.disabled = true; |
| 70 | } |
| 71 | |
| 72 | } catch (Exception e) { saveSettings(); } |
| 73 | } else saveSettings(); |
| 74 | |
| 75 | if (Core.settings.has("adminEffects")) { |
| 76 | try { |
| 77 | for (String line : Core.settings.getString("adminEffects").split(" \\| ")) { |
| 78 | Effects effect = getByName(line); |
| 79 | if (effect != null) effect.forAdmin = true; |
| 80 | } |
| 81 | |
| 82 | } catch (Exception e) { saveSettings(); } |
| 83 | } else saveSettings(); |
| 84 | |
| 85 | |
| 86 | rainbowLoop = new Timer.Task() { |
| 87 | @Override |
| 88 | public void run() { |
| 89 | TempData.each(d -> d.rainbowed, d -> { |
| 90 | if (d.hue < 360) d.hue+=5; |
| 91 | else d.hue = 0; |
| 92 | |
| 93 | for (int i=0; i<5; i++) Call.effectReliable(mindustry.content.Fx.bubble, d.player.x, d.player.y, 10, arc.graphics.Color.valueOf(Strings.hueToColor(d.hue))); |
| 94 | d.rainbowedName = Strings.RGBString(d.noColorName, d.hue); |
| 95 | d.player.name = d.tag + d.rainbowedName; |
| 96 | }); |
| 97 | } |
| 98 | }; |
| 99 | |
| 100 | effectLoop = new Timer.Task() { |
| 101 | @Override |
| 102 | public void run() { |
| 103 | TempData.each(d -> d.hasEffect, d -> |
| 104 | Call.effectReliable(d.effect.effect, d.player.x, d.player.y, 10, arc.graphics.Color.green) |
| 105 | ); |
| 106 | } |
| 107 | }; |
| 108 | |
| 109 | Timer.schedule(rainbowLoop, 0, 0.064f); |
| 110 | Timer.schedule(effectLoop, 0, 0.064f); |
| 111 | } |
| 112 | |
| 113 | public static void saveSettings() { |
| 114 | Core.settings.put("removedEffects", effects.select(e -> e.disabled).map(e -> e.name).toString(" | ")); |
no test coverage detected