Пример #1
0
        public static unsafe ushort GetChar(this NativeString64 str, int pos)
        {
            var b = &str.buffer.byte0000;

            str.CopyTo(b, out var _, (ushort)pos);
            return(b[pos]);
        }
Пример #2
0
    public void SendActionToServer(NativeString64 pAction)
    {
        var writer = Driver.BeginSend(Connection);

        writer.WriteString(pAction);
        Driver.EndSend(writer);
    }
Пример #3
0
        public unsafe bool WriteString(NativeString64 str)
        {
            int   length = (int)*((ushort *)&str) + 2;
            byte *data   = ((byte *)&str);

            return(WriteBytes(data, length));
        }
Пример #4
0
        public unsafe void WritePackedStringDelta(NativeString64 str, NativeString64 baseline, NetworkCompressionModel model)
        {
            ushort length     = *((ushort *)&str);
            byte * data       = ((byte *)&str) + 2;
            ushort baseLength = *((ushort *)&baseline);
            byte * baseData   = ((byte *)&baseline) + 2;

            WritePackedUIntDelta(length, baseLength, model);
            if (length <= baseLength)
            {
                for (int i = 0; i < length; ++i)
                {
                    WritePackedUIntDelta(data[i], baseData[i], model);
                }
            }
            else
            {
                for (int i = 0; i < baseLength; ++i)
                {
                    WritePackedUIntDelta(data[i], baseData[i], model);
                }
                for (int i = baseLength; i < length; ++i)
                {
                    WritePackedUInt(data[i], model);
                }
            }
        }
Пример #5
0
 public void Deserialize(ref DataStreamReader reader)
 {
     Name   = reader.ReadString();
     Size.x = reader.ReadInt();
     Size.y = reader.ReadInt();
     //reader.ReadInt();
 }
    public void Execute(int index)
    {
        DataStreamReader stream;

        Assert.IsTrue(connections[index].IsCreated);

        NetworkEvent.Type cmd;
        while ((cmd = driver.PopEventForConnection(connections[index], out stream)) !=
               NetworkEvent.Type.Empty)
        {
            if (cmd == NetworkEvent.Type.Data)
            {
                NativeString64 message = stream.ReadString();
                if (message.ToString() != "Message Confirmed")
                {
                    Debug.Log("Received Message: " + message);

                    var writer = driver.BeginSend(connections[index]);
                    writer.WriteString("Message Confirmed");
                    driver.EndSend(writer);
                }
            }
            else if (cmd == NetworkEvent.Type.Disconnect)
            {
                Debug.Log("Client disconnected from server");
                connections[index] = default(NetworkConnection);
            }
        }
    }
Пример #7
0
        public void NativeStringCopyFrom(String s, CopyError expectedError)
        {
            NativeString64 ns    = new NativeString64();
            var            error = ns.CopyFrom(s);

            Assert.AreEqual(expectedError, error);
        }
Пример #8
0
        public void NativeString64EqualsWorks(String a, String b)
        {
            NativeString64 aa = new NativeString64(a);
            NativeString64 bb = new NativeString64(b);

            Assert.AreEqual(aa.Equals(bb), a.Equals(b));
        }
Пример #9
0
 public AnimationEventData(Entity entity, string stringParameter, float floatParameter, int intParameter)
 {
     Entity          = entity;
     StringParameter = new NativeString64(stringParameter);
     FloatParameter  = floatParameter;
     IntParameter    = intParameter;
 }
Пример #10
0
        public unsafe void WriteString(NativeString64 str)
        {
            int   length = (int)*((ushort *)&str) + 2;
            byte *data   = ((byte *)&str);

            WriteBytes(data, length);
        }
