private void ReadToEndOfGroove(BaseTextFile file) { while (true) { string line = file.ReadLine(); if (line == "NEXT GROOVE") { return; } if (line == "END OF GROOVE") { AtEnd = true; return; } } }
private void ReadToEndOfFunk(BaseTextFile file) { while (true) { string line = file.ReadLine(); if (line == "NEXT FUNK") { return; } if (line == "END OF FUNK") { AtEnd = true; return; } } }
public BaseGroove Read(BaseTextFile file) { string actorName = file.ReadLine(); if (actorName == "END OF GROOVE") { AtEnd = true; return(null); } string lollipop = file.ReadLine().ToUpper(); Trace.Assert(lollipop.StartsWith("NOT A")); string movement = file.ReadLine(); //constant / distance string pathType = file.ReadLine().ToUpper(); //no path PathGroove path = null; if (pathType == "STRAIGHT") { path = new PathGroove(); path.Motion = (Motion)Enum.Parse(typeof(Motion), file.ReadLine(), true); path.CenterOfMovement = file.ReadLineAsVector3(false); path.Speed = file.ReadLineAsFloat(false); path.Movement = file.ReadLineAsVector3(false); } //Trace.Assert(path.StartsWith("NO ")); string action = file.ReadLine().ToUpper(); if (action == "SPIN") { SpinGroove spin = new SpinGroove(); spin.ActorName = actorName; string actionTrigger = file.ReadLine(); //continuous, controlled spin.Speed = file.ReadLineAsFloat(false); spin.CenterOfMovement = file.ReadLineAsVector3(false); spin.Axis = (Axis)Enum.Parse(typeof(Axis), file.ReadLine(), true); spin.Path = path; ReadToEndOfGroove(file); return(spin); } else if (action == "ROCK") { RockGroove rock = new RockGroove(); rock.ActorName = actorName; rock.Motion = (Motion)Enum.Parse(typeof(Motion), file.ReadLine(), true); rock.Speed = file.ReadLineAsFloat(false); rock.CenterOfMovement = file.ReadLineAsVector3(false); rock.Axis = (Axis)Enum.Parse(typeof(Axis), file.ReadLine(), true); rock.MaxAngle = MathHelper.ToRadians(file.ReadLineAsFloat(false)); //in degrees in file rock.Path = path; ReadToEndOfGroove(file); return(rock); } else { if (!action.StartsWith("NO OB")) { } ReadToEndOfGroove(file); if (path != null) { path.ActorName = actorName; return(path); } return(null); } }
private void ReadToEndOfFunk(BaseTextFile file) { while (true) { string line = file.ReadLine(); if (line == "NEXT FUNK") return; if (line == "END OF FUNK") { AtEnd = true; return; } } }
public BaseFunk Read(BaseTextFile file) { string materialName = file.ReadLine(); if (materialName == "END OF FUNK") { AtEnd = true; return null; } string activation = file.ReadLine(); string animation = file.ReadLine().ToUpper(); while (animation != "FLIC" && animation != "FRAMES" && animation != "ROLL" && animation != "THROB" && animation != "SLITHER" && animation != "SPIN") { animation = file.ReadLine().ToUpper(); } if (animation == "FLIC") { file.ReadLine(); //approximate/accurate string fliname = file.ReadLine(); FlicFunk flic = new FlicFunk(fliname); flic.MaterialName = materialName; ReadToEndOfFunk(file); return flic; } else if (animation == "FRAMES") { file.ReadLine(); //approximate/accurate file.ReadLine(); //continuous FramesFunk frames = new FramesFunk(); frames.MaterialName = materialName; frames.Speed = 1 / file.ReadLineAsFloat(false); int nbrFrames = file.ReadLineAsInt(); for (int i = 0; i < nbrFrames; i++) { frames.FrameNames.Add(file.ReadLine()); } ReadToEndOfFunk(file); return frames; } else if (animation == "ROLL") { string loop = file.ReadLine(); RollFunk roll = new RollFunk(); roll.MaterialName = materialName; roll.Speed = file.ReadLineAsVector2(false); ReadToEndOfFunk(file); return roll; } else if (animation == "SLITHER") { SlitherFunk slither = new SlitherFunk(); slither.MaterialName = materialName; slither.Motion = (Motion)Enum.Parse(typeof(Motion), file.ReadLine(), true); slither.CyclesPerSecond = file.ReadLineAsVector2(false); slither.MoveDistance = file.ReadLineAsVector2(false)/12; slither.Initialize(); ReadToEndOfFunk(file); return slither; } else if (animation == "THROB") { ThrobFunk throb = new ThrobFunk(); throb.MaterialName = materialName; throb.Motion = (Motion)Enum.Parse(typeof(Motion), file.ReadLine(), true); throb.CyclesPerSecond = file.ReadLineAsVector2(false); throb.MoveDistance = file.ReadLineAsVector2(false) / 12; throb.Initialize(); ReadToEndOfFunk(file); return throb; } else { ReadToEndOfFunk(file); return null; } }
public BaseFunk Read(BaseTextFile file) { string materialName = file.ReadLine(); if (materialName == "END OF FUNK") { AtEnd = true; return(null); } string activation = file.ReadLine(); string animation = file.ReadLine().ToUpper(); while (animation != "FLIC" && animation != "FRAMES" && animation != "ROLL" && animation != "THROB" && animation != "SLITHER" && animation != "SPIN") { animation = file.ReadLine().ToUpper(); } if (animation == "FLIC") { file.ReadLine(); //approximate/accurate string fliname = file.ReadLine(); FlicFunk flic = new FlicFunk(fliname); flic.MaterialName = materialName; ReadToEndOfFunk(file); return(flic); } else if (animation == "FRAMES") { file.ReadLine(); //approximate/accurate file.ReadLine(); //continuous FramesFunk frames = new FramesFunk(); frames.MaterialName = materialName; frames.Speed = 1 / file.ReadLineAsFloat(false); int nbrFrames = file.ReadLineAsInt(); for (int i = 0; i < nbrFrames; i++) { frames.FrameNames.Add(file.ReadLine()); } ReadToEndOfFunk(file); return(frames); } else if (animation == "ROLL") { string loop = file.ReadLine(); RollFunk roll = new RollFunk(); roll.MaterialName = materialName; roll.Speed = file.ReadLineAsVector2(false); ReadToEndOfFunk(file); return(roll); } else if (animation == "SLITHER") { SlitherFunk slither = new SlitherFunk(); slither.MaterialName = materialName; slither.Motion = (Motion)Enum.Parse(typeof(Motion), file.ReadLine(), true); slither.CyclesPerSecond = file.ReadLineAsVector2(false); slither.MoveDistance = file.ReadLineAsVector2(false) / 12; slither.Initialize(); ReadToEndOfFunk(file); return(slither); } else if (animation == "THROB") { ThrobFunk throb = new ThrobFunk(); throb.MaterialName = materialName; throb.Motion = (Motion)Enum.Parse(typeof(Motion), file.ReadLine(), true); throb.CyclesPerSecond = file.ReadLineAsVector2(false); throb.MoveDistance = file.ReadLineAsVector2(false) / 12; throb.Initialize(); ReadToEndOfFunk(file); return(throb); } else { ReadToEndOfFunk(file); return(null); } }