private void UpdateDyeParticleOverrides() { if (this.FaceArmorDye.HasValue) { this.player.cFace = ShaderHelpers.GetShaderIdByDyeItemType(this.FaceArmorDye.Value); } if (this.HeadArmorDye.HasValue) { this.player.cHead = ShaderHelpers.GetShaderIdByDyeItemType(this.HeadArmorDye.Value); } if (this.BodyArmorDye.HasValue) { this.player.cBody = ShaderHelpers.GetShaderIdByDyeItemType(this.BodyArmorDye.Value); } if (this.LegsArmorDye.HasValue) { this.player.cLegs = ShaderHelpers.GetShaderIdByDyeItemType(this.LegsArmorDye.Value); } }
private void CreateMaterialProperties() { MaterialProperties.Clear(); CCategoryInfo category = new CCategoryInfo() { Name = "Material", Priority = 0 }; foreach (MaterialParameterViewModel parameterEntry in ParameterEntries) { Type paramType = ShaderHelpers.GetTypeFromParameterType(parameterEntry.ParameterType); if (parameterEntry.ParameterType == EShaderParameterType.Texture) { paramType = typeof(CAssetReference <CTextureAsset>); } PropertyInfo valuePropertyInfo = typeof(MaterialParameterViewModel).GetProperty("Value"); CObjectProperty objectProperty = new CObjectProperty(parameterEntry.Name, category, parameterEntry, parameterEntry.Value, paramType, valuePropertyInfo, null); MaterialProperties.Add(objectProperty); } m_propertyInspector.ShowInspectors(MaterialProperties); }
private void UpdateShaderOverrides(ref PlayerDrawInfo drawInfo) { if (this.HairDye.HasValue) { drawInfo.hairShader = ShaderHelpers.GetShaderIdByDyeItemType(this.HairDye.Value); } if (this.FaceArmorDye.HasValue) { drawInfo.faceShader = ShaderHelpers.GetShaderIdByDyeItemType(this.FaceArmorDye.Value); } if (this.HeadArmorDye.HasValue) { drawInfo.headArmorShader = ShaderHelpers.GetShaderIdByDyeItemType(this.HeadArmorDye.Value); } if (this.BodyArmorDye.HasValue) { drawInfo.bodyArmorShader = ShaderHelpers.GetShaderIdByDyeItemType(this.BodyArmorDye.Value); } if (this.LegsArmorDye.HasValue) { drawInfo.legArmorShader = ShaderHelpers.GetShaderIdByDyeItemType(this.LegsArmorDye.Value); } }
public void AddParameterTarget(SHashedName name, EShaderParameterType type) { SShaderParameterTarget newParameterTarget; newParameterTarget.parameterName = name; newParameterTarget.parameterType = type; int sizeInBytes = ShaderHelpers.GetSizeFromParameterType(type); if (m_currentRegisterSizeLeft >= sizeInBytes && !m_bInArray) { m_currentRegisterSizeLeft -= sizeInBytes; newParameterTarget.offset = m_currentOffset; } else { m_currentOffset += m_currentRegisterSizeLeft; newParameterTarget.offset = m_currentOffset; m_currentRegisterSizeLeft = (16 - sizeInBytes % 16) % 16; } m_currentOffset += sizeInBytes; parameterTargets.Add(newParameterTarget); }