/// <summary> /// Intended for internal accurate rendering only. /// </summary> /// <param name="cameraInfo"></param> /// <param name="container"></param> private static void RenderProp(RenderManager.CameraInfo cameraInfo, PropContainer container) { if ((container.propInstance.m_flags & 68) != 0) { return; } PropInfo info = container.propInstance.Info; Vector3 inaccuratePosition = container.propInstance.Position; Vector3 position = new Vector3(container.extras["accx"], inaccuratePosition.y, container.extras["accz"]); if (!cameraInfo.CheckRenderDistance(position, info.m_maxRenderDistance) || !cameraInfo.Intersect(position, info.m_generatedInfo.m_size.y * info.m_maxScale)) { return; } float angle = container.propInstance.Angle; Randomizer r = new Randomizer(0); float scale = info.m_minScale + (float)((double)r.Int32(10000U) * ((double)info.m_maxScale - (double)info.m_minScale) * 9.99999974737875E-05); Color color = info.GetColor(ref r); Vector4 objectIndex = new Vector4(1f / 512f, 1f / 384f, 0.0f, 0.0f); InstanceID id = new InstanceID(); if (info.m_requireHeightMap) { Texture _HeightMap; Vector4 _HeightMapping; Vector4 _SurfaceMapping; TerrainManager.instance.GetHeightMapping(position, out _HeightMap, out _HeightMapping, out _SurfaceMapping); PropInstance.RenderInstance(cameraInfo, info, id, position, scale, angle, color, objectIndex, true, _HeightMap, _HeightMapping, _SurfaceMapping); } else { PropInstance.RenderInstance(cameraInfo, info, id, position, scale, angle, color, objectIndex, true); } }
public void Properties() { var obj = new PropContainer <int> { Prop = 42 }; var clone = Ditto.DeepClone(obj); Assert.AreEqual(obj.Prop, clone.Prop); }
public static PropWrapper GeneratePropWrapper(PropContainer propContainer) { PropWrapper retVal = new PropWrapper(); PropInstance instance = propContainer.propInstance; Dictionary <string, float> extras = propContainer.extras; retVal.infoIndex = instance.m_infoIndex; retVal.positionX = instance.m_posX; retVal.positionY = instance.m_posY; retVal.positionZ = instance.m_posZ; retVal.angle = instance.Angle; retVal.single = instance.Single; retVal.extraJson = JsonMapper.ToJson(extras); return(retVal); }
public void CommonInterfaces() { var obj = new PropContainer <IEnumerable <int> > { Prop = Enumerable.Range(0, 10) }; var clone = Ditto.DeepClone(obj); Assert.AreEqual(obj.Prop, clone.Prop); Assert.AreNotSame(obj.Prop, clone.Prop); obj = new PropContainer <IEnumerable <int> > { Prop = null }; clone = Ditto.DeepClone(obj); Assert.Null(clone.Prop); }