Пример #1
0
        public void touch(Entity self, Entity other, Plane plane, Surface surf) {
          if (other.client != null) {
            if ((self.spawnflags & 2) != 0) return;
          } else if ((other.svflags & Constants.SVF_MONSTER) != 0) {
            if (0 == (self.spawnflags & 1)) return;
          } else return;

          if (!Math3D.VectorEquals(self.movedir, Globals.vec3_origin)) {
            float[] forward = {0, 0, 0};

            Math3D.AngleVectors(other.s.angles, forward, null, null);
            if (Math3D.DotProduct(forward, self.movedir) < 0) return;
          }

          self.activator = other;
          multi_trigger(self);
        }