Пример #11
0
    public MapInfo generateRandomMap(
        mapTheme theme,
        mapType mType,
        int width, int height,
        [Optional] NativeString64 seed,
        [Optional] float squareSize)
    {
        seed       = (seed.LengthInBytes == 0) ? Time.realtimeSinceStartup.ToString() : seed;
        squareSize = (squareSize == 0) ? DEFAULT_SQUARE_SIZE : squareSize;


        Entity map = mapGenWorld.EntityManager.CreateEntity();

        mapGenWorld.EntityManager.AddComponentData(map, new MapGenRequirement {
            width             = width,
            height            = height,
            mType             = mType,
            randomFillPercent = 45,
            seed       = seed,
            squareSize = squareSize
        });

        var mapInfo = new MapInfo {
            entity = map, theme = theme, seed = seed, genStage = generationStage.tileGen
        };

        mapGenWorld.EntityManager.AddComponentData(map, new TileMapGeneration.T_InitialGen {
        });
        mapGenWorld.EntityManager.AddComponentData(map, new MapInfo {
            entity = map, theme = theme, seed = seed, genStage = generationStage.tileGen
        });
        return(mapInfo);
    }
Пример #12
0
        public void RoadNetworkTraversal_LaneSectionTraversalSmokeTest()
        {
            var roadNetwork     = LoadTestFile("CircleCourse");
            var firstRoad       = roadNetwork.AllRoads.First();
            var firstRoadId     = new NativeString64(firstRoad.roadId);
            var numLaneSections = 3;
            var numLoops        = 10;
            var traversalState  = new TraversalState(roadNetwork, firstRoad.roadId, 0, -1, TraversalDirection.Forward);

            for (var step = 0; step < numLaneSections - 1; ++step)
            {
                Assert.IsTrue(RoadNetworkTraversal.TryAdvanceOneLaneSection(roadNetwork, ref traversalState, false),
                              $"Failed to advance to step #{step} - {numLaneSections} total");
                Assert.AreEqual(-1, traversalState.LaneId);
            }
            // Without allowing looping, we shouldn't be allowed to go to the next lane section
            Assert.IsFalse(RoadNetworkTraversal.TryAdvanceOneLaneSection(roadNetwork, ref traversalState, false));
            Assert.IsTrue(RoadNetworkTraversal.TryAdvanceOneLaneSection(roadNetwork, ref traversalState, true));
            Assert.AreEqual(firstRoadId, traversalState.RoadId);
            for (var step = 0; step < numLaneSections * numLoops; ++step)
            {
                Assert.IsTrue(RoadNetworkTraversal.TryAdvanceOneLaneSection(roadNetwork, ref traversalState, true),
                              $"Failed to advance to step #{step} - {numLaneSections} total");
                Assert.AreEqual(-1, traversalState.LaneId);
            }
            Assert.AreEqual(firstRoadId, traversalState.RoadId);
        }
Пример #13
0
        public void NativeString64ToNativeString4096Works(String a)
        {
            var    b = new NativeString64(a);
            var    c = new NativeString4096(ref b);
            String d = c.ToString();

            Assert.AreEqual(a, d);
        }
