Line data Source code
1 0 : /* 2 : 3 : OOFlasherEntity.h 4 : 5 : Flashing light attached to ships. 6 : 7 : 8 : Oolite 9 : Copyright (C) 2004-2013 Giles C Williams and contributors 10 : 11 : This program is free software; you can redistribute it and/or 12 : modify it under the terms of the GNU General Public License 13 : as published by the Free Software Foundation; either version 2 14 : of the License, or (at your option) any later version. 15 : 16 : This program is distributed in the hope that it will be useful, 17 : but WITHOUT ANY WARRANTY; without even the implied warranty of 18 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 : GNU General Public License for more details. 20 : 21 : You should have received a copy of the GNU General Public License 22 : along with this program; if not, write to the Free Software 23 : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 24 : MA 02110-1301, USA. 25 : 26 : */ 27 : 28 : #import "OOLightParticleEntity.h" 29 : #import "ShipEntity.h" 30 : 31 : 32 0 : @interface OOFlasherEntity: OOLightParticleEntity <OOSubEntity> 33 : { 34 : @private 35 : float _frequency; 36 0 : float _phase; 37 0 : float _wave; 38 0 : float _brightfraction; 39 0 : NSArray *_colors; 40 0 : NSUInteger _activeColor; 41 0 : 42 : OOTimeDelta _time; 43 0 : 44 : BOOL _active; 45 0 : BOOL _justSwitched; 46 0 : } 47 : 48 : + (instancetype) flasherWithDictionary:(NSDictionary *)dictionary; 49 0 : - (id) initWithDictionary:(NSDictionary *)dictionary; 50 0 : 51 : - (BOOL) isActive; 52 0 : - (void) setActive:(BOOL)active; 53 0 : 54 : - (OOColor *) color; 55 0 : // setColor is defined by superclass 56 : 57 : - (float) frequency; 58 0 : - (void) setFrequency:(float)frequency; 59 0 : 60 : - (float) phase; 61 0 : - (void) setPhase:(float)phase; 62 0 : 63 : - (float) fraction; 64 0 : - (void) setFraction:(float)fraction; 65 0 : 66 : 67 : @end 68 : 69 : 70 : @interface Entity (OOFlasherEntityExtensions) 71 : 72 : - (BOOL) isFlasher; 73 0 : 74 : @end 75 :