Ejemplo n.º 1
0
        private static MyCompoundBlockTemplateDefinition.MyCompoundBlockRotationBinding GetRotationBinding(MyCompoundBlockTemplateDefinition templateDefinition, MyCubeBlockDefinition blockDefinition1, MyCubeBlockDefinition blockDefinition2)
        {
            MyCompoundBlockTemplateDefinition.MyCompoundBlockBinding binding = GetTemplateDefinitionBinding(templateDefinition, blockDefinition1);
            if (binding == null)
                return null;

            MyCompoundBlockTemplateDefinition.MyCompoundBlockRotationBinding rotBind = GetRotationBinding(binding, blockDefinition2);
            if (rotBind != null)
                return rotBind;

            binding = GetTemplateDefinitionBinding(templateDefinition, blockDefinition2);
            if (binding == null)
                return null;

            rotBind = GetRotationBinding(binding, blockDefinition1);

            return rotBind;
        }
Ejemplo n.º 2
0
        private static MyCompoundBlockTemplateDefinition.MyCompoundBlockRotationBinding GetRotationBinding(MyCompoundBlockTemplateDefinition.MyCompoundBlockBinding binding, MyCubeBlockDefinition blockDefinition)
        {
            if (binding.RotationBinds != null)
            {
                foreach (var rotBind in binding.RotationBinds)
                {
                    if (rotBind.BuildTypeReference == blockDefinition.BuildType)
                        return rotBind;
                }
            }

            return null;
        }
Ejemplo n.º 3
0
        private static MyCompoundBlockTemplateDefinition.MyCompoundBlockBinding GetTemplateDefinitionBinding(MyCompoundBlockTemplateDefinition templateDefinition, MyCubeBlockDefinition blockDefinition)
        {
            // first try any build type (allows more freedom)
            foreach (var binding in templateDefinition.Bindings)
            {
                if (binding.BuildType == BUILD_TYPE_ANY)
                    return binding;
            }

            foreach (var binding in templateDefinition.Bindings)
            {
                if (binding.BuildType == blockDefinition.BuildType && blockDefinition.BuildType != null)
                    return binding;
            }

            return null;
        }