Пример #14
0
        internal void GenerateNewWayPointPath()
        {
            var roadIds = new RoadSet(RoadNetwork);

            if (!roadIds.Contains(m_RoadId))
            {
                m_RoadId = roadIds.GetNotTraversed(Math.Abs(m_Rand.NextInt()));
                if (m_RoadId.Equals(default))
Пример #15
0
        public void NativeString64CompareToWorks(String a, String b)
        {
            NativeString64 aa = new NativeString64(a);
            NativeString64 bb = new NativeString64(b);
            var            c0 = aa.CompareTo(bb);
            var            c1 = a.CompareTo(b);

            Assert.AreEqual(c0, c1);
        }
        public static NativeString64 ReadNativeString64(this Buffer buffer)
        {
            NativeString64 str = new NativeString64();

            str.LengthInBytes = buffer.ReadBlittable <ushort>();
            str.buffer        = buffer.ReadBlittable <Bytes62>();

            return(str);
        }
Пример #17
0
 public void AddCostRecord(NativeString64 queryDebugName, float poseCost, float trajectoryCost)
 {
     costRecords.Add(new DebugCostRecord()
     {
         queryDebugName = queryDebugName,
         poseCost       = poseCost,
         trajectoryCost = trajectoryCost
     });
 }
Пример #18
0
        public void NativeString64ParseFloatNan()
        {
            NativeString64 aa     = new NativeString64("NaN");
            int            offset = 0;
            float          output = 0;
            var            result = aa.Parse(ref offset, ref output);

            Assert.AreEqual(ParseError.None, result);
            Assert.IsTrue(Single.IsNaN(output));
        }
Пример #19
0
    public static void Set(this UnityEngine.UI.Text me, ref NativeString64 text)
    {
        var originalText = new NativeString64(me.text);

        if (originalText.CompareTo(text) == 0)
        {
            return;
        }
        me.text = text.ToString();
    }
Пример #20
0
    public static void Set(this TMPro.TextMeshProUGUI me, ref NativeString64 text)
    {
        var originalText = new NativeString64(me.text);

        if (originalText.CompareTo(text) == 0)
        {
            return;
        }
        me.text = text.ToString();
    }
Пример #21
0
    public static void EchoText(NetworkConnection connection, NativeString64 text)
    {
        var writer = driver.BeginSend(NetworkPipeline.Null, connection);

        writer.WriteUInt((uint)ServerPackets.echoText);

        writer.WriteString("Echo: " + text);

        driver.EndSend(writer);
    }
Пример #22
0
 public void Deserialize(ref DataStreamReader reader)
 {
     skillId     = reader.ReadShort();
     skill2Id    = reader.ReadShort();
     skill3Id    = reader.ReadShort();
     skill4Id    = reader.ReadShort();
     characterId = (uint)reader.ReadInt();
     skinId      = (uint)reader.ReadInt();
     userId      = reader.ReadString();
 }
Пример #23
0
    public void SendRemoteCommandRpc(NativeString64 command)
    {
        var entity        = World.EntityManager.CreateEntity();
        var remoteCommand = new RemoteCommandComponent
        {
            Command = command
        };

        World.EntityManager.AddComponentData(entity, remoteCommand);
    }
            public void Execute(Entity entity, int jobIndex, DynamicBuffer <Node> nodes,
                                DynamicBuffer <State> states, ref Agent agent)
            {
                //执行进度要处于正确的id上
                var currentNode = nodes[agent.ExecutingNodeId];

                if (!currentNode.Name.Equals(new NativeString64(nameof(DropItemAction))))
                {
                    return;
                }

                //从effect里找目标.
                var targetEntity   = Entity.Null;
                var targetItemName = new NativeString64();

                for (var i = 0; i < states.Length; i++)
                {
                    if ((currentNode.EffectsBitmask & (ulong)1 << i) > 0)
                    {
                        var effect = states[i];
                        Assert.IsTrue(effect.Target != null);

                        targetEntity   = effect.Target;
                        targetItemName = effect.ValueString;
                        break;
                    }
                }
                //从自身找到物品引用,并移除
                var itemRef = new ContainedItemRef();
                var id      = 0;
                var bufferContainedItems = AllContainedItemRefs[entity];

                for (var i = 0; i < bufferContainedItems.Length; i++)
                {
                    var containedItemRef = bufferContainedItems[i];
                    if (!containedItemRef.ItemName.Equals(targetItemName))
                    {
                        continue;
                    }

                    itemRef = containedItemRef;
                    id      = i;
                    break;
                }
                bufferContainedItems.RemoveAt(id);

                //目标获得物品
                var buffer = AllContainedItemRefs[targetEntity];

                buffer.Add(itemRef);

                //通知执行完毕
                Utils.NextAgentState <ReadyToAct, ReadyToNavigate>(
                    entity, jobIndex, ref ECBuffer, agent, true);
            }
Пример #25
0
        /// <summary>
        /// 追加对起点的链接
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="actionName"></param>
        public void LinkStartNode(Node parent, NativeString64 actionName)
        {
            //start node的iteration设置为此Node+1
            var iteration = parent.Iteration;

            if (_startNode.Iteration <= iteration)
            {
                _startNode.Iteration = iteration + 1;
            }
            _nodeToParent.Add(_startNode, new Edge(parent, _startNode, actionName));
        }
Пример #26
0
 public void Deserialize(uint tick, ref GameModeSnapshotData baseline, ref DataStreamReader reader,
                         NetworkCompressionModel compressionModel)
 {
     this.tick   = tick;
     changeMask0 = reader.ReadPackedUIntDelta(baseline.changeMask0, compressionModel);
     if ((changeMask0 & (1 << 0)) != 0)
     {
         GameModeDatagameTimerSeconds = reader.ReadPackedIntDelta(baseline.GameModeDatagameTimerSeconds, compressionModel);
     }
     else
     {
         GameModeDatagameTimerSeconds = baseline.GameModeDatagameTimerSeconds;
     }
     if ((changeMask0 & (1 << 1)) != 0)
     {
         GameModeDatagameTimerMessage = reader.ReadPackedStringDelta(baseline.GameModeDatagameTimerMessage, compressionModel);
     }
     else
     {
         GameModeDatagameTimerMessage = baseline.GameModeDatagameTimerMessage;
     }
     if ((changeMask0 & (1 << 2)) != 0)
     {
         GameModeDatateamName0 = reader.ReadPackedStringDelta(baseline.GameModeDatateamName0, compressionModel);
     }
     else
     {
         GameModeDatateamName0 = baseline.GameModeDatateamName0;
     }
     if ((changeMask0 & (1 << 3)) != 0)
     {
         GameModeDatateamName1 = reader.ReadPackedStringDelta(baseline.GameModeDatateamName1, compressionModel);
     }
     else
     {
         GameModeDatateamName1 = baseline.GameModeDatateamName1;
     }
     if ((changeMask0 & (1 << 4)) != 0)
     {
         GameModeDatateamScore0 = reader.ReadPackedIntDelta(baseline.GameModeDatateamScore0, compressionModel);
     }
     else
     {
         GameModeDatateamScore0 = baseline.GameModeDatateamScore0;
     }
     if ((changeMask0 & (1 << 5)) != 0)
     {
         GameModeDatateamScore1 = reader.ReadPackedIntDelta(baseline.GameModeDatateamScore1, compressionModel);
     }
     else
     {
         GameModeDatateamScore1 = baseline.GameModeDatateamScore1;
     }
 }
Пример #27
0
        internal static QueryTraitExpression Create(ref Binary binary, NativeString64 debugName = default(NativeString64))
        {
            var constraints = new NativeList <Constraint>(Allocator.Temp);

            return(new QueryTraitExpression()
            {
                binary = MemoryRef <Binary> .Create(ref binary),
                constraints = constraints,
                debugName = debugName
            });
        }
 public void ReadFromStream(Buffer buffer)
 {
     trajectory       = buffer.ReadBlittable <DebugIdentifier>();
     candidates       = buffer.ReadBlittable <DebugIdentifier>();
     samplingTime     = buffer.ReadBlittable <DebugIdentifier>();
     closestMatch     = buffer.ReadBlittable <DebugIdentifier>();
     deviationTable   = buffer.ReadBlittable <DebugIdentifier>();
     trajectoryWeight = buffer.ReadSingle();
     maxDeviation     = buffer.ReadSingle();
     deviated         = buffer.ReadBoolean();
     debugName        = buffer.ReadNativeString64();
 }
Пример #29
0
 internal void SetNewLocation(NativeString64 roadId, int laneSectionIdx, int laneId,
                              TraversalDirection direction)
 {
     RoadId         = roadId;
     LaneSectionIdx = laneSectionIdx;
     LaneId         = laneId;
     Direction      = direction;
     if (!AllRoadIds.HasBeenTraversed(roadId))
     {
         AllRoadIds.Traverse(roadId);
     }
 }
Пример #30
0
        public void NativeString64FormatNegativeZero()
        {
            float          input          = -0.0f;
            var            expectedOutput = input.ToString();
            NativeString64 aa             = new NativeString64();
            var            result         = aa.Format(input);

            Assert.AreEqual(FormatError.None, result);
            var actualOutput = aa.ToString();

            Assert.AreEqual(expectedOutput, actualOutput);
        }