예제 #1
0
 private void TriggerRemoveTest(Placeable p1, Placeable p2, Ksids ksids)
 {
     if (p2.IsTrigger && ksids.IsParentOrEqual(p1.Ksid, p2.TriggerTargets))
     {
         p2.RemoveTarget(p1);
     }
     if (p1.IsTrigger && ksids.IsParentOrEqual(p2.Ksid, p1.TriggerTargets))
     {
         p1.RemoveTarget(p2);
     }
 }
예제 #2
0
 public bool ContainsType(Vector2 pos, Ksid ksid)
 {
     if (WorldToCell(pos, out var cellPos))
     {
         foreach (var p in cells[cellPos])
         {
             if (ksids.IsParentOrEqual(p.Ksid, ksid))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #3
0
    private void MovingObjTest(Placeable p)
    {
        if (Ksids.IsParentOrEqual(p.Ksid, Ksid.SandLike) && p.IsNonMoving)
        {
            float y  = Mathf.Repeat(p.Pivot.y, Map.CellSize.y);
            float dy = p.PosOffset.y + p.Size.y;

            if (y + dy > Map.CellSizeY3div4)
            {
                Map.AddCellStateTest(Map.WorldToCell(p.Pivot), p.CellZ == 0 ? CellStateCahnge.CompactSand0 : CellStateCahnge.CompactSand1);
            }
        }
    }