/// <summary> /// Creates a new RopeTextSource. /// </summary> public RopeTextSource(Rope<char> rope, ITextSourceVersion version) { if (rope == null) throw new ArgumentNullException("rope"); this.rope = rope.Clone(); this.version = version; }
private void AttachRopeToCharacter(GameObject pBalloonObject, Rope pRope, Rigidbody2D pTackBody) { pRope.GetStartOfRope().GetComponent<HingeJoint2D>().connectedBody = pTackBody; DistanceJoint2D balloonJoint= pBalloonObject.GetComponent<DistanceJoint2D> (); balloonJoint.distance = GetMaxBalloonRopeDistance (pBalloonObject); balloonJoint.connectedBody = pTackBody; }
public void AppendLongTextToEmptyRope() { string text = BuildLongString(1000); Rope<char> rope = new Rope<char>(); rope.AddText(text); Assert.AreEqual(text, rope.ToString()); }
private void AttachRopeToBalloon(GameObject pBalloon, Rope pRope) { HingeJoint2D balloonHinge = pBalloon.GetComponent<HingeJoint2D> (); balloonHinge.connectedBody = pRope.GetEndOfRope().GetComponent<Rigidbody2D>(); balloonHinge.connectedAnchor = new Vector2 (0, pRope.GetLengthOfEachSegment()); pRope.transform.parent = pBalloon.transform; }
public void InitializeRopeFromLongString() { string text = BuildLongString(1000); Rope<char> rope = new Rope<char>(text); Assert.AreEqual(text.Length, rope.Length); Assert.AreEqual(text, rope.ToString()); Assert.AreEqual(text.ToCharArray(), rope.ToArray()); }
public void OnFireRope(Rope newRope) { lock (m_ropeLock) { if (m_rope != null) CutRope(); m_rope = newRope; } }
public void CutRope() { lock (m_ropeLock) { if (m_rope != null) { m_rope.Cut(); m_rope = null; } } }
public void RopeFired(Rope newRope) { lock (m_ropeLock) { if (newRope != null) { m_player.SetState(CharacterState.ROPING); m_player.ToAirMaterial(); } } }
public void ConcatenateSmallRopesToRope() { StringBuilder b = new StringBuilder(); Rope<char> rope = new Rope<char>(); for (int i = 1; i <= 1000; i++) { b.Append(i.ToString()); b.Append(' '); rope.AddRange(CharRope.Create(i.ToString() + " ")); } Assert.AreEqual(b.ToString(), rope.ToString()); }
public void ConcatenateStringToRope() { StringBuilder b = new StringBuilder(); Rope<char> rope = new Rope<char>(); for (int i = 1; i <= 1000; i++) { b.Append(i.ToString()); rope.AddText(i.ToString()); b.Append(' '); rope.Add(' '); } Assert.AreEqual(b.ToString(), rope.ToString()); }
public void ConcatenateSmallRopesToRopeBackwards() { StringBuilder b = new StringBuilder(); Rope<char> rope = new Rope<char>(); for (int i = 1; i <= 1000; i++) { b.Append(i.ToString()); b.Append(' '); } for (int i = 1000; i >= 1; i--) { rope.InsertRange(0, CharRope.Create(i.ToString() + " ")); } Assert.AreEqual(b.ToString(), rope.ToString()); }
public void TestToArrayAndToStringWithParts() { string text = BuildLongString(1000); Rope<char> rope = new Rope<char>(text); string textPart = text.Substring(1200, 600); char[] arrayPart = textPart.ToCharArray(); Assert.AreEqual(textPart, rope.ToString(1200, 600)); Assert.AreEqual(arrayPart, rope.ToArray(1200, 600)); Rope<char> partialRope = rope.GetRange(1200, 600); Assert.AreEqual(textPart, partialRope.ToString()); Assert.AreEqual(arrayPart, partialRope.ToArray()); }
/// <summary> /// Create a new text document with the specified initial text. /// </summary> public TextDocument(IEnumerable<char> initialText) { if (initialText == null) throw new ArgumentNullException("initialText"); rope = new Rope<char>(initialText); lineTree = new DocumentLineTree(this); lineManager = new LineManager(lineTree, this); lineTrackers.CollectionChanged += delegate { lineManager.UpdateListOfLineTrackers(); }; anchorTree = new TextAnchorTree(this); undoStack = new UndoStack(); FireChangeEvents(); }
public ConcateRope(Rope left, Rope right) { if (left == null) throw new ArgumentNullException("left"); if (right == null) throw new ArgumentNullException("right"); _depth = Math.Max(GetDepth(left), GetDepth(right)) + 1; if (_depth > MaxDepth) { throw new ArgumentException( String.Format("The result tree of rope cannot be over {0} in depth.", MaxDepth)); } _left = left; _right = right; _length = left.Length + right.Length; }
public void ConcatenateSmallRopesByInsertionInMiddle() { StringBuilder b = new StringBuilder(); Rope<char> rope = new Rope<char>(); for (int i = 1; i <= 1000; i++) { b.Append(i.ToString("d3")); b.Append(' '); } int middle = 0; for (int i = 1; i <= 500; i++) { rope.InsertRange(middle, CharRope.Create(i.ToString("d3") + " ")); middle += 4; rope.InsertRange(middle, CharRope.Create((1001-i).ToString("d3") + " ")); } Assert.AreEqual(b.ToString(), rope.ToString()); }
/// <summary> /// Creates a new RopeTextReader. /// Internally, this method creates a Clone of the rope; so the text reader will always read through the old /// version of the rope if it is modified. <seealso cref="Rope{T}.Clone()"/> /// </summary> public RopeTextReader(Rope<char> rope) { if (rope == null) throw new ArgumentNullException("rope"); // We force the user to iterate through a clone of the rope to keep the API contract of RopeTextReader simple // (what happens when a rope is modified while iterating through it?) rope.root.Publish(); // special case for the empty rope: // leave currentNode initialized to null (RopeTextReader doesn't support empty nodes) if (rope.Length != 0) { currentNode = rope.root; GoToLeftMostLeaf(); } }
private static int GetDepth(Rope rope) { var concateRope = rope as ConcateRope; return concateRope == null ? 0 : concateRope.Depth; }
internal void Push(Rope r) { internalList.AddFirst(r); }
public static void StopWinding(this Rope rope) { StopRopeWinding(rope.Handle); }
public Rope AddRope() { Rope rope = new Rope(); return(rope); }
public override Rope <byte> serialize(Guid a) => Rope.a(a.ToByteArray());
public RopeController(ServerPlayer player) { m_player = player; m_rope = null; }
public void StopRoping() { m_rope = null; m_player.SetState(CharacterState.FALLING); m_player.ToGroundMaterial(); }
public void EmptyRopeFromString() { Rope<char> empty = new Rope<char>(string.Empty); Assert.AreEqual(0, empty.Length); Assert.AreEqual("", empty.ToString()); }
public void InitializeRopeFromShortString() { Rope<char> rope = new Rope<char>("Hello, World"); Assert.AreEqual(12, rope.Length); Assert.AreEqual("Hello, World", rope.ToString()); }
public void ConcatenateStringToRopeBackwards() { StringBuilder b = new StringBuilder(); Rope<char> rope = new Rope<char>(); for (int i = 1; i <= 1000; i++) { b.Append(i.ToString()); b.Append(' '); } for (int i = 1000; i >= 1; i--) { rope.Insert(0, ' '); rope.InsertText(0, i.ToString()); } Assert.AreEqual(b.ToString(), rope.ToString()); }
public void ConcatenateStringToRopeByInsertionInMiddle() { StringBuilder b = new StringBuilder(); Rope<char> rope = new Rope<char>(); for (int i = 1; i <= 998; i++) { b.Append(i.ToString("d3")); b.Append(' '); } int middle = 0; for (int i = 1; i <= 499; i++) { rope.InsertText(middle, i.ToString("d3")); middle += 3; rope.Insert(middle, ' '); middle++; rope.InsertText(middle, (999-i).ToString("d3")); rope.Insert(middle + 3, ' '); } Assert.AreEqual(b.ToString(), rope.ToString()); }
public override void GenerateLoot() { if (Utility.Random(100) < 15) { Lantern lantern = new Lantern(); lantern.Hue = Utility.RandomMinMax(2113, 2118); PackItem(lantern); } if (Utility.Random(100) < 5) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } }
private static void UpdateEndsJoints(Rope rope) { Transform firstSegment = rope.transform.GetChild(0); if (rope.WithPhysics && rope.HangFirstSegment && rope.transform.childCount > 0) { HingeJoint2D joint = firstSegment.gameObject.GetComponent <HingeJoint2D>(); if (!joint) { joint = firstSegment.gameObject.AddComponent <HingeJoint2D>(); } Vector2 hingePositionInWorldSpace = rope.transform.TransformPoint(rope.FirstSegmentConnectionAnchor); joint.connectedAnchor = hingePositionInWorldSpace; joint.anchor = firstSegment.transform.InverseTransformPoint(hingePositionInWorldSpace); joint.connectedBody = GetConnectedObject(hingePositionInWorldSpace, firstSegment.GetComponent <Rigidbody2D>()); if (joint.connectedBody) { joint.connectedAnchor = joint.connectedBody.transform.InverseTransformPoint(hingePositionInWorldSpace); } } else { HingeJoint2D joint = firstSegment.gameObject.GetComponent <HingeJoint2D>(); if (joint) { DestroyImmediate(joint); } } Transform lastSegment = rope.transform.GetChild(rope.transform.childCount - 1); if (rope.WithPhysics && rope.HangLastSegment) { HingeJoint2D[] joints = lastSegment.gameObject.GetComponents <HingeJoint2D>(); HingeJoint2D joint = null; if (joints.Length > 1) { joint = joints[1]; } else { joint = lastSegment.gameObject.AddComponent <HingeJoint2D>(); } Vector2 hingePositionInWorldSpace = rope.transform.TransformPoint(rope.LastSegmentConnectionAnchor); joint.connectedAnchor = hingePositionInWorldSpace; joint.anchor = lastSegment.transform.InverseTransformPoint(hingePositionInWorldSpace); joint.connectedBody = GetConnectedObject(hingePositionInWorldSpace, lastSegment.GetComponent <Rigidbody2D>()); if (joint.connectedBody) { joint.connectedAnchor = joint.connectedBody.transform.InverseTransformPoint(hingePositionInWorldSpace); } } else { HingeJoint2D[] joints = lastSegment.gameObject.GetComponents <HingeJoint2D>(); if (joints.Length > 1) { for (int i = 1; i < joints.Length; i++) { DestroyImmediate(joints[i]); } } } }
static void UpdateRope(Rope rope) { DestroyChildren(rope); if (rope.SegmentsPrefabs == null || rope.SegmentsPrefabs.Length == 0) { Debug.LogWarning("Rope Segments Prefabs is Empty"); return; } float segmentHeight = rope.SegmentsPrefabs[0].bounds.size.y * (1 + rope.overlapFactor); List <Vector3> nodes = rope.nodes; int currentSegPrefIndex = 0; Rigidbody2D previousSegment = null; float previousTheta = 0; int currentSegment = 0; for (int i = 0; i < nodes.Count - 1; i++) { //construct line between nodes[i] and nodes[i+1] float theta = Mathf.Atan2(nodes[i + 1].y - nodes[i].y, nodes[i + 1].x - nodes[i].x); float dx = segmentHeight * Mathf.Cos(theta); float dy = segmentHeight * Mathf.Sin(theta); float startX = nodes[i].x + dx / 2; float startY = nodes[i].y + dy / 2; float lineLength = Vector2.Distance(nodes[i + 1], nodes[i]); int segmentCount = 0; switch (rope.OverflowMode) { case LineOverflowMode.Round: segmentCount = Mathf.RoundToInt(lineLength / segmentHeight); break; case LineOverflowMode.Shrink: segmentCount = (int)(lineLength / segmentHeight); break; case LineOverflowMode.Extend: segmentCount = Mathf.CeilToInt(lineLength / segmentHeight); break; } for (int j = 0; j < segmentCount; j++) { if (rope.SegmentsMode == SegmentSelectionMode.RoundRobin) { currentSegPrefIndex++; currentSegPrefIndex %= rope.SegmentsPrefabs.Length; } else if (rope.SegmentsMode == SegmentSelectionMode.Random) { currentSegPrefIndex = Random.Range(0, rope.SegmentsPrefabs.Length); } GameObject segment = (Instantiate(rope.SegmentsPrefabs[currentSegPrefIndex]) as SpriteRenderer).gameObject; segment.name = "Segment_" + currentSegment; segment.transform.parent = rope.transform; segment.transform.localPosition = new Vector3(startX + dx * j, startY + dy * j); segment.transform.localRotation = Quaternion.Euler(0, 0, theta * Mathf.Rad2Deg - 90); if (rope.WithPhysics) { Rigidbody2D segRigidbody = segment.GetComponent <Rigidbody2D>(); if (segRigidbody == null) { segRigidbody = segment.AddComponent <Rigidbody2D>(); } //if not the first segment, make a joint if (currentSegment != 0) { float dtheta = 0; if (j == 0) { //first segment in the line dtheta = (theta - previousTheta) * Mathf.Rad2Deg; if (dtheta > 180) { dtheta -= 360; } else if (dtheta < -180) { dtheta += 360; } } //add Hinge AddJoint(rope, dtheta, segmentHeight, previousSegment, segment); } previousSegment = segRigidbody; } currentSegment++; } previousTheta = theta; } UpdateEndsJoints(rope); }
public override Rope ConcateWith(Rope rope) { if (rope == null) throw new ArgumentNullException("rope"); var limit = FlattenRightChildLengthLimit; var flatRope = rope as FlatRope; if (flatRope == null || flatRope.Length > limit) { return base.ConcateWith(rope); } var rightRope = _right as FlatRope; if (rightRope == null || rightRope.Length > limit) { return base.ConcateWith(rope); } if (flatRope.Length + rightRope.Length > limit) { return base.ConcateWith(rope); } var left = Left.ToString(); var right = Right.ToString(); return Left.ConcateWith(new FlatRope(left + right)); }
public InputArgument(Rope value) : this((object)value) { }
void Start() { mBalloon = GetComponent<Balloon>(); mRigidbody2D = GetComponent<Rigidbody2D>(); mLineRenderer = GetComponent<LineRenderer>(); mBalloonJoint = GetComponent<HingeJoint2D>(); mDistanceJoint = GetComponent<DistanceJoint2D>(); mCircleCollider = GetComponent<CircleCollider2D>(); mRope = GetComponentInChildren<Rope>(); m_Parent = mBalloonHolder.transform; //EventListener.Register(EGameEvent.HAZARDOUS_COLLISION, OnHazardousCollision); mainCharacter = mTack.transform.parent; Physics2D.IgnoreCollision(mainCharacter.GetComponent<BoxCollider2D>(), mCircleCollider); EventService.Register<BalloonDelegate>(EGameEvent.PICKUP_BALLOON, OnPickupBalloon); EventService.Register<BalloonDelegate>(EGameEvent.DROP_BALLOON, OnDropBalloon); EventService.Register<AttachBalloonDelegate>(EGameEvent.ATTACH_BALLOON, OnAttachBalloon); }
public RopeTest() { const int N = 20; const float L = 0.5f; var vertices = new Vector2[N]; var masses = new float[N]; for (var i = 0; i < N; ++i) { vertices[i].Set(0.0f, L * (N - i)); masses[i] = 1.0f; } masses[0] = 0.0f; masses[1] = 0.0f; Tuning1 = new RopeTuning { BendHertz = 30.0f, BendDamping = 4.0f, BendStiffness = 1.0f, BendingModel = BendingModel.PbdTriangleBendingModel, Isometric = true, StretchHertz = 30.0f, StretchDamping = 4.0f, StretchStiffness = 1.0f, StretchingModel = StretchingModel.PbdStretchingModel }; Tuning2 = new RopeTuning { BendHertz = 30.0f, BendDamping = 0.7f, BendStiffness = 1.0f, BendingModel = BendingModel.PbdHeightBendingModel, Isometric = true, StretchHertz = 30.0f, StretchDamping = 1.0f, StretchStiffness = 1.0f, StretchingModel = StretchingModel.PbdStretchingModel }; Position1.Set(-5.0f, 15.0f); Position2.Set(5.0f, 15.0f); var def = new RopeDef { Vertices = vertices, Count = N, Gravity = new Vector2(0.0f, -10.0f), Masses = masses, Position = Position1, Tuning = Tuning1 }; Rope1 = new Rope(); Rope1.Create(def); def.Position = Position2; def.Tuning = Tuning2; Rope2 = new Rope(); Rope2.Create(def); Iterations1 = 8; Iterations2 = 8; Speed = 10.0f; }
private void DoTest <TToken, TInput>( Func <Parser <TToken, IEnumerable <TToken> >, TInput, Result <TToken, IEnumerable <TToken> > > parseFunc, Func <string, IEnumerable <TToken> > render, Func <string, TInput> toInput ) where TToken : IEquatable <TToken> { { var parser = Try(Parser <TToken> .Sequence(render("foo"))) .Then(Parser <TToken> .Sequence(render("bar"))) .Or(Parser <TToken> .Sequence(render("four"))); AssertSuccess(parseFunc(parser, toInput("foobar")), render("bar"), true); AssertSuccess(parseFunc(parser, toInput("four")), render("four"), true); // it should have consumed the "fo" but then backtracked AssertFailure( parseFunc(parser, toInput("foo")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("foobar"))) }, new SourcePos(1, 4), null ), true ); AssertFailure( parseFunc(parser, toInput("foobag")), new ParseError <TToken>( Maybe.Just(render("g").Single()), false, new[] { new Expected <TToken>(Rope.CreateRange(render("foobar"))) }, new SourcePos(1, 6), null ), true ); AssertFailure( parseFunc(parser, toInput("f")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("four"))) }, new SourcePos(1, 2), null ), true ); AssertFailure( parseFunc(parser, toInput("")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("foobar"))), new Expected <TToken>(Rope.CreateRange(render("four"))) }, new SourcePos(1, 1), null ), false ); AssertFailure( parseFunc(parser, toInput("foul")), new ParseError <TToken>( Maybe.Just(render("l").Single()), false, new[] { new Expected <TToken>(Rope.CreateRange(render("four"))) }, new SourcePos(1, 4), null ), true ); } { var parser = Try( Parser <TToken> .Sequence(render("foo")).Then( Try(Parser <TToken> .Sequence(render("bar"))).Or(Parser <TToken> .Sequence(render("baz"))) ) ).Or(Parser <TToken> .Sequence(render("foobat"))); AssertSuccess(parseFunc(parser, toInput("foobar")), render("bar"), true); AssertSuccess(parseFunc(parser, toInput("foobaz")), render("baz"), true); // "" -> "foo" -> "fooba[r]" -> "foo" -> "fooba[z]" -> "foo" -> "" -> "foobat" AssertSuccess(parseFunc(parser, toInput("foobat")), render("foobat"), true); AssertFailure( parseFunc(parser, toInput("fooba")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("foobat"))) }, new SourcePos(1, 6), null ), true ); AssertFailure( parseFunc(parser, toInput("foobag")), new ParseError <TToken>( Maybe.Just(render("g").Single()), false, new[] { new Expected <TToken>(Rope.CreateRange(render("foobat"))) }, new SourcePos(1, 6), null ), true ); AssertFailure( parseFunc(parser, toInput("foob")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("foobat"))) }, new SourcePos(1, 5), null ), true ); AssertFailure( parseFunc(parser, toInput("foo")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("foobat"))) }, new SourcePos(1, 4), null ), true ); AssertFailure( parseFunc(parser, toInput("f")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("foobat"))) }, new SourcePos(1, 2), null ), true ); AssertFailure( parseFunc(parser, toInput("foul")), new ParseError <TToken>( Maybe.Just(render("u").Single()), false, new[] { new Expected <TToken>(Rope.CreateRange(render("foobat"))) }, new SourcePos(1, 3), null ), true ); AssertFailure( parseFunc(parser, toInput("")), new ParseError <TToken>( Maybe.Nothing <TToken>(), true, new[] { new Expected <TToken>(Rope.CreateRange(render("foobar"))), new Expected <TToken>(Rope.CreateRange(render("foobat"))), new Expected <TToken>(Rope.CreateRange(render("foobaz"))) }, new SourcePos(1, 1), null ), false ); } }
public void SetContent(string text) { _rope = new Rope <char>(text); }
public Rope AddRope() { Rope rope = new Rope(); return rope; }
public void CutInfectingRope(Rope rope) { m_InfectingRopes.Remove(rope); }
public void FixedUpdate() { var ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Input.GetMouseButton(0)) { // Mouse down if (pulledRope == null) { // Not pulling a rope, find the closest one to the mouse var closestRopeIndex = -1; var closestParticleIndex = -1; var closestDistance = 0.0f; var closestDistanceAlongRay = 0.0f; for (int i = 0; i < ropes.Length; i++) { ropes[i].GetClosestParticle(ray, out int particleIndex, out float distance, out float distanceAlongRay); if (distance < closestDistance || i == 0) { closestRopeIndex = i; closestParticleIndex = particleIndex; closestDistance = distance; closestDistanceAlongRay = distanceAlongRay; } } if (closestRopeIndex != -1 && closestParticleIndex != -1 && ropes[closestRopeIndex].GetMassMultiplierAt(closestParticleIndex) > 0.0f) { // Found a rope and particle on the rope, start pulling that particle! pulledRope = ropes[closestRopeIndex]; pulledParticle = closestParticleIndex; pulledDistance = closestDistanceAlongRay; } } } else { // Mouse up if (pulledRope != null) { // Stop pulling the rope pulledRope.SetMassMultiplierAt(pulledParticle, 1.0f); pulledRope = null; } } if (pulledRope != null) { // We are pulling the rope // Adjust the grab plane pulledDistance += Input.mouseScrollDelta.y * 2.0f; // Move the rope particle to the mouse position on the grab-plane currentPosition = pulledRope.GetPositionAt(pulledParticle); targetPosition = ray.GetPoint(pulledDistance); pulledRope.SetPositionAt(pulledParticle, targetPosition); pulledRope.SetVelocityAt(pulledParticle, float3.zero); pulledRope.SetMassMultiplierAt(pulledParticle, 0.0f); } }
public void Roped(Rope newRope) { m_InfectingRopes.Add(newRope); }
internal void Add(Rope r) { internalList.AddLast(r); }
GameObject readXmlNode(XmlNode xmlNode, GameObject parent, string fileName) { GameObject go = new GameObject(xmlNode.Name); if (parent != null) { go.transform.parent = parent.transform; } if (xmlNode.NodeType == XmlNodeType.Comment) { CommentElement comment = go.AddComponent <CommentElement>(); go.transform.parent = parent.transform; comment.comment = xmlNode.InnerText; } else if (xmlNode.Name == "vehicle") { Vehicle tag = go.AddComponent <Vehicle>(); go.transform.parent = parent.transform; attachGameObjectProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.sound = readString(xmlNode, "sound"); tag.spring = readFloat(xmlNode, "spring"); tag.acceleration = readFloat(xmlNode, "acceleration"); tag.antiroll = readFloat(xmlNode, "antiroll"); tag.damping = readFloat(xmlNode, "damping"); tag.friction = readFloat(xmlNode, "friction"); tag.difflock = readFloat(xmlNode, "difflock"); tag.steerassist = readFloat(xmlNode, "steerassist"); tag.topspeed = readFloat(xmlNode, "topspeed"); tag.driven = readBool(xmlNode, "driven", false); tag.antispin = readFloat(xmlNode, "antispin"); tag.soundVolume = readFloat(xmlNode, "soundvolume"); go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "wheel") { Wheel tag = go.AddComponent <Wheel>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.steer = readFloat(xmlNode, "steer"); tag.drive = readFloat(xmlNode, "drive"); tag.travel = readVec2(xmlNode, "travel"); go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "spawnpoint") { SpawnPoint tag = go.AddComponent <SpawnPoint>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "location") { Location tag = go.AddComponent <Location>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "group") { Group tag = go.AddComponent <Group>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "rope") { Rope tag = go.AddComponent <Rope>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; tag.strength = readFloat(xmlNode, "strength"); tag.slack = readFloat(xmlNode, "slack"); addToParent(parent, tag); } else if (xmlNode.Name == "screen") { Screen tag = go.AddComponent <Screen>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; tag.size = readVec2(xmlNode, "size"); tag.isEnabled = readBool(xmlNode, "enabled", false); tag.interactive = readBool(xmlNode, "interactive", false); tag.emissive = readFloat(xmlNode, "emissive"); tag.color = readColor(xmlNode, "color"); tag.resolution = readVec2(xmlNode, "resolution"); tag.bulge = readVec2(xmlNode, "bulge"); tag.script = readString(xmlNode, "script"); if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "vox") { Vox tag = go.AddComponent <Vox>(); go.transform.parent = parent.transform; attachGameObjectProperties(tag, xmlNode); tag.file = readString(xmlNode, "file").Replace("LEVEL", getLevelFolder(fileName));; tag.voxObject = readString(xmlNode, "object"); tag.dynamic = readBool(xmlNode, "prop", false); go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; tag.Reload(); if (tag.scale > 0) { go.transform.localScale *= tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "joint") { TeardownJoint tag = go.AddComponent <TeardownJoint>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.type = (TeardownJoint.Type)Enum.Parse(typeof(TeardownJoint.Type), readString(xmlNode, "type", "ball"), false); tag.size = readFloat(xmlNode, "size"); tag.rotspring = readFloat(xmlNode, "rotspring"); tag.rotstrength = readFloat(xmlNode, "rotstrength"); tag.limits = readVec2(xmlNode, "limits"); go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "voxbox") { VoxBox tag = go.AddComponent <VoxBox>(); go.transform.parent = parent.transform; attachGameObjectProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.color = readColor(xmlNode, "color"); tag.dynamic = readBool(xmlNode, "prop", false); go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.transform.parent = go.transform; cube.transform.localPosition = new Vector3(0.5f, 0.5f, -0.5f); cube.transform.localRotation = Quaternion.identity; cube.GetComponent <MeshRenderer>().sharedMaterial = new Material(Shader.Find("Standard")); go.transform.localScale = tag.size / 10; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "body") { Body tag = go.AddComponent <Body>(); go.transform.parent = parent.transform; attachGameObjectProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.dynamic = readBool(xmlNode, "dynamic", false); go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "water") { go.name = "<" + xmlNode.Name + ">"; Water tag = go.AddComponent <Water>(); go.transform.parent = parent.transform; attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "environment") { TeardownEnvironment tag = go.AddComponent <TeardownEnvironment>(); go.transform.parent = parent.transform; attachGeneralProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.skyboxrot = readFloat(xmlNode, "skyboxrot"); tag.sunBrightness = readFloat(xmlNode, "sunBrightness"); tag.sunFogScale = readFloat(xmlNode, "sunFogScale"); tag.sunDir = readVec3(xmlNode, "sunDir"); tag.sunColorTint = readColor(xmlNode, "sunColorTint"); addToParent(parent, tag); } else if (xmlNode.Name == "scene") { Scene tag = go.AddComponent <Scene>(); go.transform.parent = parent.transform; attachGeneralProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.shadowVolume = readVec3(xmlNode, "shadowVolume"); tag.version = readInt(xmlNode, "version"); addToParent(parent, tag); } else if (xmlNode.Name == "boundary") { Boundary tag = go.AddComponent <Boundary>(); attachGeneralProperties(tag, xmlNode); go.transform.parent = parent.transform; go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; addToParent(parent, tag); } else if (xmlNode.Name == "script") { Script tag = go.AddComponent <Script>(); attachGeneralProperties(tag, xmlNode); go.transform.parent = parent.transform; tag.file = readString(xmlNode, "file"); go.name = "<" + xmlNode.Name + " " + tag.teardownName + " " + tag.file + ">"; addToParent(parent, tag); } else if (xmlNode.Name == "instance") { Instance tag = go.AddComponent <Instance>(); go.transform.parent = parent.transform; attachGeneralProperties(tag, xmlNode); tag.file = readString(xmlNode, "file"); go.name = "<" + xmlNode.Name + " " + tag.teardownName + " " + tag.file + ">"; if (!fileName.Contains("create") && tag.file.StartsWith("LEVEL")) { Debug.LogError("Your source file has no create folder in its path but an instance is referencing the level folder. Cannot import!"); } else if (!tag.file.StartsWith("LEVEL")) { GameObject xmlRoot = readXML(tag.file); xmlRoot.GetComponentInChildren <Prefab>().gameObject.transform.transform.parent = go.transform; DestroyImmediate(xmlRoot); } else { GameObject xmlRoot = readXML(tag.file.Replace("LEVEL", getLevelFolder(fileName))); xmlRoot.GetComponentInChildren <Prefab>().gameObject.transform.transform.parent = go.transform; DestroyImmediate(xmlRoot); } go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } else if (xmlNode.Name == "prefab") { Prefab tag = go.AddComponent <Prefab>(); go.transform.parent = parent.transform; attachGameObjectProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; addToParent(parent, tag); } else if (xmlNode.Name == "vertex") { Vertex tag = go.AddComponent <Vertex>(); go.transform.parent = parent.transform; attachGeneralProperties(tag, xmlNode); tag.pos = readVec2(xmlNode, "pos"); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; go.transform.localPosition = new Vector3(tag.pos.x, 0, tag.pos.y); addToParent(parent, tag); } else if (xmlNode.Name == "light") { Light tag = go.AddComponent <Light>(); go.transform.parent = parent.transform; attachGeneralProperties(tag, xmlNode); attachTransformProperties(tag, xmlNode); go.name = "<" + xmlNode.Name + " " + tag.teardownName + ">"; tag.penumbra = readFloat(xmlNode, "penumbra"); tag.unshadowed = readFloat(xmlNode, "unshadowed"); tag.angle = readFloat(xmlNode, "angle"); tag.glare = readFloat(xmlNode, "glare"); tag.color = readColor(xmlNode, "color"); tag.type = (Light.Type)Enum.Parse(typeof(Light.Type), readString(xmlNode, "type", "area"), false); go.transform.localRotation = Quaternion.Euler(tag.rotation); go.transform.localPosition = tag.position; if (tag.scale > 0) { go.transform.localScale = go.transform.localScale * tag.scale; } addToParent(parent, tag); } foreach (XmlNode child in xmlNode.ChildNodes) { GameObject childGameObject = readXmlNode(child, go, fileName); } return(go); }
public static void StartWinding(this Rope rope) { StartRopeWinding(rope.Handle); }
public SqlResultObject(DataSet dataSet, string text) { _dataSet = dataSet; _rope = new Rope <char>(text); }
private void Awake() { instance = this; }
public void SetText(string value) { _rope = new Rope <char>(value); }
public void FixedUpdate() { if (this.m_nodes.Count == 0) { return; } float num = Mathf.Max(this.m_nodes[0].rigidbody.velocity.magnitude, this.m_nodes[this.m_nodes.Count - 1].rigidbody.velocity.magnitude); Rope rope = (!(this.m_rightPart != null)) ? null : this.m_rightPart.GetComponent <Rope>(); if (rope) { Vector3 position = this.m_nodes[this.m_nodes.Count - 1].rigidbody.position; Vector3 position2 = rope.FirstSegment.GetComponent <Rigidbody>().position; if (Vector3.Distance(position, position2) > 0.1f) { rope.FirstSegment.GetComponent <Rigidbody>().position = position; } } for (int i = 0; i < this.m_nodes.Count; i++) { Rigidbody rigidbody = this.m_nodes[i].rigidbody; Rigidbody rigidbody2; if (i == 0) { rigidbody2 = rigidbody; } else { rigidbody2 = this.m_nodes[i - 1].rigidbody; } Rigidbody rigidbody3; if (i == this.m_nodes.Count - 1) { rigidbody3 = rigidbody; } else { rigidbody3 = this.m_nodes[i + 1].rigidbody; } float magnitude = (rigidbody.velocity - 0.4f * rigidbody2.velocity - 0.4f * rigidbody3.velocity).magnitude; rigidbody.AddForce(-0.02f * magnitude * magnitude * rigidbody.velocity.normalized, ForceMode.Force); rigidbody.drag = 0.5f + 6f / (1f + 4f * num * num); } for (int j = 1; j < this.m_nodes.Count; j++) { if (!this.m_ropeCut || j != this.m_cutIndex) { Rigidbody rigidbody4 = this.m_nodes[j - 1].rigidbody; Rigidbody rigidbody5 = this.m_nodes[j].rigidbody; Vector3 a = rigidbody5.gameObject.transform.position - rigidbody4.gameObject.transform.position; float num2 = a.magnitude; if (num2 > 0.5f) { num2 -= 0.5f; if (num2 < 1f) { num2 = Mathf.Pow(num2, 0.75f); } else { num2 = Mathf.Pow(num2, 2f); } num2 = Mathf.Clamp(num2, 0f, 2f); a = num2 * a.normalized; Vector3 a2 = -a; rigidbody4.AddForce(70f * a, ForceMode.Force); rigidbody5.AddForce(70f * a2, ForceMode.Force); } else if (num2 < 0.4f) { rigidbody4.AddForce(50f * (num2 - 0.4f) * a.normalized, ForceMode.Force); rigidbody5.AddForce(-50f * (num2 - 0.4f) * a.normalized, ForceMode.Force); } } } if (!this.m_ropeCut) { this.PullEndpoints(); } }
// Start is called before the first frame update void Start() { rope = GameObject.Find("Rope").GetComponent <Rope>(); }
/// <summary> /// Creates a new BufferManager and attaches it to a control. /// </summary> /// <param name="parent">The parent control to attach to.</param> public BufferManager(Control parent) { this.parent = parent; this.buffer = new Rope <byte>(); }
/// <summary> /// Draws the control, using SpriteBatch, PrimitiveBatch and SpriteFont. /// </summary> protected override void Draw() { Vector2 offset = new Vector2(((GraphicsDevice.Viewport.Width * 0.5f) / Camera.Zoom) - Camera.Pos.X, ((GraphicsDevice.Viewport.Height * 0.5f) / Camera.Zoom) - Camera.Pos.Y); if (!bDoNotDraw) { UpdateTime(); GraphicsDevice.Clear(Color.CornflowerBlue); List <Decal> decalList = STATIC_EDITOR_MODE.levelInstance.DecalManager.DecalList; List <NodeObject> objectsList = STATIC_EDITOR_MODE.levelInstance.ObjectsList; List <ObjectIndex> selectedList = STATIC_EDITOR_MODE.selectedObjectIndices; #region Objects and selection overlay spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, SamplerState.AnisotropicWrap, null, null, null, Camera.get_transformation(new Vector2(this.Width, this.Height))); #region Draw Generics if (levelBackground != null) { spriteBatch.Draw(levelBackground, new Rectangle(-(int)(levelDimensions.X * 0.5f), -(int)(levelDimensions.Y * 0.5f), (int)levelDimensions.X, (int)levelDimensions.Y), new Rectangle(0, 0, (int)this.levelDimensions.X, (int)this.levelDimensions.Y), Color.White, 0.0f, Vector2.Zero, SpriteEffects.None, 1.0f); } if (!HidePlayerSpawn) { spriteBatch.Draw(devCharacter, STATIC_EDITOR_MODE.levelInstance.PlayerSpawnLocation, null, Color.White, 0.0f, new Vector2(this.devCharacter.Width, this.devCharacter.Height) * 0.5f, 0.43f, SpriteEffects.None, 0.3f); } #endregion #region Draw PhysicsObjects and Decals if (objectsList.Count > 0) { for (int i = objectsList.Count - 1; i >= 0; i--) { objectsList[i].Draw(spriteBatch); } } if (decalList.Count > 0) { for (int i = decalList.Count - 1; i >= 0; i--) { decalList[i].Draw(spriteBatch); } } #endregion #region Draw object overlay if (!HideOverlay) { for (int i = selectedList.Count - 1; i >= 0; i--) { int index = selectedList[i].Index; if (selectedList[i].Type == OBJECT_TYPE.Physics) { spriteBatch.Draw(debugOverlay, objectsList[index].Position, new Rectangle(0, 0, (int)objectsList[index].Width, (int)objectsList[index].Height), Color.Green * 0.3f, 0.0f, new Vector2(objectsList[index].Width, objectsList[index].Height) * 0.5f, 1.0f, SpriteEffects.None, 0.001f); } else { float width = decalList[index].Width * decalList[index].Scale; float height = decalList[index].Height * decalList[index].Scale; spriteBatch.Draw(debugOverlay, decalList[index].Position, new Rectangle(0, 0, (int)width, (int)height), Color.Green * 0.3f, decalList[index].Rotation, new Vector2(width, height) * 0.5f, 1.0f, SpriteEffects.None, 0.001f); } } } #endregion #region Draw Names if (!HideObjectNames) { for (int i = objectsList.Count - 1; i >= 0; i--) { NodeObject obj = objectsList[i]; if (obj.Name != null || obj.Name != "") { Vector2 textOrigin = font.MeasureString(obj.Name) * 0.5f; spriteBatch.DrawString(font, obj.Name, obj.Position, Color.White, 0.0f, textOrigin, 1.5f, SpriteEffects.None, 0.0f); } } } #endregion spriteBatch.End(); #endregion #region Primitives // Primitive batch calls need to be made OUTSIDE of a spriteBatch, // otherwise it causes horrible FPS problems. // Therefore, we'll do it afterwards and apply a basic transform // on their positions using the camera. primBatch.Begin(PrimitiveType.LineList); #region Movement paths if (!HideMovementPath) { for (int i = 0; i < objectsList.Count; i++) { Type t = objectsList[i].GetType(); if (t.BaseType == typeof(DynamicObject)) { DynamicObject dyObj = (DynamicObject)objectsList[i]; primBatch.AddVertex((dyObj.Position + offset) * Camera.Zoom, Color.Red); primBatch.AddVertex((dyObj.EndPosition + offset) * Camera.Zoom, Color.Red); } else if (t == typeof(Rope)) { Rope ropeObj = (Rope)objectsList[i]; primBatch.AddVertex((ropeObj.Position + offset) * Camera.Zoom, Color.Red); primBatch.AddVertex((ropeObj.EndPosition + offset) * Camera.Zoom, Color.Red); } } } #endregion #region Grid if (!HideGrid) { for (int i = 0; i < xLineCount + 2; i++) { primBatch.AddVertex(new Vector2(xOffset + xySpacing * i, 0), Color.White * 0.2f); primBatch.AddVertex(new Vector2(xOffset + xySpacing * i, GraphicsDevice.Viewport.Height), Color.White * 0.2f); } for (int i = 0; i < yLineCount + 2; i++) { primBatch.AddVertex(new Vector2(0, yOffset + xySpacing * i), Color.White * 0.2f); primBatch.AddVertex(new Vector2(GraphicsDevice.Viewport.Width, yOffset + xySpacing * i), Color.White * 0.2f); } } #endregion #region Event Targets if (!HideEventTargets) { NodeObject obj = new NodeObject(); for (int i = 0; i < objectsList.Count; i++) { obj = objectsList[i]; // Check if the object has a name (it can't use events if it doesn't). if (obj.Name != null && obj.Name != "") { // Check it has some events to target. if (obj.EventList.Count > 0) { // For the next part we need to check the name of each target // in the event list and compare it with objects in the objectList for (int j = 0; j < obj.EventList.Count; j++) { for (int x = 0; x < objectsList.Count; x++) { // Check if the name of the object in the objectList matches // the target if (obj.EventList[j].TargetName == objectsList[x].Name) { // It is our target, so draw it. primBatch.AddVertex((obj.Position + offset) * Camera.Zoom, Color.Pink); primBatch.AddVertex((objectsList[x].Position + offset) * Camera.Zoom, Color.Pink); } } } } } } } #endregion primBatch.End(); #endregion #region Screen Rotation Point spriteBatch.Begin(); spriteBatch.Draw(crosshair, new Vector2((GraphicsDevice.Viewport.Width / 2 / Camera.Zoom) - Camera.Pos.X - (crosshair.Width / 2 / Camera.Zoom), (GraphicsDevice.Viewport.Height / 2 / Camera.Zoom) - Camera.Pos.Y - (crosshair.Height / 2 / Camera.Zoom)) * Camera.Zoom, Color.White * 0.2f); spriteBatch.End(); #endregion #region Text Coordinates if (!HideCoordinates) { spriteBatch.Begin(); spriteBatch.DrawString(font, "Level Co-ords: ", new Vector2(0, 0), Color.White); spriteBatch.DrawString(font, worldCoOrds, new Vector2(0, 20), Color.White); spriteBatch.End(); } #endregion } }
public SoapResult(Stream data) { var rope = new Rope<char>(); using (var reader = new StreamReader(data)) using (var writer = new Editor.RopeWriter(rope)) { /*var buffer = new char[4096]; var count = reader.Read(buffer, 0, buffer.Length); while (count > 0) { writer.Write(buffer, 0, count); count = reader.Read(buffer, 0, buffer.Length); }*/ IndentXml(reader, writer); } _text = new RopeTextSource(rope); }
// Tests various functionality of ropes static void RopeTests() { Console.WriteLine(new string('-', 100)); Console.WriteLine("Testing Rope Functionality"); // Constructor for long string Rope rope = new Rope("aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkklllllmmmmmnnnnnooooopppppqqqqqrrrrrssssstttttuuuuuvvvvvwwwwwxxxxxyyyyyzzzzz"); Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // Concatenation normal case Rope rope2 = Rope.Concatenate(new Rope("abcdefghijklmnopqrstuvwxyz"), new Rope("zyxwvutsrqponmlkjihgfedcba")); Console.Write("Rope Value: "); rope2.Print(); Console.WriteLine("Rope Structure: "); rope2.PrintStructure(); Console.WriteLine(new string('-', 100)); // Concatenation 2 small ropes Rope rope3 = Rope.Concatenate(new Rope("12345"), new Rope("54321")); Console.Write("Rope Value: "); rope3.Print(); Console.WriteLine("Rope Structure: "); rope3.PrintStructure(); Console.WriteLine(new string('-', 100)); // Concatenation, rope with small right child + small rope Rope rope4 = Rope.Concatenate(new Rope("123456789012345"), new Rope("abcd")); Console.Write("Rope Value: "); rope4.Print(); Console.WriteLine("Rope Structure: "); rope4.PrintStructure(); Console.WriteLine(new string('-', 100)); Console.Write("Rope Value: "); rope.Print(); // Substring overlapping nodes Console.WriteLine("\nSubstring [23,47]: " + rope.Substring(23, 47)); // substring single node Console.WriteLine("Substring [23,25]: " + rope.Substring(23, 25)); // substring single char Console.WriteLine("Substring [99,99]: " + rope.Substring(99, 99)); // substring index 0 bound Console.WriteLine("Substring [0,32]: " + rope.Substring(0, 32)); // substring max index bound Console.WriteLine("Substring [0,32]: " + rope.Substring(102, 129)); // substring index < 0 Console.WriteLine("Substring [-1,10]: " + (rope.Substring(-1, 10) == null ? "No substring found" : "Substring found")); // substring > max Console.WriteLine("Substring [50,150]: " + (rope.Substring(50, 150) == null ? "No substring found" : "Substring found")); // start index > end index Console.WriteLine("Substring [20,10]: " + (rope.Substring(20, 10) == null ? "No substring found" : "Substring found")); // ChatAt index within range Console.WriteLine("\nChar at index 25: " + rope.CharAt(25)); // ChatAt index 0 Console.WriteLine("Char at index 25: " + rope.CharAt(0)); // ChatAt max index Console.WriteLine("Char at index 25: " + rope.CharAt(129)); // ChatAt index < 0 Console.WriteLine("Char at index 25: " + (rope.CharAt(130) == '\0' ? "No char found" : "char found")); // ChatAt index > max Console.WriteLine("Char at index 25: " + (rope.CharAt(-1) == '\0' ? "No char found" : "char found")); // Find string accross multiple nodes Console.WriteLine("\nFind string \"dddee\" index: " + rope.Find("dddee")); // Find string in single node Console.WriteLine("Find string \"dddee\" index: " + rope.Find("ggghh")); // find string not in rope Console.WriteLine("Find string \"dddee\" index: " + rope.Find("xxxxxx")); // find empty string Console.WriteLine("Find string \"dddee\" index: " + rope.Find("")); // find string exceeding rope capacity Console.WriteLine("Find string \"dddee\" index: " + rope.Find(new string('a', 200))); // Splitting rope at end node Console.WriteLine(new string('-', 100)); Console.WriteLine("Splitting rope at index 69"); Rope rope5 = rope.Split(69); Console.Write("Left Split Rope Value: "); rope.Print(); Console.WriteLine("Left Split Rope Structure: "); rope.PrintStructure(); Console.Write("Right Split Rope Value: "); rope5.Print(); Console.WriteLine("Right Split Rope Structure: "); rope5.PrintStructure(); // splitting rope mid node Console.WriteLine(new string('-', 100)); Console.WriteLine("Splitting rope at index 48"); rope5 = rope.Split(48); Console.Write("Left Split Rope Value: "); rope.Print(); Console.WriteLine("Left Split Rope Structure: "); rope.PrintStructure(); Console.Write("Right Split Rope Value: "); rope5.Print(); Console.WriteLine("Right Split Rope Structure: "); rope5.PrintStructure(); // splitting rope at end of rope Console.WriteLine(new string('-', 100)); Console.WriteLine("Splitting rope at index 48"); rope5 = rope.Split(48); Console.Write("Left Split Rope Value: "); rope.Print(); Console.WriteLine("Left Split Rope Structure: "); rope.PrintStructure(); Console.Write("Right Split Rope Value: "); rope5.Print(); Console.WriteLine("Right Split Rope Structure: "); rope5.PrintStructure(); // splitting rope at start of rope (index - 1) Console.WriteLine(new string('-', 100)); Console.WriteLine("Splitting rope at index -1"); rope5 = rope.Split(-1); Console.Write("Left Split Rope Value: "); rope.Print(); Console.WriteLine("Left Split Rope Structure: "); rope.PrintStructure(); Console.Write("Right Split Rope Value: "); rope5.Print(); Console.WriteLine("Right Split Rope Structure: "); rope5.PrintStructure(); rope = rope5; // splitting rope at index > rope length Console.WriteLine(new string('-', 100)); Console.WriteLine("Splitting rope at index 100"); rope5 = rope.Split(100); Console.Write("Left Split Rope Value: "); rope.Print(); Console.WriteLine("Left Split Rope Structure: "); rope.PrintStructure(); Console.WriteLine("Right Split Rope Value: " + (rope5 == null ? "null" : " not null")); // splitting rope at index < start Console.WriteLine(new string('-', 100)); Console.WriteLine("Splitting rope at index -10"); rope5 = rope.Split(-10); Console.Write("Left Split Rope Value: "); rope.Print(); Console.WriteLine("Left Split Rope Structure: "); rope.PrintStructure(); Console.WriteLine("Right Split Rope Value: " + (rope5 == null ? "null" : " not null")); Console.WriteLine(new string('-', 100)); rope = new Rope("aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkklllllmmmmmnnnnnooooopppppqqqqqrrrrrssssstttttuuuuuvvvvvwwwwwxxxxxyyyyyzzzzz"); Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); // deleting from center of rope crossing multiple nodes Console.WriteLine(new string('-', 100)); if (rope.Delete(30, 65)) { Console.WriteLine("Deleted substring [30,65]"); } else { Console.WriteLine("Failed to delete substring [30,65]"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // deleting single character if (rope.Delete(90, 90)) { Console.WriteLine("Deleted substring [90,90]"); } else { Console.WriteLine("Failed to delete substring [90,90]"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // deleting from middle of string if (rope.Delete(50, 68)) { Console.WriteLine("Deleted substring [50,68]"); } else { Console.WriteLine("Failed to delete substring [50,68]"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // deleting from end of string if (rope.Delete(48, 73)) { Console.WriteLine("Deleted substring [48,73]"); } else { Console.WriteLine("Failed to delete substring [48,73]"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // deleting from start of string if (rope.Delete(0, 15)) { Console.WriteLine("Deleted substring [0,15]"); } else { Console.WriteLine("Failed to delete substring [0,15]"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // deleting with second bound exceding string size if (rope.Delete(25, 100)) { Console.WriteLine("Deleted substring [25,100]"); } else { Console.WriteLine("Failed to delete substring [25,100]"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine(new string('-', 100)); // deleting with first bound exceding string size if (rope.Delete(-10, 10)) { Console.WriteLine("Deleted substring [-10,10]"); } else { Console.WriteLine("Failed to delete substring [-10,10]"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine(new string('-', 100)); // inserting at center of rope if (rope.Insert("ABCDEFGHIJKLMNO", 11)) { Console.WriteLine("Inserted \"ABCDEFGHIJKLMNO\" at index 11"); } else { Console.WriteLine("Failed to insert at index 11"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // inserting samll string inside other string if (rope.Insert("QRS", 28)) { Console.WriteLine("Inserted \"QRS\" at index 28"); } else { Console.WriteLine("Failed to insert at index 28"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // inserting at start of rope if (rope.Insert("TUVW", 0)) { Console.WriteLine("Inserted \"TUVM\" at index 0"); } else { Console.WriteLine("Failed to insert at index 0"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // inserting at end of rope if (rope.Insert("XYZ", 54)) { Console.WriteLine("Inserted \"XYZ\" at index 54"); } else { Console.WriteLine("Failed to insert at index 54"); } Console.Write("Rope Value: "); rope.Print(); Console.WriteLine("Rope Structure: "); rope.PrintStructure(); Console.WriteLine(new string('-', 100)); // inserting before start of rope if (rope.Insert("AAAAA", -10)) { Console.WriteLine("Inserted \"AAAA\" at index -10"); } else { Console.WriteLine("Failed to insert at index -10"); } Console.Write("Rope Value: "); rope.Print(); // inserting after end of rope if (rope.Insert("ZZZZZ", 100)) { Console.WriteLine("Inserted \"ABCDEFGHIJKLMNO\" at index 100"); } else { Console.WriteLine("Failed to insert at index 100"); } Console.Write("Rope Value: "); rope.Print(); /* * Console.WriteLine(rope.CharAt(89)); * Console.WriteLine(rope.Substring(20, 55)); * Console.WriteLine(rope.Find("aaaaabbbbbbb")); * //Rope split = rope.Split(25); * rope.Insert("123456789012345", 0); * rope.PrintStructure(); * rope.Delete(0, 170); * rope.PrintStructure(); * rope.Print(); * rope.Insert("123456789012345", 0); * rope.PrintStructure(); * //split.PrintStructure(); */ }
public override Rope <byte> serialize(int a) => Rope.a(BitConverter.GetBytes(a));
private void Start() { rope = GetComponentInChildren <Rope>(); }
public override void GenerateLoot() { if (Utility.Random(100) <= 20) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 10) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 5) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 5) { int hue = Utility.RandomMinMax(1201, 1255); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 2) { int hue = Utility.RandomMinMax(2101, 2130); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 1) { int hue = 2936; Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(1000) <= 2) { int hue; Sandals sandals = new Sandals(); switch (Utility.Random(7)) { case 0: hue = 1155; break; case 1: hue = 1156; break; case 2: hue = 1157; break; case 3: hue = 1158; break; case 4: hue = 1160; break; case 5: hue = 1172; break; default: hue = 1175; break; } sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(1000) <= 2) { int hue; Sandals sandals = new Sandals(); switch (Utility.Random(5)) { case 0: hue = 1176; break; case 1: hue = 1171; break; case 2: hue = 1159; break; case 3: hue = 1170; break; default: hue = 1161; break; } sandals.Hue = hue; PackItem(sandals); } double chance = Utility.RandomDouble(); if (chance <= 0.10) { Seed seed; PlantType type; switch (Utility.Random(17)) { case 0: type = PlantType.CampionFlowers; break; case 1: type = PlantType.Poppies; break; case 2: type = PlantType.Snowdrops; break; case 3: type = PlantType.Bulrushes; break; case 4: type = PlantType.Lilies; break; case 5: type = PlantType.PampasGrass; break; case 6: type = PlantType.Rushes; break; case 7: type = PlantType.ElephantEarPlant; break; case 8: type = PlantType.Fern; break; case 9: type = PlantType.PonytailPalm; break; case 10: type = PlantType.SmallPalm; break; case 11: type = PlantType.CenturyPlant; break; case 12: type = PlantType.WaterPlant; break; case 13: type = PlantType.SnakePlant; break; case 14: type = PlantType.PricklyPearCactus; break; case 15: type = PlantType.BarrelCactus; break; default: type = PlantType.TribarrelCactus; break; } PlantHue hue; switch (Utility.Random(19)) { case 0: hue = PlantHue.Plain; break; case 1: hue = PlantHue.Red; break; case 2: hue = PlantHue.Blue; break; case 3: hue = PlantHue.Yellow; break; case 4: hue = PlantHue.BrightRed; break; case 5: hue = PlantHue.BrightBlue; break; case 6: hue = PlantHue.BrightYellow; break; case 7: hue = PlantHue.Purple; break; case 8: hue = PlantHue.Green; break; case 9: hue = PlantHue.Orange; break; case 10: hue = PlantHue.BrightPurple; break; case 11: hue = PlantHue.BrightGreen; break; case 12: hue = PlantHue.BrightOrange; break; case 13: hue = PlantHue.Black; break; case 14: hue = PlantHue.White; break; case 15: hue = PlantHue.Pink; break; case 16: hue = PlantHue.Magenta; break; case 17: hue = PlantHue.Aqua; break; default: hue = PlantHue.FireRed; break; } seed = new Seed(type, hue, false); PackItem(seed); if (Utility.Random(500) == 1) { PackItem(new BlackDyeTub()); } if (Utility.Random(100) < 15) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } if (Utility.Random(100) < 10) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } } }
public void checkWithNoise <A>( IDeserializer <A> deser, Rope <byte> serialized, A expected ) => checkWithNoiseOpt(deser, serialized, expected.some());
/// <summary> /// Creates a new RopeTextSource. /// </summary> public RopeTextSource(Rope<char> rope) { if (rope == null) throw new ArgumentNullException("rope"); this.rope = rope; }
public void checkWithNoiseOpt <A>( IDeserializer <A> deser, Rope <byte> serialized, Option <A> expected ) => checkWithNoiseOpt(deser, serialized, o => o.shouldEqual(expected));
public override RopeCollisionType collideWithRopeHead(Rope rope) { return(RopeCollisionType.CAN_NOT_ATTACH_AND_THROUGH); }
public OutputArgument(Rope initvalue) : this((object)initvalue) { }