Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e9fc666de5 |
-700
@@ -1,700 +0,0 @@
|
|||||||
# DH Core
|
|
||||||
|
|
||||||
# Note: please keep this and the main .editorconfig in sync
|
|
||||||
|
|
||||||
[*]
|
|
||||||
charset = utf-8
|
|
||||||
end_of_line = crlf
|
|
||||||
indent_size = 4
|
|
||||||
indent_style = space
|
|
||||||
insert_final_newline = false
|
|
||||||
max_line_length = 1000
|
|
||||||
tab_width = 4
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
ij_continuation_indent_size = 8
|
|
||||||
ij_formatter_off_tag = @formatter:off
|
|
||||||
ij_formatter_on_tag = @formatter:on
|
|
||||||
ij_formatter_tags_enabled = true
|
|
||||||
ij_smart_tabs = false
|
|
||||||
ij_visual_guides = none
|
|
||||||
ij_wrap_on_typing = false
|
|
||||||
|
|
||||||
[*.java]
|
|
||||||
indent_style = tab
|
|
||||||
ij_smart_tabs = true
|
|
||||||
ij_java_align_consecutive_assignments = false
|
|
||||||
ij_java_align_consecutive_variable_declarations = false
|
|
||||||
ij_java_align_group_field_declarations = false
|
|
||||||
ij_java_align_multiline_annotation_parameters = false
|
|
||||||
ij_java_align_multiline_array_initializer_expression = false
|
|
||||||
ij_java_align_multiline_assignment = false
|
|
||||||
ij_java_align_multiline_binary_operation = false
|
|
||||||
ij_java_align_multiline_chained_methods = false
|
|
||||||
ij_java_align_multiline_deconstruction_list_components = false
|
|
||||||
ij_java_align_multiline_extends_list = false
|
|
||||||
ij_java_align_multiline_for = false
|
|
||||||
ij_java_align_multiline_method_parentheses = false
|
|
||||||
ij_java_align_multiline_parameters = false
|
|
||||||
ij_java_align_multiline_parameters_in_calls = false
|
|
||||||
ij_java_align_multiline_parenthesized_expression = false
|
|
||||||
ij_java_align_multiline_records = false
|
|
||||||
ij_java_align_multiline_resources = false
|
|
||||||
ij_java_align_multiline_ternary_operation = false
|
|
||||||
ij_java_align_multiline_text_blocks = false
|
|
||||||
ij_java_align_multiline_throws_list = false
|
|
||||||
ij_java_align_subsequent_simple_methods = false
|
|
||||||
ij_java_align_throws_keyword = false
|
|
||||||
ij_java_align_types_in_multi_catch = false
|
|
||||||
ij_java_annotation_parameter_wrap = off
|
|
||||||
ij_java_array_initializer_new_line_after_left_brace = false
|
|
||||||
ij_java_array_initializer_right_brace_on_new_line = false
|
|
||||||
ij_java_array_initializer_wrap = normal
|
|
||||||
ij_java_assert_statement_colon_on_next_line = false
|
|
||||||
ij_java_assert_statement_wrap = off
|
|
||||||
ij_java_assignment_wrap = off
|
|
||||||
ij_java_binary_operation_sign_on_next_line = false
|
|
||||||
ij_java_binary_operation_wrap = off
|
|
||||||
ij_java_blank_lines_after_anonymous_class_header = 0
|
|
||||||
ij_java_blank_lines_after_class_header = 0
|
|
||||||
ij_java_blank_lines_after_imports = 1
|
|
||||||
ij_java_blank_lines_after_package = 1
|
|
||||||
ij_java_blank_lines_around_class = 1
|
|
||||||
ij_java_blank_lines_around_field = 0
|
|
||||||
ij_java_blank_lines_around_field_in_interface = 0
|
|
||||||
ij_java_blank_lines_around_initializer = 0
|
|
||||||
ij_java_blank_lines_around_method = 0
|
|
||||||
ij_java_blank_lines_around_method_in_interface = 0
|
|
||||||
ij_java_blank_lines_before_class_end = 1
|
|
||||||
ij_java_blank_lines_before_imports = 1
|
|
||||||
ij_java_blank_lines_before_method_body = 0
|
|
||||||
ij_java_blank_lines_before_package = 1
|
|
||||||
ij_java_block_brace_style = next_line
|
|
||||||
ij_java_block_comment_add_space = false
|
|
||||||
ij_java_block_comment_at_first_column = true
|
|
||||||
ij_java_builder_methods = none
|
|
||||||
ij_java_call_parameters_new_line_after_left_paren = false
|
|
||||||
ij_java_call_parameters_right_paren_on_new_line = false
|
|
||||||
ij_java_call_parameters_wrap = normal
|
|
||||||
ij_java_case_statement_on_separate_line = true
|
|
||||||
ij_java_catch_on_new_line = true
|
|
||||||
ij_java_class_annotation_wrap = off
|
|
||||||
ij_java_class_brace_style = next_line
|
|
||||||
ij_java_class_count_to_use_import_on_demand = 5
|
|
||||||
ij_java_class_names_in_javadoc = 1
|
|
||||||
ij_java_deconstruction_list_wrap = normal
|
|
||||||
ij_java_do_not_indent_top_level_class_members = false
|
|
||||||
ij_java_do_not_wrap_after_single_annotation = false
|
|
||||||
ij_java_do_not_wrap_after_single_annotation_in_parameter = false
|
|
||||||
ij_java_do_while_brace_force = never
|
|
||||||
ij_java_doc_add_blank_line_after_description = true
|
|
||||||
ij_java_doc_add_blank_line_after_param_comments = false
|
|
||||||
ij_java_doc_add_blank_line_after_return = false
|
|
||||||
ij_java_doc_add_p_tag_on_empty_lines = false
|
|
||||||
ij_java_doc_align_exception_comments = false
|
|
||||||
ij_java_doc_align_param_comments = false
|
|
||||||
ij_java_doc_do_not_wrap_if_one_line = true
|
|
||||||
ij_java_doc_enable_formatting = true
|
|
||||||
ij_java_doc_enable_leading_asterisks = true
|
|
||||||
ij_java_doc_indent_on_continuation = false
|
|
||||||
ij_java_doc_keep_empty_lines = true
|
|
||||||
ij_java_doc_keep_empty_parameter_tag = true
|
|
||||||
ij_java_doc_keep_empty_return_tag = false
|
|
||||||
ij_java_doc_keep_empty_throws_tag = true
|
|
||||||
ij_java_doc_keep_invalid_tags = true
|
|
||||||
ij_java_doc_param_description_on_new_line = false
|
|
||||||
ij_java_doc_preserve_line_breaks = false
|
|
||||||
ij_java_doc_use_throws_not_exception_tag = true
|
|
||||||
ij_java_else_on_new_line = true
|
|
||||||
ij_java_enum_constants_wrap = off
|
|
||||||
ij_java_extends_keyword_wrap = normal
|
|
||||||
ij_java_extends_list_wrap = normal
|
|
||||||
ij_java_field_annotation_wrap = off
|
|
||||||
ij_java_finally_on_new_line = true
|
|
||||||
ij_java_for_brace_force = always
|
|
||||||
ij_java_for_statement_new_line_after_left_paren = false
|
|
||||||
ij_java_for_statement_right_paren_on_new_line = false
|
|
||||||
ij_java_for_statement_wrap = off
|
|
||||||
ij_java_generate_final_locals = false
|
|
||||||
ij_java_generate_final_parameters = false
|
|
||||||
ij_java_if_brace_force = never
|
|
||||||
ij_java_imports_layout = *,|,javax.**,java.**,|,$*
|
|
||||||
ij_java_indent_case_from_switch = true
|
|
||||||
ij_java_insert_inner_class_imports = false
|
|
||||||
ij_java_insert_override_annotation = true
|
|
||||||
ij_java_keep_blank_lines_before_right_brace = 10
|
|
||||||
ij_java_keep_blank_lines_between_package_declaration_and_header = 2
|
|
||||||
ij_java_keep_blank_lines_in_code = 10
|
|
||||||
ij_java_keep_blank_lines_in_declarations = 10
|
|
||||||
ij_java_keep_builder_methods_indents = false
|
|
||||||
ij_java_keep_control_statement_in_one_line = true
|
|
||||||
ij_java_keep_first_column_comment = true
|
|
||||||
ij_java_keep_indents_on_empty_lines = true
|
|
||||||
ij_java_keep_line_breaks = true
|
|
||||||
ij_java_keep_multiple_expressions_in_one_line = true
|
|
||||||
ij_java_keep_simple_blocks_in_one_line = false
|
|
||||||
ij_java_keep_simple_classes_in_one_line = true
|
|
||||||
ij_java_keep_simple_lambdas_in_one_line = true
|
|
||||||
ij_java_keep_simple_methods_in_one_line = true
|
|
||||||
ij_java_label_indent_absolute = false
|
|
||||||
ij_java_label_indent_size = 0
|
|
||||||
ij_java_lambda_brace_style = end_of_line
|
|
||||||
ij_java_layout_static_imports_separately = true
|
|
||||||
ij_java_line_comment_add_space = false
|
|
||||||
ij_java_line_comment_add_space_on_reformat = false
|
|
||||||
ij_java_line_comment_at_first_column = false
|
|
||||||
ij_java_method_annotation_wrap = off
|
|
||||||
ij_java_method_brace_style = next_line
|
|
||||||
ij_java_method_call_chain_wrap = normal
|
|
||||||
ij_java_method_parameters_new_line_after_left_paren = true
|
|
||||||
ij_java_method_parameters_right_paren_on_new_line = false
|
|
||||||
ij_java_method_parameters_wrap = normal
|
|
||||||
ij_java_modifier_list_wrap = false
|
|
||||||
ij_java_multi_catch_types_wrap = normal
|
|
||||||
ij_java_names_count_to_use_import_on_demand = 3
|
|
||||||
ij_java_new_line_after_lparen_in_annotation = false
|
|
||||||
ij_java_new_line_after_lparen_in_deconstruction_pattern = true
|
|
||||||
ij_java_new_line_after_lparen_in_record_header = false
|
|
||||||
ij_java_packages_to_use_import_on_demand = java.awt.*,javax.swing.*
|
|
||||||
ij_java_parameter_annotation_wrap = off
|
|
||||||
ij_java_parentheses_expression_new_line_after_left_paren = false
|
|
||||||
ij_java_parentheses_expression_right_paren_on_new_line = false
|
|
||||||
ij_java_place_assignment_sign_on_next_line = false
|
|
||||||
ij_java_prefer_longer_names = true
|
|
||||||
ij_java_prefer_parameters_wrap = false
|
|
||||||
ij_java_record_components_wrap = normal
|
|
||||||
ij_java_repeat_synchronized = true
|
|
||||||
ij_java_replace_instanceof_and_cast = false
|
|
||||||
ij_java_replace_null_check = false
|
|
||||||
ij_java_replace_sum_lambda_with_method_ref = false
|
|
||||||
ij_java_resource_list_new_line_after_left_paren = false
|
|
||||||
ij_java_resource_list_right_paren_on_new_line = false
|
|
||||||
ij_java_resource_list_wrap = on_every_item
|
|
||||||
ij_java_rparen_on_new_line_in_annotation = false
|
|
||||||
ij_java_rparen_on_new_line_in_deconstruction_pattern = true
|
|
||||||
ij_java_rparen_on_new_line_in_record_header = false
|
|
||||||
ij_java_space_after_closing_angle_bracket_in_type_argument = false
|
|
||||||
ij_java_space_after_colon = true
|
|
||||||
ij_java_space_after_comma = true
|
|
||||||
ij_java_space_after_comma_in_type_arguments = true
|
|
||||||
ij_java_space_after_for_semicolon = true
|
|
||||||
ij_java_space_after_quest = true
|
|
||||||
ij_java_space_after_type_cast = true
|
|
||||||
ij_java_space_before_annotation_array_initializer_left_brace = false
|
|
||||||
ij_java_space_before_annotation_parameter_list = false
|
|
||||||
ij_java_space_before_array_initializer_left_brace = false
|
|
||||||
ij_java_space_before_catch_keyword = true
|
|
||||||
ij_java_space_before_catch_left_brace = true
|
|
||||||
ij_java_space_before_catch_parentheses = true
|
|
||||||
ij_java_space_before_class_left_brace = true
|
|
||||||
ij_java_space_before_colon = true
|
|
||||||
ij_java_space_before_colon_in_foreach = true
|
|
||||||
ij_java_space_before_comma = false
|
|
||||||
ij_java_space_before_deconstruction_list = false
|
|
||||||
ij_java_space_before_do_left_brace = true
|
|
||||||
ij_java_space_before_else_keyword = true
|
|
||||||
ij_java_space_before_else_left_brace = true
|
|
||||||
ij_java_space_before_finally_keyword = true
|
|
||||||
ij_java_space_before_finally_left_brace = true
|
|
||||||
ij_java_space_before_for_left_brace = true
|
|
||||||
ij_java_space_before_for_parentheses = true
|
|
||||||
ij_java_space_before_for_semicolon = false
|
|
||||||
ij_java_space_before_if_left_brace = true
|
|
||||||
ij_java_space_before_if_parentheses = true
|
|
||||||
ij_java_space_before_method_call_parentheses = false
|
|
||||||
ij_java_space_before_method_left_brace = true
|
|
||||||
ij_java_space_before_method_parentheses = false
|
|
||||||
ij_java_space_before_opening_angle_bracket_in_type_parameter = false
|
|
||||||
ij_java_space_before_quest = true
|
|
||||||
ij_java_space_before_switch_left_brace = true
|
|
||||||
ij_java_space_before_switch_parentheses = true
|
|
||||||
ij_java_space_before_synchronized_left_brace = false
|
|
||||||
ij_java_space_before_synchronized_parentheses = true
|
|
||||||
ij_java_space_before_try_left_brace = true
|
|
||||||
ij_java_space_before_try_parentheses = true
|
|
||||||
ij_java_space_before_type_parameter_list = false
|
|
||||||
ij_java_space_before_while_keyword = true
|
|
||||||
ij_java_space_before_while_left_brace = true
|
|
||||||
ij_java_space_before_while_parentheses = true
|
|
||||||
ij_java_space_inside_one_line_enum_braces = false
|
|
||||||
ij_java_space_within_empty_array_initializer_braces = true
|
|
||||||
ij_java_space_within_empty_method_call_parentheses = false
|
|
||||||
ij_java_space_within_empty_method_parentheses = false
|
|
||||||
ij_java_spaces_around_additive_operators = true
|
|
||||||
ij_java_spaces_around_annotation_eq = true
|
|
||||||
ij_java_spaces_around_assignment_operators = true
|
|
||||||
ij_java_spaces_around_bitwise_operators = true
|
|
||||||
ij_java_spaces_around_equality_operators = true
|
|
||||||
ij_java_spaces_around_lambda_arrow = true
|
|
||||||
ij_java_spaces_around_logical_operators = true
|
|
||||||
ij_java_spaces_around_method_ref_dbl_colon = false
|
|
||||||
ij_java_spaces_around_multiplicative_operators = true
|
|
||||||
ij_java_spaces_around_relational_operators = true
|
|
||||||
ij_java_spaces_around_shift_operators = true
|
|
||||||
ij_java_spaces_around_type_bounds_in_type_parameters = true
|
|
||||||
ij_java_spaces_around_unary_operator = false
|
|
||||||
ij_java_spaces_within_angle_brackets = false
|
|
||||||
ij_java_spaces_within_annotation_parentheses = false
|
|
||||||
ij_java_spaces_within_array_initializer_braces = false
|
|
||||||
ij_java_spaces_within_braces = true
|
|
||||||
ij_java_spaces_within_brackets = false
|
|
||||||
ij_java_spaces_within_cast_parentheses = false
|
|
||||||
ij_java_spaces_within_catch_parentheses = false
|
|
||||||
ij_java_spaces_within_deconstruction_list = false
|
|
||||||
ij_java_spaces_within_for_parentheses = false
|
|
||||||
ij_java_spaces_within_if_parentheses = false
|
|
||||||
ij_java_spaces_within_method_call_parentheses = false
|
|
||||||
ij_java_spaces_within_method_parentheses = false
|
|
||||||
ij_java_spaces_within_parentheses = false
|
|
||||||
ij_java_spaces_within_record_header = false
|
|
||||||
ij_java_spaces_within_switch_parentheses = false
|
|
||||||
ij_java_spaces_within_synchronized_parentheses = false
|
|
||||||
ij_java_spaces_within_try_parentheses = false
|
|
||||||
ij_java_spaces_within_while_parentheses = false
|
|
||||||
ij_java_special_else_if_treatment = true
|
|
||||||
ij_java_subclass_name_suffix = Impl
|
|
||||||
ij_java_ternary_operation_signs_on_next_line = false
|
|
||||||
ij_java_ternary_operation_wrap = on_every_item
|
|
||||||
ij_java_test_name_suffix = Test
|
|
||||||
ij_java_throws_keyword_wrap = normal
|
|
||||||
ij_java_throws_list_wrap = normal
|
|
||||||
ij_java_use_external_annotations = false
|
|
||||||
ij_java_use_fq_class_names = false
|
|
||||||
ij_java_use_relative_indents = false
|
|
||||||
ij_java_use_single_class_imports = true
|
|
||||||
ij_java_variable_annotation_wrap = off
|
|
||||||
ij_java_visibility = public
|
|
||||||
ij_java_while_brace_force = always
|
|
||||||
ij_java_while_on_new_line = true
|
|
||||||
ij_java_wrap_comments = false
|
|
||||||
ij_java_wrap_first_method_in_call_chain = false
|
|
||||||
ij_java_wrap_long_lines = false
|
|
||||||
|
|
||||||
[*.nbtt]
|
|
||||||
indent_style = tab
|
|
||||||
max_line_length = 150
|
|
||||||
ij_continuation_indent_size = 4
|
|
||||||
ij_nbtt_keep_indents_on_empty_lines = false
|
|
||||||
ij_nbtt_space_after_colon = true
|
|
||||||
ij_nbtt_space_after_comma = true
|
|
||||||
ij_nbtt_space_before_colon = true
|
|
||||||
ij_nbtt_space_before_comma = false
|
|
||||||
ij_nbtt_spaces_within_brackets = false
|
|
||||||
ij_nbtt_spaces_within_parentheses = false
|
|
||||||
|
|
||||||
[*.properties]
|
|
||||||
ij_properties_align_group_field_declarations = false
|
|
||||||
ij_properties_keep_blank_lines = false
|
|
||||||
ij_properties_key_value_delimiter = equals
|
|
||||||
ij_properties_spaces_around_key_value_delimiter = false
|
|
||||||
|
|
||||||
[.editorconfig]
|
|
||||||
ij_editorconfig_align_group_field_declarations = false
|
|
||||||
ij_editorconfig_space_after_colon = false
|
|
||||||
ij_editorconfig_space_after_comma = true
|
|
||||||
ij_editorconfig_space_before_colon = false
|
|
||||||
ij_editorconfig_space_before_comma = false
|
|
||||||
ij_editorconfig_spaces_around_assignment_operators = true
|
|
||||||
|
|
||||||
[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.jspx,*.pom,*.rng,*.tagx,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}]
|
|
||||||
ij_xml_align_attributes = true
|
|
||||||
ij_xml_align_text = false
|
|
||||||
ij_xml_attribute_wrap = normal
|
|
||||||
ij_xml_block_comment_add_space = false
|
|
||||||
ij_xml_block_comment_at_first_column = true
|
|
||||||
ij_xml_keep_blank_lines = 2
|
|
||||||
ij_xml_keep_indents_on_empty_lines = false
|
|
||||||
ij_xml_keep_line_breaks = true
|
|
||||||
ij_xml_keep_line_breaks_in_text = true
|
|
||||||
ij_xml_keep_whitespaces = false
|
|
||||||
ij_xml_keep_whitespaces_around_cdata = preserve
|
|
||||||
ij_xml_keep_whitespaces_inside_cdata = false
|
|
||||||
ij_xml_line_comment_at_first_column = true
|
|
||||||
ij_xml_space_after_tag_name = false
|
|
||||||
ij_xml_space_around_equals_in_attribute = false
|
|
||||||
ij_xml_space_inside_empty_tag = false
|
|
||||||
ij_xml_text_wrap = normal
|
|
||||||
ij_xml_use_custom_settings = false
|
|
||||||
|
|
||||||
[{*.bash,*.sh,*.zsh}]
|
|
||||||
indent_size = 4
|
|
||||||
tab_width = 4
|
|
||||||
ij_shell_binary_ops_start_line = false
|
|
||||||
ij_shell_keep_column_alignment_padding = false
|
|
||||||
ij_shell_minify_program = false
|
|
||||||
ij_shell_redirect_followed_by_space = false
|
|
||||||
ij_shell_switch_cases_indented = false
|
|
||||||
ij_shell_use_unix_line_separator = true
|
|
||||||
|
|
||||||
[{*.comp,*.frag,*.fsh,*.geom,*.glsl,*.gsh,*.tesc,*.tese,*.vert,*.vsh}]
|
|
||||||
ij_glsl_space_after_colon = true
|
|
||||||
ij_glsl_space_after_comma = true
|
|
||||||
ij_glsl_space_after_for_semicolon = true
|
|
||||||
ij_glsl_space_after_quest = true
|
|
||||||
ij_glsl_space_before_colon = false
|
|
||||||
ij_glsl_space_before_comma = false
|
|
||||||
ij_glsl_space_before_for_semicolon = false
|
|
||||||
ij_glsl_space_before_quest = true
|
|
||||||
ij_glsl_spaces_around_additive_operators = true
|
|
||||||
ij_glsl_spaces_around_assignment_operators = true
|
|
||||||
ij_glsl_spaces_around_bitwise_operators = true
|
|
||||||
ij_glsl_spaces_around_equality_operators = true
|
|
||||||
ij_glsl_spaces_around_logical_operators = true
|
|
||||||
ij_glsl_spaces_around_multiplicative_operators = true
|
|
||||||
ij_glsl_spaces_around_relational_operators = true
|
|
||||||
ij_glsl_spaces_around_shift_operators = true
|
|
||||||
ij_glsl_spaces_within_brackets = false
|
|
||||||
ij_glsl_spaces_within_parentheses = false
|
|
||||||
|
|
||||||
[{*.gant,*.groovy,*.gy}]
|
|
||||||
ij_groovy_align_group_field_declarations = false
|
|
||||||
ij_groovy_align_multiline_array_initializer_expression = false
|
|
||||||
ij_groovy_align_multiline_assignment = false
|
|
||||||
ij_groovy_align_multiline_binary_operation = false
|
|
||||||
ij_groovy_align_multiline_chained_methods = false
|
|
||||||
ij_groovy_align_multiline_extends_list = false
|
|
||||||
ij_groovy_align_multiline_for = true
|
|
||||||
ij_groovy_align_multiline_list_or_map = true
|
|
||||||
ij_groovy_align_multiline_method_parentheses = false
|
|
||||||
ij_groovy_align_multiline_parameters = true
|
|
||||||
ij_groovy_align_multiline_parameters_in_calls = false
|
|
||||||
ij_groovy_align_multiline_resources = true
|
|
||||||
ij_groovy_align_multiline_ternary_operation = false
|
|
||||||
ij_groovy_align_multiline_throws_list = false
|
|
||||||
ij_groovy_align_named_args_in_map = true
|
|
||||||
ij_groovy_align_throws_keyword = false
|
|
||||||
ij_groovy_array_initializer_new_line_after_left_brace = false
|
|
||||||
ij_groovy_array_initializer_right_brace_on_new_line = false
|
|
||||||
ij_groovy_array_initializer_wrap = off
|
|
||||||
ij_groovy_assert_statement_wrap = off
|
|
||||||
ij_groovy_assignment_wrap = off
|
|
||||||
ij_groovy_binary_operation_wrap = off
|
|
||||||
ij_groovy_blank_lines_after_class_header = 0
|
|
||||||
ij_groovy_blank_lines_after_imports = 1
|
|
||||||
ij_groovy_blank_lines_after_package = 1
|
|
||||||
ij_groovy_blank_lines_around_class = 1
|
|
||||||
ij_groovy_blank_lines_around_field = 0
|
|
||||||
ij_groovy_blank_lines_around_field_in_interface = 0
|
|
||||||
ij_groovy_blank_lines_around_method = 1
|
|
||||||
ij_groovy_blank_lines_around_method_in_interface = 1
|
|
||||||
ij_groovy_blank_lines_before_imports = 1
|
|
||||||
ij_groovy_blank_lines_before_method_body = 0
|
|
||||||
ij_groovy_blank_lines_before_package = 0
|
|
||||||
ij_groovy_block_brace_style = end_of_line
|
|
||||||
ij_groovy_block_comment_add_space = false
|
|
||||||
ij_groovy_block_comment_at_first_column = true
|
|
||||||
ij_groovy_call_parameters_new_line_after_left_paren = false
|
|
||||||
ij_groovy_call_parameters_right_paren_on_new_line = false
|
|
||||||
ij_groovy_call_parameters_wrap = off
|
|
||||||
ij_groovy_catch_on_new_line = false
|
|
||||||
ij_groovy_class_annotation_wrap = split_into_lines
|
|
||||||
ij_groovy_class_brace_style = end_of_line
|
|
||||||
ij_groovy_class_count_to_use_import_on_demand = 5
|
|
||||||
ij_groovy_do_while_brace_force = never
|
|
||||||
ij_groovy_else_on_new_line = false
|
|
||||||
ij_groovy_enable_groovydoc_formatting = true
|
|
||||||
ij_groovy_enum_constants_wrap = off
|
|
||||||
ij_groovy_extends_keyword_wrap = off
|
|
||||||
ij_groovy_extends_list_wrap = off
|
|
||||||
ij_groovy_field_annotation_wrap = split_into_lines
|
|
||||||
ij_groovy_finally_on_new_line = false
|
|
||||||
ij_groovy_for_brace_force = never
|
|
||||||
ij_groovy_for_statement_new_line_after_left_paren = false
|
|
||||||
ij_groovy_for_statement_right_paren_on_new_line = false
|
|
||||||
ij_groovy_for_statement_wrap = off
|
|
||||||
ij_groovy_ginq_general_clause_wrap_policy = 2
|
|
||||||
ij_groovy_ginq_having_wrap_policy = 1
|
|
||||||
ij_groovy_ginq_indent_having_clause = true
|
|
||||||
ij_groovy_ginq_indent_on_clause = true
|
|
||||||
ij_groovy_ginq_on_wrap_policy = 1
|
|
||||||
ij_groovy_ginq_space_after_keyword = true
|
|
||||||
ij_groovy_if_brace_force = never
|
|
||||||
ij_groovy_import_annotation_wrap = 2
|
|
||||||
ij_groovy_imports_layout = *,|,javax.**,java.**,|,$*
|
|
||||||
ij_groovy_indent_case_from_switch = true
|
|
||||||
ij_groovy_indent_label_blocks = true
|
|
||||||
ij_groovy_insert_inner_class_imports = false
|
|
||||||
ij_groovy_keep_blank_lines_before_right_brace = 2
|
|
||||||
ij_groovy_keep_blank_lines_in_code = 2
|
|
||||||
ij_groovy_keep_blank_lines_in_declarations = 2
|
|
||||||
ij_groovy_keep_control_statement_in_one_line = true
|
|
||||||
ij_groovy_keep_first_column_comment = true
|
|
||||||
ij_groovy_keep_indents_on_empty_lines = false
|
|
||||||
ij_groovy_keep_line_breaks = true
|
|
||||||
ij_groovy_keep_multiple_expressions_in_one_line = false
|
|
||||||
ij_groovy_keep_simple_blocks_in_one_line = false
|
|
||||||
ij_groovy_keep_simple_classes_in_one_line = true
|
|
||||||
ij_groovy_keep_simple_lambdas_in_one_line = true
|
|
||||||
ij_groovy_keep_simple_methods_in_one_line = true
|
|
||||||
ij_groovy_label_indent_absolute = false
|
|
||||||
ij_groovy_label_indent_size = 0
|
|
||||||
ij_groovy_lambda_brace_style = end_of_line
|
|
||||||
ij_groovy_layout_static_imports_separately = true
|
|
||||||
ij_groovy_line_comment_add_space = false
|
|
||||||
ij_groovy_line_comment_add_space_on_reformat = false
|
|
||||||
ij_groovy_line_comment_at_first_column = true
|
|
||||||
ij_groovy_method_annotation_wrap = split_into_lines
|
|
||||||
ij_groovy_method_brace_style = end_of_line
|
|
||||||
ij_groovy_method_call_chain_wrap = off
|
|
||||||
ij_groovy_method_parameters_new_line_after_left_paren = false
|
|
||||||
ij_groovy_method_parameters_right_paren_on_new_line = false
|
|
||||||
ij_groovy_method_parameters_wrap = off
|
|
||||||
ij_groovy_modifier_list_wrap = false
|
|
||||||
ij_groovy_names_count_to_use_import_on_demand = 3
|
|
||||||
ij_groovy_packages_to_use_import_on_demand = java.awt.*,javax.swing.*
|
|
||||||
ij_groovy_parameter_annotation_wrap = off
|
|
||||||
ij_groovy_parentheses_expression_new_line_after_left_paren = false
|
|
||||||
ij_groovy_parentheses_expression_right_paren_on_new_line = false
|
|
||||||
ij_groovy_prefer_parameters_wrap = false
|
|
||||||
ij_groovy_resource_list_new_line_after_left_paren = false
|
|
||||||
ij_groovy_resource_list_right_paren_on_new_line = false
|
|
||||||
ij_groovy_resource_list_wrap = off
|
|
||||||
ij_groovy_space_after_assert_separator = true
|
|
||||||
ij_groovy_space_after_colon = true
|
|
||||||
ij_groovy_space_after_comma = true
|
|
||||||
ij_groovy_space_after_comma_in_type_arguments = true
|
|
||||||
ij_groovy_space_after_for_semicolon = true
|
|
||||||
ij_groovy_space_after_quest = true
|
|
||||||
ij_groovy_space_after_type_cast = true
|
|
||||||
ij_groovy_space_before_annotation_parameter_list = false
|
|
||||||
ij_groovy_space_before_array_initializer_left_brace = false
|
|
||||||
ij_groovy_space_before_assert_separator = false
|
|
||||||
ij_groovy_space_before_catch_keyword = true
|
|
||||||
ij_groovy_space_before_catch_left_brace = true
|
|
||||||
ij_groovy_space_before_catch_parentheses = true
|
|
||||||
ij_groovy_space_before_class_left_brace = true
|
|
||||||
ij_groovy_space_before_closure_left_brace = true
|
|
||||||
ij_groovy_space_before_colon = true
|
|
||||||
ij_groovy_space_before_comma = false
|
|
||||||
ij_groovy_space_before_do_left_brace = true
|
|
||||||
ij_groovy_space_before_else_keyword = true
|
|
||||||
ij_groovy_space_before_else_left_brace = true
|
|
||||||
ij_groovy_space_before_finally_keyword = true
|
|
||||||
ij_groovy_space_before_finally_left_brace = true
|
|
||||||
ij_groovy_space_before_for_left_brace = true
|
|
||||||
ij_groovy_space_before_for_parentheses = true
|
|
||||||
ij_groovy_space_before_for_semicolon = false
|
|
||||||
ij_groovy_space_before_if_left_brace = true
|
|
||||||
ij_groovy_space_before_if_parentheses = true
|
|
||||||
ij_groovy_space_before_method_call_parentheses = false
|
|
||||||
ij_groovy_space_before_method_left_brace = true
|
|
||||||
ij_groovy_space_before_method_parentheses = false
|
|
||||||
ij_groovy_space_before_quest = true
|
|
||||||
ij_groovy_space_before_record_parentheses = false
|
|
||||||
ij_groovy_space_before_switch_left_brace = true
|
|
||||||
ij_groovy_space_before_switch_parentheses = true
|
|
||||||
ij_groovy_space_before_synchronized_left_brace = true
|
|
||||||
ij_groovy_space_before_synchronized_parentheses = true
|
|
||||||
ij_groovy_space_before_try_left_brace = true
|
|
||||||
ij_groovy_space_before_try_parentheses = true
|
|
||||||
ij_groovy_space_before_while_keyword = true
|
|
||||||
ij_groovy_space_before_while_left_brace = true
|
|
||||||
ij_groovy_space_before_while_parentheses = true
|
|
||||||
ij_groovy_space_in_named_argument = true
|
|
||||||
ij_groovy_space_in_named_argument_before_colon = false
|
|
||||||
ij_groovy_space_within_empty_array_initializer_braces = false
|
|
||||||
ij_groovy_space_within_empty_method_call_parentheses = false
|
|
||||||
ij_groovy_spaces_around_additive_operators = true
|
|
||||||
ij_groovy_spaces_around_assignment_operators = true
|
|
||||||
ij_groovy_spaces_around_bitwise_operators = true
|
|
||||||
ij_groovy_spaces_around_equality_operators = true
|
|
||||||
ij_groovy_spaces_around_lambda_arrow = true
|
|
||||||
ij_groovy_spaces_around_logical_operators = true
|
|
||||||
ij_groovy_spaces_around_multiplicative_operators = true
|
|
||||||
ij_groovy_spaces_around_regex_operators = true
|
|
||||||
ij_groovy_spaces_around_relational_operators = true
|
|
||||||
ij_groovy_spaces_around_shift_operators = true
|
|
||||||
ij_groovy_spaces_within_annotation_parentheses = false
|
|
||||||
ij_groovy_spaces_within_array_initializer_braces = false
|
|
||||||
ij_groovy_spaces_within_braces = true
|
|
||||||
ij_groovy_spaces_within_brackets = false
|
|
||||||
ij_groovy_spaces_within_cast_parentheses = false
|
|
||||||
ij_groovy_spaces_within_catch_parentheses = false
|
|
||||||
ij_groovy_spaces_within_for_parentheses = false
|
|
||||||
ij_groovy_spaces_within_gstring_injection_braces = false
|
|
||||||
ij_groovy_spaces_within_if_parentheses = false
|
|
||||||
ij_groovy_spaces_within_list_or_map = false
|
|
||||||
ij_groovy_spaces_within_method_call_parentheses = false
|
|
||||||
ij_groovy_spaces_within_method_parentheses = false
|
|
||||||
ij_groovy_spaces_within_parentheses = false
|
|
||||||
ij_groovy_spaces_within_switch_parentheses = false
|
|
||||||
ij_groovy_spaces_within_synchronized_parentheses = false
|
|
||||||
ij_groovy_spaces_within_try_parentheses = false
|
|
||||||
ij_groovy_spaces_within_tuple_expression = false
|
|
||||||
ij_groovy_spaces_within_while_parentheses = false
|
|
||||||
ij_groovy_special_else_if_treatment = true
|
|
||||||
ij_groovy_ternary_operation_wrap = off
|
|
||||||
ij_groovy_throws_keyword_wrap = off
|
|
||||||
ij_groovy_throws_list_wrap = off
|
|
||||||
ij_groovy_use_flying_geese_braces = false
|
|
||||||
ij_groovy_use_fq_class_names = false
|
|
||||||
ij_groovy_use_fq_class_names_in_javadoc = true
|
|
||||||
ij_groovy_use_relative_indents = false
|
|
||||||
ij_groovy_use_single_class_imports = true
|
|
||||||
ij_groovy_variable_annotation_wrap = off
|
|
||||||
ij_groovy_while_brace_force = never
|
|
||||||
ij_groovy_while_on_new_line = false
|
|
||||||
ij_groovy_wrap_chain_calls_after_dot = false
|
|
||||||
ij_groovy_wrap_long_lines = false
|
|
||||||
|
|
||||||
[{*.har,*.json,*.png.mcmeta,mcmod.info,pack.mcmeta}]
|
|
||||||
indent_size = 4
|
|
||||||
ij_json_array_wrapping = split_into_lines
|
|
||||||
ij_json_keep_blank_lines_in_code = 0
|
|
||||||
ij_json_keep_indents_on_empty_lines = false
|
|
||||||
ij_json_keep_line_breaks = true
|
|
||||||
ij_json_keep_trailing_comma = false
|
|
||||||
ij_json_object_wrapping = split_into_lines
|
|
||||||
ij_json_property_alignment = do_not_align
|
|
||||||
ij_json_space_after_colon = true
|
|
||||||
ij_json_space_after_comma = true
|
|
||||||
ij_json_space_before_colon = false
|
|
||||||
ij_json_space_before_comma = false
|
|
||||||
ij_json_spaces_within_braces = false
|
|
||||||
ij_json_spaces_within_brackets = false
|
|
||||||
ij_json_wrap_long_lines = false
|
|
||||||
|
|
||||||
[{*.htm,*.html,*.sht,*.shtm,*.shtml}]
|
|
||||||
ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3
|
|
||||||
ij_html_align_attributes = true
|
|
||||||
ij_html_align_text = false
|
|
||||||
ij_html_attribute_wrap = normal
|
|
||||||
ij_html_block_comment_add_space = false
|
|
||||||
ij_html_block_comment_at_first_column = true
|
|
||||||
ij_html_do_not_align_children_of_min_lines = 0
|
|
||||||
ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p
|
|
||||||
ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot
|
|
||||||
ij_html_enforce_quotes = false
|
|
||||||
ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var
|
|
||||||
ij_html_keep_blank_lines = 2
|
|
||||||
ij_html_keep_indents_on_empty_lines = false
|
|
||||||
ij_html_keep_line_breaks = true
|
|
||||||
ij_html_keep_line_breaks_in_text = true
|
|
||||||
ij_html_keep_whitespaces = false
|
|
||||||
ij_html_keep_whitespaces_inside = span,pre,textarea
|
|
||||||
ij_html_line_comment_at_first_column = true
|
|
||||||
ij_html_new_line_after_last_attribute = never
|
|
||||||
ij_html_new_line_before_first_attribute = never
|
|
||||||
ij_html_quote_style = double
|
|
||||||
ij_html_remove_new_line_before_tags = br
|
|
||||||
ij_html_space_after_tag_name = false
|
|
||||||
ij_html_space_around_equality_in_attribute = false
|
|
||||||
ij_html_space_inside_empty_tag = false
|
|
||||||
ij_html_text_wrap = normal
|
|
||||||
|
|
||||||
[{*.kt,*.kts}]
|
|
||||||
ij_kotlin_align_in_columns_case_branch = false
|
|
||||||
ij_kotlin_align_multiline_binary_operation = false
|
|
||||||
ij_kotlin_align_multiline_extends_list = false
|
|
||||||
ij_kotlin_align_multiline_method_parentheses = false
|
|
||||||
ij_kotlin_align_multiline_parameters = true
|
|
||||||
ij_kotlin_align_multiline_parameters_in_calls = false
|
|
||||||
ij_kotlin_allow_trailing_comma = false
|
|
||||||
ij_kotlin_allow_trailing_comma_on_call_site = false
|
|
||||||
ij_kotlin_assignment_wrap = off
|
|
||||||
ij_kotlin_blank_lines_after_class_header = 0
|
|
||||||
ij_kotlin_blank_lines_around_block_when_branches = 0
|
|
||||||
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
|
|
||||||
ij_kotlin_block_comment_add_space = false
|
|
||||||
ij_kotlin_block_comment_at_first_column = true
|
|
||||||
ij_kotlin_call_parameters_new_line_after_left_paren = false
|
|
||||||
ij_kotlin_call_parameters_right_paren_on_new_line = false
|
|
||||||
ij_kotlin_call_parameters_wrap = off
|
|
||||||
ij_kotlin_catch_on_new_line = false
|
|
||||||
ij_kotlin_class_annotation_wrap = split_into_lines
|
|
||||||
ij_kotlin_continuation_indent_for_chained_calls = true
|
|
||||||
ij_kotlin_continuation_indent_for_expression_bodies = true
|
|
||||||
ij_kotlin_continuation_indent_in_argument_lists = true
|
|
||||||
ij_kotlin_continuation_indent_in_elvis = true
|
|
||||||
ij_kotlin_continuation_indent_in_if_conditions = true
|
|
||||||
ij_kotlin_continuation_indent_in_parameter_lists = true
|
|
||||||
ij_kotlin_continuation_indent_in_supertype_lists = true
|
|
||||||
ij_kotlin_else_on_new_line = false
|
|
||||||
ij_kotlin_enum_constants_wrap = off
|
|
||||||
ij_kotlin_extends_list_wrap = off
|
|
||||||
ij_kotlin_field_annotation_wrap = split_into_lines
|
|
||||||
ij_kotlin_finally_on_new_line = false
|
|
||||||
ij_kotlin_if_rparen_on_new_line = false
|
|
||||||
ij_kotlin_import_nested_classes = false
|
|
||||||
ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
|
|
||||||
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
|
|
||||||
ij_kotlin_keep_blank_lines_before_right_brace = 2
|
|
||||||
ij_kotlin_keep_blank_lines_in_code = 2
|
|
||||||
ij_kotlin_keep_blank_lines_in_declarations = 2
|
|
||||||
ij_kotlin_keep_first_column_comment = true
|
|
||||||
ij_kotlin_keep_indents_on_empty_lines = false
|
|
||||||
ij_kotlin_keep_line_breaks = true
|
|
||||||
ij_kotlin_lbrace_on_next_line = false
|
|
||||||
ij_kotlin_line_break_after_multiline_when_entry = true
|
|
||||||
ij_kotlin_line_comment_add_space = false
|
|
||||||
ij_kotlin_line_comment_add_space_on_reformat = false
|
|
||||||
ij_kotlin_line_comment_at_first_column = true
|
|
||||||
ij_kotlin_method_annotation_wrap = split_into_lines
|
|
||||||
ij_kotlin_method_call_chain_wrap = off
|
|
||||||
ij_kotlin_method_parameters_new_line_after_left_paren = false
|
|
||||||
ij_kotlin_method_parameters_right_paren_on_new_line = false
|
|
||||||
ij_kotlin_method_parameters_wrap = off
|
|
||||||
ij_kotlin_name_count_to_use_star_import = 5
|
|
||||||
ij_kotlin_name_count_to_use_star_import_for_members = 3
|
|
||||||
ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.**
|
|
||||||
ij_kotlin_parameter_annotation_wrap = off
|
|
||||||
ij_kotlin_space_after_comma = true
|
|
||||||
ij_kotlin_space_after_extend_colon = true
|
|
||||||
ij_kotlin_space_after_type_colon = true
|
|
||||||
ij_kotlin_space_before_catch_parentheses = true
|
|
||||||
ij_kotlin_space_before_comma = false
|
|
||||||
ij_kotlin_space_before_extend_colon = true
|
|
||||||
ij_kotlin_space_before_for_parentheses = true
|
|
||||||
ij_kotlin_space_before_if_parentheses = true
|
|
||||||
ij_kotlin_space_before_lambda_arrow = true
|
|
||||||
ij_kotlin_space_before_type_colon = false
|
|
||||||
ij_kotlin_space_before_when_parentheses = true
|
|
||||||
ij_kotlin_space_before_while_parentheses = true
|
|
||||||
ij_kotlin_spaces_around_additive_operators = true
|
|
||||||
ij_kotlin_spaces_around_assignment_operators = true
|
|
||||||
ij_kotlin_spaces_around_equality_operators = true
|
|
||||||
ij_kotlin_spaces_around_function_type_arrow = true
|
|
||||||
ij_kotlin_spaces_around_logical_operators = true
|
|
||||||
ij_kotlin_spaces_around_multiplicative_operators = true
|
|
||||||
ij_kotlin_spaces_around_range = false
|
|
||||||
ij_kotlin_spaces_around_relational_operators = true
|
|
||||||
ij_kotlin_spaces_around_unary_operator = false
|
|
||||||
ij_kotlin_spaces_around_when_arrow = true
|
|
||||||
ij_kotlin_variable_annotation_wrap = off
|
|
||||||
ij_kotlin_while_on_new_line = false
|
|
||||||
ij_kotlin_wrap_elvis_expressions = 1
|
|
||||||
ij_kotlin_wrap_expression_body_functions = 0
|
|
||||||
ij_kotlin_wrap_first_method_in_call_chain = false
|
|
||||||
|
|
||||||
[{*.markdown,*.md}]
|
|
||||||
ij_markdown_force_one_space_after_blockquote_symbol = true
|
|
||||||
ij_markdown_force_one_space_after_header_symbol = true
|
|
||||||
ij_markdown_force_one_space_after_list_bullet = true
|
|
||||||
ij_markdown_force_one_space_between_words = true
|
|
||||||
ij_markdown_format_tables = true
|
|
||||||
ij_markdown_insert_quote_arrows_on_wrap = true
|
|
||||||
ij_markdown_keep_indents_on_empty_lines = false
|
|
||||||
ij_markdown_keep_line_breaks_inside_text_blocks = true
|
|
||||||
ij_markdown_max_lines_around_block_elements = 1
|
|
||||||
ij_markdown_max_lines_around_header = 1
|
|
||||||
ij_markdown_max_lines_between_paragraphs = 1
|
|
||||||
ij_markdown_min_lines_around_block_elements = 1
|
|
||||||
ij_markdown_min_lines_around_header = 1
|
|
||||||
ij_markdown_min_lines_between_paragraphs = 1
|
|
||||||
ij_markdown_wrap_text_if_long = true
|
|
||||||
ij_markdown_wrap_text_inside_blockquotes = true
|
|
||||||
|
|
||||||
[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}]
|
|
||||||
ij_toml_keep_indents_on_empty_lines = false
|
|
||||||
|
|
||||||
[{*.yaml,*.yml}]
|
|
||||||
indent_size = 4
|
|
||||||
ij_yaml_align_values_properties = do_not_align
|
|
||||||
ij_yaml_autoinsert_sequence_marker = true
|
|
||||||
ij_yaml_block_mapping_on_new_line = false
|
|
||||||
ij_yaml_indent_sequence_value = true
|
|
||||||
ij_yaml_keep_indents_on_empty_lines = false
|
|
||||||
ij_yaml_keep_line_breaks = true
|
|
||||||
ij_yaml_sequence_on_new_line = false
|
|
||||||
ij_yaml_space_before_colon = false
|
|
||||||
ij_yaml_spaces_within_braces = true
|
|
||||||
ij_yaml_spaces_within_brackets = true
|
|
||||||
@@ -24,9 +24,3 @@ run
|
|||||||
# Files from Forge MDK
|
# Files from Forge MDK
|
||||||
logs
|
logs
|
||||||
forge*changelog.txt
|
forge*changelog.txt
|
||||||
|
|
||||||
# Sqlite databases
|
|
||||||
*.sqlite
|
|
||||||
*.sqlite-journal
|
|
||||||
*.sqlite-shm
|
|
||||||
*.sqlite-wal
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ This repo is for the Distant Horizons mod.
|
|||||||
The purpose of this submodule is to isolate code that isn't tied to a specific version of minecraft. This prevents us from having duplicate code; reducing errors and potentially helping us port to different versions faster and easier.
|
The purpose of this submodule is to isolate code that isn't tied to a specific version of minecraft. This prevents us from having duplicate code; reducing errors and potentially helping us port to different versions faster and easier.
|
||||||
|
|
||||||
Check out the mod's main GitLab page here:
|
Check out the mod's main GitLab page here:
|
||||||
https://gitlab.com/jeseibel/distant-horizons
|
https://gitlab.com/jeseibel/minecraft-lod-mod
|
||||||
|
|
||||||
## source code installation
|
## source code installation
|
||||||
|
|
||||||
@@ -14,14 +14,14 @@ It should be automatically included when pulling the full mod.
|
|||||||
|
|
||||||
## Open Source Acknowledgements
|
## Open Source Acknowledgements
|
||||||
|
|
||||||
LZ4 for Java (data compression)\
|
XZ for Java (data compression)\
|
||||||
https://github.com/lz4/lz4-java
|
https://tukaani.org/xz/java.html
|
||||||
|
|
||||||
NightConfig for Json & Toml (config handling)\
|
Json & Toml for Java (config handling)\
|
||||||
https://github.com/TheElectronWill/night-config
|
https://github.com/TheElectronWill/night-config
|
||||||
|
|
||||||
SVG Salamander for SVG support (not being used atm)\
|
SVG Salamander for SVG's\
|
||||||
https://github.com/blackears/svgSalamander
|
https://github.com/blackears/svgSalamander
|
||||||
|
|
||||||
sqlite-jdbc\
|
FlatLaf for theming (for development testing, may remove later)\
|
||||||
https://github.com/xerial/sqlite-jdbc
|
https://www.formdev.com/flatlaf/
|
||||||
|
|||||||
@@ -0,0 +1,390 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<profiles version="21">
|
||||||
|
<profile kind="CodeFormatterProfile" name="Eclipse (James' Edit)" version="21">
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant" value="49"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_annotations" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="49"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="99"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="49"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="49"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="49"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="49"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assertion_message" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="1"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="0"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="1200"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
|
||||||
|
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
+1
-6
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
The following is short tutorial to setup and register a gitlab runner in a docker container on windows.
|
The following is short tutorial to setup and register a gitlab runner in a docker container on windows.
|
||||||
Docker can be installed via an installer from their website and these instructions assume that has already been done.
|
Docker can be installed via a installer from their website and these instructions assume that has already been done.
|
||||||
|
|
||||||
longer tutorials can be found at the following links:
|
longer tutorials can be found at the following links:
|
||||||
https://faun.pub/gitlab-runner-setup-run-in-docker-container-on-windows-44fee102d02e
|
https://faun.pub/gitlab-runner-setup-run-in-docker-container-on-windows-44fee102d02e
|
||||||
@@ -32,11 +32,6 @@ gitlab project -> settings (on the left menu bar) -> CI/CD -> Runners
|
|||||||
and you should see the newly registered runner (the description should show up under the runner's auto generated ID)
|
and you should see the newly registered runner (the description should show up under the runner's auto generated ID)
|
||||||
|
|
||||||
|
|
||||||
5. optional config
|
|
||||||
Open Docker Desktop -> Containers -> Files, go to the file "etc/gitlab-runner/config.toml"
|
|
||||||
concurrent can be changed to allow for concurrent builds.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Additional commands:
|
Additional commands:
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
These Files are used when developing the mod.
|
||||||
|
|
||||||
|
Eclipse Auto Formatting
|
||||||
|
IntelliJ Auto Formatting
|
||||||
|
- These files are the auto-formatting settings that should be used when developing for the mod. We want to make sure the style of code is consistant regardless of who is writting the code.
|
||||||
|
|
||||||
|
renderDocMcDistantHorizonsSettings
|
||||||
|
- This file contains the configuration to run a remote debug instance so you can edit the mod in your IDE while also viewing the OpenGL code in RenderDoc.
|
||||||
|
|
||||||
|
minecraft launch options
|
||||||
|
- This file contains the Java command line arguments used to launch the mod from a development environment (specifically Eclipse, James didn't test it with IntelliJ), and is included to more easily edit the options for RenderDoc
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<code_scheme name="Eclipse (James' Edit)" version="173">
|
||||||
|
<option name="RIGHT_MARGIN" value="1200" />
|
||||||
|
<JavaCodeStyleSettings>
|
||||||
|
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
|
||||||
|
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
|
||||||
|
<option name="JD_ADD_BLANK_AFTER_DESCRIPTION" value="false" />
|
||||||
|
<option name="JD_P_AT_EMPTY_LINES" value="false" />
|
||||||
|
<option name="JD_KEEP_INVALID_TAGS" value="false" />
|
||||||
|
<option name="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS" value="true" />
|
||||||
|
<option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
|
||||||
|
<option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
|
||||||
|
<option name="JD_KEEP_EMPTY_RETURN" value="false" />
|
||||||
|
</JavaCodeStyleSettings>
|
||||||
|
<codeStyleSettings language="JAVA">
|
||||||
|
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
||||||
|
<option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="10" />
|
||||||
|
<option name="KEEP_BLANK_LINES_IN_CODE" value="10" />
|
||||||
|
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="10" />
|
||||||
|
<option name="BLANK_LINES_BEFORE_PACKAGE" value="1" />
|
||||||
|
<option name="BRACE_STYLE" value="2" />
|
||||||
|
<option name="CLASS_BRACE_STYLE" value="2" />
|
||||||
|
<option name="METHOD_BRACE_STYLE" value="2" />
|
||||||
|
<option name="ELSE_ON_NEW_LINE" value="true" />
|
||||||
|
<option name="WHILE_ON_NEW_LINE" value="true" />
|
||||||
|
<option name="CATCH_ON_NEW_LINE" value="true" />
|
||||||
|
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
||||||
|
<option name="INDENT_CASE_FROM_SWITCH" value="false" />
|
||||||
|
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||||
|
<option name="ALIGN_MULTILINE_RESOURCES" value="false" />
|
||||||
|
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
|
||||||
|
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
|
||||||
|
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||||
|
<option name="METHOD_PARAMETERS_WRAP" value="1" />
|
||||||
|
<option name="RESOURCE_LIST_WRAP" value="5" />
|
||||||
|
<option name="EXTENDS_LIST_WRAP" value="1" />
|
||||||
|
<option name="THROWS_LIST_WRAP" value="1" />
|
||||||
|
<option name="EXTENDS_KEYWORD_WRAP" value="1" />
|
||||||
|
<option name="THROWS_KEYWORD_WRAP" value="1" />
|
||||||
|
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
|
||||||
|
<option name="TERNARY_OPERATION_WRAP" value="5" />
|
||||||
|
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
||||||
|
<option name="METHOD_ANNOTATION_WRAP" value="0" />
|
||||||
|
<option name="CLASS_ANNOTATION_WRAP" value="0" />
|
||||||
|
<option name="FIELD_ANNOTATION_WRAP" value="0" />
|
||||||
|
<indentOptions>
|
||||||
|
<option name="USE_TAB_CHARACTER" value="true" />
|
||||||
|
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
||||||
|
</indentOptions>
|
||||||
|
</codeStyleSettings>
|
||||||
|
</code_scheme>
|
||||||
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -1,89 +0,0 @@
|
|||||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
id "java"
|
|
||||||
|
|
||||||
id "com.github.johnrengelman.shadow" version '8.1.1' apply false
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
shadowJar {
|
|
||||||
// required for basic shadowJar setup
|
|
||||||
configurations = [project.configurations.shadow]
|
|
||||||
}
|
|
||||||
|
|
||||||
task addSourcesToCompiledJar(type: ShadowJar) {
|
|
||||||
|
|
||||||
def sourceJarPath = "build/libs/DistantHorizons-api-${rootProject.versionStr}-sources.jar"
|
|
||||||
def secondJarFile = file(sourceJarPath)
|
|
||||||
|
|
||||||
// doFirst is so these only run when the task is actually executed
|
|
||||||
doFirst {
|
|
||||||
System.out.println("Adding source files from: \n" +
|
|
||||||
"[" + sourceJarPath + "] to compiled API jar: \n" +
|
|
||||||
"[" + shadowJar.archivePath + "]")
|
|
||||||
|
|
||||||
// Validate the input JAR file
|
|
||||||
if (!secondJarFile.exists()) {
|
|
||||||
throw new GradleException("Second JAR file not found: [${secondJarFile}]")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the name of the combined JAR file
|
|
||||||
archiveFileName.set("DistantHorizonsApi-${rootProject.api_version}.jar")
|
|
||||||
|
|
||||||
// Set the destination directory for the combined JAR file
|
|
||||||
destinationDirectory = file('build/libs/merged/')
|
|
||||||
|
|
||||||
// Set the input JAR files to be combined
|
|
||||||
from sourceSets.main.allJava
|
|
||||||
from {
|
|
||||||
configurations.shadow.collect { it.isDirectory() ? it : zipTree(it) }
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the jars to merge
|
|
||||||
from shadowJar.archivePath
|
|
||||||
from secondJarFile
|
|
||||||
|
|
||||||
// alternative method to Include the source files in the combined JAR
|
|
||||||
// and/or see which files are being included
|
|
||||||
eachFile { file ->
|
|
||||||
// can be set to true for debugging
|
|
||||||
def useAlternateEmbedMethod = false
|
|
||||||
def showFileEmbedding = false
|
|
||||||
|
|
||||||
if (showFileEmbedding || useAlternateEmbedMethod) {
|
|
||||||
System.out.println("attempting to add file: " + file)
|
|
||||||
|
|
||||||
def relativePath = file.relativePath.pathString
|
|
||||||
if (relativePath.endsWith('.class')) {
|
|
||||||
System.out.println("class file: " + relativePath)
|
|
||||||
def sourceFile = file.file.parentFile.resolveSibling('src/main/java/' + relativePath.replace('.class', '.java'))
|
|
||||||
if (sourceFile.exists()) {
|
|
||||||
System.out.println("adding source file: " + sourceFile)
|
|
||||||
if (useAlternateEmbedMethod) {
|
|
||||||
file.withInputStream { inputStream ->
|
|
||||||
copy {
|
|
||||||
from(inputStream)
|
|
||||||
into(relativePath.replace('.class', '.java'))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
System.out.println('missing source file: ' + sourceFile)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
javadoc {
|
|
||||||
options {
|
|
||||||
// Don't log warnings.
|
|
||||||
// There are a lot of warnings related to missing @param and @return javadocs
|
|
||||||
// that aren't necessary and would clutter up said javadocs.
|
|
||||||
// For more info see: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html
|
|
||||||
addStringOption('Xdoclint:all,-missing', '-quiet')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,213 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.events.IDhApiEventInjector;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.factories.IDhApiWrapperFactory;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGeneratorOverrideRegister;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiCustomRenderObjectFactory;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderProxy;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterDhInitEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.override.DhApiWorldGeneratorOverrideRegister;
|
|
||||||
import com.seibel.distanthorizons.coreapi.ModInfo;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfig;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiWorldProxy;
|
|
||||||
import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector;
|
|
||||||
import com.seibel.distanthorizons.coreapi.DependencyInjection.OverrideInjector;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.data.IDhApiTerrainDataRepo;
|
|
||||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IOverrideInjector;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the masthead of the API, almost everything you could want to do
|
|
||||||
* can be achieved from here. <br>
|
|
||||||
* For example: you can access singletons which handle the config or event binding. <br><br>
|
|
||||||
*
|
|
||||||
* <strong>Q:</strong> Why should I use this class instead of just getting the API singleton I need? <br>
|
|
||||||
* <strong>A:</strong> This way there is a lower chance of your code breaking if we change something on our end.
|
|
||||||
* For example, if we realized there is a much better way of handling dependency injection we would keep the
|
|
||||||
* interface the same so your code doesn't have to change. Whereas if you were directly referencing
|
|
||||||
* the concrete object we replaced, there would be issues.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-12-16
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public class DhApi
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* If you can see this Java Doc, this can be ignored. <br>
|
|
||||||
* This is just to let you know that Javadocs are available and that you should use the API jar
|
|
||||||
* instead of the full mod jar. <br><br>
|
|
||||||
*
|
|
||||||
* Note: Don't use this string in your code. It may change and is only for reference.
|
|
||||||
*/
|
|
||||||
public static final String READ_ME =
|
|
||||||
"If you don't see Javadocs something is wrong. \n" +
|
|
||||||
"If you are only using the full DH Mod in your build script, you won't have access to our javadocs and could potentially call into unsafe code. \n" +
|
|
||||||
"\n" +
|
|
||||||
"Please use the API jar in your build script as a compile time dependency " +
|
|
||||||
"and the full DH jar as a runtime dependency. \n" +
|
|
||||||
"\n" +
|
|
||||||
"Please refer to the example API project or the DH Developer Wiki for additional information " +
|
|
||||||
"and suggested setup. \n" + // DH Dev note: no links were included to prevent link rot.
|
|
||||||
"";
|
|
||||||
public static String readMe() { return READ_ME; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is just a humorous way to reference the {@link DhApi#READ_ME} constant string and hopefully peak a few people's attention
|
|
||||||
* vs the relatively boring "readMe".
|
|
||||||
*/
|
|
||||||
public static final String HEY_YOU_YOURE_FINALLY_AWAKE = READ_ME;
|
|
||||||
/**
|
|
||||||
* This is just a humorous way to reference the {@link DhApi#READ_ME} constant string and hopefully peak a few people's attention
|
|
||||||
* vs the relatively boring "readMe".
|
|
||||||
*/
|
|
||||||
public static String heyYou_YoureFinallyAwake() { return READ_ME; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <strong>WARNING:</strong>
|
|
||||||
* All objects in this class will be null until after DH initializes for the first time. <br><br>
|
|
||||||
*
|
|
||||||
* Bind a custom {@link DhApiAfterDhInitEvent DhApiAfterDhInitEvent}
|
|
||||||
* to {@link DhApi#events ApiCoreInjectors.events} in order to be notified when this class can
|
|
||||||
* be safely used.
|
|
||||||
*
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static class Delayed
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Used to interact with Distant Horizons' Configs.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static IDhApiConfig configs = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to interact with Distant Horizons' terrain data.
|
|
||||||
* Designed to be used in conjunction with {@link DhApi.Delayed#worldProxy}.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static IDhApiTerrainDataRepo terrainRepo = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to interact with Distant Horizons' currently loaded world.
|
|
||||||
* Designed to be used in conjunction with {@link DhApi.Delayed#terrainRepo}.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static IDhApiWorldProxy worldProxy = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to interact with Distant Horizons' rendering system.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static IDhApiRenderProxy renderProxy = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to create wrappers for Minecraft objects needed by other Distant Horizons API methods.
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public static IDhApiWrapperFactory wrapperFactory = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to create custom renderable objects. <br>
|
|
||||||
* These objects can be added to the renderer in {@link IDhApiLevelWrapper}
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public static IDhApiCustomRenderObjectFactory customRenderObjectFactory = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// always available //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
// interfaces //
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to bind/unbind Distant Horizons Api events.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static final IDhApiEventInjector events = ApiEventInjector.INSTANCE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to bind/unbind Distant Horizons Api events.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static final IDhApiWorldGeneratorOverrideRegister worldGenOverrides = DhApiWorldGeneratorOverrideRegister.INSTANCE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to bind overrides to change Distant Horizons' core behavior.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static final IOverrideInjector<IDhApiOverrideable> overrides = OverrideInjector.INSTANCE;
|
|
||||||
|
|
||||||
|
|
||||||
// getters //
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This version should only be updated when breaking changes are introduced to the Distant Horizons API.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static int getApiMajorVersion() { return ModInfo.API_MAJOR_VERSION; }
|
|
||||||
/**
|
|
||||||
* This version should be updated whenever new methods are added to the Distant Horizons API.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static int getApiMinorVersion() { return ModInfo.API_MINOR_VERSION; }
|
|
||||||
/**
|
|
||||||
* This version should be updated whenever non-breaking fixes are added to the Distant Horizons API.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static int getApiPatchVersion() { return ModInfo.API_PATH_VERSION; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the mod's semantic version number in the format: Major.Minor.Patch
|
|
||||||
* with optional extensions "-a" for alpha, "-b" for beta, and -dev for unstable development builds. <br>
|
|
||||||
* Examples: "1.6.9-a", "1.7.0-a-dev", "2.1.0-b", "3.0.0", "3.1.4-dev"
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static String getModVersion() { return ModInfo.VERSION; }
|
|
||||||
/**
|
|
||||||
* Returns true if the mod is a development version, false if it is a release version.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static boolean getIsDevVersion() { return ModInfo.IS_DEV_BUILD; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the network protocol version.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public static int getNetworkProtocolVersion() { return ModInfo.PROTOCOL_VERSION; }
|
|
||||||
|
|
||||||
|
|
||||||
// methods //
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the thread this method was called from is owned by Distant Horizons.
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public static boolean isDhThread() { return Thread.currentThread().getName().startsWith(ModInfo.THREAD_NAME_PREFIX); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-36
@@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add this annotation to enum values that
|
|
||||||
* are valid config options, but shouldn't be selectable
|
|
||||||
* when toggling through the options. <br><br>
|
|
||||||
*
|
|
||||||
* Example: A preset's "custom" option shouldn't be selectable
|
|
||||||
*/
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
public @interface DisallowSelectingViaConfigGui
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
-101
@@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UNCOMPRESSED <br>
|
|
||||||
* LZ4 <br>
|
|
||||||
* XZ <br><br>
|
|
||||||
*
|
|
||||||
* Note: speed and compression ratios are examples
|
|
||||||
* and should only be used for estimated comparisons.
|
|
||||||
*
|
|
||||||
* @version 2024-3-16
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiDataCompressionMode
|
|
||||||
{
|
|
||||||
// Reminder:
|
|
||||||
// when adding items up the API minor version
|
|
||||||
// when removing items up the API major version
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should only be used internally and for unit testing. <br><br>
|
|
||||||
*
|
|
||||||
* Read Speed: 1.64 MS / DTO <br>
|
|
||||||
* Write Speed: 12.44 MS / DTO <br>
|
|
||||||
* Compression ratio: 1.0 <br>
|
|
||||||
*/
|
|
||||||
@DisallowSelectingViaConfigGui
|
|
||||||
UNCOMPRESSED(0),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extremely fast (often faster than uncompressed), but generally poor compression. <br><br>
|
|
||||||
*
|
|
||||||
* Read Speed: 1.85 MS / DTO <br>
|
|
||||||
* Write Speed: 9.46 MS / DTO <br>
|
|
||||||
* Compression ratio: 0.3638 <br>
|
|
||||||
*/
|
|
||||||
LZ4(1),
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Decent speed and good compression. <br><br>
|
|
||||||
*
|
|
||||||
* Read Speed: 11.78 MS / DTO <br>
|
|
||||||
* Write Speed: 16.76 MS / DTO <br>
|
|
||||||
* Compression ratio: 0.2199 <br>
|
|
||||||
*/
|
|
||||||
//@Deprecated
|
|
||||||
//Z_STD(2),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extremely slow, but very good compression. <br><br>
|
|
||||||
*
|
|
||||||
* Read Speed: 12.25 MS / DTO <br>
|
|
||||||
* Write Speed: 490.07 MS / DTO <br>
|
|
||||||
* Compression ratio: 0.1242 <br>
|
|
||||||
*/
|
|
||||||
LZMA2(3);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** More stable than using the ordinal of the enum */
|
|
||||||
public final byte value;
|
|
||||||
|
|
||||||
EDhApiDataCompressionMode(int value) { this.value = (byte) value; }
|
|
||||||
|
|
||||||
|
|
||||||
/** @throws IllegalArgumentException if the value doesn't map to a value */
|
|
||||||
public static EDhApiDataCompressionMode getFromValue(byte value) throws IllegalArgumentException
|
|
||||||
{
|
|
||||||
EDhApiDataCompressionMode[] enumList = EDhApiDataCompressionMode.values();
|
|
||||||
for (int i = 0; i < enumList.length; i++)
|
|
||||||
{
|
|
||||||
if (enumList[i].value == value)
|
|
||||||
{
|
|
||||||
return enumList[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new IllegalArgumentException("No compression mode with the value ["+value+"]");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
-31
@@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @version 2024-4-6
|
|
||||||
*/
|
|
||||||
public enum EDhApiGLErrorHandlingMode
|
|
||||||
{
|
|
||||||
IGNORE,
|
|
||||||
LOG,
|
|
||||||
LOG_THROW;
|
|
||||||
}
|
|
||||||
-32
@@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @version 2024-4-6
|
|
||||||
*/
|
|
||||||
public enum EDhApiGlProfileMode
|
|
||||||
{
|
|
||||||
CORE,
|
|
||||||
COMPAT,
|
|
||||||
ANY;
|
|
||||||
|
|
||||||
}
|
|
||||||
-61
@@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* LOWEST <br>
|
|
||||||
* LOW <br>
|
|
||||||
* MEDIUM <br>
|
|
||||||
* HIGH <br>
|
|
||||||
* UNLIMITED <br>
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @version 2024-4-6
|
|
||||||
*/
|
|
||||||
public enum EDhApiHorizontalQuality
|
|
||||||
{
|
|
||||||
// Reminder:
|
|
||||||
// when adding items up the API minor version
|
|
||||||
// when removing items up the API major version
|
|
||||||
|
|
||||||
|
|
||||||
// FIXME any quadraticBase less than 2.0f has issues with DetailDistanceUtil, and will always return the lowest detail level.
|
|
||||||
// So for now we are limiting the lowest value to 2.0
|
|
||||||
// LOWEST was originally 1.0f and LOW was 1.5f
|
|
||||||
|
|
||||||
LOWEST(2.0f, 4),
|
|
||||||
LOW(2.0f, 8),
|
|
||||||
MEDIUM(2.0f, 12),
|
|
||||||
HIGH(2.2f, 16),
|
|
||||||
EXTREME(2.4f, 32),
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public final double quadraticBase;
|
|
||||||
public final int distanceUnitInBlocks;
|
|
||||||
|
|
||||||
EDhApiHorizontalQuality(double quadraticBase, int distanceUnitInBlocks)
|
|
||||||
{
|
|
||||||
this.quadraticBase = quadraticBase;
|
|
||||||
this.distanceUnitInBlocks = distanceUnitInBlocks;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* AUTO <br>
|
|
||||||
* ENABLED <br>
|
|
||||||
* DISABLED <br>
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @version 2024-4-6
|
|
||||||
*/
|
|
||||||
public enum EDhApiLodShading
|
|
||||||
{
|
|
||||||
// Reminder:
|
|
||||||
// when adding items up the API minor version
|
|
||||||
// when removing items up the API major version
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Uses Minecraft's shading for LODs. <Br>
|
|
||||||
* This means if Minecraft's shading is disabled DH's shading will be as well.
|
|
||||||
*/
|
|
||||||
AUTO,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Simulates Minecraft's shading. <Br>
|
|
||||||
* This is most useful for shaders that disable Minecraft's shading
|
|
||||||
* but still require shading on LODs.
|
|
||||||
*/
|
|
||||||
ENABLED,
|
|
||||||
|
|
||||||
/** LODs will have no shading */
|
|
||||||
DISABLED;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
import org.apache.logging.log4j.Level;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @version 2024-4-6
|
|
||||||
*/
|
|
||||||
public enum EDhApiLoggerMode
|
|
||||||
{
|
|
||||||
DISABLED(Level.OFF, Level.OFF),
|
|
||||||
LOG_ALL_TO_FILE(Level.ALL, Level.OFF),
|
|
||||||
LOG_ERROR_TO_CHAT(Level.ALL, Level.ERROR),
|
|
||||||
LOG_WARNING_TO_CHAT(Level.ALL, Level.WARN),
|
|
||||||
LOG_INFO_TO_CHAT(Level.ALL, Level.INFO),
|
|
||||||
LOG_DEBUG_TO_CHAT(Level.ALL, Level.DEBUG),
|
|
||||||
LOG_ALL_TO_CHAT(Level.ALL, Level.ALL),
|
|
||||||
LOG_ERROR_TO_CHAT_AND_FILE(Level.ERROR, Level.ERROR),
|
|
||||||
LOG_WARNING_TO_CHAT_AND_FILE(Level.WARN, Level.WARN),
|
|
||||||
LOG_INFO_TO_CHAT_AND_FILE(Level.INFO, Level.INFO),
|
|
||||||
LOG_DEBUG_TO_CHAT_AND_FILE(Level.DEBUG, Level.DEBUG),
|
|
||||||
LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE(Level.INFO, Level.WARN),
|
|
||||||
LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE(Level.INFO, Level.ERROR),
|
|
||||||
;
|
|
||||||
|
|
||||||
public final Level levelForFile;
|
|
||||||
public final Level levelForChat;
|
|
||||||
|
|
||||||
EDhApiLoggerMode(Level levelForFile, Level levelForChat)
|
|
||||||
{
|
|
||||||
this.levelForFile = levelForFile;
|
|
||||||
this.levelForChat = levelForChat;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.coreapi.ModInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* AUTO, <br>
|
|
||||||
* STABLE, <br>
|
|
||||||
* NIGHTLY, <br><br>
|
|
||||||
*
|
|
||||||
* @since API 2.1.0
|
|
||||||
* @version 2024-6-8
|
|
||||||
*/
|
|
||||||
public enum EDhApiUpdateBranch
|
|
||||||
{
|
|
||||||
AUTO,
|
|
||||||
STABLE,
|
|
||||||
NIGHTLY;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If the updateBranch value is {@link EDhApiUpdateBranch#AUTO}
|
|
||||||
* this method will convert it either to {@link EDhApiUpdateBranch#STABLE} or {@link EDhApiUpdateBranch#NIGHTLY}
|
|
||||||
* based on this jar's state. <Br><br>
|
|
||||||
*
|
|
||||||
* If updateBranch is {@link EDhApiUpdateBranch#STABLE} or {@link EDhApiUpdateBranch#NIGHTLY}
|
|
||||||
* it just returns.
|
|
||||||
*/
|
|
||||||
public static EDhApiUpdateBranch convertAutoToStableOrNightly(EDhApiUpdateBranch updateBranch)
|
|
||||||
{
|
|
||||||
if (updateBranch != EDhApiUpdateBranch.AUTO)
|
|
||||||
{
|
|
||||||
return updateBranch;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return ModInfo.IS_DEV_BUILD ? EDhApiUpdateBranch.NIGHTLY : EDhApiUpdateBranch.STABLE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-61
@@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.coreapi.util.MathUtil;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* HEIGHT_MAP <br>
|
|
||||||
* LOW <br>
|
|
||||||
* MEDIUM <br>
|
|
||||||
* HIGH <br>
|
|
||||||
* EXTREME <br>
|
|
||||||
*
|
|
||||||
* @author Leonardo Amato
|
|
||||||
* @version 2024-4-6
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiVerticalQuality
|
|
||||||
{
|
|
||||||
HEIGHT_MAP( new int[]{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}),
|
|
||||||
LOW( new int[]{4, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1}),
|
|
||||||
MEDIUM( new int[]{6, 4, 3, 3, 3, 3, 3, 2, 2, 2, 1}),
|
|
||||||
HIGH( new int[]{16, 8, 4, 3, 3, 3, 3, 3, 3, 3, 1}),
|
|
||||||
VERY_HIGH( new int[]{32, 16, 8, 4, 4, 3, 3, 3, 3, 3, 1}),
|
|
||||||
EXTREME( new int[]{64, 32, 8, 4, 4, 3, 3, 3, 3, 3, 1}),
|
|
||||||
PIXEL_ART( new int[]{512, 64, 16, 8, 4, 3, 3, 3, 3, 3, 1});
|
|
||||||
|
|
||||||
/** represents how many LODs can be rendered in a single vertical slice */
|
|
||||||
public final int[] maxVerticalData;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
EDhApiVerticalQuality(int[] maxVerticalData) { this.maxVerticalData = maxVerticalData; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int calculateMaxVerticalData(byte dataDetail)
|
|
||||||
{
|
|
||||||
// for detail levels lower than what the enum defines, use the lowest quality item
|
|
||||||
int index = MathUtil.clamp(0, dataDetail, this.maxVerticalData.length - 1);
|
|
||||||
return this.maxVerticalData[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-70
@@ -1,70 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.config;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* MERGE_SAME_BLOCKS <br>
|
|
||||||
* VISUALLY_EQUAL <br><br>
|
|
||||||
*
|
|
||||||
* @version 2024-3-27
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiWorldCompressionMode
|
|
||||||
{
|
|
||||||
// Reminder:
|
|
||||||
// when adding items up the API minor version
|
|
||||||
// when removing items up the API major version
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Every block/biome change is recorded in the database. <br>
|
|
||||||
* This is what DH 2.0 and 2.0.1 all used by default and will store a lot of data.
|
|
||||||
*/
|
|
||||||
MERGE_SAME_BLOCKS(0),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Only visible block/biome changes are recorded in the database. <Br>
|
|
||||||
* Hidden blocks (IE ores) are ignored.
|
|
||||||
*/
|
|
||||||
VISUALLY_EQUAL(1);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** More stable than using the ordinal of the enum */
|
|
||||||
public final byte value;
|
|
||||||
|
|
||||||
EDhApiWorldCompressionMode(int value) { this.value = (byte) value; }
|
|
||||||
|
|
||||||
|
|
||||||
public static EDhApiWorldCompressionMode getFromValue(byte value)
|
|
||||||
{
|
|
||||||
EDhApiWorldCompressionMode[] enumList = EDhApiWorldCompressionMode.values();
|
|
||||||
for (int i = 0; i < enumList.length; i++)
|
|
||||||
{
|
|
||||||
if (enumList[i].value == value)
|
|
||||||
{
|
|
||||||
return enumList[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new IllegalArgumentException("No lossy compression mode with the value ["+value+"]");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
-67
@@ -1,67 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.enums.rendering;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* contains the indices used by shaders to determine
|
|
||||||
* how different block types should be rendered. <br><br>
|
|
||||||
*
|
|
||||||
* UNKNOWN, <br>
|
|
||||||
* LEAVES, <br>
|
|
||||||
* STONE, <br>
|
|
||||||
* WOOD, <br>
|
|
||||||
* METAL, <br>
|
|
||||||
* DIRT, <br>
|
|
||||||
* LAVA, <br>
|
|
||||||
* DEEPSLATE, <br>
|
|
||||||
* SNOW, <br>
|
|
||||||
* SAND, <br>
|
|
||||||
* TERRACOTTA, <br>
|
|
||||||
* NETHER_STONE, <br>
|
|
||||||
* WATER, <br>
|
|
||||||
* GRASS, <br>
|
|
||||||
* AIR, <br>
|
|
||||||
* ILLUMINATED, <br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @since API 3.0.0
|
|
||||||
* @version 2024-7-11
|
|
||||||
*/
|
|
||||||
public enum EDhApiBlockMaterial
|
|
||||||
{
|
|
||||||
UNKNOWN(0),
|
|
||||||
LEAVES(1),
|
|
||||||
STONE(2),
|
|
||||||
WOOD(3),
|
|
||||||
METAL(4),
|
|
||||||
DIRT(5),
|
|
||||||
LAVA(6),
|
|
||||||
DEEPSLATE(7),
|
|
||||||
SNOW(8),
|
|
||||||
SAND(9),
|
|
||||||
TERRACOTTA(10),
|
|
||||||
NETHER_STONE(11),
|
|
||||||
WATER(12),
|
|
||||||
GRASS(13),
|
|
||||||
/** shouldn't normally be needed, but just in case */
|
|
||||||
AIR(14),
|
|
||||||
ILLUMINATED(15); // Max value
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public final byte index;
|
|
||||||
|
|
||||||
EDhApiBlockMaterial(int index) { this.index = (byte)index;}
|
|
||||||
|
|
||||||
public static EDhApiBlockMaterial getFromIndex(int index)
|
|
||||||
{
|
|
||||||
for(EDhApiBlockMaterial material : EDhApiBlockMaterial.values())
|
|
||||||
{
|
|
||||||
if (material.index == index)
|
|
||||||
{
|
|
||||||
return material;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return EDhApiBlockMaterial.UNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-89
@@ -1,89 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.rendering;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* OFF, <br>
|
|
||||||
* SHOW_DETAIL, <br>
|
|
||||||
* SHOW_GENMODE, <br>
|
|
||||||
* SHOW_OVERLAPPING_QUADS, <br>
|
|
||||||
* SHOW_RENDER_SOURCE_FLAG, <br>
|
|
||||||
*
|
|
||||||
* @author Leetom
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-4-6
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiDebugRendering
|
|
||||||
{
|
|
||||||
// Reminder:
|
|
||||||
// when adding items up the API minor version
|
|
||||||
// when removing items up the API major version
|
|
||||||
|
|
||||||
|
|
||||||
/** LODs are rendered normally */
|
|
||||||
OFF,
|
|
||||||
|
|
||||||
/** LOD colors are based on their detail */
|
|
||||||
SHOW_DETAIL,
|
|
||||||
|
|
||||||
/** Block Materials are often used by Iris shaders to determine how LODs should be rendered */
|
|
||||||
SHOW_BLOCK_MATERIAL,
|
|
||||||
|
|
||||||
/** Only draw overlapping LOD quads. */
|
|
||||||
SHOW_OVERLAPPING_QUADS,
|
|
||||||
|
|
||||||
/** LOD colors are based on renderSource flags. */
|
|
||||||
SHOW_RENDER_SOURCE_FLAG;
|
|
||||||
|
|
||||||
|
|
||||||
public static EDhApiDebugRendering next(EDhApiDebugRendering type)
|
|
||||||
{
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case OFF:
|
|
||||||
return SHOW_DETAIL;
|
|
||||||
case SHOW_DETAIL:
|
|
||||||
return SHOW_BLOCK_MATERIAL;
|
|
||||||
case SHOW_BLOCK_MATERIAL:
|
|
||||||
return SHOW_OVERLAPPING_QUADS;
|
|
||||||
case SHOW_OVERLAPPING_QUADS:
|
|
||||||
return SHOW_RENDER_SOURCE_FLAG;
|
|
||||||
default:
|
|
||||||
return OFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static EDhApiDebugRendering previous(EDhApiDebugRendering type)
|
|
||||||
{
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case OFF:
|
|
||||||
return SHOW_RENDER_SOURCE_FLAG;
|
|
||||||
case SHOW_RENDER_SOURCE_FLAG:
|
|
||||||
return SHOW_OVERLAPPING_QUADS;
|
|
||||||
case SHOW_OVERLAPPING_QUADS:
|
|
||||||
return SHOW_DETAIL;
|
|
||||||
default:
|
|
||||||
return OFF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.enums.rendering;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* OPAQUE_AND_TRANSPARENT, <br>
|
|
||||||
* OPAQUE, <br>
|
|
||||||
* TRANSPARENT, <br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-30
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiRenderPass
|
|
||||||
{
|
|
||||||
OPAQUE_AND_TRANSPARENT,
|
|
||||||
OPAQUE,
|
|
||||||
TRANSPARENT,
|
|
||||||
}
|
|
||||||
-70
@@ -1,70 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.rendering;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default <br>
|
|
||||||
* Debug <br>
|
|
||||||
* Disabled <br>
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @version 2024-4-6
|
|
||||||
*/
|
|
||||||
public enum EDhApiRendererMode
|
|
||||||
{
|
|
||||||
// Reminder:
|
|
||||||
// when adding items up the API minor version
|
|
||||||
// when removing items up the API major version
|
|
||||||
|
|
||||||
|
|
||||||
DEFAULT,
|
|
||||||
DEBUG,
|
|
||||||
DISABLED;
|
|
||||||
|
|
||||||
|
|
||||||
/** Used by the config GUI to cycle through the available rendering options */
|
|
||||||
public static EDhApiRendererMode next(EDhApiRendererMode type)
|
|
||||||
{
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case DEFAULT:
|
|
||||||
return DEBUG;
|
|
||||||
case DEBUG:
|
|
||||||
return DISABLED;
|
|
||||||
default:
|
|
||||||
return DEFAULT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Used by the config GUI to cycle through the available rendering options */
|
|
||||||
public static EDhApiRendererMode previous(EDhApiRendererMode type)
|
|
||||||
{
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case DEFAULT:
|
|
||||||
return DISABLED;
|
|
||||||
case DEBUG:
|
|
||||||
return DEFAULT;
|
|
||||||
default:
|
|
||||||
return DEBUG;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-86
@@ -1,86 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PRE_EXISTING_ONLY <br>
|
|
||||||
* SURFACE <br>
|
|
||||||
* FEATURES <br><br>
|
|
||||||
*
|
|
||||||
* In order of fastest to slowest.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @author Leonardo Amato
|
|
||||||
* @version 2022-12-10
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiDistantGeneratorMode
|
|
||||||
{
|
|
||||||
// Reminder:
|
|
||||||
// when adding items up the API minor version
|
|
||||||
// when removing items up the API major version
|
|
||||||
|
|
||||||
|
|
||||||
/** Don't generate any new terrain, just generate LODs for already generated chunks. */
|
|
||||||
PRE_EXISTING_ONLY((byte) 1),
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Not currently implemented <br><br>
|
|
||||||
*
|
|
||||||
* Only generate the biomes and use biome
|
|
||||||
* grass/foliage color, water color, or ice color
|
|
||||||
* to generate the color. <br>
|
|
||||||
* Doesn't generate height, everything is shown at sea level.
|
|
||||||
*/
|
|
||||||
//BIOME_ONLY((byte) 2),
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Not currently implemented <br><br>
|
|
||||||
*
|
|
||||||
* Same as BIOME_ONLY, except instead
|
|
||||||
* of always using sea level as the LOD height
|
|
||||||
* different biome types (mountain, ocean, forest, etc.)
|
|
||||||
* use predetermined heights to simulate having height data.
|
|
||||||
*/
|
|
||||||
//BIOME_ONLY_SIMULATE_HEIGHT((byte) 3),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate the world surface,
|
|
||||||
* this does NOT include caves, trees,
|
|
||||||
* or structures.
|
|
||||||
*/
|
|
||||||
SURFACE((byte) 4),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate including structures.
|
|
||||||
* NOTE: This may cause world generation bugs or instability,
|
|
||||||
* since some features can cause concurrentModification exceptions.
|
|
||||||
*/
|
|
||||||
FEATURES((byte) 5);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** The higher the number the more complete the generation is. */
|
|
||||||
public final byte complexity;
|
|
||||||
|
|
||||||
|
|
||||||
EDhApiDistantGeneratorMode(byte complexity) { this.complexity = complexity; }
|
|
||||||
|
|
||||||
}
|
|
||||||
-36
@@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SERVER_LEVEL, <br>
|
|
||||||
* CLIENT_LEVEL, <br>
|
|
||||||
* UNKNOWN <br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-7-13
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiLevelType
|
|
||||||
{
|
|
||||||
SERVER_LEVEL,
|
|
||||||
CLIENT_LEVEL,
|
|
||||||
UNKNOWN
|
|
||||||
}
|
|
||||||
-97
@@ -1,97 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* EMPTY, <br>
|
|
||||||
* STRUCTURE_START, <br>
|
|
||||||
* STRUCTURE_REFERENCE, <br>
|
|
||||||
* BIOMES, <br>
|
|
||||||
* NOISE, <br>
|
|
||||||
* SURFACE, <br>
|
|
||||||
* CARVERS, <br>
|
|
||||||
* LIQUID_CARVERS, <br>
|
|
||||||
* FEATURES, <br>
|
|
||||||
* LIGHT, <br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-4-20
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiWorldGenerationStep
|
|
||||||
{
|
|
||||||
EMPTY(0, "empty"),
|
|
||||||
STRUCTURE_START(1, "structure_start"),
|
|
||||||
STRUCTURE_REFERENCE(2, "structure_reference"),
|
|
||||||
BIOMES(3, "biomes"),
|
|
||||||
NOISE(4, "noise"),
|
|
||||||
SURFACE(5, "surface"),
|
|
||||||
CARVERS(6, "carvers"),
|
|
||||||
LIQUID_CARVERS(7, "liquid_carvers"),
|
|
||||||
FEATURES(8, "features"),
|
|
||||||
LIGHT(9, "light");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** used when serializing this enum. */
|
|
||||||
public final String name;
|
|
||||||
public final byte value;
|
|
||||||
|
|
||||||
|
|
||||||
EDhApiWorldGenerationStep(int value, String name)
|
|
||||||
{
|
|
||||||
this.value = (byte) value;
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//=========//
|
|
||||||
// parsing //
|
|
||||||
//=========//
|
|
||||||
|
|
||||||
/** @return null if the value doesn't correspond to a {@link EDhApiWorldGenerationStep}. */
|
|
||||||
public static EDhApiWorldGenerationStep fromValue(int value)
|
|
||||||
{
|
|
||||||
for (EDhApiWorldGenerationStep genStep : EDhApiWorldGenerationStep.values())
|
|
||||||
{
|
|
||||||
if (genStep.value == value)
|
|
||||||
{
|
|
||||||
return genStep;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return null if the value doesn't correspond to a {@link EDhApiWorldGenerationStep}. */
|
|
||||||
public static EDhApiWorldGenerationStep fromName(String name)
|
|
||||||
{
|
|
||||||
for (EDhApiWorldGenerationStep genStep : EDhApiWorldGenerationStep.values())
|
|
||||||
{
|
|
||||||
if (genStep.name.equals(name))
|
|
||||||
{
|
|
||||||
return genStep;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-56
@@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGenerator;
|
|
||||||
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* VANILLA_CHUNKS, <br>
|
|
||||||
* API_CHUNKS <br>
|
|
||||||
*
|
|
||||||
* @author Builderb0y, James Seibel
|
|
||||||
* @version 2023-12-21
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public enum EDhApiWorldGeneratorReturnType
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* when this constant is returned by {@link IDhApiWorldGenerator#getReturnType()},
|
|
||||||
* {@link IDhApiWorldGenerator#generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer)}
|
|
||||||
* will be used when generating terrain.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
VANILLA_CHUNKS,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* when this constant is returned by {@link IDhApiWorldGenerator#getReturnType()},
|
|
||||||
* {@link IDhApiWorldGenerator#generateApiChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer)}
|
|
||||||
* will be used when generating terrain.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
API_CHUNKS;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Implemented by wrappers so developers can
|
|
||||||
* access the underlying Minecraft object(s).
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-17
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiUnsafeWrapper
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the Minecraft object this wrapper contains. <br>
|
|
||||||
* <strong>Warning</strong>: This object will be Minecraft
|
|
||||||
* version dependent and may change without notice. <br> <br>
|
|
||||||
*
|
|
||||||
* In order to cast this object to something usable, you may want
|
|
||||||
* to use <code>obj.getClass()</code> when in your IDE
|
|
||||||
* in order to determine what object this method returns for
|
|
||||||
* the specific version of Minecraft you are developing for.
|
|
||||||
*/
|
|
||||||
Object getWrappedMcObject();
|
|
||||||
|
|
||||||
}
|
|
||||||
-50
@@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.block;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A Minecraft version independent way of handling Blocks.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-11
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiBlockStateWrapper extends IDhApiUnsafeWrapper
|
|
||||||
{
|
|
||||||
/** @since API 1.0.0 */
|
|
||||||
boolean isAir();
|
|
||||||
|
|
||||||
/** @since API 1.0.0 */
|
|
||||||
boolean isSolid();
|
|
||||||
/** @since API 1.0.0 */
|
|
||||||
boolean isLiquid();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the full serialized form of the given block
|
|
||||||
* as defined by DH's serialization methods.
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
String getSerialString();
|
|
||||||
/** @since API 3.0.0 */
|
|
||||||
byte getMaterialId();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.both.IDhApiWorldGenerationConfig;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.client.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This interfaces holds all config groups
|
|
||||||
* the API has access to for easy access.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiConfig
|
|
||||||
{
|
|
||||||
IDhApiGraphicsConfig graphics();
|
|
||||||
IDhApiWorldGenerationConfig worldGenerator();
|
|
||||||
IDhApiMultiplayerConfig multiplayer();
|
|
||||||
IDhApiMultiThreadingConfig multiThreading();
|
|
||||||
IDhApiGpuBuffersConfig gpuBuffers();
|
|
||||||
// note: DON'T add the Auto Updater to this API. We only want the user's to have the ability to control when things are downloaded to their machines.
|
|
||||||
//IDhApiLoggingConfig logging(); // TODO implement
|
|
||||||
IDhApiDebuggingConfig debugging();
|
|
||||||
|
|
||||||
}
|
|
||||||
-89
@@ -1,89 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config;
|
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An interface for Distant Horizon's Config.
|
|
||||||
*
|
|
||||||
* @param <T> The data type of this config.
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-12-7
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiConfigValue<T>
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the active value for this config. <br>
|
|
||||||
* Returns the True value if either the config cannot be overridden by
|
|
||||||
* the API or if it hasn't been set by the API.
|
|
||||||
*/
|
|
||||||
T getValue();
|
|
||||||
/**
|
|
||||||
* Returns the value held by this config. <br>
|
|
||||||
* This is the value stored in the config file.
|
|
||||||
*/
|
|
||||||
T getTrueValue();
|
|
||||||
/**
|
|
||||||
* Returns the value of the config if it was set by the API.
|
|
||||||
* Returns null if the config hasn't been set by the API.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
T getApiValue();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the config's value. <br>
|
|
||||||
* If the newValue is set to null then the config
|
|
||||||
* will revert to using the True Value
|
|
||||||
* (IE the value visible in the config menu).<br>
|
|
||||||
* If the config cannot be set via the API this method will return false. <br><br>
|
|
||||||
*
|
|
||||||
* @return true if the value was set, false otherwise.
|
|
||||||
*/
|
|
||||||
boolean setValue(T newValue);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Un-sets the config's API value. <br>
|
|
||||||
* After this method is called this config will
|
|
||||||
* use the value set in the config menu.
|
|
||||||
*
|
|
||||||
* @return true if the value was set, false otherwise.
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
boolean clearValue();
|
|
||||||
|
|
||||||
/** @return true if this config can be set via the API, false otherwise. */
|
|
||||||
boolean getCanBeOverrodeByApi();
|
|
||||||
|
|
||||||
/** Returns the default value for this config. */
|
|
||||||
T getDefaultValue();
|
|
||||||
/** Returns the max value for this config, null if there is no max. */
|
|
||||||
T getMaxValue();
|
|
||||||
/** Returns the min value for this config, null if there is no min. */
|
|
||||||
T getMinValue();
|
|
||||||
|
|
||||||
/** Adds a {@link Consumer} that will be called whenever the config changes to a new value. */
|
|
||||||
void addChangeListener(Consumer<T> onValueChangeFunc);
|
|
||||||
//void removeListener(Consumer<T> onValueChangeFunc); // not currently implemented
|
|
||||||
|
|
||||||
}
|
|
||||||
-47
@@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.both;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' world generation configuration. <br><br>
|
|
||||||
*
|
|
||||||
* Note: Chunks generated via DH's world generator are NOT saved in Minecraft's vanilla save system.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-9-15
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiWorldGenerationConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines whether LOD chunks will be generated
|
|
||||||
* outside Minecraft's vanilla render distance.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Boolean> enableDistantWorldGeneration();
|
|
||||||
|
|
||||||
/** Defines to what level LOD chunks will be generated. */
|
|
||||||
IDhApiConfigValue<EDhApiDistantGeneratorMode> distantGeneratorMode();
|
|
||||||
|
|
||||||
}
|
|
||||||
-65
@@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' fog configuration. <br><br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-9-6
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiAmbientOcclusionConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
/** Determines if Ambient Occlusion is rendered */
|
|
||||||
IDhApiConfigValue<Boolean> enabled();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determines how many points in space are sampled for the occlusion test.
|
|
||||||
* Higher numbers will improve quality and reduce banding, but will increase GPU load.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Integer> sampleCount();
|
|
||||||
|
|
||||||
/** Determines the radius Screen Space Ambient Occlusion is applied, measured in blocks. */
|
|
||||||
IDhApiConfigValue<Double> radius();
|
|
||||||
|
|
||||||
/** Determines how dark the Screen Space Ambient Occlusion effect will be. */
|
|
||||||
IDhApiConfigValue<Double> strength();
|
|
||||||
|
|
||||||
/** Increasing the value can reduce banding at the cost of reducing the strength of the effect. */
|
|
||||||
IDhApiConfigValue<Double> bias();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determines how dark the occlusion shadows can be. <br>
|
|
||||||
* 0 = totally black at the corners <br>
|
|
||||||
* 1 = no shadow
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> minLight();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The radius, measured in pixels, that blurring is calculated. <br>
|
|
||||||
* Higher numbers will reduce banding at the cost of GPU performance.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Integer> blurRadius();
|
|
||||||
|
|
||||||
}
|
|
||||||
-71
@@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogFalloff;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' fog configuration. <br><br>
|
|
||||||
*
|
|
||||||
* Note: unless an option explicitly states that it modifies
|
|
||||||
* Minecraft's vanilla rendering (like DisableVanillaFog)
|
|
||||||
* these settings will only affect Distant horizons' fog.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiFarFogConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Defines where the fog starts as a percent of the
|
|
||||||
* fake chunks render distance radius. <br>
|
|
||||||
* Can be greater than the fog end distance to invert the fog direction. <br> <br>
|
|
||||||
*
|
|
||||||
* 0.0 = fog starts at the camera <br>
|
|
||||||
* 1.0 = fog starts at the edge of the fake chunk render distance <br>
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> farFogStartDistance();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines where the fog ends as a percent of the radius
|
|
||||||
* of the fake chunks render distance. <br>
|
|
||||||
* Can be less than the fog start distance to invert the fog direction. <br> <br>
|
|
||||||
*
|
|
||||||
* 0.0 = fog ends at the camera <br>
|
|
||||||
* 1.0 = fog ends at the edge of the fake chunk render distance <br>
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> farFogEndDistance();
|
|
||||||
|
|
||||||
/** Defines how opaque the fog is at its thinnest point. */
|
|
||||||
IDhApiConfigValue<Double> farFogMinThickness();
|
|
||||||
|
|
||||||
/** Defines how opaque the fog is at its thickest point. */
|
|
||||||
IDhApiConfigValue<Double> farFogMaxThickness();
|
|
||||||
|
|
||||||
/** Defines how the fog changes in thickness. */
|
|
||||||
IDhApiConfigValue<EDhApiFogFalloff> farFogFalloff();
|
|
||||||
|
|
||||||
/** Defines the fog density. */
|
|
||||||
IDhApiConfigValue<Double> farFogDensity();
|
|
||||||
|
|
||||||
}
|
|
||||||
-71
@@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogColorMode;
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogDrawMode;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' fog configuration. <br><br>
|
|
||||||
*
|
|
||||||
* Note: unless an option explicitly states that it modifies
|
|
||||||
* Minecraft's vanilla rendering (like DisableVanillaFog)
|
|
||||||
* these settings will only affect Distant horizons' fog.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiFogConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
|
|
||||||
//===============//
|
|
||||||
// inner configs //
|
|
||||||
//===============//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The advanced fog config.
|
|
||||||
*/
|
|
||||||
IDhApiFarFogConfig farFog();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The height fog config.
|
|
||||||
*/
|
|
||||||
IDhApiHeightFogConfig heightFog();
|
|
||||||
|
|
||||||
//====================//
|
|
||||||
// basic fog settings //
|
|
||||||
//====================//
|
|
||||||
|
|
||||||
/** Should be used to enable/disable fog rendering. */
|
|
||||||
IDhApiConfigValue<EDhApiFogDrawMode> drawMode();
|
|
||||||
|
|
||||||
/** Can be used to enable support with mods that change vanilla MC's fog color. */
|
|
||||||
IDhApiConfigValue<EDhApiFogColorMode> color();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If enabled attempts to disable vanilla MC's fog on real chunks. <br>
|
|
||||||
* May not play nice with other fog editing mods.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Boolean> disableVanillaFog();
|
|
||||||
|
|
||||||
}
|
|
||||||
-46
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' generic rendering configuration. <br><br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-11
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiGenericRenderingConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* If enabled DH will render generic objects into its terrain pass. <br>
|
|
||||||
* This includes: clouds, beacons, and API added objects.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Boolean> renderingEnabled();
|
|
||||||
|
|
||||||
/** If enabled DH will render beacon beams. */
|
|
||||||
IDhApiConfigValue<Boolean> beaconRenderingEnabled();
|
|
||||||
|
|
||||||
/** If enabled DH will render clouds. */
|
|
||||||
IDhApiConfigValue<Boolean> cloudRenderingEnabled();
|
|
||||||
|
|
||||||
}
|
|
||||||
-39
@@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.config.EDhApiGpuUploadMethod;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' OpenGL buffer configuration.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiGpuBuffersConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
|
|
||||||
/** Defines how geometry data is uploaded to the GPU. */
|
|
||||||
IDhApiConfigValue<EDhApiGpuUploadMethod> gpuUploadMethod();
|
|
||||||
|
|
||||||
}
|
|
||||||
-192
@@ -1,192 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.config.*;
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiRendererMode;
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiTransparency;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' graphics/rendering configuration.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiGraphicsConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
//===============//
|
|
||||||
// inner configs //
|
|
||||||
//===============//
|
|
||||||
|
|
||||||
IDhApiFogConfig fog();
|
|
||||||
IDhApiAmbientOcclusionConfig ambientOcclusion();
|
|
||||||
IDhApiNoiseTextureConfig noiseTexture();
|
|
||||||
IDhApiGenericRenderingConfig genericRendering();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//========================//
|
|
||||||
// basic graphic settings //
|
|
||||||
//========================//
|
|
||||||
|
|
||||||
/** The distance is the radius measured in chunks. */
|
|
||||||
IDhApiConfigValue<Integer> chunkRenderDistance();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Simplified version of {@link IDhApiGraphicsConfig#renderingMode()}
|
|
||||||
* that only enables/disables the fake chunk rendering. <br><br>
|
|
||||||
*
|
|
||||||
* Changing this config also changes {@link IDhApiGraphicsConfig#renderingMode()}'s value.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Boolean> renderingEnabled();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Can be used to enable/disable fake chunk rendering or enable the debug renderer. <br><br>
|
|
||||||
*
|
|
||||||
* The debug renderer is used to confirm rendering is working at and will draw
|
|
||||||
* a single multicolor rhombus on the screen in skybox space (AKA behind MC's rendering). <br><br>
|
|
||||||
*
|
|
||||||
* Changing this config also changes {@link IDhApiGraphicsConfig#renderingEnabled()}'s value.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<EDhApiRendererMode> renderingMode();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// graphic settings //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
/** Defines how detailed fake chunks are in the horizontal direction */
|
|
||||||
IDhApiConfigValue<EDhApiMaxHorizontalResolution> maxHorizontalResolution();
|
|
||||||
|
|
||||||
/** Defines how detailed fake chunks are in the vertical direction */
|
|
||||||
IDhApiConfigValue<EDhApiVerticalQuality> verticalQuality();
|
|
||||||
|
|
||||||
/** Modifies the quadratic function fake chunks use for horizontal quality drop-off. */
|
|
||||||
IDhApiConfigValue<EDhApiHorizontalQuality> horizontalQuality();
|
|
||||||
|
|
||||||
IDhApiConfigValue<EDhApiTransparency> transparency();
|
|
||||||
|
|
||||||
/** Defines what blocks won't be rendered as LODs. */
|
|
||||||
IDhApiConfigValue<EDhApiBlocksToAvoid> blocksToAvoid();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines if the color of avoided blocks will color the block below them. <Br>
|
|
||||||
* (IE: if flowers are avoided, should they color the grass below them?)
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Boolean> tintWithAvoidedBlocks();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The same as vanilla Minecraft's biome blending. <br><br>
|
|
||||||
*
|
|
||||||
* 0 = blending of 1x1 aka off <br>
|
|
||||||
* 1 = blending of 3x3 <br>
|
|
||||||
* 2 = blending of 5x5 <br>
|
|
||||||
* ... <br>
|
|
||||||
*/
|
|
||||||
// IDhApiConfigValue<Integer> getBiomeBlending();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//===========================//
|
|
||||||
// advanced graphic settings //
|
|
||||||
//===========================//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the radius used by the near clip shader to reduce
|
|
||||||
* overdraw. <br>
|
|
||||||
* Measured in percentages of the render distance, IE: <br>
|
|
||||||
* 0.5 = 50% vanilla render distance <br>
|
|
||||||
* 0.1 = 10% vanilla render distance <br>
|
|
||||||
* <br>
|
|
||||||
* Setting this to 0 will reduce/prevent holes in the world due to clipping to close to the camera
|
|
||||||
* but may cause overdraw issues with transparent or non-full blocks.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> overdrawPreventionRadius();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Modifies how bright fake chunks are. <br>
|
|
||||||
* This is done when generating the vertex data and is applied before any shaders.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> brightnessMultiplier();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Modifies how saturated fake chunks are. <br>
|
|
||||||
* This is done when generating the vertex data and is applied before any shaders.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> saturationMultiplier();
|
|
||||||
|
|
||||||
/** Defines if Distant Horizons should attempt to cull fake chunk cave geometry. */
|
|
||||||
IDhApiConfigValue<Boolean> caveCullingEnabled();
|
|
||||||
|
|
||||||
/** Defines what height cave culling should be used below if enabled. */
|
|
||||||
IDhApiConfigValue<Integer> caveCullingHeight();
|
|
||||||
|
|
||||||
/** This ratio is relative to Earth's real world curvature. */
|
|
||||||
IDhApiConfigValue<Integer> earthCurvatureRatio();
|
|
||||||
|
|
||||||
/** If enabled vanilla chunk rendering is disabled and only fake chunks are rendered. */
|
|
||||||
IDhApiConfigValue<Boolean> lodOnlyMode();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Setting this to a non-zero number will modify vanilla Minecraft's LOD Bias,
|
|
||||||
* increasing how quickly its textures fade away.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> lodBias();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determines how LODs should be shaded.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<EDhApiLodShading> lodShading();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets whether LODs outside the view frustum culling will
|
|
||||||
* be culled. <br><br>
|
|
||||||
*
|
|
||||||
* Disabling this will prevent LODs not rendering on the corner
|
|
||||||
* of the users vision and may fix issues if LODs appear to
|
|
||||||
* start/stop rendering incorrectly based on the camera direction,
|
|
||||||
* but will also reduce FPS.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @see IDhApiGraphicsConfig#disableShadowFrustumCulling()
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Boolean> disableFrustumCulling();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Identical to the other frustum culling option, except that it is
|
|
||||||
* only used when a shader mod is present using the DH API
|
|
||||||
* and the shadow pass is being rendered. <br><br>
|
|
||||||
*
|
|
||||||
* Disable this if shadows render incorrectly.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
* @see IDhApiGraphicsConfig#disableFrustumCulling()
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Boolean> disableShadowFrustumCulling();
|
|
||||||
|
|
||||||
}
|
|
||||||
-72
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogFalloff;
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiHeightFogMixMode;
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiHeightFogMode;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' fog configuration. <br><br>
|
|
||||||
*
|
|
||||||
* Note: unless an option explicitly states that it modifies
|
|
||||||
* Minecraft's vanilla rendering (like DisableVanillaFog)
|
|
||||||
* these settings will only affect Distant horizons' fog.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiHeightFogConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
|
|
||||||
/** Defines how the height fog mixes. */
|
|
||||||
IDhApiConfigValue<EDhApiHeightFogMixMode> heightFogMixMode();
|
|
||||||
|
|
||||||
/** Defines how the height fog is drawn relative to the camera or world. */
|
|
||||||
IDhApiConfigValue<EDhApiHeightFogMode> heightFogMode();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines the height fog's base height if {@link IDhApiHeightFogConfig#heightFogMode()}
|
|
||||||
* is set to use a specific height.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Double> heightFogBaseHeight();
|
|
||||||
|
|
||||||
/** Defines the height fog's starting height as a percent of the world height. */
|
|
||||||
IDhApiConfigValue<Double> heightFogStartingHeightPercent();
|
|
||||||
|
|
||||||
/** Defines the height fog's ending height as a percent of the world height. */
|
|
||||||
IDhApiConfigValue<Double> heightFogEndingHeightPercent();
|
|
||||||
|
|
||||||
/** Defines how opaque the height fog is at its thinnest point. */
|
|
||||||
IDhApiConfigValue<Double> heightFogMinThickness();
|
|
||||||
|
|
||||||
/** Defines how opaque the height fog is at its thickest point. */
|
|
||||||
IDhApiConfigValue<Double> heightFogMaxThickness();
|
|
||||||
|
|
||||||
/** Defines how the height fog changes in thickness. */
|
|
||||||
IDhApiConfigValue<EDhApiFogFalloff> heightFogFalloff();
|
|
||||||
|
|
||||||
/** Defines the height fog's density. */
|
|
||||||
IDhApiConfigValue<Double> heightFogDensity();
|
|
||||||
|
|
||||||
}
|
|
||||||
-34
@@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' logging configuration. <br><br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiLoggingConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
// TODO implement
|
|
||||||
}
|
|
||||||
-58
@@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' threading configuration.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-10-29
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiMultiThreadingConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines how many world generator threads are used to generate
|
|
||||||
* terrain outside Minecraft's vanilla render distance. <br>
|
|
||||||
* <br>
|
|
||||||
* If the number of threads is less than 1 it will be treated as a percentage
|
|
||||||
* representing how often the single thread will actively generate terrain.
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Integer> worldGeneratorThreads();
|
|
||||||
|
|
||||||
/** Defines how many file handler threads are used. */
|
|
||||||
IDhApiConfigValue<Integer> fileHandlerThreads();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines how many threads are used
|
|
||||||
* to build LODs. <br><br>
|
|
||||||
*
|
|
||||||
* This includes: <br>
|
|
||||||
* - lighting <br>
|
|
||||||
* - Chunk -> LOD conversion <br>
|
|
||||||
* - Buffer generation <br>
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Integer> lodBuilderThreads();
|
|
||||||
|
|
||||||
}
|
|
||||||
-49
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Distant Horizons' noise texture configuration. <br><br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-6-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiNoiseTextureConfig extends IDhApiConfigGroup
|
|
||||||
{
|
|
||||||
/** If enabled a noise texture will be rendered on the LODs. */
|
|
||||||
IDhApiConfigValue<Boolean> noiseEnabled();
|
|
||||||
|
|
||||||
/** Defines how many steps of noise should be applied. */
|
|
||||||
IDhApiConfigValue<Integer> noiseSteps();
|
|
||||||
|
|
||||||
/** Defines how intense the noise will be. */
|
|
||||||
IDhApiConfigValue<Double> noiseIntensity();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines how far should the noise texture render before it fades away. (in blocks) <br>
|
|
||||||
* Set to 0 to disable noise from fading away
|
|
||||||
*/
|
|
||||||
IDhApiConfigValue<Integer> noiseDropoff();
|
|
||||||
|
|
||||||
}
|
|
||||||
-21
@@ -1,21 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.interfaces.data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Can be used to drastically speed up repeat read operations in {@link IDhApiTerrainDataRepo}.
|
|
||||||
*
|
|
||||||
* @see IDhApiTerrainDataRepo
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-14
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiTerrainDataCache
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Removes any data that's currently stored in this cache.
|
|
||||||
* This cane be done to free up memory or invalidate
|
|
||||||
* the cache so fresh data can be pulled in.
|
|
||||||
*/
|
|
||||||
void clear();
|
|
||||||
|
|
||||||
}
|
|
||||||
-169
@@ -1,169 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.data;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGenerator;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
|
||||||
import com.seibel.distanthorizons.api.objects.data.DhApiRaycastResult;
|
|
||||||
import com.seibel.distanthorizons.api.objects.data.DhApiTerrainDataPoint;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to interface with Distant Horizons' terrain data.
|
|
||||||
*
|
|
||||||
* @see IDhApiTerrainDataCache
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-22
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiTerrainDataRepo
|
|
||||||
{
|
|
||||||
|
|
||||||
//=========//
|
|
||||||
// getters //
|
|
||||||
//=========//
|
|
||||||
|
|
||||||
/** @see IDhApiTerrainDataRepo#getSingleDataPointAtBlockPos(IDhApiLevelWrapper, int, int, int, IDhApiTerrainDataCache) */
|
|
||||||
default DhApiResult<DhApiTerrainDataPoint> getSingleDataPointAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosY, int blockPosZ) { return this.getSingleDataPointAtBlockPos(levelWrapper, blockPosX, blockPosY, blockPosZ, null); }
|
|
||||||
/**
|
|
||||||
* Returns the terrain datapoint at the given block position, at/or containing the given Y position.
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
DhApiResult<DhApiTerrainDataPoint> getSingleDataPointAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosY, int blockPosZ, IDhApiTerrainDataCache dataCache);
|
|
||||||
|
|
||||||
/** @see IDhApiTerrainDataRepo#getColumnDataAtBlockPos(IDhApiLevelWrapper, int, int, IDhApiTerrainDataCache) */
|
|
||||||
default DhApiResult<DhApiTerrainDataPoint[]> getColumnDataAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosZ) { return this.getColumnDataAtBlockPos(levelWrapper, blockPosX, blockPosZ, null); }
|
|
||||||
/**
|
|
||||||
* Returns every datapoint in the column located at the given block X and Z position top to bottom.
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
DhApiResult<DhApiTerrainDataPoint[]> getColumnDataAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosZ, IDhApiTerrainDataCache dataCache);
|
|
||||||
|
|
||||||
/** @see IDhApiTerrainDataRepo#getAllTerrainDataAtChunkPos(IDhApiLevelWrapper, int, int, IDhApiTerrainDataCache) */
|
|
||||||
default DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtChunkPos(IDhApiLevelWrapper levelWrapper, int chunkPosX, int chunkPosZ) { return this.getAllTerrainDataAtChunkPos(levelWrapper, chunkPosX, chunkPosZ, null); }
|
|
||||||
/**
|
|
||||||
* Returns every datapoint in the given chunk's X and Z position. <br><br>
|
|
||||||
*
|
|
||||||
* The returned array is ordered: [relativeBlockX][relativeBlockZ][columnIndex] <br>
|
|
||||||
* RelativeBlockX/Z are relative to the block position closest to negative infinity in the chunk's position. <br>
|
|
||||||
* The column data is ordered from top to bottom. Note: each column may have a different number of values. <br>
|
|
||||||
*
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtChunkPos(IDhApiLevelWrapper levelWrapper, int chunkPosX, int chunkPosZ, IDhApiTerrainDataCache dataCache);
|
|
||||||
|
|
||||||
/** @see IDhApiTerrainDataRepo#getAllTerrainDataAtRegionPos(IDhApiLevelWrapper, int, int, IDhApiTerrainDataCache) */
|
|
||||||
default DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtRegionPos(IDhApiLevelWrapper levelWrapper, int regionPosX, int regionPosZ) { return this.getAllTerrainDataAtRegionPos(levelWrapper, regionPosX, regionPosZ, null); }
|
|
||||||
/**
|
|
||||||
* Returns every datapoint in the given region's X and Z position. <br><br>
|
|
||||||
*
|
|
||||||
* The returned array is ordered: [relativeBlockX][relativeBlockZ][columnIndex] <br>
|
|
||||||
* RelativeBlockX/Z are relative to the block position closest to negative infinity in the region's position. <br>
|
|
||||||
* The column data is ordered from top to bottom. Note: each column may have a different number of values. <br>
|
|
||||||
*
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtRegionPos(IDhApiLevelWrapper levelWrapper, int regionPosX, int regionPosZ, IDhApiTerrainDataCache dataCache);
|
|
||||||
|
|
||||||
/** @see IDhApiTerrainDataRepo#getAllTerrainDataAtDetailLevelAndPos(IDhApiLevelWrapper, byte, int, int, IDhApiTerrainDataCache) */
|
|
||||||
default DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtRegionPos(IDhApiLevelWrapper levelWrapper, byte detailLevel, int posX, int posZ) { return this.getAllTerrainDataAtDetailLevelAndPos(levelWrapper, detailLevel, posX, posZ, null); }
|
|
||||||
/**
|
|
||||||
* Returns every datapoint in the column located at the given detail level and X/Z position. <br>
|
|
||||||
* This can be used to return terrain data for non-standard sizes (IE 2x2 blocks or 2x2 chunks).
|
|
||||||
*
|
|
||||||
* @param detailLevel a positive byte defining the detail level of the returned data. <br>
|
|
||||||
* Every increase doubles the width of the returned area. <br>
|
|
||||||
* Example values: 0 = block, 1 = 2x2 blocks, 2 = 4x4 blocks, ... 4 = chunk (16x16 blocks), ... 9 = region (512x512 blocks) <br>
|
|
||||||
* See {@link EDhApiDetailLevel} for more information.
|
|
||||||
*
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtDetailLevelAndPos(IDhApiLevelWrapper levelWrapper, byte detailLevel, int posX, int posZ, IDhApiTerrainDataCache dataCache);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** @see IDhApiTerrainDataRepo#raycast(IDhApiLevelWrapper, double, double, double, float, float, float, int, IDhApiTerrainDataCache) */
|
|
||||||
default DhApiResult<DhApiRaycastResult> raycast(
|
|
||||||
IDhApiLevelWrapper levelWrapper,
|
|
||||||
double rayOriginX, double rayOriginY, double rayOriginZ,
|
|
||||||
float rayDirectionX, float rayDirectionY, float rayDirectionZ,
|
|
||||||
int maxRayBlockLength)
|
|
||||||
{
|
|
||||||
return this.raycast(
|
|
||||||
levelWrapper,
|
|
||||||
rayOriginX, rayOriginY, rayOriginZ,
|
|
||||||
rayDirectionX, rayDirectionY, rayDirectionZ,
|
|
||||||
maxRayBlockLength,
|
|
||||||
null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the datapoint and position of the LOD
|
|
||||||
* at the end of the given ray. <br><br>
|
|
||||||
*
|
|
||||||
* Will return "success" with a null datapoint if the ray reaches the max length without finding any data.
|
|
||||||
*
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
DhApiResult<DhApiRaycastResult> raycast(
|
|
||||||
IDhApiLevelWrapper levelWrapper,
|
|
||||||
double rayOriginX, double rayOriginY, double rayOriginZ,
|
|
||||||
float rayDirectionX, float rayDirectionY, float rayDirectionZ,
|
|
||||||
int maxRayBlockLength,
|
|
||||||
IDhApiTerrainDataCache dataCache);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=========//
|
|
||||||
// setters //
|
|
||||||
//=========//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the LOD data for the given chunk at the chunk's position. <br><br>
|
|
||||||
*
|
|
||||||
* Notes: <br>
|
|
||||||
* - Only works if the given {@link IDhApiLevelWrapper} points to a loaded level. <br>
|
|
||||||
* - If the player travels to this chunk, or the chunk is updated in some other way; your data will be replaced
|
|
||||||
* by whatever the current chunk is. <br>
|
|
||||||
* - This method may not update the LOD data immediately. Any other chunks that have
|
|
||||||
* been queued to update will be handled first.
|
|
||||||
*
|
|
||||||
* @param levelWrapper the level wrapper that the chunk should be saved to.
|
|
||||||
* @param chunkObjectArray see {@link IDhApiWorldGenerator#generateChunks} for what objects are expected.
|
|
||||||
* @throws ClassCastException if chunkObjectArray doesn't contain the right objects.
|
|
||||||
* The exception will contain the expected object(s).
|
|
||||||
*/
|
|
||||||
DhApiResult<Void> overwriteChunkDataAsync(IDhApiLevelWrapper levelWrapper, Object[] chunkObjectArray) throws ClassCastException;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=========//
|
|
||||||
// helpers //
|
|
||||||
//=========//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return a {@link IDhApiTerrainDataCache} backed by {@link java.lang.ref.SoftReference}'s.
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
IDhApiTerrainDataCache getSoftCache();
|
|
||||||
|
|
||||||
}
|
|
||||||
-89
@@ -1,89 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.factories;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.block.IDhApiBiomeWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.block.IDhApiBlockStateWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.DhApi;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This handles creating abstract wrapper objects.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-12-16
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiWrapperFactory
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Constructs a {@link IDhApiBiomeWrapper} for use by other DhApi methods.
|
|
||||||
*
|
|
||||||
* @param objectArray Expects the following Minecraft objects (in order) for each MC version: <br>
|
|
||||||
* <b>1.16</b> and <b>1.17</b><br>
|
|
||||||
* - [net.minecraft.world.level.biome.Biome] <br>
|
|
||||||
* <b>1.18</b> and <b>newer</b> <br>
|
|
||||||
* - {@literal [net.minecraft.core.Holder<net.minecraft.world.level.biome.Biome>] }<br>
|
|
||||||
*
|
|
||||||
* @param levelWrapper Expects a {@link IDhApiLevelWrapper} returned by one of DH's {@link DhApi.Delayed#worldProxy} methods. <br>
|
|
||||||
* A custom implementation of {@link IDhApiLevelWrapper} will not be accepted.
|
|
||||||
*
|
|
||||||
* @throws ClassCastException if any of the given parameters is of the wrong type.
|
|
||||||
* If thrown the error message will contain the list of expected object types in order.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
IDhApiBiomeWrapper getBiomeWrapper(Object[] objectArray, IDhApiLevelWrapper levelWrapper) throws ClassCastException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a {@link IDhApiBlockStateWrapper} for use by other DhApi methods.
|
|
||||||
*
|
|
||||||
* @param objectArray Expects the following Minecraft objects (in order) for each MC version: <br>
|
|
||||||
* <b>1.16</b> and <b>newer</b> <br>
|
|
||||||
* - [net.minecraft.world.level.block.state.BlockState]<br>
|
|
||||||
*
|
|
||||||
* @param levelWrapper Expects a {@link IDhApiBlockStateWrapper} returned by one of DH's {@link DhApi.Delayed#worldProxy} methods. <br>
|
|
||||||
* A custom implementation of {@link IDhApiBlockStateWrapper} will not be accepted.
|
|
||||||
*
|
|
||||||
* @throws ClassCastException if any of the given parameters is of the wrong type.
|
|
||||||
* If thrown the error message will contain the list of expected object types in order.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
IDhApiBlockStateWrapper getBlockStateWrapper(Object[] objectArray, IDhApiLevelWrapper levelWrapper) throws ClassCastException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the {@link IDhApiBlockStateWrapper} representing air.
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
IDhApiBlockStateWrapper getAirBlockStateWrapper();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///**
|
|
||||||
// * Specifically designed to be used with the API.
|
|
||||||
// *
|
|
||||||
// * @throws ClassCastException with instructions on expected objects if the object couldn't be cast
|
|
||||||
// */
|
|
||||||
//IChunkWrapper createChunkWrapper(Object[] objectArray) throws ClassCastException;
|
|
||||||
|
|
||||||
}
|
|
||||||
-42
@@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindable;
|
|
||||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IOverrideInjector;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Implemented by all DhApi objects that can be overridden.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-9-5
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiOverrideable extends IBindable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Higher (larger numerical) priorities override lower (smaller numerical) priorities. <br>
|
|
||||||
* For most developers this can be left at the default.
|
|
||||||
*
|
|
||||||
* @return The priority of this interface, the lowest legal value is {@link IOverrideInjector#MIN_NON_CORE_OVERRIDE_PRIORITY}.
|
|
||||||
*/
|
|
||||||
default int getPriority() { return IOverrideInjector.DEFAULT_NON_CORE_OVERRIDE_PRIORITY; }
|
|
||||||
|
|
||||||
}
|
|
||||||
-58
@@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiMat4f;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to determine if a LOD should be rendered or is outside the
|
|
||||||
* user's field of view.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-2-6
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiCullingFrustum extends IDhApiOverrideable
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before a render pass is done.
|
|
||||||
*
|
|
||||||
* @param worldMinBlockY the lowest block position this level allows.
|
|
||||||
* @param worldMaxBlockY the highest block position this level allows.
|
|
||||||
* @param worldViewProjection the projection matrix used in this render pass.
|
|
||||||
*/
|
|
||||||
void update(int worldMinBlockY, int worldMaxBlockY, DhApiMat4f worldViewProjection);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* returns true if the LOD bounds intersect this frustum
|
|
||||||
*
|
|
||||||
* @param lodBlockPosMinX this LOD's starting block X position closest to negative infinity
|
|
||||||
* @param lodBlockPosMinZ this LOD's starting block Z position closest to negative infinity
|
|
||||||
* @param lodBlockWidth this LOD's width in blocks
|
|
||||||
* @param lodDetailLevel this LOD's detail level
|
|
||||||
*
|
|
||||||
* @see EDhApiDetailLevel
|
|
||||||
*/
|
|
||||||
boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel);
|
|
||||||
|
|
||||||
}
|
|
||||||
-59
@@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-24
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiFramebuffer extends IDhApiOverrideable
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If this method is called that means this program has the highest priority as defined by {@link IDhApiOverrideable#getPriority()}
|
|
||||||
* and gets to decide if it wants to be used to render this frame or not. <br><br>
|
|
||||||
*
|
|
||||||
* If this method returns true then this program will be used for this frame. <br>
|
|
||||||
* If this returns false then the default DH {@link IDhApiShaderProgram} will be used instead.
|
|
||||||
*/
|
|
||||||
boolean overrideThisFrame();
|
|
||||||
|
|
||||||
/** Runs any necessary binding this program needs so rendering can be done. */
|
|
||||||
void bind();
|
|
||||||
|
|
||||||
/** Binds the given OpenGL depth texture ID. */
|
|
||||||
void addDepthAttachment(int textureId, boolean isCombinedStencil);
|
|
||||||
|
|
||||||
/** @return the OpenGL ID for this shader program */
|
|
||||||
int getId();
|
|
||||||
|
|
||||||
/** @return the OpenGL framebuffer status as defined by <code>glCheckFramebufferStatus</code> */
|
|
||||||
int getStatus();
|
|
||||||
|
|
||||||
/** Binds the given OpenGL texture ID to the given texture index relative to OpenGL's <code>GL_COLOR_ATTACHMENT0</code> */
|
|
||||||
void addColorAttachment(int textureIndex, int textureId);
|
|
||||||
|
|
||||||
/** Destroys this framebuffer's OpenGL object(s). */
|
|
||||||
void destroy();
|
|
||||||
|
|
||||||
}
|
|
||||||
-80
@@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderableBoxGroup;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3d;
|
|
||||||
import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBox;
|
|
||||||
import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBoxGroupShading;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IDhApiShaderProgram
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-11
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiGenericObjectShaderProgram extends IDhApiOverrideable
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If this method is called that means this program has the highest priority as defined by {@link IDhApiOverrideable#getPriority()}
|
|
||||||
* and gets to decide if it wants to be used to render this frame or not. <br><br>
|
|
||||||
*
|
|
||||||
* If this method returns true then this program will be used for this frame. <br>
|
|
||||||
* If this returns false then the default DH {@link IDhApiGenericObjectShaderProgram} will be used instead.
|
|
||||||
*/
|
|
||||||
boolean overrideThisFrame();
|
|
||||||
|
|
||||||
/** @return the OpenGL ID for this shader program */
|
|
||||||
int getId();
|
|
||||||
|
|
||||||
/** Free any OpenGL objects owned by this program. */
|
|
||||||
void free();
|
|
||||||
|
|
||||||
/** Runs any necessary binding this program needs so rendering can be done. */
|
|
||||||
void bind(DhApiRenderParam renderEventParam);
|
|
||||||
/** Runs any necessary unbinding this program needs so rendering can be done by another program. */
|
|
||||||
void unbind();
|
|
||||||
|
|
||||||
/** Binds the given Vertex Buffer Object to this shader program for rendering. */
|
|
||||||
void bindVertexBuffer(int vbo);
|
|
||||||
|
|
||||||
|
|
||||||
/** sets up the necessary uniforms for rendering */
|
|
||||||
void fillIndirectUniformData(
|
|
||||||
DhApiRenderParam renderParameters,
|
|
||||||
DhApiRenderableBoxGroupShading shading, IDhApiRenderableBoxGroup boxGroup,
|
|
||||||
DhApiVec3d camPos);
|
|
||||||
|
|
||||||
/** sets up the necessary uniforms for rendering */
|
|
||||||
void fillSharedDirectUniformData(
|
|
||||||
DhApiRenderParam renderParameters,
|
|
||||||
DhApiRenderableBoxGroupShading shading, IDhApiRenderableBoxGroup boxGroup,
|
|
||||||
DhApiVec3d camPos);
|
|
||||||
void fillDirectUniformData(
|
|
||||||
DhApiRenderParam renderParameters,
|
|
||||||
IDhApiRenderableBoxGroup boxGroup, DhApiRenderableBox box,
|
|
||||||
DhApiVec3d camPos);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
-66
@@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3f;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IDhApiGenericObjectShaderProgram
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-24
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiShaderProgram extends IDhApiOverrideable
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If this method is called that means this program has the highest priority as defined by {@link IDhApiOverrideable#getPriority()}
|
|
||||||
* and gets to decide if it wants to be used to render this frame or not. <br><br>
|
|
||||||
*
|
|
||||||
* If this method returns true then this program will be used for this frame. <br>
|
|
||||||
* If this returns false then the default DH {@link IDhApiShaderProgram} will be used instead.
|
|
||||||
*/
|
|
||||||
boolean overrideThisFrame();
|
|
||||||
|
|
||||||
/** @return the OpenGL ID for this shader program */
|
|
||||||
int getId();
|
|
||||||
|
|
||||||
/** Free any OpenGL objects owned by this program. */
|
|
||||||
void free();
|
|
||||||
|
|
||||||
/** Runs any necessary binding this program needs so rendering can be done. */
|
|
||||||
void bind();
|
|
||||||
/** Runs any necessary unbinding this program needs so rendering can be done by another program. */
|
|
||||||
void unbind();
|
|
||||||
|
|
||||||
|
|
||||||
/** sets up the necessary uniforms for rendering */
|
|
||||||
void fillUniformData(DhApiRenderParam renderParameters);
|
|
||||||
|
|
||||||
/** sets the vec3 that all DH verticies should be offset by when rendering */
|
|
||||||
void setModelOffsetPos(DhApiVec3f modelPos);
|
|
||||||
|
|
||||||
/** Binds the given Vertex Buffer Object to this shader program for rendering. */
|
|
||||||
void bindVertexBuffer(int vbo);
|
|
||||||
|
|
||||||
}
|
|
||||||
-39
@@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The culling frustum used during Distant Horizons' shadow pass
|
|
||||||
* if another mod has enabled Distant Horizons' shadow
|
|
||||||
* pass via the API. <br><br>
|
|
||||||
*
|
|
||||||
* If no {@link IDhApiShadowCullingFrustum} is bound then culling
|
|
||||||
* will not be done in the shadow pass.
|
|
||||||
*
|
|
||||||
* @see IDhApiCullingFrustum
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-2-10
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiShadowCullingFrustum extends IDhApiCullingFrustum
|
|
||||||
{
|
|
||||||
// should be identical to the parent culling frustum
|
|
||||||
}
|
|
||||||
-95
@@ -1,95 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.worldGenerator;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
|
||||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
|
||||||
import com.seibel.distanthorizons.coreapi.util.BitShiftUtil;
|
|
||||||
|
|
||||||
import java.io.Closeable;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-22
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class AbstractDhApiChunkWorldGenerator implements Closeable, IDhApiOverrideable, IDhApiWorldGenerator
|
|
||||||
{
|
|
||||||
//============//
|
|
||||||
// parameters //
|
|
||||||
//============//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final byte getSmallestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
|
||||||
@Override
|
|
||||||
public final byte getLargestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
|
||||||
@Override
|
|
||||||
public final byte getMinGenerationGranularity() { return EDhApiDetailLevel.CHUNK.detailLevel; }
|
|
||||||
@Override
|
|
||||||
public final byte getMaxGenerationGranularity() { return (byte) (EDhApiDetailLevel.CHUNK.detailLevel + 2); }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=================//
|
|
||||||
// world generator //
|
|
||||||
//=================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final CompletableFuture<Void> generateChunks(
|
|
||||||
int chunkPosMinX, int chunkPosMinZ,
|
|
||||||
byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode generatorMode,
|
|
||||||
ExecutorService worldGeneratorThreadPool, Consumer<Object[]> resultConsumer) throws ClassCastException
|
|
||||||
{
|
|
||||||
return CompletableFuture.runAsync(() ->
|
|
||||||
{
|
|
||||||
// TODO what does this mean?
|
|
||||||
int genChunkWidth = BitShiftUtil.powerOfTwo(granularity - 4);
|
|
||||||
|
|
||||||
for (int chunkX = chunkPosMinX; chunkX < chunkPosMinX + genChunkWidth; chunkX++)
|
|
||||||
{
|
|
||||||
for (int chunkZ = chunkPosMinZ; chunkZ < chunkPosMinZ + genChunkWidth; chunkZ++)
|
|
||||||
{
|
|
||||||
Object[] rawMcObjectArray = this.generateChunk(chunkX, chunkZ, generatorMode);
|
|
||||||
resultConsumer.accept(rawMcObjectArray);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, worldGeneratorThreadPool);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is called to generate terrain over a given area
|
|
||||||
* from a thread defined by Distant Horizons. <br><br>
|
|
||||||
*
|
|
||||||
* @param chunkPosX the chunk X position in the level (not to be confused with the chunk's BlockPos in the level)
|
|
||||||
* @param chunkPosZ the chunk Z position in the level (not to be confused with the chunk's BlockPos in the level)
|
|
||||||
* @param generatorMode how far into the world gen pipeline this method run. See {@link EDhApiDistantGeneratorMode} for additional documentation.
|
|
||||||
*
|
|
||||||
* @return See {@link IDhApiWorldGenerator#generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer) IDhApiWorldGenerator.generateChunks}
|
|
||||||
* for the list of Object's this method should return along with additional documentation.
|
|
||||||
*
|
|
||||||
* @see IDhApiWorldGenerator#generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer) IDhApiWorldGenerator#generateChunks
|
|
||||||
*/
|
|
||||||
public abstract Object[] generateChunk(int chunkPosX, int chunkPosZ, EDhApiDistantGeneratorMode generatorMode);
|
|
||||||
|
|
||||||
}
|
|
||||||
-222
@@ -1,222 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.worldGenerator;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiWorldGeneratorReturnType;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
|
||||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
|
||||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
|
||||||
import com.seibel.distanthorizons.api.objects.data.DhApiChunk;
|
|
||||||
|
|
||||||
import java.io.Closeable;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-22
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiWorldGenerator extends Closeable, IDhApiOverrideable
|
|
||||||
{
|
|
||||||
//============//
|
|
||||||
// parameters //
|
|
||||||
//============//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines the smallest datapoint size that can be generated at a time. <br>
|
|
||||||
* Minimum detail level is 0 (1 block) <br>
|
|
||||||
* Default detail level is 0 <br>
|
|
||||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}. <br><br>
|
|
||||||
*
|
|
||||||
* TODO: System currently only supports 1x1 block per data.
|
|
||||||
*
|
|
||||||
* @see EDhApiDetailLevel
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
default byte getSmallestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
|
||||||
/**
|
|
||||||
* Defines the largest datapoint size that can be generated at a time. <br>
|
|
||||||
* Minimum detail level is 0 (1 block) <br>
|
|
||||||
* Default detail level is 0 <br>
|
|
||||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}.
|
|
||||||
*
|
|
||||||
* @see EDhApiDetailLevel
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
default byte getLargestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When creating generation requests the system will attempt to group nearby tasks together. <br><br>
|
|
||||||
* What is the minimum size a single generation call can batch together? <br>
|
|
||||||
*
|
|
||||||
* Minimum detail level is 4 (the size of a MC chunk) <br>
|
|
||||||
* Default detail level is 4 <br>
|
|
||||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}.
|
|
||||||
*
|
|
||||||
* @see EDhApiDetailLevel
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
default byte getMinGenerationGranularity() { return EDhApiDetailLevel.CHUNK.detailLevel; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When creating generation requests the system will attempt to group nearby tasks together. <br><br>
|
|
||||||
* What is the maximum size a single generation call can batch together? <br>
|
|
||||||
*
|
|
||||||
* Minimum detail level is 4 (the size of a MC chunk) <br>
|
|
||||||
* Default detail level is 6 (4x4 chunks) <br>
|
|
||||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}.
|
|
||||||
*
|
|
||||||
* @see EDhApiDetailLevel
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
default byte getMaxGenerationGranularity() { return (byte) (EDhApiDetailLevel.CHUNK.detailLevel + 2); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return true if the generator is unable to accept new generation requests.
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
boolean isBusy();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=================//
|
|
||||||
// world generator //
|
|
||||||
//=================//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is called by Distant Horizons to generate terrain over a given area when
|
|
||||||
* {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS}. <br><br>
|
|
||||||
*
|
|
||||||
* After a chunk has been generated it (and any necessary supporting objects as listed below) should be passed into the
|
|
||||||
* resultConsumer's {@link Consumer#accept} method. If the Consumer is given the wrong data
|
|
||||||
* type(s) it will disable the world generator and log an error with a list of objects it was expecting. <br>
|
|
||||||
* <strong>Note:</strong> these objects are minecraft version dependent and <i>will</i> change without notice!
|
|
||||||
* Please run your generator in game at least once to confirm the objects you are returning are correct. <br><br>
|
|
||||||
*
|
|
||||||
* Consumer expected inputs for each minecraft version (in order): <br>
|
|
||||||
* <strong>1.16</strong>, <strong>1.17</strong>, <strong>1.18</strong>, <strong>1.19</strong>, <strong>1.20</strong>: <br>
|
|
||||||
* - [net.minecraft.world.level.chunk.ChunkAccess] <br>
|
|
||||||
* - [net.minecraft.world.level.ServerLevel] or [net.minecraft.world.level.ClientLevel] <br>
|
|
||||||
*
|
|
||||||
* @implNote the default implementation of this method throws an {@link UnsupportedOperationException},
|
|
||||||
* and must be overridden when {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS}.
|
|
||||||
* since {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS} by default,
|
|
||||||
* this method must also be overridden when {@link #getReturnType()} is NOT overridden.
|
|
||||||
*
|
|
||||||
* @param chunkPosMinX the chunk X position closest to negative infinity
|
|
||||||
* @param chunkPosMinZ the chunk Z position closest to negative infinity
|
|
||||||
* @param granularity TODO find a central location to store the definition of granularity. For now it is stored in the Core method: WorldGenerationQueue#startGenerationEvent
|
|
||||||
* @param targetDataDetail the LOD Detail level requested to generate. See {@link EDhApiDetailLevel} for additional information.
|
|
||||||
* @param generatorMode how far into the world gen pipeline this method run. See {@link EDhApiDistantGeneratorMode} for additional documentation.
|
|
||||||
* @param worldGeneratorThreadPool the thread pool that should be used when generating the returned {@link CompletableFuture}.
|
|
||||||
* @param resultConsumer the consumer that should be fired whenever a chunk finishes generating.
|
|
||||||
*
|
|
||||||
* @return a future that should run on the worldGeneratorThreadPool and complete once the given generation task has completed.
|
|
||||||
*
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
default CompletableFuture<Void> generateChunks(
|
|
||||||
int chunkPosMinX,
|
|
||||||
int chunkPosMinZ,
|
|
||||||
byte granularity,
|
|
||||||
byte targetDataDetail,
|
|
||||||
EDhApiDistantGeneratorMode generatorMode,
|
|
||||||
ExecutorService worldGeneratorThreadPool,
|
|
||||||
Consumer<Object[]> resultConsumer
|
|
||||||
)
|
|
||||||
{
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is called by Distant Horizons to generate terrain over a given area when
|
|
||||||
* {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#API_CHUNKS}. <br><br>
|
|
||||||
*
|
|
||||||
* After the {@link DhApiChunk} has been generated, it should be passed into the
|
|
||||||
* resultConsumer's {@link Consumer#accept(Object)} method.
|
|
||||||
*
|
|
||||||
* @implNote the default implementation of this method throws an {@link UnsupportedOperationException},
|
|
||||||
* and must be overridden when {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#API_CHUNKS}.
|
|
||||||
*
|
|
||||||
* @param chunkPosMinX the chunk X position closest to negative infinity
|
|
||||||
* @param chunkPosMinZ the chunk Z position closest to negative infinity
|
|
||||||
* @param granularity TODO find a central location to store the definition of granularity. For now it is stored in the Core method: WorldGenerationQueue#startGenerationEvent
|
|
||||||
* @param targetDataDetail the LOD Detail level requested to generate. See {@link EDhApiDetailLevel} for additional information.
|
|
||||||
* @param generatorMode how far into the world gen pipeline this method run. See {@link EDhApiDistantGeneratorMode} for additional documentation.
|
|
||||||
* @param worldGeneratorThreadPool the thread pool that should be used when generating the returned {@link CompletableFuture}.
|
|
||||||
* @param resultConsumer the consumer that should be fired whenever a chunk finishes generating.
|
|
||||||
*
|
|
||||||
* @return a future that should run on the worldGeneratorThreadPool and complete once the given generation task has completed.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
default CompletableFuture<Void> generateApiChunks(
|
|
||||||
int chunkPosMinX,
|
|
||||||
int chunkPosMinZ,
|
|
||||||
byte granularity,
|
|
||||||
byte targetDataDetail,
|
|
||||||
EDhApiDistantGeneratorMode generatorMode,
|
|
||||||
ExecutorService worldGeneratorThreadPool,
|
|
||||||
Consumer<DhApiChunk> resultConsumer
|
|
||||||
)
|
|
||||||
{
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method controls how Distant Horizons requests generated chunks.
|
|
||||||
* By default, the return value is {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS},
|
|
||||||
* which means that {@link #generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer)}
|
|
||||||
* will be invoked whenever Distant Horizons wants to generate terrain with this world generator.
|
|
||||||
*
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
default EDhApiWorldGeneratorReturnType getReturnType() { return EDhApiWorldGeneratorReturnType.VANILLA_CHUNKS; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//===============//
|
|
||||||
// event methods //
|
|
||||||
//===============//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before a new generator task is started. <br>
|
|
||||||
* This can be used to run cleanup on existing tasks before new tasks are started.
|
|
||||||
*
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
void preGeneratorTaskStart();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//===========//
|
|
||||||
// overrides //
|
|
||||||
//===========//
|
|
||||||
|
|
||||||
// This is overridden to remove the "throws IOException"
|
|
||||||
// that is present in the default Closeable.close() method
|
|
||||||
@Override
|
|
||||||
void close();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
-43
@@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.override.worldGenerator;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles adding world generator overrides.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-12-10
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiWorldGeneratorOverrideRegister
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Registers the given world generator for the given level. <Br> <Br>
|
|
||||||
*
|
|
||||||
* Only one world generator can be registered for a specific level at a given time. <Br>
|
|
||||||
* If another world generator has already been registered, DhApiResult will return
|
|
||||||
* the name of the previously registered generator and success = false.
|
|
||||||
*/
|
|
||||||
DhApiResult<Void> registerWorldGeneratorOverride(IDhApiLevelWrapper levelWrapper, IDhApiWorldGenerator worldGenerator);
|
|
||||||
|
|
||||||
}
|
|
||||||
-67
@@ -1,67 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.interfaces.render;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3d;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3f;
|
|
||||||
import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBox;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles creating
|
|
||||||
* {@link IDhApiRenderableBoxGroup} objects,
|
|
||||||
* which can be added via a {@link IDhApiCustomRenderRegister}.
|
|
||||||
*
|
|
||||||
* @see IDhApiCustomRenderRegister
|
|
||||||
* @see IDhApiRenderableBoxGroup
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-3
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiCustomRenderObjectFactory
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Creates a {@link IDhApiRenderableBoxGroup} from for the given {@link DhApiRenderableBox}
|
|
||||||
* where the box is positioned relative to the level's origin.
|
|
||||||
*
|
|
||||||
* @param resourceLocation A colon separated Resource Location string, similar to vanilla Minecraft, for example: "DistantHorizons:Clouds"
|
|
||||||
*
|
|
||||||
* @see DhApiRenderableBox
|
|
||||||
* @see IDhApiRenderableBoxGroup#getResourceLocationNamespace()
|
|
||||||
* @see IDhApiRenderableBoxGroup#getResourceLocationPath()
|
|
||||||
*
|
|
||||||
* @throws IllegalArgumentException if <code>resourceLocation</code> is null, isn't separated by a colon, or has multiple colons.
|
|
||||||
*/
|
|
||||||
IDhApiRenderableBoxGroup createForSingleBox(String resourceLocation, DhApiRenderableBox cube) throws IllegalArgumentException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a {@link IDhApiRenderableBoxGroup} from the given list of {@link DhApiRenderableBox} where each
|
|
||||||
* one is positioned relative to given <code>originBlockPos</code>, which in turn is relative to the level's origin.
|
|
||||||
*
|
|
||||||
* @param resourceLocation A colon separated Resource Location string, similar to vanilla Minecraft, for example: "DistantHorizons:Clouds"
|
|
||||||
* @param originBlockPos The starting position for this {@link IDhApiRenderableBoxGroup}, can be changed during runtime.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @see DhApiRenderableBox
|
|
||||||
* @see IDhApiRenderableBoxGroup#getResourceLocationNamespace()
|
|
||||||
* @see IDhApiRenderableBoxGroup#getResourceLocationPath()
|
|
||||||
*
|
|
||||||
* @throws IllegalArgumentException if <code>resourceLocation</code> is null, isn't separated by a colon, or has multiple colons.
|
|
||||||
*/
|
|
||||||
IDhApiRenderableBoxGroup createRelativePositionedGroup(String resourceLocation, DhApiVec3d originBlockPos, List<DhApiRenderableBox> cubeList);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a {@link IDhApiRenderableBoxGroup} from the given list of {@link DhApiRenderableBox} where each
|
|
||||||
* one is positioned relative to the level's origin.
|
|
||||||
*
|
|
||||||
* @param resourceLocation A colon separated Resource Location string, similar to vanilla Minecraft, for example: "DistantHorizons:Clouds"
|
|
||||||
*
|
|
||||||
* @see DhApiRenderableBox
|
|
||||||
* @see IDhApiRenderableBoxGroup#getResourceLocationNamespace()
|
|
||||||
* @see IDhApiRenderableBoxGroup#getResourceLocationPath()
|
|
||||||
*
|
|
||||||
* @throws IllegalArgumentException if <code>resourceLocation</code> is null, isn't separated by a colon, or has multiple colons.
|
|
||||||
*/
|
|
||||||
IDhApiRenderableBoxGroup createAbsolutePositionedGroup(String resourceLocation, List<DhApiRenderableBox> cubeList);
|
|
||||||
|
|
||||||
}
|
|
||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.interfaces.render;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.DhApi;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiWorldProxy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles adding and removing
|
|
||||||
* {@link IDhApiRenderableBoxGroup} objects,
|
|
||||||
* from DH's renderer. <br><br>
|
|
||||||
*
|
|
||||||
* Can be accessed in
|
|
||||||
* {@link DhApi.Delayed#worldProxy} -> {@link IDhApiLevelWrapper}.
|
|
||||||
*
|
|
||||||
* @see IDhApiCustomRenderObjectFactory
|
|
||||||
* @see IDhApiRenderableBoxGroup
|
|
||||||
* @see IDhApiWorldProxy
|
|
||||||
* @see IDhApiLevelWrapper
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-3
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiCustomRenderRegister
|
|
||||||
{
|
|
||||||
void add(IDhApiRenderableBoxGroup cubeGroup) throws IllegalArgumentException;
|
|
||||||
|
|
||||||
IDhApiRenderableBoxGroup remove(long id);
|
|
||||||
|
|
||||||
}
|
|
||||||
-87
@@ -1,87 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.interfaces.render;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to interact with Distant Horizons' rendering system.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-10-13
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiRenderProxy
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Forces any cached render data to be deleted and regenerated.
|
|
||||||
* This is generally called whenever resource packs are changed or specific
|
|
||||||
* rendering settings are changed in Distant Horizon's config. <Br><Br>
|
|
||||||
*
|
|
||||||
* If this is called on a dedicated server it won't do anything and will return {@link DhApiResult#success} = false <Br><Br>
|
|
||||||
*
|
|
||||||
* Background: <Br>
|
|
||||||
* Distant Horizons has two different file formats: Full data and Render data. <Br>
|
|
||||||
* - Full data files store the block, biome, etc. information and is the result of loading or generating new chunks. <Br>
|
|
||||||
* - Render data files store LOD colors and are created using the Full data and currently loaded resource packs. <Br>
|
|
||||||
* This is the data cleared by this method.
|
|
||||||
*/
|
|
||||||
DhApiResult<Boolean> clearRenderDataCache();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=======================//
|
|
||||||
// OpenGL object getters //
|
|
||||||
//=======================//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the name of Distant Horizons' depth texture. <br>
|
|
||||||
* Will return {@link DhApiResult#success} = false and {@link DhApiResult#payload} = -1 if the texture hasn't been created yet.
|
|
||||||
*/
|
|
||||||
DhApiResult<Integer> getDhDepthTextureId();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the name of Distant Horizons' color texture. <br>
|
|
||||||
* Will return {@link DhApiResult#success} = false and {@link DhApiResult#payload} = -1 if the texture hasn't been created yet.
|
|
||||||
*/
|
|
||||||
DhApiResult<Integer> getDhColorTextureId();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//======================//
|
|
||||||
// Shader compatibility //
|
|
||||||
//======================//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If set to true DH won't render opaque and transparent LODs in the same pass.
|
|
||||||
* Instead, opaque objects will be rendered at the normal time, but
|
|
||||||
* transparent objects will only be rendered in a second pass during Minecraft's
|
|
||||||
* own transparent rendering pass.
|
|
||||||
*/
|
|
||||||
void setDeferTransparentRendering(boolean deferTransparentRendering);
|
|
||||||
/** @return If DH should defer transparent rendering or not. */
|
|
||||||
boolean getDeferTransparentRendering();
|
|
||||||
|
|
||||||
/** This may change based on FOV, player speed, and other factors. */
|
|
||||||
float getNearClipPlaneDistanceInBlocks(float partialTicks);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
-98
@@ -1,98 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.interfaces.render;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.config.EDhApiLodShading;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3d;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3f;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3i;
|
|
||||||
import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBox;
|
|
||||||
import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBoxGroupShading;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A list of {@link DhApiRenderableBox}'s that
|
|
||||||
* can be rendered to DH's terrain pass.
|
|
||||||
*
|
|
||||||
* @see DhApiRenderableBox
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-6-30
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiRenderableBoxGroup extends List<DhApiRenderableBox>
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* A unique numerical ID used by DH during rendering.
|
|
||||||
* This can also be used to bind/unbind specific {@link IDhApiRenderableBoxGroup}'s from the renderer.
|
|
||||||
* @return the ID for this specific group
|
|
||||||
*/
|
|
||||||
long getId();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to determine which mods have added what to the DH renderer.
|
|
||||||
* This can be used both by the F3 pie chart so you as a mod developer can profile your code
|
|
||||||
* or by shader developers who want to render your objects differently. <br><br>
|
|
||||||
*
|
|
||||||
* Should be used the same as a vanilla Minecraft ResourceLocation.
|
|
||||||
* For example if your mod named "Heavy Thunder" adds additional clouds named "Storm Front",
|
|
||||||
* your Resource Location would be something like "HeavyThunder:StormFront"
|
|
||||||
* and this method would return "HeavyThunder".
|
|
||||||
*/
|
|
||||||
String getResourceLocationNamespace();
|
|
||||||
/**
|
|
||||||
* Used to determine what type of object mods have added what to the DH renderer.
|
|
||||||
* This can be used both by the F3 pie chart so you as a mod developer can profile your code
|
|
||||||
* or by shader developers who want to render your objects differently. <br><br>
|
|
||||||
*
|
|
||||||
* Should be used the same as a vanilla Minecraft ResourceLocation.
|
|
||||||
* For example if your mod named "Heavy Thunder" adds additional clouds named "Storm Front",
|
|
||||||
* your Resource Location would be something like "HeavyThunder:StormFront"
|
|
||||||
* and this method would return "StormFront".
|
|
||||||
*/
|
|
||||||
String getResourceLocationPath();
|
|
||||||
|
|
||||||
/** Sets whether this group should render or not. */
|
|
||||||
void setActive(boolean active);
|
|
||||||
/** @return if active this group will render. */
|
|
||||||
boolean isActive();
|
|
||||||
|
|
||||||
/** Sets whether this group should render with Screen Space Ambient Occlusioning. */
|
|
||||||
void setSsaoEnabled(boolean ssaoEnabled);
|
|
||||||
/** @return if active this group will render with Screen Space Ambient Occlusioning. */
|
|
||||||
boolean isSsaoEnabled();
|
|
||||||
|
|
||||||
/** Sets where this group will render in the level. */
|
|
||||||
void setOriginBlockPos(DhApiVec3d pos);
|
|
||||||
/** @return the block position in the level that all {@see DhApiRenderableBox} will render relative to. */
|
|
||||||
DhApiVec3d getOriginBlockPos();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called right before this group is rendered. <br>
|
|
||||||
* This is a good place to change the origin or notify of any box changes.
|
|
||||||
*/
|
|
||||||
void setPreRenderFunc(Consumer<DhApiRenderParam> renderEventParam);
|
|
||||||
void setPostRenderFunc(Consumer<DhApiRenderParam> renderEventParam); // TODO name?
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If a cube's color, position, or other property is changed this method
|
|
||||||
* must be called for those changes to render. <br><br>
|
|
||||||
*
|
|
||||||
* Note: changing the group's position via {@link #setOriginBlockPos} doesn't
|
|
||||||
* require calling this method.
|
|
||||||
*/
|
|
||||||
void triggerBoxChange();
|
|
||||||
|
|
||||||
/** Only accepts values between 0 and 15 */
|
|
||||||
void setSkyLight(int skyLight);
|
|
||||||
int getSkyLight();
|
|
||||||
|
|
||||||
/** Only accepts values between 0 and 15 */
|
|
||||||
void setBlockLight(int blockLight);
|
|
||||||
int getBlockLight();
|
|
||||||
|
|
||||||
void setShading(DhApiRenderableBoxGroupShading shading);
|
|
||||||
DhApiRenderableBoxGroupShading getShading();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.interfaces.util;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used for objects that need deep clones. <br>
|
|
||||||
* Replacement for {@link Cloneable}.
|
|
||||||
*
|
|
||||||
* @see Cloneable
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-12
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiCopyable
|
|
||||||
{
|
|
||||||
/** Returns a deep clone of all parameters whenever possible. */
|
|
||||||
IDhApiCopyable copy();
|
|
||||||
|
|
||||||
}
|
|
||||||
-46
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiOneTimeEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired after Distant Horizons finishes running its setup.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiAfterDhInitEvent implements IDhApiEvent<Void>, IDhApiOneTimeEvent<Void>
|
|
||||||
{
|
|
||||||
/** Fired after Distant Horizons finishes its initial setup on Minecraft startup. */
|
|
||||||
public abstract void afterDistantHorizonsInit(DhApiEventParam<Void> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<Void> input) { this.afterDistantHorizonsInit(input); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-52
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired after Distant Horizons finishes rendering a frame. <br>
|
|
||||||
* At this point DH will have also finished cleaning up any modifications it
|
|
||||||
* did to the OpenGL state, so the state should be back to Minecraft's defaults. <br><br>
|
|
||||||
*
|
|
||||||
* Note: as of API v 3.0.0 no {@link DhApiRenderParam} is included in this event
|
|
||||||
* because the specific parameters may change
|
|
||||||
* depending on whether deferred rendering is enabled or not.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-14
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiAfterRenderEvent implements IDhApiEvent<Void>
|
|
||||||
{
|
|
||||||
/** Fired after Distant Horizons finishes rendering fake chunks. */
|
|
||||||
public abstract void afterRender(DhApiEventParam<Void> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<Void> event) { this.afterRender(event); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-49
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiCancelableEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiCancelableEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired before DH runs its apply shader.
|
|
||||||
* The apply shader is a shader that copies over everything DH has rendered
|
|
||||||
* for this pass into MC's framebuffers so it can be rendered to the screen.
|
|
||||||
* Canceling this event prevents the apply shader from running.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-31
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeApplyShaderRenderEvent implements IDhApiCancelableEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/** Fired before the apply shader is run. */
|
|
||||||
public abstract void beforeRender(DhApiCancelableEventParam<DhApiRenderParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiCancelableEventParam<DhApiRenderParam> event) { this.beforeRender(event); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-81
@@ -1,81 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3f;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons starts rendering a buffer. <br>
|
|
||||||
* This event cannot be cancelled, use {@link DhApiBeforeRenderEvent} if you want to cancel rendering.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-1-31
|
|
||||||
* @since API 2.0.0
|
|
||||||
*
|
|
||||||
* @see DhApiBeforeRenderEvent
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeBufferRenderEvent implements IDhApiEvent<DhApiBeforeBufferRenderEvent.EventParam>
|
|
||||||
{
|
|
||||||
/** Fired immediately before Distant Horizons starts rendering a buffer. */
|
|
||||||
public abstract void beforeRender(DhApiEventParam<EventParam> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<EventParam> input) { this.beforeRender(input); }
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// parameter object //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
public static class EventParam extends DhApiRenderParam implements IDhApiEventParam
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Measured in blocks.
|
|
||||||
* Should be applied to the model view matrix to move the buffer into its proper place.
|
|
||||||
*/
|
|
||||||
public final DhApiVec3f modelPos;
|
|
||||||
|
|
||||||
|
|
||||||
public EventParam(DhApiRenderParam parent, DhApiVec3f modelPos)
|
|
||||||
{
|
|
||||||
super(parent);
|
|
||||||
this.modelPos = modelPos;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EventParam copy()
|
|
||||||
{
|
|
||||||
return new EventParam(
|
|
||||||
this, this.modelPos.copy()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-37
@@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderProxy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons starts rendering the deferred rendering pass. <br>
|
|
||||||
* Will only happen if {@link IDhApiRenderProxy#getDeferTransparentRendering()} is true. <br>
|
|
||||||
* Generally this is only used when shaders are enabled. <br>
|
|
||||||
* Canceling the event will prevent DH from rendering the deferred pass that frame.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-22
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeDeferredRenderEvent extends DhApiBeforeRenderEvent
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
-46
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired before Distant Horizons starts running its mod loader setup. <br>
|
|
||||||
* IE this is called before Forge's initClient/initServer or Fabric's init method.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeDhInitEvent implements IDhApiEvent<Void>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons starts its initial setup on Minecraft startup. */
|
|
||||||
public abstract void beforeDistantHorizonsInit(DhApiEventParam<Void> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<Void> input) { this.beforeDistantHorizonsInit(input); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-97
@@ -1,97 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderableBoxGroup;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiCancelableEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiCancelableEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons starts rendering a generic object. <br>
|
|
||||||
* Canceling this event will prevent the triggering {@link IDhApiRenderableBoxGroup} from rendering this frame.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-11
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeGenericObjectRenderEvent implements IDhApiCancelableEvent<DhApiBeforeGenericObjectRenderEvent.EventParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons renders a generic object. */
|
|
||||||
public abstract void beforeRender(DhApiCancelableEventParam<EventParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiCancelableEventParam<EventParam> input) { this.beforeRender(input); }
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// parameter object //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
public static class EventParam extends DhApiRenderParam implements IDhApiEventParam
|
|
||||||
{
|
|
||||||
public final long boxGroupId;
|
|
||||||
public final String resourceLocationNamespace;
|
|
||||||
public final String resourceLocationPath;
|
|
||||||
|
|
||||||
|
|
||||||
public EventParam(
|
|
||||||
DhApiRenderParam renderParam,
|
|
||||||
IDhApiRenderableBoxGroup boxGroup
|
|
||||||
)
|
|
||||||
{
|
|
||||||
super(renderParam);
|
|
||||||
|
|
||||||
this.boxGroupId = boxGroup.getId();
|
|
||||||
this.resourceLocationNamespace = boxGroup.getResourceLocationNamespace();
|
|
||||||
this.resourceLocationPath = boxGroup.getResourceLocationPath();
|
|
||||||
}
|
|
||||||
public EventParam(
|
|
||||||
DhApiRenderParam renderParam,
|
|
||||||
long boxGroupId, String resourceLocationNamespace, String resourceLocationPath
|
|
||||||
)
|
|
||||||
{
|
|
||||||
super(renderParam);
|
|
||||||
|
|
||||||
this.boxGroupId = boxGroupId;
|
|
||||||
this.resourceLocationNamespace = resourceLocationNamespace;
|
|
||||||
this.resourceLocationPath = resourceLocationPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EventParam copy()
|
|
||||||
{
|
|
||||||
return new EventParam(
|
|
||||||
this,
|
|
||||||
this.boxGroupId, this.resourceLocationNamespace, this.resourceLocationPath
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-47
@@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons starts the cleanup process done after rendering generic objects. <br>
|
|
||||||
* This is called after all generic objects have finished rendering.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-13
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeGenericRenderCleanupEvent implements IDhApiEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons starts the cleanup process once rendering has finished. */
|
|
||||||
public abstract void beforeCleanup(DhApiEventParam<DhApiRenderParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<DhApiRenderParam> event) { this.beforeCleanup(event); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-50
@@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons has started setting up OpenGL objects for rendering generic objects. <br>
|
|
||||||
* If you want to modify already bound DH OpenGL objects try using {@link DhApiBeforeGenericObjectRenderEvent}.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-12
|
|
||||||
* @since API 3.0.0
|
|
||||||
*
|
|
||||||
* @see DhApiBeforeGenericObjectRenderEvent
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeGenericRenderSetupEvent implements IDhApiEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons has started setting up OpenGL objects for rendering generic objects. */
|
|
||||||
public abstract void beforeSetup(DhApiEventParam<DhApiRenderParam> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<DhApiRenderParam> input) { this.beforeSetup(input); }
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
-47
@@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons starts the cleanup process done after rendering. <br>
|
|
||||||
* This called after every render pass.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-31
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeRenderCleanupEvent implements IDhApiEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons starts the cleanup process once rendering has finished. */
|
|
||||||
public abstract void beforeCleanup(DhApiEventParam<DhApiRenderParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<DhApiRenderParam> event) { this.beforeCleanup(event); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-47
@@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiCancelableEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiCancelableEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons starts rendering a frame. <br>
|
|
||||||
* Canceling the event will prevent DH from rendering that frame.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeRenderEvent implements IDhApiCancelableEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons renders LODs. */
|
|
||||||
public abstract void beforeRender(DhApiCancelableEventParam<DhApiRenderParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiCancelableEventParam<DhApiRenderParam> input) { this.beforeRender(input); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-54
@@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiRenderPass;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called immediately before Distant Horizons starts a rendering pass. <br>
|
|
||||||
* At this point the GL state will be set up for DH to render. <br>
|
|
||||||
* This event cannot be cancelled, use {@link DhApiBeforeRenderEvent} if you want to cancel rendering.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-1-31
|
|
||||||
* @since API 2.0.0
|
|
||||||
*
|
|
||||||
* @see DhApiBeforeRenderEvent
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeRenderPassEvent implements IDhApiEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Fired immediately before Distant Horizons starts a rendering pass. <br>
|
|
||||||
* {@link DhApiRenderParam#renderPass} should either be {@link EDhApiRenderPass#OPAQUE} or {@link EDhApiRenderPass#TRANSPARENT}.
|
|
||||||
*/
|
|
||||||
public abstract void beforeRender(DhApiEventParam<DhApiRenderParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<DhApiRenderParam> event) { this.beforeRender(event); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-50
@@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before Distant Horizons has started setting up OpenGL objects for rendering. <br>
|
|
||||||
* If you want to modify already bound DH OpenGL objects try using {@link DhApiBeforeRenderPassEvent}.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-31
|
|
||||||
* @since API 2.0.0
|
|
||||||
*
|
|
||||||
* @see DhApiBeforeRenderPassEvent
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeRenderSetupEvent implements IDhApiEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons has started setting up OpenGL objects for rendering. */
|
|
||||||
public abstract void beforeSetup(DhApiEventParam<DhApiRenderParam> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<DhApiRenderParam> input) { this.beforeSetup(input); }
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
-49
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiCancelableEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiCancelableEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called during Distant Horizons rendering setup and immediately <br>
|
|
||||||
* before the render textures are cleared. <br>
|
|
||||||
* Generally the textures cleared are Distant Horizons owned depth and color textures. <br>
|
|
||||||
* Canceling the event will prevent DH from clearing any textures.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-31
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiBeforeTextureClearEvent implements IDhApiCancelableEvent<DhApiRenderParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons clears any textures. */
|
|
||||||
public abstract void beforeClear(DhApiCancelableEventParam<DhApiRenderParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiCancelableEventParam<DhApiRenderParam> input) { this.beforeClear(input); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-86
@@ -1,86 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.data.IDhApiTerrainDataRepo;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fired whenever Distant Horizons has been notified
|
|
||||||
* that a Minecraft chunk has been modified. <br>
|
|
||||||
* By the time this event has been fired, the chunk modification should have propagated
|
|
||||||
* to DH's full data source, but may not have been updated in the render data source.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @see IDhApiTerrainDataRepo
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiChunkModifiedEvent implements IDhApiEvent<DhApiChunkModifiedEvent.EventParam>
|
|
||||||
{
|
|
||||||
/** Fired after Distant Horizons saves LOD data for the server. */
|
|
||||||
public abstract void onChunkModified(DhApiEventParam<EventParam> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<EventParam> input) { this.onChunkModified(input); }
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// parameter object //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
public static class EventParam implements IDhApiEventParam
|
|
||||||
{
|
|
||||||
/** The saved level. */
|
|
||||||
public final IDhApiLevelWrapper levelWrapper;
|
|
||||||
|
|
||||||
/** the modified chunk's X pos in chunk coordinates */
|
|
||||||
public final int chunkX;
|
|
||||||
/** the modified chunk's Z pos in chunk coordinates */
|
|
||||||
public final int chunkZ;
|
|
||||||
|
|
||||||
|
|
||||||
public EventParam(IDhApiLevelWrapper newLevelWrapper, int chunkX, int chunkZ)
|
|
||||||
{
|
|
||||||
this.levelWrapper = newLevelWrapper;
|
|
||||||
this.chunkX = chunkX;
|
|
||||||
this.chunkZ = chunkZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EventParam copy()
|
|
||||||
{
|
|
||||||
return new EventParam(
|
|
||||||
this.levelWrapper,
|
|
||||||
this.chunkX, this.chunkZ
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-88
@@ -1,88 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called whenever Distant Horizons (re)creates
|
|
||||||
* the color and depth textures it renders to. <br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-3-2
|
|
||||||
* @since API 2.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiColorDepthTextureCreatedEvent implements IDhApiEvent<DhApiColorDepthTextureCreatedEvent.EventParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons creates. */
|
|
||||||
public abstract void onResize(DhApiEventParam<EventParam> event);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<EventParam> event) { this.onResize(event); }
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// parameter object //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
public static class EventParam implements IDhApiEventParam
|
|
||||||
{
|
|
||||||
/** Measured in pixels */
|
|
||||||
public final int previousWidth;
|
|
||||||
/** Measured in pixels */
|
|
||||||
public final int previousHeight;
|
|
||||||
|
|
||||||
/** Measured in pixels */
|
|
||||||
public final int newWidth;
|
|
||||||
/** Measured in pixels */
|
|
||||||
public final int newHeight;
|
|
||||||
|
|
||||||
|
|
||||||
public EventParam(
|
|
||||||
int previousWidth, int previousHeight,
|
|
||||||
int newWidth, int newHeight)
|
|
||||||
{
|
|
||||||
this.previousWidth = previousWidth;
|
|
||||||
this.previousHeight = previousHeight;
|
|
||||||
|
|
||||||
this.newWidth = newWidth;
|
|
||||||
this.newHeight = newHeight;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EventParam copy()
|
|
||||||
{
|
|
||||||
return new EventParam(
|
|
||||||
this.previousWidth, this.previousHeight,
|
|
||||||
this.newWidth, this.newHeight
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-65
@@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called after Distant Horizons finishes loading a new level. <br>
|
|
||||||
* Note: this may be fired before Minecraft has loaded in the player.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiLevelLoadEvent implements IDhApiEvent<DhApiLevelLoadEvent.EventParam>
|
|
||||||
{
|
|
||||||
/** Fired after Distant Horizons loads a new level. */
|
|
||||||
public abstract void onLevelLoad(DhApiEventParam<EventParam> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<EventParam> input) { this.onLevelLoad(input); }
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// parameter object //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
public static class EventParam implements IDhApiEventParam
|
|
||||||
{
|
|
||||||
/** The newly loaded level. */
|
|
||||||
public final IDhApiLevelWrapper levelWrapper;
|
|
||||||
|
|
||||||
public EventParam(IDhApiLevelWrapper newLevelWrapper) { this.levelWrapper = newLevelWrapper; }
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EventParam copy() { return new EventParam(this.levelWrapper); }
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-64
@@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called after Distant Horizons has finished unloading a level.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public abstract class DhApiLevelUnloadEvent implements IDhApiEvent<DhApiLevelUnloadEvent.EventParam>
|
|
||||||
{
|
|
||||||
/** Fired before Distant Horizons unloads a level. */
|
|
||||||
public abstract void onLevelUnload(DhApiEventParam<EventParam> input);
|
|
||||||
|
|
||||||
|
|
||||||
//=========================//
|
|
||||||
// internal DH API methods //
|
|
||||||
//=========================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void fireEvent(DhApiEventParam<EventParam> input) { this.onLevelUnload(input); }
|
|
||||||
|
|
||||||
|
|
||||||
//==================//
|
|
||||||
// parameter object //
|
|
||||||
//==================//
|
|
||||||
|
|
||||||
public static class EventParam implements IDhApiEventParam
|
|
||||||
{
|
|
||||||
/** The recently unloaded level. */
|
|
||||||
public final IDhApiLevelWrapper levelWrapper;
|
|
||||||
|
|
||||||
public EventParam(IDhApiLevelWrapper newLevelWrapper) { this.levelWrapper = newLevelWrapper; }
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EventParam copy() { return new EventParam(this.levelWrapper); }
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-60
@@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.interfaces;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiCancelableEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If a {@link IDhApiEvent} implements this interface than the event
|
|
||||||
* can be canceled via the {@link DhApiCancelableEventParam#cancelEvent()} method.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiCancelableEvent<T> extends IDhApiEvent<T>
|
|
||||||
{
|
|
||||||
|
|
||||||
void fireEvent(DhApiCancelableEventParam<T> input);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <strong> Shouldn't be called. </strong> <br><br>
|
|
||||||
*
|
|
||||||
* The {@link IDhApiCancelableEvent#fireEvent(DhApiCancelableEventParam)} method should be used instead.
|
|
||||||
* This override method is present to prevent API users from having to implement it themselves.
|
|
||||||
*
|
|
||||||
* @deprecated marked as deprecated to warn that this method shouldn't be used. <br>
|
|
||||||
* <strong>DH Internal Note:</strong> Is there a better way to format the {@link IDhApiEvent} classes so we don't need this method?
|
|
||||||
* It would be better to completely hide this method so it isn't possible to accidentally call.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
default void fireEvent(DhApiEventParam<T> input)
|
|
||||||
{
|
|
||||||
if (!input.getClass().isAssignableFrom(DhApiCancelableEventParam.class))
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Programmer error. [" + IDhApiCancelableEvent.class.getSimpleName() + "] was given a [" + DhApiEventParam.class.getSimpleName() + "] when it should only be given a [" + DhApiCancelableEventParam.class.getSimpleName() + "].");
|
|
||||||
}
|
|
||||||
|
|
||||||
this.fireEvent((DhApiCancelableEventParam<T>) input);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-63
@@ -1,63 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.interfaces;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The interface used by all DH Api events.
|
|
||||||
*
|
|
||||||
* @param <T> This is the datatype that will be passed into the event handler's method.
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2023-6-23
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiEvent<T> extends IBindable
|
|
||||||
{
|
|
||||||
//==========//
|
|
||||||
// external //
|
|
||||||
//==========//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the event should be automatically unbound
|
|
||||||
* after firing. <br>
|
|
||||||
* Can be useful for one time setup events or waiting for a specific game state. <br> <Br>
|
|
||||||
*
|
|
||||||
* Defaults to False
|
|
||||||
* IE: The event will not be removed after firing and will continue firing until removed.
|
|
||||||
*/
|
|
||||||
default boolean removeAfterFiring() { return false; }
|
|
||||||
|
|
||||||
|
|
||||||
//==========//
|
|
||||||
// internal //
|
|
||||||
//==========//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called internally by Distant Horizons when the event happens.
|
|
||||||
* This method shouldn't directly be overridden and
|
|
||||||
* should call a more specific method instead.
|
|
||||||
*
|
|
||||||
* @param input the parameter object passed in from the event source. Can be null.
|
|
||||||
*/
|
|
||||||
void fireEvent(DhApiEventParam<T> input);
|
|
||||||
|
|
||||||
}
|
|
||||||
-13
@@ -1,13 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.methods.events.interfaces;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.util.IDhApiCopyable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-12
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiEventParam extends IDhApiCopyable
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
-33
@@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.interfaces;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If a {@link IDhApiEvent} implements this interface then the event will only ever be fired once. <Br>
|
|
||||||
* An example of this would be initial setup methods, DH won't run its initial setup more than once. <br><br>
|
|
||||||
*
|
|
||||||
* If a handler is bound to a one time event after the event has been fired, the handler will immediately fire.
|
|
||||||
*
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public interface IDhApiOneTimeEvent<T> extends IDhApiEvent<T>
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
-37
@@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.interfaces;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Cailin
|
|
||||||
* @deprecated marked as deprecated since it isn't currently implemented
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public interface IDhServerMessageReceived<T> extends IDhApiEvent<T>
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Triggered when a plugin message is received from the server.
|
|
||||||
*
|
|
||||||
* @param channel The name of the channel this was received on.
|
|
||||||
* @param message The message sent from the server.
|
|
||||||
*/
|
|
||||||
void serverMessageReceived(String channel, byte[] message);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
/**
|
|
||||||
* Holds objects and methods for listening to events fired by Distant Horizons'.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events;
|
|
||||||
-37
@@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.sharedParameterObjects;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extension of {@link DhApiEventParam} that allows the event to be canceled.
|
|
||||||
*
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiCancelableEventParam<T> extends DhApiEventParam<T>
|
|
||||||
{
|
|
||||||
public DhApiCancelableEventParam(T value) { super(value); }
|
|
||||||
|
|
||||||
private boolean eventCanceled = false;
|
|
||||||
/** Prevents the DH event from completing after all bound event handlers have been fired. */
|
|
||||||
public void cancelEvent() { this.eventCanceled = true; }
|
|
||||||
/** @return if this DH event has been canceled, either by this event handler or a previous one. */
|
|
||||||
public boolean isEventCanceled() { return this.eventCanceled; }
|
|
||||||
|
|
||||||
}
|
|
||||||
-37
@@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.sharedParameterObjects;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wraps the event parameter to allow for additional control over the event
|
|
||||||
*
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiEventParam<T>
|
|
||||||
{
|
|
||||||
/** Depending on the {@link IDhApiEvent} this can be null. */
|
|
||||||
public final T value;
|
|
||||||
|
|
||||||
|
|
||||||
public DhApiEventParam(T value) { this.value = value; }
|
|
||||||
|
|
||||||
}
|
|
||||||
-120
@@ -1,120 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.events.sharedParameterObjects;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiRenderPass;
|
|
||||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiMat4f;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Contains information relevant to Distant Horizons and Minecraft rendering.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-1-31
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiRenderParam implements IDhApiEventParam
|
|
||||||
{
|
|
||||||
/** Indicates what render pass DH is currently rendering */
|
|
||||||
public final EDhApiRenderPass renderPass;
|
|
||||||
|
|
||||||
/** Indicates how far into this tick the frame is. */
|
|
||||||
public final float partialTicks;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates DH's near clip plane, measured in blocks.
|
|
||||||
* Note: this may change based on time, player speed, and other factors.
|
|
||||||
*/
|
|
||||||
public final float nearClipPlane;
|
|
||||||
/**
|
|
||||||
* Indicates DH's far clip plane, measured in blocks.
|
|
||||||
* Note: this may change based on time, player speed, and other factors.
|
|
||||||
*/
|
|
||||||
public final float farClipPlane;
|
|
||||||
|
|
||||||
/** The projection matrix Minecraft is using to render this frame. */
|
|
||||||
public final DhApiMat4f mcProjectionMatrix;
|
|
||||||
/** The model view matrix Minecraft is using to render this frame. */
|
|
||||||
public final DhApiMat4f mcModelViewMatrix;
|
|
||||||
|
|
||||||
/** The projection matrix Distant Horizons is using to render this frame. */
|
|
||||||
public final DhApiMat4f dhProjectionMatrix;
|
|
||||||
/** The model view matrix Distant Horizons is using to render this frame. */
|
|
||||||
public final DhApiMat4f dhModelViewMatrix;
|
|
||||||
|
|
||||||
public final int worldYOffset;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//==============//
|
|
||||||
// constructors //
|
|
||||||
//==============//
|
|
||||||
|
|
||||||
|
|
||||||
public DhApiRenderParam(DhApiRenderParam parent)
|
|
||||||
{
|
|
||||||
this(
|
|
||||||
parent.renderPass,
|
|
||||||
parent.partialTicks,
|
|
||||||
parent.nearClipPlane, parent.farClipPlane,
|
|
||||||
parent.mcProjectionMatrix.copy(), parent.mcModelViewMatrix.copy(),
|
|
||||||
parent.dhProjectionMatrix.copy(), parent.dhModelViewMatrix.copy(),
|
|
||||||
parent.worldYOffset
|
|
||||||
);
|
|
||||||
}
|
|
||||||
public DhApiRenderParam(
|
|
||||||
EDhApiRenderPass renderPass,
|
|
||||||
float newPartialTicks,
|
|
||||||
float nearClipPlane, float farClipPlane,
|
|
||||||
DhApiMat4f newMcProjectionMatrix, DhApiMat4f newMcModelViewMatrix,
|
|
||||||
DhApiMat4f newDhProjectionMatrix, DhApiMat4f newDhModelViewMatrix,
|
|
||||||
int worldYOffset
|
|
||||||
)
|
|
||||||
{
|
|
||||||
this.renderPass = renderPass;
|
|
||||||
|
|
||||||
this.partialTicks = newPartialTicks;
|
|
||||||
|
|
||||||
this.farClipPlane = farClipPlane;
|
|
||||||
this.nearClipPlane = nearClipPlane;
|
|
||||||
|
|
||||||
this.mcProjectionMatrix = newMcProjectionMatrix;
|
|
||||||
this.mcModelViewMatrix = newMcModelViewMatrix;
|
|
||||||
|
|
||||||
this.dhProjectionMatrix = newDhProjectionMatrix;
|
|
||||||
this.dhModelViewMatrix = newDhModelViewMatrix;
|
|
||||||
|
|
||||||
this.worldYOffset = worldYOffset;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//================//
|
|
||||||
// base overrides //
|
|
||||||
//================//
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DhApiRenderParam copy()
|
|
||||||
{
|
|
||||||
return new DhApiRenderParam(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-57
@@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.override;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGenerator;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGeneratorOverrideRegister;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
|
||||||
import com.seibel.distanthorizons.coreapi.DependencyInjection.WorldGeneratorInjector;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles adding world generator overrides.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-12-10
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiWorldGeneratorOverrideRegister implements IDhApiWorldGeneratorOverrideRegister
|
|
||||||
{
|
|
||||||
public static DhApiWorldGeneratorOverrideRegister INSTANCE = new DhApiWorldGeneratorOverrideRegister();
|
|
||||||
|
|
||||||
private DhApiWorldGeneratorOverrideRegister() { }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DhApiResult<Void> registerWorldGeneratorOverride(IDhApiLevelWrapper levelWrapper, IDhApiWorldGenerator worldGenerator)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
WorldGeneratorInjector.INSTANCE.bind(levelWrapper, worldGenerator);
|
|
||||||
return DhApiResult.createSuccess();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
return DhApiResult.createFail(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
/**
|
|
||||||
* The override api package holds objects and methods for overriding Distant Horizons' backend systems, so they can be replaced or improved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.methods.override;
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.objects.data;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.factories.IDhApiWrapperFactory;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGenerator;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Contains a list of {@link DhApiTerrainDataPoint} representing the blocks in a Minecraft chunk.
|
|
||||||
*
|
|
||||||
* @author Builderb0y, James Seibel
|
|
||||||
* @version 2023-12-21
|
|
||||||
* @since API 2.0.0
|
|
||||||
*
|
|
||||||
* @see IDhApiWrapperFactory
|
|
||||||
* @see DhApiTerrainDataPoint
|
|
||||||
* @see IDhApiWorldGenerator
|
|
||||||
*/
|
|
||||||
public class DhApiChunk
|
|
||||||
{
|
|
||||||
public final int chunkPosX;
|
|
||||||
public final int chunkPosZ;
|
|
||||||
|
|
||||||
public final int topYBlockPos;
|
|
||||||
public final int bottomYBlockPos;
|
|
||||||
|
|
||||||
private final List<List<DhApiTerrainDataPoint>> dataPoints;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//==============//
|
|
||||||
// constructors //
|
|
||||||
//==============//
|
|
||||||
|
|
||||||
public DhApiChunk(int chunkPosX, int chunkPosZ, int topYBlockPos, int bottomYBlockPos)
|
|
||||||
{
|
|
||||||
this.chunkPosX = chunkPosX;
|
|
||||||
this.chunkPosZ = chunkPosZ;
|
|
||||||
this.topYBlockPos = topYBlockPos;
|
|
||||||
this.bottomYBlockPos = bottomYBlockPos;
|
|
||||||
|
|
||||||
// populate the array to prevent null pointers
|
|
||||||
this.dataPoints = new ArrayList<>(16 * 16); // 256
|
|
||||||
for (int i = 0; i < (16*16); i++)
|
|
||||||
{
|
|
||||||
this.dataPoints.add(i, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=================//
|
|
||||||
// getters/setters //
|
|
||||||
//=================//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param relX a block position between 0 and 15 (inclusive) representing the X axis in the chunk
|
|
||||||
* @param relZ a block position between 0 and 15 (inclusive) representing the Z axis in the chunk
|
|
||||||
* @return the {@link DhApiTerrainDataPoint}'s representing the blocks at the relative X and Z position in the chunk.
|
|
||||||
* @throws IndexOutOfBoundsException if relX or relZ are outside the chunk
|
|
||||||
*/
|
|
||||||
public List<DhApiTerrainDataPoint> getDataPoints(int relX, int relZ) throws IndexOutOfBoundsException
|
|
||||||
{
|
|
||||||
throwIfRelativePosOutOfBounds(relX, relZ);
|
|
||||||
return this.dataPoints.get((relZ << 4) | relX);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param relX a block position between 0 and 15 (inclusive) representing the X axis in the chunk
|
|
||||||
* @param relZ a block position between 0 and 15 (inclusive) representing the Z axis in the chunk
|
|
||||||
* @param dataPoints Represents the blocks at the relative X and Z position in the chunk.
|
|
||||||
* Cannot contain null objects or data points with any detail level but 0 (block-sized).
|
|
||||||
* @throws IndexOutOfBoundsException if relX or relZ are outside the chunk
|
|
||||||
*/
|
|
||||||
public void setDataPoints(int relX, int relZ, List<DhApiTerrainDataPoint> dataPoints) throws IndexOutOfBoundsException, IllegalArgumentException
|
|
||||||
{
|
|
||||||
throwIfRelativePosOutOfBounds(relX, relZ);
|
|
||||||
|
|
||||||
// validate the incoming datapoints
|
|
||||||
if (dataPoints != null)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < dataPoints.size(); i++) // standard for-loop used instead of an enhanced for-loop to slightly reduce GC overhead due to iterator allocation
|
|
||||||
{
|
|
||||||
DhApiTerrainDataPoint dataPoint = dataPoints.get(i);
|
|
||||||
if (dataPoint == null)
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Null DhApiTerrainDataPoints are not allowed. If you want to represent empty terrain, please use AIR.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dataPoint.detailLevel != 0)
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("DhApiTerrainDataPoints has the wrong detail level ["+dataPoint.detailLevel+"], all data points must be block sized; IE their detail level must be [0].");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.dataPoints.set((relZ << 4) | relX, dataPoints);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//================//
|
|
||||||
// helper methods //
|
|
||||||
//================//
|
|
||||||
|
|
||||||
/** Included to prevent users accidentally setting columns outside the chunk */
|
|
||||||
private static void throwIfRelativePosOutOfBounds(int relX, int relZ)
|
|
||||||
{
|
|
||||||
if (relX < 0 || relX > 15 ||
|
|
||||||
relZ < 0 || relZ > 15)
|
|
||||||
{
|
|
||||||
throw new IndexOutOfBoundsException("Relative block positions must be between 0 and 15 (inclusive) the block pos: ("+relX+","+relZ+") is outside of those boundaries.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.objects.data;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3i;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds a single datapoint of terrain data
|
|
||||||
* and the block position from the raycast.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-11-19
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiRaycastResult
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* LOD position of this raycast. <br><br>
|
|
||||||
*
|
|
||||||
* <strong>Note: </strong>
|
|
||||||
* This will NOT be the exact block position if the LOD the ray
|
|
||||||
* hits is more than one block tall. In that case this will
|
|
||||||
* be the bottom block position for that LOD.
|
|
||||||
*/
|
|
||||||
public final DhApiVec3i pos;
|
|
||||||
|
|
||||||
/** The LOD data at this position. */
|
|
||||||
public final DhApiTerrainDataPoint dataPoint;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public DhApiRaycastResult(DhApiTerrainDataPoint dataPoint, DhApiVec3i blockPos)
|
|
||||||
{
|
|
||||||
this.dataPoint = dataPoint;
|
|
||||||
this.pos = blockPos;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-66
@@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.objects.data;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.block.IDhApiBiomeWrapper;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.block.IDhApiBlockStateWrapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds a single datapoint of terrain data.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2022-11-13
|
|
||||||
* @since API 1.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiTerrainDataPoint
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* 0 = block <br>
|
|
||||||
* 1 = 2x2 blocks <br>
|
|
||||||
* 2 = 4x4 blocks <br>
|
|
||||||
* 4 = chunk (16x16 blocks) <br>
|
|
||||||
* 9 = region (512x512 blocks) <br>
|
|
||||||
*/
|
|
||||||
public final byte detailLevel;
|
|
||||||
|
|
||||||
public final int blockLightLevel;
|
|
||||||
public final int skyLightLevel;
|
|
||||||
public final int topYBlockPos;
|
|
||||||
public final int bottomYBlockPos;
|
|
||||||
|
|
||||||
public final IDhApiBlockStateWrapper blockStateWrapper;
|
|
||||||
public final IDhApiBiomeWrapper biomeWrapper;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public DhApiTerrainDataPoint(byte detailLevel, int blockLightLevel, int skyLightLevel, int topYBlockPos, int bottomYBlockPos, IDhApiBlockStateWrapper blockStateWrapper, IDhApiBiomeWrapper biomeWrapper)
|
|
||||||
{
|
|
||||||
this.detailLevel = detailLevel;
|
|
||||||
|
|
||||||
this.blockLightLevel = blockLightLevel;
|
|
||||||
this.skyLightLevel = skyLightLevel;
|
|
||||||
this.topYBlockPos = topYBlockPos;
|
|
||||||
this.bottomYBlockPos = bottomYBlockPos;
|
|
||||||
|
|
||||||
this.blockStateWrapper = blockStateWrapper;
|
|
||||||
this.biomeWrapper = biomeWrapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.objects.math;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Often used to store block positions or any other
|
|
||||||
* position in 3D space.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-9
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiVec3d
|
|
||||||
{
|
|
||||||
public double x;
|
|
||||||
public double y;
|
|
||||||
public double z;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** creates a Vec3 at (0,0,0) */
|
|
||||||
public DhApiVec3d()
|
|
||||||
{
|
|
||||||
this.x = 0;
|
|
||||||
this.y = 0;
|
|
||||||
this.z = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DhApiVec3d(double x, double y, double z)
|
|
||||||
{
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
this.z = z;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj)
|
|
||||||
{
|
|
||||||
if (this == obj)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (obj != null && this.getClass() == obj.getClass())
|
|
||||||
{
|
|
||||||
DhApiVec3d Vec3d = (DhApiVec3d) obj;
|
|
||||||
if (Double.compare(Vec3d.x, this.x) != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (Double.compare(Vec3d.y, this.y) != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return Double.compare(Vec3d.z, this.z) == 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode()
|
|
||||||
{
|
|
||||||
long i = Double.doubleToLongBits(this.x);
|
|
||||||
i = 31 * i + Double.doubleToLongBits(this.y);
|
|
||||||
i = 31 * i + Double.doubleToLongBits(this.z);
|
|
||||||
return Long.hashCode(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() { return "[" + this.x + ", " + this.y + ", " + this.z + "]"; }
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Distant Horizons mod
|
|
||||||
* licensed under the GNU LGPL v3 License.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2020-2023 James Seibel
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, version 3.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api.objects.math;
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.util.IDhApiCopyable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Often used to store block positions or any other
|
|
||||||
* position in 3D space.
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-6-3
|
|
||||||
* @since API 2.2.0
|
|
||||||
*/
|
|
||||||
public class DhApiVec3f implements IDhApiCopyable
|
|
||||||
{
|
|
||||||
public float x;
|
|
||||||
public float y;
|
|
||||||
public float z;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** creates a Vec3 at (0,0,0) */
|
|
||||||
public DhApiVec3f()
|
|
||||||
{
|
|
||||||
this.x = 0;
|
|
||||||
this.y = 0;
|
|
||||||
this.z = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DhApiVec3f(float x, float y, float z)
|
|
||||||
{
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
this.z = z;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj)
|
|
||||||
{
|
|
||||||
if (this == obj)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (obj != null && this.getClass() == obj.getClass())
|
|
||||||
{
|
|
||||||
DhApiVec3f Vec3f = (DhApiVec3f) obj;
|
|
||||||
if (Float.compare(Vec3f.x, this.x) != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (Float.compare(Vec3f.y, this.y) != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return Float.compare(Vec3f.z, this.z) == 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode()
|
|
||||||
{
|
|
||||||
int i = Float.floatToIntBits(this.x);
|
|
||||||
i = 31 * i + Float.floatToIntBits(this.y);
|
|
||||||
return 31 * i + Float.floatToIntBits(this.z);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() { return "[" + this.x + ", " + this.y + ", " + this.z + "]"; }
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DhApiVec3f copy() { return new DhApiVec3f(this.x, this.y, this.z); }
|
|
||||||
|
|
||||||
}
|
|
||||||
-52
@@ -1,52 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.objects.render;
|
|
||||||
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiBlockMaterial;
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderableBoxGroup;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3d;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3f;
|
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IDhApiRenderableBoxGroup
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-6-30
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiRenderableBox
|
|
||||||
{
|
|
||||||
/** the position closest to (-inf,-inf) */
|
|
||||||
public DhApiVec3d minPos;
|
|
||||||
/** the position closest to (+inf,+inf) */
|
|
||||||
public DhApiVec3d maxPos;
|
|
||||||
|
|
||||||
public Color color;
|
|
||||||
public byte material;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//==============//
|
|
||||||
// constructors //
|
|
||||||
//==============//
|
|
||||||
|
|
||||||
public DhApiRenderableBox(DhApiVec3d minPos, float width, Color color, EDhApiBlockMaterial material)
|
|
||||||
{
|
|
||||||
this(minPos, new DhApiVec3d(
|
|
||||||
minPos.x + width,
|
|
||||||
minPos.y + width,
|
|
||||||
minPos.z + width
|
|
||||||
), color, material);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DhApiRenderableBox(DhApiVec3d minPos, DhApiVec3d maxPos, Color color, EDhApiBlockMaterial material)
|
|
||||||
{
|
|
||||||
this.minPos = minPos;
|
|
||||||
this.maxPos = maxPos;
|
|
||||||
this.color = color;
|
|
||||||
this.material = material.index;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
-93
@@ -1,93 +0,0 @@
|
|||||||
package com.seibel.distanthorizons.api.objects.render;
|
|
||||||
|
|
||||||
|
|
||||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderableBoxGroup;
|
|
||||||
import com.seibel.distanthorizons.api.objects.math.DhApiVec3f;
|
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IDhApiRenderableBoxGroup
|
|
||||||
*
|
|
||||||
* Shading values are multiplied against the color for each direction,
|
|
||||||
* for example: <br>
|
|
||||||
* A shading value of 1.0 indicates the color is unchanged. <br>
|
|
||||||
* A shading value of 0.0 changes the color to black. <br>
|
|
||||||
*
|
|
||||||
* @author James Seibel
|
|
||||||
* @version 2024-7-7
|
|
||||||
* @since API 3.0.0
|
|
||||||
*/
|
|
||||||
public class DhApiRenderableBoxGroupShading
|
|
||||||
{
|
|
||||||
/** negative X */
|
|
||||||
public float north = 1.0f;
|
|
||||||
/** positive X */
|
|
||||||
public float south = 1.0f;
|
|
||||||
|
|
||||||
/** positive X */
|
|
||||||
public float east = 1.0f;
|
|
||||||
/** negative X */
|
|
||||||
public float west = 1.0f;
|
|
||||||
|
|
||||||
/** positive Y */
|
|
||||||
public float top = 1.0f;
|
|
||||||
/** negative Y */
|
|
||||||
public float bottom = 1.0f;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//==============//
|
|
||||||
// constructors //
|
|
||||||
//==============//
|
|
||||||
|
|
||||||
public static DhApiRenderableBoxGroupShading getDefaultShaded()
|
|
||||||
{
|
|
||||||
DhApiRenderableBoxGroupShading shading = new DhApiRenderableBoxGroupShading();
|
|
||||||
shading.setDefaultShaded();
|
|
||||||
return shading;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DhApiRenderableBoxGroupShading getUnshaded()
|
|
||||||
{
|
|
||||||
DhApiRenderableBoxGroupShading shading = new DhApiRenderableBoxGroupShading();
|
|
||||||
shading.setUnshaded();
|
|
||||||
return shading;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=========//
|
|
||||||
// methods //
|
|
||||||
//=========//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Directions will have different brightness similar to Minecraft blocks. <br>
|
|
||||||
* This is a good default for un-lit objects.
|
|
||||||
*/
|
|
||||||
public void setDefaultShaded()
|
|
||||||
{
|
|
||||||
this.north = 0.8f;
|
|
||||||
this.south = 0.8f;
|
|
||||||
this.east = 0.6f;
|
|
||||||
this.west = 0.6f;
|
|
||||||
this.top = 1.0f;
|
|
||||||
this.bottom = 0.5f;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* All directions render with the same brightness. <br>
|
|
||||||
* This is best used for glowing objects like beacons.
|
|
||||||
*/
|
|
||||||
public void setUnshaded()
|
|
||||||
{
|
|
||||||
this.north = 1.0f;
|
|
||||||
this.south = 1.0f;
|
|
||||||
this.east = 1.0f;
|
|
||||||
this.west = 1.0f;
|
|
||||||
this.top = 1.0f;
|
|
||||||
this.bottom = 1.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
/**
|
|
||||||
* <strong> Start Here </strong> <br>
|
|
||||||
* {@link com.seibel.distanthorizons.api.DhApi} has almost every method you would want. <br><br>
|
|
||||||
*
|
|
||||||
* This package contains every method and object that is safe to use within the API.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.seibel.distanthorizons.api;
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user