Compare commits

..

10 commits

Author SHA1 Message Date
Nicholas Ignoffo 7b67070c65 Minor refactoring 2018-09-29 16:49:47 -07:00
Nicholas Ignoffo 23ae02af78 Beginning of soul system 2018-09-29 16:49:05 -07:00
Nicholas Ignoffo 85733d44d3 Fix an AIOB with bonus value getter 2018-09-15 17:03:52 -07:00
Nicholas Ignoffo 47938e8688 Add upgrade incompatibility and negative status to upgrade definition 2018-09-15 17:03:24 -07:00
Nicholas Ignoffo dbeced4839 Update README 2018-09-14 21:47:52 -07:00
Nicholas Ignoffo c3bf39aa78 Re-license under LGPL 2.1
For code, we're rewriting everything so this is fine to do. As for assets, we were given permission to do with them as we wish.
2018-09-14 21:47:42 -07:00
Nicholas Ignoffo 0003cc7847 Finish implementing jump upgrade
"living armor is done guys it has a properly functioning upgrade now :LUL:"
2018-09-09 16:46:38 -07:00
Nicholas Ignoffo 59142c2a9c JSON-based living upgrade definitions
Since they're just data, it's okay for them to be data driven. Also makes
it easier for outside sources (ie: a wiki) to parse the data to keep it
up to date.
2018-09-06 20:20:49 -07:00
Nicholas Ignoffo 2ca458aaea :zoomeyes: 😓
Just something I was playing around with
2018-09-04 19:58:09 -07:00
Nicholas Ignoffo 26af9d5c6d Initial commit for 3.0
The altar mostly works. Sigils exist. Orbs exist. Living Armor framework exists. Probably some other things.
2018-09-04 19:54:09 -07:00
2373 changed files with 10343 additions and 82761 deletions

4
.gitignore vendored
View file

@ -28,10 +28,12 @@ crash-reports/
*.iws
*.classpath
*.project
*.launch
# Specific files
Thumbs.db
usernamecache.json
options.txt
BloodMagic_Client.launch
BloodMagic_Server.launch
usercache.json

Binary file not shown.

View file

@ -1,2 +0,0 @@
connection.project.dir=
eclipse.preferences.version=1

View file

@ -1,392 +1,299 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
org.eclipse.jdt.core.codeComplete.fieldPrefixes=
org.eclipse.jdt.core.codeComplete.fieldSuffixes=
org.eclipse.jdt.core.codeComplete.localPrefixes=
org.eclipse.jdt.core.codeComplete.localSuffixes=
org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=1
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=1
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=1
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=1
org.eclipse.jdt.core.formatter.alignment_for_assertion_message=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=0
org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
org.eclipse.jdt.core.formatter.alignment_for_logical_operator=0
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=1
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=0
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=1
org.eclipse.jdt.core.formatter.alignment_for_record_components=16
org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=1
org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=0
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=17
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_record_constructor=next_line
org.eclipse.jdt.core.formatter.brace_position_for_record_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.comment.format_html=true
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
org.eclipse.jdt.core.formatter.comment.format_source_code=true
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
org.eclipse.jdt.core.formatter.comment.line_length=80
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_empty_lines=false
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
#
#Tue Dec 13 20:41:11 EST 2016
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true
org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_if_empty
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_preserve
org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=true
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=true
org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=true
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.comment.format_source_code=true
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.lineSplit=120
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=1
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
org.eclipse.jdt.core.formatter.comment.line_length=80
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.text_block_indentation=0
org.eclipse.jdt.core.formatter.use_on_off_tags=false
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
org.eclipse.jdt.core.formatter.comment.format_html=true
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=1
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
org.eclipse.jdt.core.formatter.tabulation.char=space
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
org.eclipse.jdt.core.formatter.comment.format_line_comments=false
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
org.eclipse.jdt.core.formatter.indent_empty_lines=false
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.alignment_for_compact_if=49
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.jdt.core.formatter.lineSplit=600
org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
eclipse.preferences.version=1
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=next_line
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.blank_lines_before_field=0

View file

@ -1,12 +1,11 @@
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=_WayofTime-Dev
formatter_settings_version=20
formatter_profile=_BloodMagic
formatter_settings_version=12
org.eclipse.jdt.ui.exception.name=e
org.eclipse.jdt.ui.gettersetter.use.is=true
org.eclipse.jdt.ui.keywordthis=false
org.eclipse.jdt.ui.overrideannotation=true
org.eclipse.jdt.ui.text.custom_code_templates=
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.add_missing_annotations=true
@ -22,39 +21,29 @@ sp_cleanup.always_use_this_for_non_static_field_access=false
sp_cleanup.always_use_this_for_non_static_method_access=false
sp_cleanup.convert_functional_interfaces=false
sp_cleanup.convert_to_enhanced_for_loop=false
sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false
sp_cleanup.correct_indentation=false
sp_cleanup.format_source_code=true
sp_cleanup.format_source_code_changes_only=false
sp_cleanup.insert_inferred_type_arguments=false
sp_cleanup.lazy_logical_operator=false
sp_cleanup.make_local_variable_final=true
sp_cleanup.make_parameters_final=false
sp_cleanup.make_private_fields_final=true
sp_cleanup.make_type_abstract_if_missing_method=false
sp_cleanup.make_variable_declarations_final=false
sp_cleanup.merge_conditional_blocks=false
sp_cleanup.never_use_blocks=false
sp_cleanup.never_use_parentheses_in_expressions=true
sp_cleanup.number_suffix=false
sp_cleanup.objects_equals=false
sp_cleanup.on_save_use_additional_actions=false
sp_cleanup.organize_imports=true
sp_cleanup.precompile_regex=false
sp_cleanup.push_down_negation=false
sp_cleanup.organize_imports=false
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
sp_cleanup.remove_private_constructors=true
sp_cleanup.remove_redundant_modifiers=false
sp_cleanup.remove_redundant_semicolons=false
sp_cleanup.remove_redundant_type_arguments=false
sp_cleanup.remove_redundant_type_arguments=true
sp_cleanup.remove_trailing_whitespaces=false
sp_cleanup.remove_trailing_whitespaces_all=true
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
sp_cleanup.remove_unnecessary_array_creation=false
sp_cleanup.remove_unnecessary_casts=true
sp_cleanup.remove_unnecessary_nls_tags=false
sp_cleanup.remove_unused_imports=false
@ -63,19 +52,15 @@ sp_cleanup.remove_unused_private_fields=true
sp_cleanup.remove_unused_private_members=false
sp_cleanup.remove_unused_private_methods=true
sp_cleanup.remove_unused_private_types=true
sp_cleanup.simplify_lambda_expression_and_method_ref=false
sp_cleanup.sort_members=false
sp_cleanup.sort_members_all=false
sp_cleanup.use_anonymous_class_creation=false
sp_cleanup.use_autoboxing=false
sp_cleanup.use_blocks=false
sp_cleanup.use_blocks_only_for_return_and_throw=false
sp_cleanup.use_directly_map_method=false
sp_cleanup.use_lambda=true
sp_cleanup.use_parentheses_in_expressions=false
sp_cleanup.use_this_for_non_static_field_access=false
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
sp_cleanup.use_this_for_non_static_method_access=false
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
sp_cleanup.use_unboxing=false
sp_cleanup.use_var=false
sp_cleanup.use_type_arguments=false

View file

@ -1,308 +0,0 @@
<mxfile host="app.diagrams.net" modified="2021-01-22T21:11:44.010Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" etag="UMXAYi54hT_YnFN6ThvD" version="14.2.3" type="github">
<diagram id="kgpKYQtTHZ0yAKxKKP6v" name="Page-1">
<mxGraphModel dx="383" dy="653" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="3nuBFxr9cyL0pnOWT2aG-1" value="T1 Blood Altar" style="shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;rounded=0;shadow=0;strokeWidth=1;size=40;" parent="1" vertex="1">
<mxGeometry x="320" y="40" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.005;entryY=0.518;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-2" target="3nuBFxr9cyL0pnOWT2aG-1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="370" y="80" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-2" value="Gold Access&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="200" y="40" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-4" target="AL4MJqAyBT561Gl4Sr2e-42">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-4" value="Soul Snare" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="720" y="40" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-5" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1.001;exitY=0.504;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="3nuBFxr9cyL0pnOWT2aG-1" target="AL4MJqAyBT561Gl4Sr2e-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="480" y="110" as="sourcePoint" />
<mxPoint x="450" y="270" as="targetPoint" />
<Array as="points">
<mxPoint x="430" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-6" value="String or Iron" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="540" y="50" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-9" target="AL4MJqAyBT561Gl4Sr2e-43">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-9" target="AL4MJqAyBT561Gl4Sr2e-47">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-9" value="Hellfire Forge" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="600" y="160" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-12" target="AL4MJqAyBT561Gl4Sr2e-33">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-12" value="Alchemy Table" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="120" y="160" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-13" target="AL4MJqAyBT561Gl4Sr2e-35">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-13" value="Arcane Ash" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry y="160" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-14" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-12" target="AL4MJqAyBT561Gl4Sr2e-13">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="160" as="sourcePoint" />
<mxPoint x="470" y="110" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-15" value="Weak Blood orb" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="240" y="160" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-18" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-15" target="AL4MJqAyBT561Gl4Sr2e-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="160" as="sourcePoint" />
<mxPoint x="470" y="110" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-19" target="AL4MJqAyBT561Gl4Sr2e-38">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-19" value="Blank Slate" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="385" y="160" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-26" value="" style="endArrow=classic;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.501;exitY=0.997;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="3nuBFxr9cyL0pnOWT2aG-1" target="AL4MJqAyBT561Gl4Sr2e-19">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="348" y="160" as="sourcePoint" />
<mxPoint x="430" y="90" as="targetPoint" />
<Array as="points">
<mxPoint x="360" y="120" />
<mxPoint x="400" y="120" />
<mxPoint x="425" y="120" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-54" value="Smooth Stone" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];" vertex="1" connectable="0" parent="AL4MJqAyBT561Gl4Sr2e-26">
<mxGeometry x="-0.0617" y="-1" relative="1" as="geometry">
<mxPoint x="12.06" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-28" value="" style="endArrow=classic;html=1;exitX=0.498;exitY=0.997;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="3nuBFxr9cyL0pnOWT2aG-1" target="AL4MJqAyBT561Gl4Sr2e-15">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="160" as="sourcePoint" />
<mxPoint x="470" y="110" as="targetPoint" />
<Array as="points">
<mxPoint x="360" y="120" />
<mxPoint x="280" y="120" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-53" value="Diamond" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="AL4MJqAyBT561Gl4Sr2e-28">
<mxGeometry x="0.1683" relative="1" as="geometry">
<mxPoint x="13.67" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-31" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-19" target="AL4MJqAyBT561Gl4Sr2e-9">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="160" as="sourcePoint" />
<mxPoint x="470" y="110" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-33" target="AL4MJqAyBT561Gl4Sr2e-35">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-33" value="Reagents (orb dependent)" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="120" y="240" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-35" value="Sigils" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry y="240" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-38" target="AL4MJqAyBT561Gl4Sr2e-40">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-38" value="Blank Rune" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="385" y="240" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-40" target="AL4MJqAyBT561Gl4Sr2e-50">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-40" value="T2 Blood Altar" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="480" y="400" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-42" target="AL4MJqAyBT561Gl4Sr2e-43">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-42" value="Will" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="720" y="100" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-43" target="AL4MJqAyBT561Gl4Sr2e-64">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-43" value="Petty Gem" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="720" y="160" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-47" value="Sentient Sword &amp;amp; Tools" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="600" y="240" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-49" target="AL4MJqAyBT561Gl4Sr2e-50">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="40" y="700" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-52" value="Glowstone" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="AL4MJqAyBT561Gl4Sr2e-51">
<mxGeometry x="-0.106" y="1" relative="1" as="geometry">
<mxPoint x="59" y="88.33" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-49" target="AL4MJqAyBT561Gl4Sr2e-56">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-59" value="Nether Wart" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="AL4MJqAyBT561Gl4Sr2e-58">
<mxGeometry x="-0.1111" y="2" relative="1" as="geometry">
<mxPoint y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-49" value="Nether Access" style="ellipse;whiteSpace=wrap;html=1;rounded=1;glass=0;" vertex="1" parent="1">
<mxGeometry y="320" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-50" target="AL4MJqAyBT561Gl4Sr2e-70">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-50" target="AL4MJqAyBT561Gl4Sr2e-72">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-84" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-50" target="AL4MJqAyBT561Gl4Sr2e-83">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-50" value="T3 Blood Altar" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="240" y="680" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-56" value="Lvl 1 Anointments" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="200" y="320" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-57" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-12" target="AL4MJqAyBT561Gl4Sr2e-56">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="470" as="sourcePoint" />
<mxPoint x="520" y="420" as="targetPoint" />
<Array as="points">
<mxPoint x="160" y="220" />
<mxPoint x="240" y="220" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-60" value="Alchemy Flask" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="280" y="440" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-61" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-12" target="AL4MJqAyBT561Gl4Sr2e-60">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="380" as="sourcePoint" />
<mxPoint x="520" y="330" as="targetPoint" />
<Array as="points">
<mxPoint x="160" y="220" />
<mxPoint x="320" y="220" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-62" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-40" target="AL4MJqAyBT561Gl4Sr2e-60">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="380" as="sourcePoint" />
<mxPoint x="520" y="330" as="targetPoint" />
<Array as="points">
<mxPoint x="320" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-63" value="Glass Bottle" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="AL4MJqAyBT561Gl4Sr2e-62">
<mxGeometry x="-0.3623" y="2" relative="1" as="geometry">
<mxPoint x="-9.17" y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-64" target="AL4MJqAyBT561Gl4Sr2e-66">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-64" value="Lesser Gem" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="720" y="400" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-66" target="AL4MJqAyBT561Gl4Sr2e-74">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-66" value="Common Gem" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="720" y="680" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-68" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-49" target="AL4MJqAyBT561Gl4Sr2e-60">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="460" as="sourcePoint" />
<mxPoint x="520" y="410" as="targetPoint" />
<Array as="points">
<mxPoint x="140" y="340" />
<mxPoint x="140" y="400" />
<mxPoint x="140" y="460" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-70" target="AL4MJqAyBT561Gl4Sr2e-77">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-70" value="Rituals" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="320" y="760" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-72" value="Living Armo(u)r" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="160" y="760" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-78" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-74" target="AL4MJqAyBT561Gl4Sr2e-76">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-74" value="Demon Crystallizer &amp;amp; Crucible" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="720" y="760" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-76" target="AL4MJqAyBT561Gl4Sr2e-77">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-76" target="AL4MJqAyBT561Gl4Sr2e-81">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="600" y="860" />
<mxPoint x="760" y="860" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-76" value="Crystallized Will" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="560" y="760" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-77" value="Augmented Rituals" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="440" y="840" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-81" value="Greater Gem" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="720" y="920" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-83" target="AL4MJqAyBT561Gl4Sr2e-85">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-83" value="ARC" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="240" y="840" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-86" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-85" target="AL4MJqAyBT561Gl4Sr2e-81">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-89" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="AL4MJqAyBT561Gl4Sr2e-85" target="AL4MJqAyBT561Gl4Sr2e-88">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-85" value="Weak Bloodshard" style="rounded=1;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="240" y="920" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-88" value="T4 Blood Altar" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="240" y="1000" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="AL4MJqAyBT561Gl4Sr2e-90" value="Demon Dungeons" style="rounded=0;whiteSpace=wrap;html=1;glass=0;" vertex="1" parent="1">
<mxGeometry x="360" y="1080" width="80" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

557
LICENSE
View file

@ -1,87 +1,502 @@
Creative Commons Attribution 4.0 International Public License
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Section 1 Definitions.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
Licensor means the individual(s) or entity(ies) granting rights under this Public License.
Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
Section 2 Scope.
Preamble
License grant.
Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
reproduce and Share the Licensed Material, in whole or in part; and
produce, reproduce, and Share Adapted Material.
Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
Term. The term of this Public License is specified in Section 6(a).
Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
Downstream recipients.
Offer from the Licensor Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
Other rights.
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
Patent and trademark rights are not licensed under this Public License.
To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
Section 3 License Conditions.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
Attribution.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
If You Share the Licensed Material (including in modified form), You must:
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
retain the following if it is supplied by the Licensor with the Licensed Material:
identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
a copyright notice;
a notice that refers to this Public License;
a notice that refers to the disclaimer of warranties;
a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
Section 4 Sui Generis Database Rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
Section 5 Disclaimer of Warranties and Limitation of Liability.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
Section 6 Term and Termination.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
Section 7 Other Terms and Conditions.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
Section 8 Interpretation.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library 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; either
version 2.1 of the License, or (at your option) any later version.
This library 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 library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

121
README.md
View file

@ -1,120 +1,65 @@
# Blood Magic: Alchemical Wizardry [![](http://cf.way2muchnoise.eu/full_blood-magic_downloads.svg)](https://minecraft.curseforge.com/projects/blood-magic) [![Discord](https://img.shields.io/discord/259683256348311552.svg?colorB=7289DA&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAABWAgMAAABnZYq0AAAACVBMVEUAAB38%2FPz%2F%2F%2F%2Bm8P%2F9AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfhBxwQJhxy2iqrAAABoElEQVRIx7WWzdGEIAyGgcMeKMESrMJ6rILZCiiBg4eYKr%2Fd1ZAfgXFm98sJfAyGNwno3G9sLucgYGpQ4OGVRxQTREMDZjF7ILSWjoiHo1n%2BE03Aw8p7CNY5IhkYd%2F%2F6MtO3f8BNhR1QWnarCH4tr6myl0cWgUVNcfMcXACP1hKrGMt8wcAyxide7Ymcgqale7hN6846uJCkQxw6GG7h2MH4Czz3cLqD1zHu0VOXMfZjHLoYvsdd0Q7ZvsOkafJ1P4QXxrWFd14wMc60h8JKCbyQvImzlFjyGoZTKzohwWR2UzSONHhYXBQOaKKsySsahwGGDnb%2FiYPJw22sCqzirSULYy1qtHhXGbtgrM0oagBV4XiTJok3GoLoDNH8ooTmBm7ZMsbpFzi2bgPGoXWXME6XT%2BRJ4GLddxJ4PpQy7tmfoU2HPN6cKg%2BledKHBKlF8oNSt5w5g5o8eXhu1IOlpl5kGerDxIVT%2BztzKepulD8utXqpChamkzzuo7xYGk%2FkpSYuviLXun5bzdRf0Krejzqyz7Z3p0I1v2d6HmA07dofmS48njAiuMgAAAAASUVORK5CYII%3D)](https://discord.gg/VtNrGrs)
# Blood Magic: Alchemical Wizardry [![](https://cf.way2muchnoise.eu/full_blood-magic_downloads.svg)](https://minecraft.curseforge.com/projects/blood-magic) [![Discord](https://img.shields.io/discord/259683256348311552.svg?colorB=7289DA&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAABWAgMAAABnZYq0AAAACVBMVEUAAB38%2FPz%2F%2F%2F%2Bm8P%2F9AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfhBxwQJhxy2iqrAAABoElEQVRIx7WWzdGEIAyGgcMeKMESrMJ6rILZCiiBg4eYKr%2Fd1ZAfgXFm98sJfAyGNwno3G9sLucgYGpQ4OGVRxQTREMDZjF7ILSWjoiHo1n%2BE03Aw8p7CNY5IhkYd%2F%2F6MtO3f8BNhR1QWnarCH4tr6myl0cWgUVNcfMcXACP1hKrGMt8wcAyxide7Ymcgqale7hN6846uJCkQxw6GG7h2MH4Czz3cLqD1zHu0VOXMfZjHLoYvsdd0Q7ZvsOkafJ1P4QXxrWFd14wMc60h8JKCbyQvImzlFjyGoZTKzohwWR2UzSONHhYXBQOaKKsySsahwGGDnb%2FiYPJw22sCqzirSULYy1qtHhXGbtgrM0oagBV4XiTJok3GoLoDNH8ooTmBm7ZMsbpFzi2bgPGoXWXME6XT%2BRJ4GLddxJ4PpQy7tmfoU2HPN6cKg%2BledKHBKlF8oNSt5w5g5o8eXhu1IOlpl5kGerDxIVT%2BztzKepulD8utXqpChamkzzuo7xYGk%2FkpSYuviLXun5bzdRf0Krejzqyz7Z3p0I1v2d6HmA07dofmS48njAiuMgAAAAASUVORK5CYII%3D)](https://discord.gg/VtNrGrs)
### Gruesome? Probably. Worth it? Definitely!
### [Downloads](http://minecraft.curseforge.com/projects/blood-magic/files)
## Information
Gruesome? Probably. Worth it? Definitely!
Have you ever picked up a magic mod for Minecraft, and thought that it was too tame? Was there not enough danger involved when creating your next high-tech gadget? Bored with all of those peaceful animals just staring at you without a care in the world? Well then, I am glad you came here!
Blood Magic is an arcane art that is practiced by mages who attempt to gather a vast amount of power through utilizing a forbidden material: blood. Even though it does grant a huge amount of power, every single action that is performed with this volatile magic can prove deadly. You have been warned.
## Links
* [Minecraft Forum Thread](https://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1290532-bm)
### WayofTime:
* Twitter: [@WayofTime](https://twitter.com/WayofTime)
* Wiki: Found at [FTBWiki](http://ftbwiki.org/Blood_Magic)
* [Minecraft Forum Thread](http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1290532-bm)
* [Curseforge](http://minecraft.curseforge.com/projects/blood-magic)
* [Donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=J7SNY7L82PQ82)
* [Patreon](https://www.patreon.com/BloodMagic)
## Development Setup
### TehNut
1. Fork this project to your own Github repository and clone it to your desktop.
2. Navigate to the directory you cloned to. Follow the [Forge Documentation](http://mcforge.readthedocs.io/en/latest/gettingstarted/#from-zero-to-modding) (start at step 4) to setup your workspace. If you use IDEA, follow [this set](http://mcforge.readthedocs.io/en/latest/gettingstarted/#terminal-free-intellij-idea-configuration) of steps.
* Twitter: [@OfficialTehNut](https://twitter.com/OfficialTehNut)
* [Website](https://tehnut.info)
#### IntelliJ IDEA extra steps
## Building
1. Navigate to `File > Settings > Plugins > Browse repositories...`. Search for Lombok and install the plugin.
2. Navigate to `File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors`. Check `Enable annotation processing`.
[Setup video](https://www.youtube.com/watch?v=8VEdtQLuLO0&feature=youtu.be) by LexManos. For more information, refer to the [Forge Forums](http://www.minecraftforge.net/forum/index.php/topic,14048.0.html).
## Developing Addons
Add to your build.gradle:
repositories {
maven {
url "http://tehnut.info/maven/"
}
}
dependencies {
deobfCompile "com.wayoftime.bloodmagic:BloodMagic:<BLOODMAGIC-VERSION>"
}
`<BLOODMAGIC-VERSION>` can be found on CurseForge (or via the Maven itself), check the file name of the version you want.
## Custom Builds
**Custom builds are *unsupported*. If you have an issue while using an unofficial build, it is not guaranteed that you will get support.**
#### How to make a custom build:
1. Clone directly from this repository to your desktop.
2. Navigate to the directory you cloned to. Open a command window there and run `gradlew build`
3. Once it completes, your new build will be found at `../build/libs/BloodMagic-*.jar`. You can ignore the `deobf`, `sources`, and `javadoc` jars.
1. Clone this repository to your local file system.
2. Open a terminal in the directory you cloned to.
3. Run `gradlew build` (or `./gradlew build` if that doesn't work).
4. Navigate to `./build/libs`, you will find the compiled jars there.
## License
![CCA4.0](https://licensebuttons.net/l/by/4.0/88x31.png)
Blood Magic: AlchemicalWizardry by WayofTime is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).
Blood Magic: AlchemicalWizardry by WayofTime is licensed under the [GNU Lesser General Public License 2.1](https://tldrlegal.com/license/gnu-lesser-general-public-license-v2.1-(lgpl-2.1)).
## Installation Instructions
This mod requires "Minecraft Forge" in order to operate. It is incredibly easy to download and set up, so might as well get to it!
1. Download [Forge](http://files.minecraftforge.net/). Usually "Recommended" is best - you want the "universal", not the source. Forge also has an "install" option now, so all you need to do is launch that program and it will make a lovely Forge profile. If you haven't, look up how to use the installer and the new 1.6.x launcher if you are confused!
1. Download [Forge](https://files.minecraftforge.net/). Usually "Recommended" is best - you want the "universal", not the source. Forge also has an "install" option now, so all you need to do is launch that program and it will make a lovely Forge profile. If you haven't, look up how to use the installer and the new 1.6.x launcher if you are confused!
2. Download the latest version of BloodMagic from [Curseforge](http://minecraft.curseforge.com/mc-mods/224791-blood-magic).
2. Download the latest version of BloodMagic from [Curseforge](https://minecraft.curseforge.com/projects/blood-magic).
3. Place the mod in the **mods** folder of your .minecraft. If you are unsure of where that is located, it is here: `../Users/you/AppData/roaming/.minecraft`.
## FAQ
## Development Setup
**Q**: My weak blood orb doesn't show my current LP! Fix it please.
First, clone this repository to your local file system, then follow the steps outlined on the [Minecraft Forge documentation site](https://mcforge.readthedocs.io/en/latest/gettingstarted/#from-zero-to-modding).
**A**: The mechanic for viewing the player's essence has changed due to some issues with mechanics. You now need a Divination Sigil to view a player's essence. It does other things, too, so it is worth it!
## Adding Compatibility
**Q**: Why am I dying so much?
Add to your build.gradle:
**A**: It might be a good idea to make sure that you have enough essence to do a task. If you don't have enough essence for, say, an imperfect ritual, it will take it out of your health. If your health reaches 0... Well, you don't have to be a genius to see what would happen.
```groovy
repositories {
maven { url "https://tehnut.info/maven/" }
}
```
**Q**: Waffles?
```groovy
dependencies {
deobfCompile "com.wayoftime.bloodmagic:BloodMagic:${BLOODMAGIC_VERSION}:api"
}
```
**A**: Waffles!
**Q**: Where is x? When I watched spotlight "w," it had an item called x. Don't you need x to make y, before you can create z?
**A**: It might be wise to look at an updated spotlight, or check the changelogs. I'm not evil, so I do document everything that I can. There was most likely some issues with balance with the item, so it may have been removed for those reasons. Or you just grabbed the item from NEI without seeing it was a test item, in which case: shame on you!
**Q**: Isn't that armour ...
**A**: Yes, the armour texture is from the mod EE2. Pahimar and I are good friends, and I decided to use it for the armour and tools. He has given me his express permission for it, so need not worry!
[Proof](https://twitter.com/Pahimar/status/453590600689139712).
**Q**: My game is crashing with the latest TC4!
**A**: To help stop this, remove the TC4 API from my Blood Magic zip file (if it is there). It should solve things.
**Q**: But, my Thaumcraft aspects are messed up!
**A**: Once again, remove the TC4 API from the Blood Magic zip file to solve this. Azanor changed some aspect combinations.
**Q**: When will 1.7.2 be released?
**A**: It's out! Go get it!
**Q**: Way, I've just had an amazing idea! Why not add an in-game book just like the Thaumonomicon?
**A**: This has been suggested several times. It I being worked on, and is proceeding quite well. Some framework needs to be completed, but it isn't a priority - ALL of the information you need is on this post, or online.
**Q**: Why do I not have a Sacrificial Orb? It's only showing up as a knife!
**A**: This is a config option. The person you saw with an orb had a config that changed the knife to an orb. The orb and knife function exactly the same way, but you can change it in the configs by looking for the "Idontlikefun" option.
**Q**: When I respawn, I appear to only come back with 3 hearts. What's happening?
**A**: This is due to another config option in the "WhimpySettings," which is due to my attempt to combat Zerg Rushing. You can disable this if you really want to, but it shouldn't hurt unduly.
`${BLOODMAGIC_VERSION}` can be found on CurseForge (or via the Maven itself), check the file name of the version you want. If making a full addon, remove the `:api` modifier to get the full project.

View file

@ -1,199 +1,177 @@
buildscript {
repositories {
maven { url = 'https://files.minecraftforge.net/maven' }
jcenter()
mavenCentral()
maven { url "http://files.minecraftforge.net/maven" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
}
}
apply plugin: 'net.minecraftforge.gradle'
// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
version = '1.16.4-3.1.0-15'
group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'BloodMagic'
plugins {
id "net.minecraftforge.gradle.forge" version "2.0.2"
id 'com.matthewprenger.cursegradle' version '1.0.10'
id 'maven-publish'
}
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
sourceSets {
compat {
compileClasspath += sourceSets.main.runtimeClasspath + sourceSets.main.output
}
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
minecraft {
// The mappings can be changed at any time, and must be in the following format.
// snapshot_YYYYMMDD Snapshot are built nightly.
// stable_# Stables are built at the discretion of the MCP team.
// Use non-default mappings at your own risk. they may not always work.
// Simply re-run your setup task after changing the mappings to update your workspace.
mappings channel: 'snapshot', version: '20200916-1.16.2'
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
// accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
// Default run configurations.
// These can be tweaked, removed, or duplicated as needed.
runs {
client {
workingDirectory project.file('run')
properties 'mixin.env.disableRefMap': 'true'
// Recommended logging data for a userdev environment
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
// Recommended logging level for the console
property 'forge.logging.console.level', 'debug'
mods {
bloodmagic {
source sourceSets.main
}
}
}
server {
workingDirectory project.file('run')
properties 'mixin.env.disableRefMap': 'true'
// Recommended logging data for a userdev environment
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
// Recommended logging level for the console
property 'forge.logging.console.level', 'debug'
mods {
bloodmagic {
source sourceSets.main
}
}
}
data {
workingDirectory project.file('run')
properties 'mixin.env.disableRefMap': 'true'
// Recommended logging data for a userdev environment
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
// Recommended logging level for the console
property 'forge.logging.console.level', 'debug'
args '--mod', 'bloodmagic', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
mods {
bloodmagic {
source sourceSets.main
}
}
}
main {
runtimeClasspath += sourceSets.compat.runtimeClasspath
}
}
def build_number = System.getenv('BUILD_NUMBER') != null ? System.getenv('BUILD_NUMBER') : 'CUSTOM'
def username = project.hasProperty('dev_username') ? "${dev_username}" : "${mod_name}"
group = package_group
archivesBaseName = mod_name
version = "${mc_version}-${mod_version}-${build_number}"
repositories {
maven {
url "http://dvs1.progwml6.com/files/maven/"
}
maven {
name = "The Loader"
url = "https://maven.blamejared.com"
}
maven { url "http://dvs1.progwml6.com/files/maven" }
maven { url "http://tehnut.info/maven" }
}
dependencies {
// Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
// that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
// The userdev artifact is a special name and will get all sorts of transformations applied to it.
minecraft 'net.minecraftforge:forge:1.16.4-35.1.37'
// compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}:api")
// runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}")
//deobfCompile "mezz.jei:jei_${minecraft_version}:${jei_version}"
compileOnly fg.deobf("mezz.jei:jei-1.16.2:7.1.3.19:api")
runtimeOnly fg.deobf("mezz.jei:jei-1.16.2:7.1.3.19")
compileOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}:api")
runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}")
compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.16.4:7.1.0.84")
// You may put jars on which you depend on in ./libs or you may define them like so..
// compile "some.group:artifact:version:classifier"
// compile "some.group:artifact:version"
// Real examples
// compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
// compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
// The 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime.
// provided 'com.mod-buildcraft:buildcraft:6.0.8:dev'
// These dependencies get remapped to your current MCP mappings
// deobf 'com.mod-buildcraft:buildcraft:6.0.8:dev'
// For more info...
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
deobfCompile "mcp.mobius.waila:Hwyla:${hwyla_version}:api"
runtime "mcp.mobius.waila:Hwyla:${hwyla_version}"
deobfCompile "mezz.jei:jei_${mc_version}:${jei_version}:api"
runtime "mezz.jei:jei_${mc_version}:${jei_version}"
}
// Example for how to get properties into the manifest for reading by the runtime..
jar {
manifest {
attributes([
"Specification-Title": "bloodmagic",
"Specification-Vendor": "bloodmagicsareus",
"Specification-Version": "1", // We are version 1 of ourselves
"Implementation-Title": project.name,
"Implementation-Version": "${version}",
"Implementation-Vendor" :"bloodmagicsareus",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
minecraft {
version = "${mc_version}-${forge_version}"
runDir = "run"
replace '${VERSION}', project.version
replaceIn "BloodMagic.java"
clientRunArgs += "--username=${username}"
if (project.hasProperty('mappings_version'))
mappings = project.mappings_version
}
processResources {
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
from(sourceSets.main.resources.srcDirs) {
include '**/*.info'
include '**/*.properties'
expand 'version': project.version, 'mcversion': project.minecraft.version
}
from(sourceSets.main.resources.srcDirs) {
exclude '**/*.info'
exclude '**/*.properties'
}
}
// Example configuration to allow publishing using the maven-publish task
// This is the preferred method to reobfuscate your jar file
jar.finalizedBy('reobfJar')
// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing
//publish.dependsOn('reobfJar')
sourceSets.main.resources {
srcDir 'src/generated/resources'
}
task srcJar(type: Jar) {
from(sourceSets.main.java)
classifier = 'sources'
jar {
classifier = ''
from sourceSets.main.output
from sourceSets.api.output
from sourceSets.compat.output
manifest.mainAttributes(
"Built-By": System.getProperty('user.name'),
"Created-By": "${System.getProperty('java.vm.version')} + (${System.getProperty('java.vm.vendor')})",
"Implementation-Title": project.name,
"Implementation-Version": project.version,
"Built-On": "${mc_version}-${forge_version}"
)
}
task apiJar(type: Jar) {
from(sourceSets.main.allJava)
from(sourceSets.main.output)
include 'wayoftime/bloodmagic/api/**'
classifier = 'api'
from sourceSets.api.output
// TODO: when FG bug is fixed, remove allJava from the api jar.
// https://github.com/MinecraftForge/ForgeGradle/issues/369
// Gradle should be able to pull them from the -sources jar.
from sourceSets.api.allJava
}
artifacts {
archives srcJar, apiJar
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allJava
from sourceSets.api.allJava
from sourceSets.compat.allJava
}
tasks.build.dependsOn apiJar, sourcesJar
tasks.withType(JavaCompile) { task ->
task.options.encoding = 'UTF-8'
}
publishing {
tasks.publish.dependsOn 'build'
publications {
mavenJava(MavenPublication) {
artifact jar
artifact srcJar
artifact sourcesJar
artifact apiJar
}
}
repositories {
maven {
url "file:///${project.projectDir}/mcmodsrepo"
if (project.hasProperty('maven_repo')) {
maven { url maven_repo }
} else {
mavenLocal()
}
}
}
}
String getChangelogText() {
def changelogFile = new File('changelog.txt')
String str = ''
String separator = '---'
int lineCount = 0
boolean done = false
changelogFile.eachLine {
if (done || it == null) {
return
}
if (lineCount < 3) {
lineCount++
if (it.startsWith(separator)) {
return
}
}
if (!it.startsWith(separator)) {
str += "$it" + (lineCount < 3 ? ':\n\n' : '\n')
return
}
done = true // once we go past the first version block, parse no more
}
return str
}
def curseRelations = {
optionalLibrary 'jei'
optionalLibrary 'hwyla'
requiredLibrary 'guide-api'
}
curseforge {
if (project.hasProperty('curse_key_WayofTime'))
apiKey = project.curse_key_WayofTime
project {
id = "${curse_id}"
changelog = getChangelogText()
releaseType = 'alpha'
relations curseRelations
addArtifact sourcesJar
addArtifact apiJar
}
}

View file

@ -1,321 +1,3 @@
------------------------------------------------------
Version 3.1.0
------------------------------------------------------
- Majorly refactored the progression of the mod. Instead of starting with a Snare, you instead start by crafting the Blood Altar. The changes are documented in the guide, and you can follow its "Getting Started" entry!
- Changed the tooltips so that they are gray, more easily differentiating them from the name of the item.
- Added the Sigil of Holding
- Changed the crafting of Tartaric Gems so that you no longer need to use the previous tier gem in the gem slot.
-> The Hellfire Forge will now syphon from the gem in the crafting table first, and all unused will from the consumed gem will be placed in the crafted gem.
- Changed the GUI for the Alchemy Table
-> You can now select which sides that an input/output slot is accessible from. Click on the slot you wish to change, then click on the directional toggle buttons.
- Fixed Plunderer's Glint not properly applying the Looting level.
- Also fixed a NPE crash due to Iron Tip. Fixes some crashes due to mods using the ItemUsedFinish event.
- Fixed the Blood Altar not being able to input fluids. About time, Way!
- Added new Explosive Charges
-> Fungal Charge, which is very useful for giant mushrooms and nether mushrooms
-> Controlled Charge, which will destroy only blocks that match the block it is placed on.
- Added the ability to apply a few select Anointments to the charges. Only one can be applied to a charge at a time.
-> Soft Touch, Fortuna, and Smelting
- Fixed the Living Armour so that you cannot use an upgrade tome to usurp the point cap.
-> Fixed "Strong Legs" so that it no longer runs the program "CrunchyLegs.exe" - as a result, you no longer suffer fall damage from jumping on the same level.
-> Removed the direct fall damage mitigation from "Strong Legs"
- Added two types of Throwing Daggers to the Blood Mage's offensive kit.
-> Iron Throwing Dagger
-> Syringe Throwing Dagger
- Refactored the guide so that it provides +2 to awesomeness.
------------------------------------------------------
Version 3.0.6
------------------------------------------------------
- Reimplemented the Well of Suffering.
- Added several new items, called "Anointments"! These are items that provide temporary buffs to your tools and weapons, such as silk touch, higher damage, and more! Look them up in the Utility section of the book. These include:
- Honing Oil
- Soft Coating
- Fortuna Extract
- Holy Water
- Miner's Secrets
- Dexterity Alkahest
- Iron Tip
- Plunderer's Glint
- Slow-burning Oil
------------------------------------------------------
Version 3.0.5
------------------------------------------------------
- Fixed a crash with the Blood Altar because I am dumb.
- Also fixed the recipe for the Day array. Now you don't need to clean your clocks!
------------------------------------------------------
Version 3.0.4
------------------------------------------------------
- Added two new explosives:
- The Shaped Charge, which will break a 5x5x5 volume when placed
- The Deforester Charge, which can chop down a tree up to a maximum of 128 logs.
- (Both explosives drop all blocks affected, and do not cause further environmental nor entity damage.)
- Added new alchemy arrays:
- Two arrays, which changes the current daylight cycle to day and night. Recipes are temp.
- Fixed the following Living Armour upgrades so that they are now obtainable:
- Experienced
- Body Builder
- Fixed Living Armour not upgrading under certain conditions.
- Fixed the two rituals involving Living Armour so that they are properly activatable using a Weak Activation Crystal.
- Fixed NPE in Blood Altar when trying to interact with the contained Fluids
- Also fixed bug that prevented the Altar from accepting fluids piped in as inputs.
- Fixed a client-side crash when right clicking the ground with a Lava Crystal when on a server - now properly makes a fire without consuming the client.
- Fixed the JEI so that it no longer ouputs an error when loading Alchemy Array recipes without a crafting output.
- Fixed crash with Actually Additions
------------------------------------------------------
Version 3.0.3
------------------------------------------------------
- Updated the Sanguine Scientiem - it's very well written! Special thanks to both VT-14 and Wrince for their long hours of effort to make this book better than I could have done!
- Fixed a crash with the Living Armour when crafted and worn right after enchanting.
------------------------------------------------------
Version 3.0.2
------------------------------------------------------
Readded the Living Armour. Currently only with a few upgrades, and no downgrades.
- Pin Cushion
- Soft Fall
- Tough
- Strong Legs (Now can be temporarily deactivated when jumping by sneaking)
- Healthy
- Experienced
- Charging Strike
- Tough Palms
- Quick Feet
- Poison Resistance
- Gift of Ignis
- Dwarven Might
- Body Builder
Reimplemented the following rituals:
- Resonance of the Faceted Crystal
- Crack of the Fractured Crystal
- Reap of the Harvest Moon
- Ritual of the Shepherd
- Ritual of the Green Grove
- Focus of the Ellipsoid
- Sound of the Cleansing Soul
- Ritual of Living Evolution
------------------------------------------------------
Version 3.0.1
------------------------------------------------------
- Reimplemented the Incense Altar with all appropriate blocks.
- Added guide entries for the Incense Altar and Blood Altar. Other misc entries added, too.
- Fixed a server-related crash on the client on the Sigil of the Green Grove.
- Added ore processing to Ancient Debris.
- Readded the other Sentient Tool types (with one more on the way).
- Added a few WIP items that cannot be used yet - they're part of the D*$)@ D*#@(@* system that I'm adding for Tier 4.
- Added the API - It's still in flux, so expect it to change very soon!
- Probably forgot something important.
- Fixed a crash for the Lava Crystal that made it blow up the Client if used on a server. No, that was not the intended purpose!
- Added the Ritual Tinkerer for Rituals.
- Added the "Tome of Peritia" again - stores EXP.
------------------------------------------------------
Version 2.4.3
------------------------------------------------------
- Fixed Lava Crystals causing crash when used while not yet bound
- Fixed Teleposers sending entities at the destination position the wrong way
- Fixed Speed Runes not working on Tier 2 altars
- Fixed crash when checking tasks for some entities
- Fixed crash when checking some entities for potion effects
- Re-implemented the Boost potion
- The PR still had TODOs in the description when I merged so this may not be complete yet
------------------------------------------------------
Version 2.4.2
------------------------------------------------------
Now with no guarantees for working textures!
Blood Altar:
- A Blood Altar with a Redstone Lamp below it will now emit a redstone signal upon finishing crafting (#1635)
- Fixed Blood Altar being able to obtain negative progress (#1649)
Living Armor:
- Fixed Storm Trooper Level 4 costing 65 instead of -65 upgrade points (#1631)
Rituals:
- Fixed Ritual of the Eternal Soul (Ritual Stone layout & didn't work) (#1633)
- Fixed Ritual Tinkerer (ritual area is now unique per ritual instance), added the ability to reset the ritual ranges to default (#1636)
Misc:
- Lava Crystals can now set things on fire (#1652)
- Fixed parts of the German translation. Other translations still need to be reworked to accomodate changed translation keys (#1640)
- Fixed Guidebook showing wrong recipes (Rune of Self-Sacrifice instead of others) (#1641)
- Wooden Paths now behave like wood instead of stone (sound & efficient tool) (#1638)
Technical Stuff:
- Fixed Veil of Evil and Ward of Sacrosanctity console spam (which could eventually lead to an out of memory exception) (#1639)
- Fixed GLSL shader compilation errors (affected Mesa driver (AMD GPU) on Linux) (#1624)
- Fixed `/bloodmagic network` command permissions (#1613)
- Fixed a rare crash that could occur when summoning mobs (#1618)
------------------------------------------------------
Version 2.4.1
------------------------------------------------------
Nut was too lazy to create a changelog, it's AEon's turn now!
Changes made from Feb 02 - now (Fill end date in later)
Living Armor:
- Fixed "Soft Fall" not preventing damage
- "Nocturnal Prowess" should not flash anymore
- "Trickshot" now ignores HurtResistanceTime
- "Trickshot" now works properly with sentient arrows
- "Step Assist" does not take effect while sneaking
Sentient Bow:
- Fixed Destructive Will arrows exploding continuously
- Fixed Tipped Arrows getting improved even if no Will can be used
Sigils:
- Buffed "Sigil of the Fast Miner" to be in accordance to the "Sanguine Scientium"
- Fixed a bug where "Sigil of the Fast Miner" would also cause the whirlwind effect
- Added "Whirlwind" to the potion registry
- Fixed broken Sigil tooltip formatting
- Fixed Sigil of Holding not updating some Sigil data, allowing for exploits
- Greatly improved "Sigil of Compression" performance
- Fixed "Sigil of Compression" bug that would eat leftover items (usually everything between 55 and 64 items for a 3x3 compression)
Rituals:
- Ported Veil of Evil & Ward of Sacrosanctity
- Fixed "Serenade of the Nether" replacing lava source blocks with lava (fixed underlying function to detect flowing liquids)
- Added configurability to Ritual of the High Jump by modifying a new ritual area with the Ritual Tinkerer
Misc:
- Fixed routing node oredict filter (crashes)
- Fixed mimic vanishing in some cases
- Fixed "Blood Letter's Pack" and "Coat of Arms" always being used in the main hand slot (action bar/hotbar)
- Stop insertions into Demon Crucible if the inventory is not empty
- Fixed abnormal deaths at your own hands through the sacrificial dagger (hopefully) (Gravestone bugginess)
- Fixed "Unmending" mod incompatibility
- Fixed Teleposers crashing the game if someone force-fed it junk
- added Nut being angery at contributors for messing stuff up
- Added some Russian language strings for the guide book
- Added repair recipes for Sentient Tools & Living Armor to JEI
- Many translation keys have changed which makes affected translations fall back to english
Technical Stuff no player cares about:
- Formatted Project code
- Fixed BlockState parsing (mimic vanishing)
- Fixed some and streamlined ritual block ranges
- Mystery drain still mysterious
- Use TextFormatting rather than color codes in block lang names
- Fixed world unload crash (may happen if a world is loaded by world generators or JEI Resource graphing)
- Fixed `/bloodmagic network get` command
- Added translation keys for tickethistory command help strings
------------------------------------------------------
Version 2.4.0
------------------------------------------------------
It's been a while, eh? Some of you may be asking yourself "whats up with bloodmagic" like that damned recon on a certain
social media site. Well here's what's up: put something snarky here when done writing changelog
There's so much here, I'm probably going to miss some. Here's a general overview from just skimming commit titles.
Much of this was done via PR because I'm ~~lazy~~ too busy having fun with Fabric.
- Fixed harvest moon not working with pumpkins
- [API] Added a way to unregister an altar component
- Moved anything related to Tier 6 behind an opt-in config. Please stop asking me how to get it.
- Fixed small demon stone bricks recipe so it returns 4 instead of 1
- Ported some old rituals from 1.7
- Cry of the Eternal Soul
- Reverence of the Condor
- Ritual of the Feathered Earth
- Added a new ritual, Ritual of Grounding
- Optimized bound tool harvesting
- Fixed render issues with demon crystals
- Fixed Hymn of Syphoning not updating some tanks visually
- Added very basic documentation for several rituals to the guide book
- Made meteor costs for Mark of the Falling Tower configurable in the meteor json
- Fluid related sigils should now work identically to buckets of the fluid
- Fixed ritual tinkerer area setting behaving wonkily
- Fixed Seer Sigil not working for incense altars
- Added the ability to buff movement and updraft arrays by providing more of their ingredient
- Ported the ritual dismantler from 1.7.10
- Logic fix for the Solar Powered
- Now it requires a clear line of sight to the sky as well as it being day time
- Fixed Sigil of Magnetism AOE being offset from the player
- Rewrote commands
- They're different in some way, some how
- Don't ask me how
- Quality of life improvements for the ritual tinkerer
- Changed the activation crystal levels of some rituals to use the awakened crystal
- Mark of the Falling Tower
- All the living armor ones
- It's late and I'm tired don't hate me for being too lazy to look up their names
- Fixed up some bounding boxes for some blocks with fancier models
- Sentient Bow now properly handles modded and potion-ified arrows
I can't wait for this to turn out to be very broken so I can yell at the contributor :>
------------------------------------------------------
Version 2.3.3
------------------------------------------------------
- Fixed Altars not filling orbs of their own tier
------------------------------------------------------
Version 2.3.2
------------------------------------------------------
looky bois, we beta now
- Fixed Sentient Sword attacking mobs and players without being provoked
- Fixed weird Crystal Clusters being weird
- They are now less weird
- Fixed Ritual Reader and Tinkerer not being in the creative tab
- Fixed an NPE that would happen with some blocks in the Ritual of Magnetism's area of effect
- Fixed Mimics not being able to replace blocks during placement
- Fixed issues with inter-dimensional teleportation
- Teleposers and Teleposition Sigils are now fully functional
- Fixed custom arrows not having their effects when fired from the Sentient Bow
- Fixed Splash Potions being unthrowable while Living Armor had the quenched downgrade
- Fixed Ritual Stones being considered Iron instead of Rock
- Fixed the Lava, Water, and Void sigils so they now work properly with tanks
- Fixed an issue where the Teleposer would attempt to damage an offline player
- Fixed the Compression Sigil so it now functions
- Fixed low tier altars being able to fill high tier orbs
- Fixed Sentient Tools having the wrong material
- Fixed Sentient Tools not having a repair material
- It is now demon crystals
- Added a config to disable mob drops from mobs killed by the Well of Suffering
- Added an additional glow to the Dagger of Sacrifice when it has a full incense bonus
- Reworked the Phantom Bridge
- Updated german translation
- Updated chinese translation
------------------------------------------------------
Version 2.3.1
------------------------------------------------------
@ -1343,4 +1025,4 @@ Changed
- A graphical overhaul of everything has been implemented. These textures were provided by CyanideX's Unity texture pack. BBoldt and Yulife (Inap) from the Unity team are our new permanent texture artists.
Bug Fixes
-
-

View file

@ -1,10 +1,13 @@
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
# This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
mod_name=BloodMagic
package_group=com.wayoftime.bloodmagic
mod_version=3.0.0
minecraft_version=1.16.3
mc_version=1.12.2
forge_version=14.23.4.2759
mappings_version=stable_39
#Mod dependencies
jei_version=7.6.0.49
patchouli_version=1.16.4-48-SNAPSHOT
jei_version=4.11.0.206
hwyla_version=1.8.26-B41_1.12.2
guideapi_version=1.12-2.1.4-57
curse_id=224791

Binary file not shown.

View file

@ -1,5 +1,6 @@
#Fri Sep 26 11:20:52 CDT 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip

110
gradlew vendored
View file

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/usr/bin/env bash
##############################################################################
##
@ -6,6 +6,47 @@
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
@ -20,49 +61,9 @@ while [ -h "$PRG" ] ; do
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@ -89,7 +90,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@ -113,7 +114,6 @@ fi
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
@ -154,19 +154,11 @@ if $cygwin ; then
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
APP_ARGS=$(save "$@")
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

14
gradlew.bat vendored
View file

@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@ -46,9 +46,10 @@ echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@ -59,6 +60,11 @@ set _SKIP=2
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line

1
settings.gradle Normal file
View file

@ -0,0 +1 @@
rootProject.name = 'BloodMagic'

View file

@ -0,0 +1,29 @@
package com.wayoftime.bloodmagic.api;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* This annotation lets Blood Magic detect mod plugins.
* All {@link IBloodMagicPlugin} must have this annotation and a constructor with no arguments.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface BloodMagicPlugin {
/**
* This annotation will inject the active {@link IBloodMagicAPI} into a {@code static} field of the same
* type. Fields with invalid types will be ignored and an error will be logged.
* <p>
* These fields are populated during {@link net.minecraftforge.fml.common.event.FMLPreInitializationEvent}.
* <p>
* {@code public static @BloodMagicPlugin.Inject IBloodMagicAPI API_INSTANCE = null;}
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@interface Inject {
}
}

View file

@ -0,0 +1,57 @@
package com.wayoftime.bloodmagic.api;
import net.minecraft.block.state.IBlockState;
import javax.annotation.Nonnull;
/**
* The main interface between a plugin and Blood Magic's internals.
* <p>
* This API is intended for <i>compatibility</i> between other mods and Blood Magic. More advanced integration is out of the scope of this API and are considered "addons".
* <p>
* To get an instance of this without actually creating an {@link IBloodMagicPlugin}, use {@link BloodMagicPlugin.Inject}.
*/
public interface IBloodMagicAPI {
/**
* Retrieves the instance of the blacklist.
*
* @return the active {@link IBloodMagicBlacklist} instance
*/
@Nonnull
IBloodMagicBlacklist getBlacklist();
/**
* Retrieves the instance of the recipe registrar.
*
* @return the active {@link IBloodMagicRecipeRegistrar} instance
*/
@Nonnull
IBloodMagicRecipeRegistrar getRecipeRegistrar();
/**
* Retrieves the instance of the value manager.
*
* @return the active {@link IBloodMagicValueManager} instance
*/
@Nonnull
IBloodMagicValueManager getValueManager();
/**
* Registers an {@link IBlockState} as a given component for the Blood Altar.
* <p>
* Valid component types:
* <ul>
* <li>GLOWSTONE</li>
* <li>BLOODSTONE</li>
* <li>BEACON</li>
* <li>BLOODRUNE</li>
* <li>CRYSTAL</li>
* <li>NOTAIR</li>
* </ul>
*
* @param state The state to register
* @param componentType The type of Blood Altar component to register as.
*/
void registerAltarComponent(@Nonnull IBlockState state, @Nonnull String componentType);
}

View file

@ -0,0 +1,47 @@
package com.wayoftime.bloodmagic.api;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.ResourceLocation;
import javax.annotation.Nonnull;
/**
* Allows blacklisting of various objects from different Blood Magic systems.
*/
public interface IBloodMagicBlacklist {
/**
* Blacklists a given {@link IBlockState} from being teleposed.
*
* @param state The {@link IBlockState} to blacklist.
*/
void addTeleposer(@Nonnull IBlockState state);
/**
* Blacklists a {@link net.minecraft.entity.Entity} from being teleposed based on the given registry name.
*
* @param entityId The registry name to blacklist.
*/
void addTeleposer(@Nonnull ResourceLocation entityId);
/**
* Blacklists a given {@link IBlockState} from being transposed.
*
* @param state The {@link IBlockState} to blacklist.
*/
void addTransposition(@Nonnull IBlockState state);
/**
* Blacklists a given {@link IBlockState} from being accelerated by the growth enhancement ritual and sigil.
*
* @param state The {@link IBlockState} to blacklist.
*/
void addGreenGrove(@Nonnull IBlockState state);
/**
* Blacklists a {@link net.minecraft.entity.Entity} from being sacrificed via the Well of Suffering ritual.
*
* @param entityId The registry name to blacklist.
*/
void addWellOfSuffering(@Nonnull ResourceLocation entityId);
}

View file

@ -0,0 +1,26 @@
package com.wayoftime.bloodmagic.api;
/**
* The main class to implement to create a Blood Magic plugin. Everything communicated between a mod and Blood Magic is through this class.
* IBloodMagicPlugins must have the {@link BloodMagicPlugin} annotation to get loaded by Blood Magic.
*/
public interface IBloodMagicPlugin {
/**
* Register mod content with the API. Called during {@link net.minecraftforge.fml.common.event.FMLInitializationEvent}.
*
* @param api The active instance of the {@link IBloodMagicAPI}
*/
default void register(IBloodMagicAPI api) {
// No-op
}
/**
* Register recipes with the API. Called during {@link net.minecraftforge.event.RegistryEvent.Register<net.minecraft.item.crafting.IRecipe>}.
*
* @param recipeRegistrar The active instance of the {@link IBloodMagicRecipeRegistrar}
*/
default void registerRecipes(IBloodMagicRecipeRegistrar recipeRegistrar) {
// No-op
}
}

View file

@ -0,0 +1,95 @@
package com.wayoftime.bloodmagic.api;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.ResourceLocation;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* Allows recipe addition and removal.
*/
public interface IBloodMagicRecipeRegistrar {
/**
* Adds a new recipe to the Blood Altar.
*
* @param input An input {@link Ingredient}.
* @param output An output {@link ItemStack}.
* @param minimumTier The minimum Blood Altar tier required for this recipe.
* @param syphon The amount of Life Essence to syphon from the Blood Altar over the course of the craft.
* @param consumeRate How quickly the Life Essence is syphoned.
* @param drainRate How quickly progress is lost if the Blood Altar runs out of Life Essence during the craft.
*/
void addBloodAltar(@Nonnull Ingredient input, @Nonnull ItemStack output, @Nonnegative int minimumTier, @Nonnegative int syphon, @Nonnegative int consumeRate, @Nonnegative int drainRate);
/**
* Removes a Blood Altar recipe based on an input {@link ItemStack}.
*
* @param input The input item to remove the recipe of.
* @return Whether or not a recipe was removed.
*/
boolean removeBloodAltar(@Nonnull ItemStack input);
/**
* Adds a new recipe to the Alchemy Table.
*
* @param output An output {@link ItemStack}.
* @param syphon The amount of Life Essence to syphon from the Blood Orb's bound network over the course of the craft.
* @param ticks The amount of ticks it takes to complete the craft.
* @param minimumTier The minimum Blood Orb tier required for this recipe.
* @param input An array of {@link Ingredient}s to accept as inputs.
*/
void addAlchemyTable(@Nonnull ItemStack output, @Nonnegative int syphon, @Nonnegative int ticks, @Nonnegative int minimumTier, @Nonnull Ingredient... input);
/**
* Removes an Alchemy Table recipe based on an input {@link ItemStack} array.
*
* @param input The input items to remove the recipe of.
* @return Whether or not a recipe was removed.
*/
boolean removeAlchemyTable(@Nonnull ItemStack... input);
/**
* Adds a new recipe to the Soul/Tartaric Forge.
*
* @param output An output {@link ItemStack}.
* @param minimumSouls The minimum number of souls that must be contained in the Soul Gem.
* @param soulDrain The number of souls to drain from the Soul Gem.
* @param input An array of {@link Ingredient}s to accept as inputs.
*/
void addTartaricForge(@Nonnull ItemStack output, @Nonnegative double minimumSouls, @Nonnegative double soulDrain, @Nonnull Ingredient... input);
/**
* Removes a Soul/Tartaric Forge recipe based on an input {@link ItemStack} array.
*
* @param input The input items to remove the recipe of.
* @return Whether or not a recipe was removed.
*/
boolean removeTartaricForge(@Nonnull ItemStack... input);
/**
* Adds a new recipe to the Alchemy Array.
*
* @param input An input {@link Ingredient}. First item put into the Alchemy Array.
* @param catalyst A catalyst {@link Ingredient}. Second item put into the Alchemy Array.
* @param output An output {@link ItemStack}.
* @param circleTexture The texture to render for the Alchemy Array circle.
*/
void addAlchemyArray(@Nonnull Ingredient input, @Nonnull Ingredient catalyst, @Nonnull ItemStack output, @Nullable ResourceLocation circleTexture);
/**
* Removes an Alchemy Array recipe based on an input {@link ItemStack} and it's catalyst {@link ItemStack}.
*
* @param input The input item to remove the recipe of.
* @param catalyst The catalyst item to remove the recipe of.
* @return Whether or not a recipe was removed.
*/
boolean removeAlchemyArray(@Nonnull ItemStack input, @Nonnull ItemStack catalyst);
void addSacrificeCraft(@Nonnull ItemStack output, @Nonnegative double healthRequired, @Nonnull Ingredient... input);
boolean removeSacrificeCraft(@Nonnull ItemStack... input);
}

View file

@ -0,0 +1,42 @@
package com.wayoftime.bloodmagic.api;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.ResourceLocation;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
/**
* Allows value modification for various features of Blood Magic such as Sacrificial values.
*/
public interface IBloodMagicValueManager {
/**
* Sets the amount of LP received per health point from sacrificing the given entity. By default, this is 25. Setting
* the value to 0 effectively disables sacrificing.
*
* @param entityId The registry name of the entity.
* @param value The amount of LP per health point to receive upon sacrifice.
*/
void setSacrificialValue(@Nonnull ResourceLocation entityId, @Nonnegative int value);
/**
* Sets the Tranquility value of a given {@link IBlockState}.
* <p>
* Valid tranquility types:
* <ul>
* <li>PLANT</li>
* <li>CROP</li>
* <li>TREE</li>
* <li>EARTHEN</li>
* <li>WATER</li>
* <li>FIRE</li>
* <li>LAVA</li>
* </ul>
*
* @param state The {@link IBlockState} to set the value of.
* @param tranquilityType The type of Tranquility this block should provide.
* @param value The amount of tranquility this block should provide.
*/
void setTranquility(@Nonnull IBlockState state, @Nonnull String tranquilityType, double value);
}

View file

@ -0,0 +1,71 @@
package com.wayoftime.bloodmagic.api.event;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.eventhandler.Event;
public class BloodMagicCraftedEvent extends Event {
private final boolean modifiable;
private final ItemStack[] inputs;
private ItemStack output;
public BloodMagicCraftedEvent(ItemStack output, ItemStack[] inputs, boolean modifiable) {
this.modifiable = modifiable;
this.inputs = inputs;
this.output = output;
}
public boolean isModifiable() {
return modifiable;
}
public ItemStack[] getInputs() {
return inputs;
}
public ItemStack getOutput() {
return output;
}
public void setOutput(ItemStack output) {
if (isModifiable())
this.output = output;
}
/**
* Fired whenever a craft is completed in a Blood Altar.
* <p>
* It is not cancelable, however you can modify the output stack.
*/
public static class Altar extends BloodMagicCraftedEvent {
public Altar(ItemStack output, ItemStack input) {
super(output, new ItemStack[]{input}, true);
}
}
/**
* Fired whenever a craft is completed in a Soul Forge.
* <p>
* It is not cancelable, however you can modify the output stack.
*/
public static class SoulForge extends BloodMagicCraftedEvent {
public SoulForge(ItemStack output, ItemStack[] inputs) {
super(output, inputs, true);
}
}
/**
* Fired whenever a craft is completed in an Alchemy Table.
* <p>
* It is not cancelable, however you can modify the output stack.
*/
public static class AlchemyTable extends BloodMagicCraftedEvent {
public AlchemyTable(ItemStack output, ItemStack[] inputs) {
super(output, inputs, true);
}
}
}

View file

@ -0,0 +1,4 @@
@API(owner = "bloodmagic", provides = "bloodmagic-api", apiVersion = "2.0.0")
package com.wayoftime.bloodmagic.api;
import net.minecraftforge.fml.common.API;

View file

@ -0,0 +1,35 @@
package com.wayoftime.bloodmagic.compat.jei;
import com.wayoftime.bloodmagic.api.impl.BloodMagicAPI;
import com.wayoftime.bloodmagic.api.impl.recipe.RecipeBloodAltar;
import com.wayoftime.bloodmagic.compat.jei.altar.RecipeCategoryAltar;
import com.wayoftime.bloodmagic.compat.jei.altar.RecipeWrapperAltar;
import com.wayoftime.bloodmagic.core.RegistrarBloodMagicBlocks;
import mezz.jei.api.IJeiHelpers;
import mezz.jei.api.IModPlugin;
import mezz.jei.api.IModRegistry;
import mezz.jei.api.JEIPlugin;
import mezz.jei.api.recipe.IRecipeCategoryRegistration;
import net.minecraft.item.ItemStack;
@JEIPlugin
public class BloodMagicJEIPlugin implements IModPlugin {
public static IJeiHelpers helper;
@Override
public void registerCategories(IRecipeCategoryRegistration registry) {
helper = registry.getJeiHelpers();
registry.addRecipeCategories(
new RecipeCategoryAltar()
);
}
@Override
public void register(IModRegistry registry) {
registry.addRecipes(BloodMagicAPI.INSTANCE.getRecipeRegistrar().getAltarRecipes(), RecipeCategoryAltar.CATEGORY_ID);
registry.handleRecipes(RecipeBloodAltar.class, RecipeWrapperAltar::new, RecipeCategoryAltar.CATEGORY_ID);
registry.addRecipeCatalyst(new ItemStack(RegistrarBloodMagicBlocks.BLOOD_ALTAR), RecipeCategoryAltar.CATEGORY_ID);
}
}

View file

@ -0,0 +1,63 @@
package com.wayoftime.bloodmagic.compat.jei.altar;
import com.wayoftime.bloodmagic.BloodMagic;
import com.wayoftime.bloodmagic.compat.jei.BloodMagicJEIPlugin;
import mezz.jei.api.gui.IDrawable;
import mezz.jei.api.gui.IRecipeLayout;
import mezz.jei.api.ingredients.IIngredients;
import mezz.jei.api.recipe.IRecipeCategory;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class RecipeCategoryAltar implements IRecipeCategory<RecipeWrapperAltar> {
public static final String CATEGORY_ID = "bloodmagic:blood_altar";
private static final int INPUT_SLOT = 0;
private static final int OUTPUT_SLOT = 1;
@Nonnull
private final IDrawable background = BloodMagicJEIPlugin.helper.getGuiHelper().createDrawable(new ResourceLocation(BloodMagic.MODID, "textures/gui/jei/blood_altar.png"), 3, 4, 155, 65);
@Nonnull
@Override
public String getUid() {
return CATEGORY_ID;
}
@Nonnull
@Override
public String getTitle() {
return I18n.format("jei.bloodmagic:blood_altar");
}
@Nonnull
@Override
public IDrawable getBackground() {
return background;
}
@Nullable
@Override
public IDrawable getIcon() {
return null;
}
@Override
public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull RecipeWrapperAltar recipeWrapper, @Nonnull IIngredients ingredients) {
recipeLayout.getItemStacks().init(INPUT_SLOT, true, 31, 0);
recipeLayout.getItemStacks().init(OUTPUT_SLOT, false, 125, 30);
recipeLayout.getItemStacks().set(INPUT_SLOT, ingredients.getInputs(ItemStack.class).get(0));
recipeLayout.getItemStacks().set(OUTPUT_SLOT, ingredients.getOutputs(ItemStack.class).get(0));
}
@Nonnull
@Override
public String getModName() {
return BloodMagic.NAME;
}
}

View file

@ -0,0 +1,49 @@
package com.wayoftime.bloodmagic.compat.jei.altar;
import com.google.common.collect.Lists;
import com.wayoftime.bloodmagic.api.impl.recipe.RecipeBloodAltar;
import mezz.jei.api.ingredients.IIngredients;
import mezz.jei.api.recipe.IRecipeWrapper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import javax.annotation.Nonnull;
import java.awt.Color;
import java.util.List;
public class RecipeWrapperAltar implements IRecipeWrapper {
private final RecipeBloodAltar recipe;
public RecipeWrapperAltar(RecipeBloodAltar recipe) {
this.recipe = recipe;
}
@Override
public void getIngredients(@Nonnull IIngredients ingredients) {
ingredients.setInputs(ItemStack.class, NonNullList.from(ItemStack.EMPTY, recipe.getInput().getMatchingStacks()));
ingredients.setOutput(ItemStack.class, recipe.getOutput());
}
@Nonnull
@Override
public List<String> getTooltipStrings(int mouseX, int mouseY) {
List<String> tooltip = Lists.newArrayList();
if (mouseX >= 13 && mouseX <= 64 && mouseY >= 27 && mouseY <= 58) {
tooltip.add(I18n.format("jei.bloodmagic:consumption_rate", recipe.getConsumeRate()));
tooltip.add(I18n.format("jei.bloodmagic:drain_rate", recipe.getDrainRate()));
}
return tooltip;
}
@Override
public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) {
String line1 = I18n.format("jei.bloodmagic:required_tier", I18n.format("enchantment.level." + (recipe.getMinimumTier().ordinal() + 1)));
minecraft.fontRenderer.drawString(line1, 90 - minecraft.fontRenderer.getStringWidth(line1) / 2, 0, Color.GRAY.getRGB());
String line2 = I18n.format("jei.bloodmagic:required_lp", recipe.getSyphon());
minecraft.fontRenderer.drawString(line2, 90 - minecraft.fontRenderer.getStringWidth(line2) / 2, 10, Color.GRAY.getRGB());
}
}

View file

@ -0,0 +1,15 @@
package com.wayoftime.bloodmagic.compat.waila;
import com.wayoftime.bloodmagic.tile.TileBloodAltar;
import mcp.mobius.waila.api.IWailaPlugin;
import mcp.mobius.waila.api.IWailaRegistrar;
import mcp.mobius.waila.api.WailaPlugin;
@WailaPlugin
public class BloodMagicHwylaPlugin implements IWailaPlugin {
@Override
public void register(IWailaRegistrar registrar) {
registrar.registerBodyProvider(DataProviderBloodAltar.INSTANCE, TileBloodAltar.class);
registrar.registerNBTProvider(DataProviderBloodAltar.INSTANCE, TileBloodAltar.class);
}
}

View file

@ -0,0 +1,40 @@
package com.wayoftime.bloodmagic.compat.waila;
import com.wayoftime.bloodmagic.tile.TileBloodAltar;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import javax.annotation.Nonnull;
import java.util.List;
public class DataProviderBloodAltar implements IWailaDataProvider {
static final IWailaDataProvider INSTANCE = new DataProviderBloodAltar();
@Nonnull
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> tooltip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
tooltip.add(I18n.format("tooltip.bloodmagic:tier", I18n.format("enchantment.level." + (accessor.getNBTData().getInteger("tier") + 1))));
if (accessor.getNBTData().hasKey("progress"))
tooltip.add(I18n.format("tooltip.bloodmagic:progress", String.valueOf(accessor.getNBTData().getFloat("progress") * 100)));
return tooltip;
}
@Nonnull
@Override
public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, BlockPos pos) {
TileBloodAltar altar = (TileBloodAltar) te;
tag.setInteger("tier", altar.getCurrentTier().ordinal());
if (altar.isCrafting())
tag.setFloat("progress", altar.getProgress());
return tag;
}
}

View file

@ -1,757 +0,0 @@
cb435652c27b4978d8db83af2fd531ccaa82ada7 assets/bloodmagic/blockstates/accelerationrune.json
43be0406da1c9f7cf734427bea235a65cda073d2 assets/bloodmagic/blockstates/airritualstone.json
5ba8e1b2a7ef85028044056cc971b8fe02ab7e7f assets/bloodmagic/blockstates/alchemicalreactionchamber.json
4a60c54def00d68368ed0a0d4783979aa63d5f60 assets/bloodmagic/blockstates/altarcapacityrune.json
950fff9f06033741091aa8a66a62857da673efb9 assets/bloodmagic/blockstates/bettercapacityrune.json
8a5edb859a6f4d0adfbe2f608bab6b8c8addf01a assets/bloodmagic/blockstates/blankrune.json
904d9baa649250571bce5f965cf48fbec69c2c1a assets/bloodmagic/blockstates/bloodlight.json
5f3898cc4891f85091fe6104800d6c88d9e85e29 assets/bloodmagic/blockstates/bloodstonebrick.json
631b579c38652efbcd9e5771d09ad6e476f3ba00 assets/bloodmagic/blockstates/chargingrune.json
a35188b0244bf9808098c7d49d0af9bd32cef297 assets/bloodmagic/blockstates/corrosivedemoncrystal.json
b943c6433f295c168841aec3c3f62e525c5c9cc9 assets/bloodmagic/blockstates/creeping_doubt.json
a54ab8dfd36a593829dc33644c5f9dbccaaadaf3 assets/bloodmagic/blockstates/deforester_charge.json
b696f680545dffa4d3fbcc83b4b81ab58ac69aef assets/bloodmagic/blockstates/destructivedemoncrystal.json
6bd58d1d02a40416cec29409dee7ef80038b26d5 assets/bloodmagic/blockstates/dislocationrune.json
0b7d0241c379d0b3a8a4fa2dae79d4f998800a1f assets/bloodmagic/blockstates/dungeon_brick1.json
19d1da41c8b836a88ea7164b32e5a8525e5155cf assets/bloodmagic/blockstates/dungeon_brick2.json
79853c0ffa8fd2eb9e2ddd0848c572de0cf49037 assets/bloodmagic/blockstates/dungeon_brick3.json
1117fb4dd4f110a7b7fabae92760e0a3b949c461 assets/bloodmagic/blockstates/dungeon_brick_assorted.json
c67498a81f8dd53770da51df45192b171cdd234c assets/bloodmagic/blockstates/dungeon_brick_gate.json
8b568926830785a5cb848fb36d4ae01e67590501 assets/bloodmagic/blockstates/dungeon_brick_stairs.json
6c10c79909e008b960f2d78543f55847eec7a226 assets/bloodmagic/blockstates/dungeon_brick_wall.json
8a04e502b6965d912793699d61071e44428fceb8 assets/bloodmagic/blockstates/dungeon_eye.json
40051ea4111a9c2fd2524d664d52f241eed5317e assets/bloodmagic/blockstates/dungeon_metal.json
fe31978b41dc50c21f413c81410221f657fd4d23 assets/bloodmagic/blockstates/dungeon_ore.json
388af5c6d34f62d66d987760871c64793df84a37 assets/bloodmagic/blockstates/dungeon_pillar_cap.json
8d8d58ad890f339b75dbdfc710b30dc00eed2ef3 assets/bloodmagic/blockstates/dungeon_pillar_center.json
48e7b0533fa722eb66956e01de661ebac6470da7 assets/bloodmagic/blockstates/dungeon_pillar_special.json
e3f31a23580bce835115483f5790cb08bac44fe2 assets/bloodmagic/blockstates/dungeon_polished.json
aa980029d03236ba34f53952fdadc06cf1cff245 assets/bloodmagic/blockstates/dungeon_polished_gate.json
30c3dc138436c2a25a7fcdd7edca7f70f1adb425 assets/bloodmagic/blockstates/dungeon_polished_stairs.json
512bd11d55934229cb464c720362949302309eba assets/bloodmagic/blockstates/dungeon_polished_wall.json
2015a403ca2bcc73afbb4768df99554a13b171b6 assets/bloodmagic/blockstates/dungeon_smallbrick.json
f5b4cda776f7aabe537ca843e41074c03429cdfb assets/bloodmagic/blockstates/dungeon_stone.json
167512323d506489adb4487d3da092ceec0bd17e assets/bloodmagic/blockstates/dungeon_tile.json
4806276351c534917c2e72f98c4618e6592b18a0 assets/bloodmagic/blockstates/dungeon_tilespecial.json
ba1cd8a9475212843e3b26232c8a9943fa0d2d20 assets/bloodmagic/blockstates/duskritualstone.json
bb3db171734f511fc0c259d86e869b49aa1d0c77 assets/bloodmagic/blockstates/earthritualstone.json
e780d6d9e891082dc6ce83fde1697ce36281a02a assets/bloodmagic/blockstates/fireritualstone.json
e2c9c08bab702938e1a861d096526f16f68f6691 assets/bloodmagic/blockstates/fungal_charge.json
f78ce2be09ab794bf5f5679414eee0dc85cf4fb1 assets/bloodmagic/blockstates/largebloodstonebrick.json
002795212cc7bf2cad2a91f873d85e2204c6367d assets/bloodmagic/blockstates/lightritualstone.json
e1a98bd53fca155e4bbb03c1e548341af0f84bd7 assets/bloodmagic/blockstates/masterritualstone.json
505e45be4a207e22433d853e5139c5b1d48c57d7 assets/bloodmagic/blockstates/nether_soil.json
95a0c9a84139cf92c2689e53408b51619db126a1 assets/bloodmagic/blockstates/obsidianbrickpath.json
8b0ea137c63cf3a658a03eee58ca4b2c3d996f87 assets/bloodmagic/blockstates/obsidiantilepath.json
372ecd737f7082a4c2c70e46745f893b1179f885 assets/bloodmagic/blockstates/orbcapacityrune.json
a2eaa9166258d7179d9e5099200f777bb9edf613 assets/bloodmagic/blockstates/rawdemoncrystal.json
90daa355e528ab8a6582f796951201882f3c56da assets/bloodmagic/blockstates/ritualstone.json
285618c1a8ec36e36d479f577190579ae7616529 assets/bloodmagic/blockstates/sacrificerune.json
b03040d7a168653bf8df3600033b8fde2383db30 assets/bloodmagic/blockstates/selfsacrificerune.json
d2e2e78bd859c321a72f40fbb17ca79292d58031 assets/bloodmagic/blockstates/shaped_charge.json
487ffdc02ab7b65aafcb932e3b5cf6ea0500b21d assets/bloodmagic/blockstates/speedrune.json
f1ca47098385a955155cab9c2a97219e02d390a0 assets/bloodmagic/blockstates/steadfastdemoncrystal.json
297bc2425f7b07b1a9dd3f7f6649c44f88dbac29 assets/bloodmagic/blockstates/stonebrickpath.json
e3256db10fc8a8ab540f6ac8d27e0f47861e817a assets/bloodmagic/blockstates/stonetilepath.json
6989c4e23e5405772a8601ea88f071a479ed3fa9 assets/bloodmagic/blockstates/veinmine_charge.json
48ed6b25a5d8d8074c38d772fdc27c1753d42c36 assets/bloodmagic/blockstates/vengefuldemoncrystal.json
e6d9cf699667aaa47efff37b2b033895dee29c15 assets/bloodmagic/blockstates/waterritualstone.json
74c889434f46e060e8f185e8ef674312eb2f1192 assets/bloodmagic/blockstates/woodbrickpath.json
42f26f715bddd16c069f9b51e3767b36477c8908 assets/bloodmagic/blockstates/woodtilepath.json
3c6ce233dae6c1307d9016406c324bbe844b4e1e assets/bloodmagic/blockstates/wornstonebrickpath.json
d59655f12d1724b73b77c373fb6864fcff69db12 assets/bloodmagic/blockstates/wornstonetilepath.json
0492479fed31666acdf2d5f3fb2dab3b6ebdf6b5 assets/bloodmagic/lang/en_us.json
34445195b9f2459475cde53454bc8e37d32865d7 assets/bloodmagic/models/block/accelerationrune.json
bcdbccc49d4509571be6988762ab87126275a4c8 assets/bloodmagic/models/block/airritualstone.json
adf6c0b1e25451609486dc8c8cfbd9cf0f8c67f4 assets/bloodmagic/models/block/alchemicalreactionchamber.json
3c98a88c2283ad54f0efb9d7194361bbc3e93c17 assets/bloodmagic/models/block/altarcapacityrune.json
7cd62092c6fb3109e016d42090cf89bfa3ab7fca assets/bloodmagic/models/block/bettercapacityrune.json
1fe0f89895addb7abcacf6ce7e39b6ddc87b0d85 assets/bloodmagic/models/block/blankrune.json
3c83e090a1cff00e2bb2c7eb475785954b6eb980 assets/bloodmagic/models/block/bloodlight.json
ae2ff1abd707f2193d04d235de8f0ce92ada1d0f assets/bloodmagic/models/block/bloodstonebrick.json
320827ad2feaa51a90ebb7064a70bdc6d3765203 assets/bloodmagic/models/block/chargingrune.json
d5d82916652aee95adb8c16c97788be0a0f9f9d6 assets/bloodmagic/models/block/creeping_doubt_1.json
3effbe56422e18a44138e13e33eb26ba33b9381f assets/bloodmagic/models/block/creeping_doubt_2.json
8a7e5bfc63d3de0987bd71c1237fb580a6317601 assets/bloodmagic/models/block/creeping_doubt_3.json
8c75a72923902d5000852728436313f5979e903a assets/bloodmagic/models/block/creeping_doubt_4.json
38d083dbe1852d6dc0995a46d63a8a6dbe2c31ac assets/bloodmagic/models/block/creeping_doubt_5.json
ec5fcd20fee4260f131c82ec0a6558cc4e70e781 assets/bloodmagic/models/block/creeping_doubt_6.json
f38c5b52e9215a3d819e0b35c590d8924ca84200 assets/bloodmagic/models/block/creeping_doubt_7.json
9b332dc0443cb28c08d3af52096b7dd4fb2b68cc assets/bloodmagic/models/block/creeping_doubt_8.json
17ed7bf0e4e0aba9fc6390c8fa46f02b63145b1c assets/bloodmagic/models/block/crystal/corrosivecrystal1.json
0ae47095829ba2218113131f29e0a870b7ac7c71 assets/bloodmagic/models/block/crystal/corrosivecrystal2.json
f2fa5d770d52b5888d4fcba9161bc6485938cc21 assets/bloodmagic/models/block/crystal/corrosivecrystal3.json
f3f58ce78925d6c5e9c3beaa325f75084b9fab7c assets/bloodmagic/models/block/crystal/corrosivecrystal4.json
ca4af4bd7d6bfefbdb925aafe9d7ea80b18eaa3a assets/bloodmagic/models/block/crystal/corrosivecrystal5.json
1e0d6dc84398a2e12d177578c6c798b2c22ca95c assets/bloodmagic/models/block/crystal/corrosivecrystal6.json
302703cfe171a5f5bca492eb781ab3f3fd1c5cc1 assets/bloodmagic/models/block/crystal/corrosivecrystal7.json
6e4a3ba1cbd063757f2781e61bfae1b6191f750f assets/bloodmagic/models/block/crystal/defaultcrystal1.json
c41eee3071f1c1b27548eed79d333ab40d18a993 assets/bloodmagic/models/block/crystal/defaultcrystal2.json
3cf921a7416da052e2879cf0daae21144a40fa98 assets/bloodmagic/models/block/crystal/defaultcrystal3.json
6019d4e18f271f67b970c4e9b140ff96dc2c26fb assets/bloodmagic/models/block/crystal/defaultcrystal4.json
a106985d414ba63680da8a6b1abe77a0406adcc7 assets/bloodmagic/models/block/crystal/defaultcrystal5.json
8c3307e3ef8f44eb95c70774e32989454da8b675 assets/bloodmagic/models/block/crystal/defaultcrystal6.json
592af0e2cf2849bd0581a43271d391a9ddbc6fb0 assets/bloodmagic/models/block/crystal/defaultcrystal7.json
f688ae826b9f42b092d8de2e419f67f8049a5d00 assets/bloodmagic/models/block/crystal/destructivecrystal1.json
e27df3ee62984fc10026e721b262c89db95f2b40 assets/bloodmagic/models/block/crystal/destructivecrystal2.json
df186d5bbcb608d7e91b2a67ab7fc347aa715a34 assets/bloodmagic/models/block/crystal/destructivecrystal3.json
c4839ceb06d5a22aa47c71e1a7d7dfd12a7af68c assets/bloodmagic/models/block/crystal/destructivecrystal4.json
091b5b1986e7542485c7d03419baf6f3f81fd8cb assets/bloodmagic/models/block/crystal/destructivecrystal5.json
cf05718711393bf322680bc24897ba82bafd1f53 assets/bloodmagic/models/block/crystal/destructivecrystal6.json
a66d5091e5241479e512a3a71aba67d93992f32b assets/bloodmagic/models/block/crystal/destructivecrystal7.json
47d8fa9891d7baad8a17df455fd6d9baf6da56de assets/bloodmagic/models/block/crystal/steadfastcrystal1.json
6bbd2e8584e783e07390b0f30d0f3fbb2782f663 assets/bloodmagic/models/block/crystal/steadfastcrystal2.json
0883e99e1d5fa81d2ea0212ab8e9f4d5313717f4 assets/bloodmagic/models/block/crystal/steadfastcrystal3.json
c0a2ec89a412ce6dc078697f6ab92944a8a65cd9 assets/bloodmagic/models/block/crystal/steadfastcrystal4.json
b8d576ca3daf0b597b222f9d0645526e1d8a65be assets/bloodmagic/models/block/crystal/steadfastcrystal5.json
1e6b6825d373b1532d2458e6122a9869153d3776 assets/bloodmagic/models/block/crystal/steadfastcrystal6.json
2478650854e8e82b46bfb58754004e89771636fc assets/bloodmagic/models/block/crystal/steadfastcrystal7.json
dc2fff8fbabd58db8c0f2fb83d3d68446e324389 assets/bloodmagic/models/block/crystal/vengefulcrystal1.json
623e226eb28df9d7e2311ed6c68fba0835c80785 assets/bloodmagic/models/block/crystal/vengefulcrystal2.json
fe8271e4e815de11cd617179dedface57bd8c696 assets/bloodmagic/models/block/crystal/vengefulcrystal3.json
658bcbf2eadb0e2b442668e47b8a3a0fc684a57f assets/bloodmagic/models/block/crystal/vengefulcrystal4.json
825352d6cdd314dd4cb775062757e2b8eb39f5d7 assets/bloodmagic/models/block/crystal/vengefulcrystal5.json
9603b46cb4ebc567878ca5f54fe96e1199f34d0c assets/bloodmagic/models/block/crystal/vengefulcrystal6.json
ecf64f8c06743f0c2752e32a67753c0d5f9f67a1 assets/bloodmagic/models/block/crystal/vengefulcrystal7.json
c75695cf399d96d66914ab7dcfe1fe6bf171d6b9 assets/bloodmagic/models/block/deforester_charge.json
6adbeedc17f649ef47419845a6da0d50cfc76742 assets/bloodmagic/models/block/dislocationrune.json
313607b36c7c30073bbc64d3130f15b5871c5cd3 assets/bloodmagic/models/block/dungeon_brick1.json
55a9c171872cf9fb40c06dc2e9e826223a9096e0 assets/bloodmagic/models/block/dungeon_brick2.json
ff6727ee9a149e89deef8d666f373bdb4e68a545 assets/bloodmagic/models/block/dungeon_brick3.json
5b95b5519b04dec4f87ad7d287e3e1fa344725d8 assets/bloodmagic/models/block/dungeon_brick_gate.json
3de5c424b0928c220bf2073ee6aca5dbf4f379bb assets/bloodmagic/models/block/dungeon_brick_gate_open.json
daaeb0a0adb39fb6df3c6e6d380b34efd14bf4ce assets/bloodmagic/models/block/dungeon_brick_gate_wall.json
62ecdb415d060bf8a815f57fcf4c56b1e788f8f2 assets/bloodmagic/models/block/dungeon_brick_gate_wall_open.json
d40eb07dfa8b700d08a7f4c3739f4b6eef0bc95f assets/bloodmagic/models/block/dungeon_brick_stairs.json
df27c2b4e3345199ba29e16cddffcb86efe457b5 assets/bloodmagic/models/block/dungeon_brick_stairs_inner.json
2fbb36a96684b4acc57e551ac1f971878685a2aa assets/bloodmagic/models/block/dungeon_brick_stairs_outer.json
ffb2021036b74d29fca5fc706885f3e1399c2950 assets/bloodmagic/models/block/dungeon_brick_wall_inventory.json
70508a960748a3f62a11b1a7277977f0256be58a assets/bloodmagic/models/block/dungeon_brick_wall_post.json
a7d371e5d0efefae2729131bda16120bfe477bb8 assets/bloodmagic/models/block/dungeon_brick_wall_side.json
bd152efd619489661cac86a80190bf9e88c86363 assets/bloodmagic/models/block/dungeon_brick_wall_side_tall.json
19ae530a34eb5cee35dc7b9cdd51c9c2d61fdc9e assets/bloodmagic/models/block/dungeon_eye.json
72d70f0acb18b765340167559c10b027bd98673a assets/bloodmagic/models/block/dungeon_metal.json
61eb4e5ede53a8278d2d95fbeb40dc01424f2895 assets/bloodmagic/models/block/dungeon_ore.json
a4449c1d14c46bcda58b542c3efdddadff15bedc assets/bloodmagic/models/block/dungeon_pillar_cap.json
1752cc99d0c334016bebd0e8027b8abe3ca5d7e8 assets/bloodmagic/models/block/dungeon_pillar_cap_down.json
f171162bb4b86e70f2b2f13f3393704d295a4d86 assets/bloodmagic/models/block/dungeon_pillar_cap_east.json
c340c5e6c593cec4d342b36097fe7cca85ad647b assets/bloodmagic/models/block/dungeon_pillar_cap_north.json
c8ee14fcf2f46c755b47cc407e3cd0dbe7a477f9 assets/bloodmagic/models/block/dungeon_pillar_cap_south.json
4ac68eafddb0c99ad884af596bc48cd63af5a021 assets/bloodmagic/models/block/dungeon_pillar_cap_west.json
e6f858e8aa3c4bf2189885400a76892e707f5403 assets/bloodmagic/models/block/dungeon_pillar_center.json
12209619fc1d437d9339402ce437e6c9b2f3c02b assets/bloodmagic/models/block/dungeon_pillar_center_x.json
a4223ff2570f04a4a5d068944e8964811a62e92a assets/bloodmagic/models/block/dungeon_pillar_center_z.json
5b884f4ad41e9f0ba94a1a91938af497d3dde49b assets/bloodmagic/models/block/dungeon_pillar_special.json
eb4237db6507002305969c55ba64c9e19fe90357 assets/bloodmagic/models/block/dungeon_pillar_special_x.json
29736a69c3d5eef5b11befa0be27ddd274abc29e assets/bloodmagic/models/block/dungeon_pillar_special_z.json
a0aabc2be78af27e620e82d9f9b877dc99ae2798 assets/bloodmagic/models/block/dungeon_polished.json
05b4a25735c96036005bea06e013651a8aac5641 assets/bloodmagic/models/block/dungeon_polished_gate.json
fd32ed9981b8164f88319b66811f8e6d41ec8470 assets/bloodmagic/models/block/dungeon_polished_gate_open.json
590dbd87da39d8dc0f03dd274e46e5fec55a6ab0 assets/bloodmagic/models/block/dungeon_polished_gate_wall.json
9b86f7cfcf9b539090a49fe213ca76eb4295a7cd assets/bloodmagic/models/block/dungeon_polished_gate_wall_open.json
a9871493a35453a0f0cf1f5ff3e54f646325c2cf assets/bloodmagic/models/block/dungeon_polished_stairs.json
b073d62667acc4d278b96efcfbb929e4c70afe22 assets/bloodmagic/models/block/dungeon_polished_stairs_inner.json
fc4b1f91035eab88ea3178713ff950dce2637e41 assets/bloodmagic/models/block/dungeon_polished_stairs_outer.json
f5176982c9143ec07275349178617102af40ebeb assets/bloodmagic/models/block/dungeon_polished_wall_inventory.json
eb1252284b87f352e5d7eeae48d57e189f25340f assets/bloodmagic/models/block/dungeon_polished_wall_post.json
3c060012163a8c95532b85010773326a28e6f30e assets/bloodmagic/models/block/dungeon_polished_wall_side.json
6b5d875b69643f9daa4302a317ef3863fcce1a91 assets/bloodmagic/models/block/dungeon_polished_wall_side_tall.json
ef2a677751c2ae6c3cec9b905c28aeb615ea03e7 assets/bloodmagic/models/block/dungeon_smallbrick.json
84555e144215de4477ab826420400747b11edf9a assets/bloodmagic/models/block/dungeon_stone.json
d4e4cbb3a24e069a8e6c8e60764f8bbb7b3adb2b assets/bloodmagic/models/block/dungeon_stone_mirrored.json
8a922c0105191857905467f048aa40221cb34853 assets/bloodmagic/models/block/dungeon_tile.json
3895234c0c49d936ad0ad420dedd3669999b8a81 assets/bloodmagic/models/block/dungeon_tilespecial.json
81313327125e6e7396df0408595228bf0f63e1c9 assets/bloodmagic/models/block/duskritualstone.json
c30064f4aa09c42d23e94d118ae5b148eadb3a6c assets/bloodmagic/models/block/earthritualstone.json
44c4d3178261b3756987643b62f263c91fa74198 assets/bloodmagic/models/block/etherealopaquemimic.json
4ff1cab1014cd8f655e5f032ecf60dd371f421c3 assets/bloodmagic/models/block/fireritualstone.json
0fb05dea521223c58619fd71ccc2bcdf82ba7563 assets/bloodmagic/models/block/fungal_charge.json
d6bf1482345199e7d056a60865024ea5d480b986 assets/bloodmagic/models/block/largebloodstonebrick.json
2e1a81c758bfeec2aee807b48239f23241302268 assets/bloodmagic/models/block/lightritualstone.json
eab1713a8879decb2ae05258a6bcfa9da78ec67b assets/bloodmagic/models/block/masterritualstone.json
c0e0f918b237d2f25718bae4774750b90a88de7b assets/bloodmagic/models/block/nether_soil.json
1e354903812e9cf8e2fea26b908430d7e1cf20a9 assets/bloodmagic/models/block/obsidianbrickpath.json
71893b8b185c2b0f64f21b7dc6c4f2850f936206 assets/bloodmagic/models/block/obsidiantilepath.json
c3a813b735cd229f8597e41d04465926b2e65fe1 assets/bloodmagic/models/block/orbcapacityrune.json
9b2bf2a44b788cbaecbe63a3e085e8de76672e1b assets/bloodmagic/models/block/ritualstone.json
a8a1d06fcc2f8395530c72d2846133fff37d5537 assets/bloodmagic/models/block/sacrificerune.json
791c9f2e27215ff0a45eed7efe385276bfc09aed assets/bloodmagic/models/block/selfsacrificerune.json
d6238c0661560abd991d534ef6c8836f4655a7e7 assets/bloodmagic/models/block/sentientmimic.json
04a1e67d1587be970310912849119903b99412ef assets/bloodmagic/models/block/shaped_charge.json
6556131b1aeb25dc67daf31a1ecdb3ce23e718d4 assets/bloodmagic/models/block/solidclearmimic.json
88b9f25444280d323fff11046d4d3a3af11265e8 assets/bloodmagic/models/block/solidlightmimic.json
23d937795efdb02507d301c459e52cd4b0cfa5cb assets/bloodmagic/models/block/solidopaquemimic.json
65fe5e01ed2660e45a5c329ff2389a87e4d791ec assets/bloodmagic/models/block/speedrune.json
c5d2b0e33500a5c51046cd606e0d1272ec0dddd6 assets/bloodmagic/models/block/stonebrickpath.json
359e28e79778961f57c6369b5d1b68218972fccb assets/bloodmagic/models/block/stonetilepath.json
d8c8cb24e0e8479ec620b4cd8d5a6f5abb1a2dcb assets/bloodmagic/models/block/veinmine_charge.json
6041f2e47f5437d90a58586e42d18dadc42df439 assets/bloodmagic/models/block/waterritualstone.json
d77cdb168a084aeb962be6ad7b4f41b181837be6 assets/bloodmagic/models/block/woodbrickpath.json
e54a4f2b3cd405c69782662b1b0d57e24f7c2524 assets/bloodmagic/models/block/woodtilepath.json
ee59117289640eaebf7a9d7f629dd584ac3ed50f assets/bloodmagic/models/block/wornstonebrickpath.json
bee51abed529a89ad088b2cb89a4c1d0de541bf1 assets/bloodmagic/models/block/wornstonetilepath.json
9462d62d9bc9408359d30728de8651dc104aacf1 assets/bloodmagic/models/item/accelerationrune.json
28dc926a434253f140a7c4eece1522a64a7cccae assets/bloodmagic/models/item/activationcrystalawakened.json
3f64f82051888db51f30a75c41e1d249d7899235 assets/bloodmagic/models/item/activationcrystalcreative.json
10fa1f758c52f639880607bfaac3ced18b8b91ae assets/bloodmagic/models/item/activationcrystalweak.json
fe8e3deb3ad0107ca3ebd70694c1fc55a987d912 assets/bloodmagic/models/item/airritualstone.json
33074d865864911fcaf65e6d56430e87d466a1b8 assets/bloodmagic/models/item/airscribetool.json
60487d07a2fc1af61993e6bbebf012cf20aa3edd assets/bloodmagic/models/item/airsigil.json
92cc51b70ce22796804d093e3fc21141658f85fd assets/bloodmagic/models/item/alchemicalreactionchamber.json
f150f178edf7d6d250bcfd84af1c28a21cff09c6 assets/bloodmagic/models/item/altarcapacityrune.json
cb96caeaa30f168d03a7763f06fdff9fe47d29c5 assets/bloodmagic/models/item/apprenticebloodorb.json
5ae6e2eedcbf4a58b2e437aae2304e8171e05689 assets/bloodmagic/models/item/arcaneashes.json
69dc96914b3f5c8f672bbaca16720ffef951c179 assets/bloodmagic/models/item/basemonstersoul.json
975b721b2a1b40b4d3b3bf20d17329476f4bfc98 assets/bloodmagic/models/item/basemonstersoul_corrosive.json
318e954cc662ea33e30dad9bdff5e73b1da3b129 assets/bloodmagic/models/item/basemonstersoul_destructive.json
366657ca2747a4c8f9521c5b0b8f439d7880fcce assets/bloodmagic/models/item/basemonstersoul_steadfast.json
af6319be25a2aeadf7366c6f4b83a6c8e9e07343 assets/bloodmagic/models/item/basemonstersoul_vengeful.json
f5a0419f239ff5079b60011adb903a126265942e assets/bloodmagic/models/item/basiccuttingfluid.json
d3c33ff908880e7abc8a2cd977304419ec48a23d assets/bloodmagic/models/item/bettercapacityrune.json
7a1c55d55fe59d8a70bc2a867d127cb303c1ba23 assets/bloodmagic/models/item/blankrune.json
db9d31cae77018833be0e4d38db84d75adeb30a1 assets/bloodmagic/models/item/blankslate.json
c801f34e88224f9fabd89245f9d2a0d9ef466b64 assets/bloodmagic/models/item/bloodlightsigil.json
c795d1b7aa99ce27da63868f81bac615cf199c66 assets/bloodmagic/models/item/bloodstonebrick.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/bow_power_anointment.json
7315e49149eca494e6b132d383082cb76fc9c0e4 assets/bloodmagic/models/item/chargingrune.json
8c84f53166f2fdf7eaac4b6dc45402e3fa5b18d9 assets/bloodmagic/models/item/coalsand.json
3636c40fafa385642db14ca5f09d68e547060c4d assets/bloodmagic/models/item/corrosivecrystal.json
e8bdf0e3f557bb09c665312df380672e676f4382 assets/bloodmagic/models/item/corrosivedemoncrystal.json
470406aa7191f99f8b8d144fa0b1c314bdc10f11 assets/bloodmagic/models/item/corrupted_dust.json
1136b546d2cf73fc0f419447f7c328b8e2083323 assets/bloodmagic/models/item/corrupted_tinydust.json
9b332dc0443cb28c08d3af52096b7dd4fb2b68cc assets/bloodmagic/models/item/creeping_doubt.json
7b4471ae902c8e96a3730a86e1b15fb5c13aeec7 assets/bloodmagic/models/item/crystalline_resonator.json
5414b42d1246ff780f15ebd42212f19e90891daa assets/bloodmagic/models/item/daggerofsacrifice.json
08e573e533ecbfed2a734691608abe0119f3f3e3 assets/bloodmagic/models/item/defaultcrystal.json
cad1aef333d131d77b7960f5dc295694baeead1c assets/bloodmagic/models/item/deforester_charge.json
6353ff212d21942d3fcbf7ea0cedd027e831059f assets/bloodmagic/models/item/demonslate.json
fd9ec2b5fe4436363ae5058b6ff9d77bd81ce85d assets/bloodmagic/models/item/demonwillgauge.json
51f65b07ce2ff59d740e28a27a039bd0022c367f assets/bloodmagic/models/item/destructivecrystal.json
3e952fc5e87bd7883dadd761ef708ddfac29638c assets/bloodmagic/models/item/destructivedemoncrystal.json
7af07ab578bbd20e2f834b26d9cafb5fe23bc7d4 assets/bloodmagic/models/item/dislocationrune.json
d57d9bcecc2580bdc009e1cd2b4a87cc39b4bca9 assets/bloodmagic/models/item/divinationsigil.json
f866879eed9f1bd7eebac14495de599ca3ad855d assets/bloodmagic/models/item/dungeon_brick1.json
78f206d696acf10f082a34c7ec2fdbddc321231a assets/bloodmagic/models/item/dungeon_brick2.json
52f18a291e92fe5218dd4abacdabdc106dc2d380 assets/bloodmagic/models/item/dungeon_brick3.json
f866879eed9f1bd7eebac14495de599ca3ad855d assets/bloodmagic/models/item/dungeon_brick_assorted.json
1a1ab86e948d6f2a7e928750d5442fff1edb4c19 assets/bloodmagic/models/item/dungeon_brick_gate.json
2ec6a2c66e88981ff54e74035bb3adb1ec4f6396 assets/bloodmagic/models/item/dungeon_brick_stairs.json
098a26f4e9222c801f9a17a6db1b266ad4085003 assets/bloodmagic/models/item/dungeon_brick_wall.json
0a48c4fd74036702ae2d72a9b2333c2bdf5ab31b assets/bloodmagic/models/item/dungeon_eye.json
e5b467f756ccc4d3ab42a1249864d47f2b9c4587 assets/bloodmagic/models/item/dungeon_metal.json
95a45fae0890e626aa5e5ff85b9884bd30087244 assets/bloodmagic/models/item/dungeon_ore.json
ba5c610437b7d3a84820109c32d204310ff41fd7 assets/bloodmagic/models/item/dungeon_pillar_cap.json
d098a544e7b9918a45106c2cbc5e10baea66502a assets/bloodmagic/models/item/dungeon_pillar_center.json
5284f1cc7508546c66669564182fe5056053333d assets/bloodmagic/models/item/dungeon_pillar_special.json
9e876e438fa9bac067f6b3af4904e6bbd24044c8 assets/bloodmagic/models/item/dungeon_polished.json
9a7bf4c6c15f2a6e39588b1b8aed7988a7713a02 assets/bloodmagic/models/item/dungeon_polished_gate.json
477cd98babad0a71ccfcc9e541169fe9bc31d8d1 assets/bloodmagic/models/item/dungeon_polished_stairs.json
f3b763d6edc3c75655797481f05e02d409f481d9 assets/bloodmagic/models/item/dungeon_polished_wall.json
2ecba4811bd02698f6a34b5cdd9160426f7bda63 assets/bloodmagic/models/item/dungeon_smallbrick.json
2d7a8a3ed9f91a5bf5c277c6342c69e97692d347 assets/bloodmagic/models/item/dungeon_stone.json
717a9dcc833d1fbea4e5f989f45f46268d4ffe37 assets/bloodmagic/models/item/dungeon_tester.json
6186d2045f87b1e6cc7006226993a93b63d650ff assets/bloodmagic/models/item/dungeon_tile.json
21e8a4fa93ba249684e0624a10a6f0f00ff6d194 assets/bloodmagic/models/item/dungeon_tilespecial.json
10aceefca3ad3f0da773cb317c4effc6c06051ea assets/bloodmagic/models/item/duskritualstone.json
1f8ce936602a2e55ecf05b926734099c057733e5 assets/bloodmagic/models/item/duskscribetool.json
4d56efd7fdbf430f49903ce201577047687c3804 assets/bloodmagic/models/item/earthritualstone.json
b29b6d11b54e98dbfbeb9d677298e6ca95bf2ca2 assets/bloodmagic/models/item/earthscribetool.json
cdbaaf8662f2e855a34a66f28e49403c4ea9a45e assets/bloodmagic/models/item/ethereal_mimic.json
c5a3b58c52f75650ae38391841b21ad1cb0855f9 assets/bloodmagic/models/item/etherealslate.json
64529fc174f49c6eabca127ebdd287ff77a7ed63 assets/bloodmagic/models/item/experiencebook.json
dbd20c2ac822262cc368fd7d649de67c754e693d assets/bloodmagic/models/item/explosivepowder.json
c36bde4f98c0aeb3bf0f369ad3bc067e5f0dc916 assets/bloodmagic/models/item/fireritualstone.json
0a3dcea188a3e5cf5f7c9a2cc4ad62667ac5821b assets/bloodmagic/models/item/firescribetool.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/fortune_anointment.json
0392d220dc92ab8abad335e620b011e000b61ef9 assets/bloodmagic/models/item/fragment_netherite_scrap.json
4228d831053597cbb7d7e5fb68b7a6dbf1dbf977 assets/bloodmagic/models/item/fungal_charge.json
27ce75b6179a4620fd23aa07568c47fad36a14eb assets/bloodmagic/models/item/furnacecell_primitive.json
72386afa0dcb2444a8072d1618425038c73106c7 assets/bloodmagic/models/item/goldfragment.json
2bf9f4f4901425531903ace1cebee594bc37e55a assets/bloodmagic/models/item/goldgravel.json
bad504721d3bfd106869df9902bac0aa4001a1a7 assets/bloodmagic/models/item/goldsand.json
ebb91dfd0f28c439478b5f041b127aefa00ae583 assets/bloodmagic/models/item/gravel_netherite_scrap.json
44663089f348642bcca1c5020b5081c3ab172f92 assets/bloodmagic/models/item/growthsigil.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/hidden_knowledge_anointment.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/holy_water_anointment.json
f68825f667ca73b4373fd5068a47f0d1ca9b2aad assets/bloodmagic/models/item/icesigil.json
5d151f9d9007fb7459dde9f2d5c182b9b6aa06e0 assets/bloodmagic/models/item/infusedslate.json
59940408324c0379fa791a58f4a81781d06d1257 assets/bloodmagic/models/item/ingot_hellforged.json
80c575c613c1696069284224fe2c711c343bb0be assets/bloodmagic/models/item/ironfragment.json
4b803c1c838284d78474bab0f8ced938985dd958 assets/bloodmagic/models/item/irongravel.json
d83040a473f44ff2fd9d290f3fd6ef0d8b9f3114 assets/bloodmagic/models/item/ironsand.json
9b9fc4a11a187257d30334cd3faa949790b6ca29 assets/bloodmagic/models/item/largebloodstonebrick.json
ffc3da1cbb86adc5aec7dfd503d23af319aec529 assets/bloodmagic/models/item/lavacrystal.json
12360580230f4eab90dbe7de3d5bbf79e2338b03 assets/bloodmagic/models/item/lavasigil.json
5a76914a87fc9b99079bb6afed1d4cfe3e4a532e assets/bloodmagic/models/item/lightritualstone.json
0d6c9d3b2ec30835ef74b6d6e8184074ac0861b8 assets/bloodmagic/models/item/livingboots.json
dd50db84188025895693164736f4799e75b8c7a9 assets/bloodmagic/models/item/livinghelmet.json
e39cf255d5c8873e02d1f2df2c829d0858df25e3 assets/bloodmagic/models/item/livingleggings.json
45756697d2f012fcc2de5fead120768a87655662 assets/bloodmagic/models/item/livingplate.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/looting_anointment.json
7211624c82431d12dd21b3de262f4f332a69e0e1 assets/bloodmagic/models/item/magicianbloodorb.json
2b760616f7dad714accf1249b85eec4761f69706 assets/bloodmagic/models/item/masterbloodorb.json
9e377ab2c131993f96ab6fb544bda4dbba0ab87e assets/bloodmagic/models/item/masterritualstone.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/melee_anointment.json
3d5c71d1f24ebcc65db48765b56db60d64673a0d assets/bloodmagic/models/item/mimic.json
7596826c5b40c2809eb0a42eb5f5f2089290e3e5 assets/bloodmagic/models/item/miningsigil.json
9010fdcefb80ed0db271b41263412a1673c6c311 assets/bloodmagic/models/item/nether_soil.json
eaa0548775c3d5839b46d333af33f815dc6dd0fe assets/bloodmagic/models/item/obsidianbrickpath.json
cf066d15baae650a383240a91240abd335bbb0e3 assets/bloodmagic/models/item/obsidiantilepath.json
ff9b802098659824626dc90dbb5a0d8960234228 assets/bloodmagic/models/item/orbcapacityrune.json
d5fd516b1cf94ab01d5b1fbe554705215f21ff66 assets/bloodmagic/models/item/plantoil.json
abdd58730704a0936783c6752098a9fec1e3f18d assets/bloodmagic/models/item/primitive_crystalline_resonator.json
f3dd3ad67c86895983e3cf0f21e44d0f4046962e assets/bloodmagic/models/item/primitive_explosive_cell.json
0a88f03b48e0032f7ed7878212b0b01a930186d0 assets/bloodmagic/models/item/primitive_hydration_cell.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/quick_draw_anointment.json
63fe86d0faf9aa03a513221a6a12828a886b1301 assets/bloodmagic/models/item/rawdemoncrystal.json
6f5418ed5739381e95b4d3b33f3e2924a6233941 assets/bloodmagic/models/item/reagentair.json
0f3fbea424448d41cac91bc479d9235def615af7 assets/bloodmagic/models/item/reagentbinding.json
df9beacb97275ffaa7f186778d94ad11138dffe3 assets/bloodmagic/models/item/reagentbloodlight.json
ba57b2a11a0920e7a4df894c6fbae38bf2a6e0ce assets/bloodmagic/models/item/reagentfastminer.json
f9a2fbb703e22dee4ae74daff99249e5f22caa0f assets/bloodmagic/models/item/reagentgrowth.json
a0e2480efd5433e9ead1ef87c2b31b0dbbc7ecb6 assets/bloodmagic/models/item/reagentholding.json
2f8cfb7f2c9cb3dd62a007c2ec56f585414149d8 assets/bloodmagic/models/item/reagentlava.json
2a07dc18d2d8166815c29aa989ccd0093d5d112b assets/bloodmagic/models/item/reagentmagnetism.json
7ce18ad9b0de94a3fc5abf03c6726c8cc4cf5524 assets/bloodmagic/models/item/reagentsight.json
7aa180a374f6a60f0525659c90f386a9df7bedcd assets/bloodmagic/models/item/reagentvoid.json
d6fefc8d0d11bcc40ec6c9fa41e8e9402274251a assets/bloodmagic/models/item/reagentwater.json
98783464efdcbcaf2f457dfafc4a126f57454f8c assets/bloodmagic/models/item/reinforcedslate.json
8c473f375d7e45adb82f615a6d9e6dea312f57bd assets/bloodmagic/models/item/ritualdiviner.json
152682fd87d660cb06931b65d7a402ccd332a21a assets/bloodmagic/models/item/ritualdivinerdusk.json
2722891c9c40b124d85bf9ff8eb885e175f5e6ff assets/bloodmagic/models/item/ritualstone.json
7f7c3f406430ca088c3993c1347c2219b287498e assets/bloodmagic/models/item/ritualtinkerer.json
db73abb3bcb1731b6fc389e3577910b6aab87b10 assets/bloodmagic/models/item/sacrificerune.json
7d0c46410e4e256bd88f9220cd3eaf948a4b715f assets/bloodmagic/models/item/sacrificialdagger.json
9a67ae7be820dca31446758377677cc2c906ab80 assets/bloodmagic/models/item/saltpeter.json
db66835b16edd296fe71a63a2f195ffdc9e97519 assets/bloodmagic/models/item/sand_hellforged.json
1e7fca5638c09e4c46f9e65854bc0316d8142361 assets/bloodmagic/models/item/sand_netherite.json
eb098783e91a17d07429d9006fb09bf056350e57 assets/bloodmagic/models/item/sanguinereverter.json
b6e98c7b1789654fe7ff559e95011c0a28c58bc1 assets/bloodmagic/models/item/seersigil.json
cc71421e98ee7ee047a4cfbb6cb69529c2b02d4e assets/bloodmagic/models/item/selfsacrificerune.json
7f0256ef2f219d92882e759677399050b0776d64 assets/bloodmagic/models/item/shaped_charge.json
6cc73920a09d4d6925154732f4064d8d03590f25 assets/bloodmagic/models/item/sigilofholding.json
ea5747638d0b5dcc03f008b202cc60a11e0827bb assets/bloodmagic/models/item/sigilofmagnetism.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/silk_touch_anointment.json
96eca80edd26a325bd65f325f4c3d651b1080912 assets/bloodmagic/models/item/slate_ampoule.json
08bee690d5092e3c9e6c04c43f50af668fdb3b7e assets/bloodmagic/models/item/slate_vial.json
dd4a590f68820a04ca4a71df507e8a39ca6bd393 assets/bloodmagic/models/item/smelting_anointment.json
db0f63198089161b8d4ecfb1ec8a45f7dc5ba83d assets/bloodmagic/models/item/soulaxe.json
9ec68a2dcf04b987c3c5d5c6c52195e3deccacbb assets/bloodmagic/models/item/soulgemcommon.json
6501bb4b72457e8107bec818f26de6178b655203 assets/bloodmagic/models/item/soulgemgreater.json
ad010d9680cd748bd04c8fc36262c236f7d90105 assets/bloodmagic/models/item/soulgemlesser.json
b49e7f34913e32ccb68eeb6f6c196ff6b209f482 assets/bloodmagic/models/item/soulgempetty.json
c873e91c70eef9ad4c39aeb2fe8b9aa16a26cccd assets/bloodmagic/models/item/soulpickaxe.json
5682770badd4dbc1ae533de0ce0f9a7cd0b2aeea assets/bloodmagic/models/item/soulscythe.json
bde2befafc97fd89a428dfa3f39fc970e9a3ae29 assets/bloodmagic/models/item/soulshovel.json
7b375670d1fa52a3585907d3e880863dbcc04b32 assets/bloodmagic/models/item/soulsnare.json
fe2b201007c974229509f6900c6eb8b03d158b0a assets/bloodmagic/models/item/soulsword.json
52d21027ac6fed000e77b5e8ad9102319b25cb33 assets/bloodmagic/models/item/speedrune.json
36e0914768c8b3eb3b80702280ca74bbd8546623 assets/bloodmagic/models/item/steadfastcrystal.json
6968a3d0c3bbeac8ea4cb2c050e28506e8938851 assets/bloodmagic/models/item/steadfastdemoncrystal.json
29009ca92dc30e1ec4ae1d454cd3f8726d8edc3c assets/bloodmagic/models/item/stonebrickpath.json
2dc28b0e2b7ae7bb0bcf8c8e74b9ba7c800446ff assets/bloodmagic/models/item/stonetilepath.json
1992b3655f7bbca8b7aac7c53f1a0e7b1ab3124d assets/bloodmagic/models/item/sulfur.json
451fa4812d23a207882eb95d89673b1e4c2dd257 assets/bloodmagic/models/item/throwing_dagger.json
4f4e6c72a160eb635bdf78ed0a6ba5765fbf51ea assets/bloodmagic/models/item/throwing_dagger_syringe.json
d13731c45f6dd23b8e70d2a75d4068bdae88ef5c assets/bloodmagic/models/item/upgradetome.json
e8fe01c5cddc268538681889f3161472a8f1c8ad assets/bloodmagic/models/item/variants/growthsigil_activated.json
20c802279de4df496057795c2e891fa54a21376f assets/bloodmagic/models/item/variants/growthsigil_deactivated.json
2778ea3a62ce6dd718a557beee7b5329bb185ff9 assets/bloodmagic/models/item/variants/icesigil_activated.json
11f5516cea8ac65bbb0f5958d6492170482ae8d8 assets/bloodmagic/models/item/variants/icesigil_deactivated.json
be3772fd711ccf4a2adfad122a8b39e8a36e874a assets/bloodmagic/models/item/variants/miningsigil_activated.json
7dec45f3167426d975564692a80196cdb3f4bdb4 assets/bloodmagic/models/item/variants/miningsigil_deactivated.json
9403d6195d4d38d5876c2a42f4edfb9bdcd05210 assets/bloodmagic/models/item/variants/sacrificialdagger.json
89ea1f760bac680b1baa98536d6bc407e347676e assets/bloodmagic/models/item/variants/sacrificialdagger_ceremonial.json
79c61e61656a934397c92626809c1869b0617fc3 assets/bloodmagic/models/item/variants/sigilofmagnetism_activated.json
129ace1f4a25f22bd09215603248a25adcf234e0 assets/bloodmagic/models/item/variants/sigilofmagnetism_deactivated.json
81e1cb0664f53f30ad195fc4330786b71db9e20c assets/bloodmagic/models/item/variants/soulaxe.json
2254b45194021cdd3fbc7d384d958b031a8e7cea assets/bloodmagic/models/item/variants/soulaxe_corrosive.json
c11750d01a720a1b0eca0610ec12cba0fef4d5da assets/bloodmagic/models/item/variants/soulaxe_destructive.json
368e428410c7c6d6bf444970221bb5ebe5f6bacd assets/bloodmagic/models/item/variants/soulaxe_steadfast.json
267875926ed261400a10371e044e9f54aafa637a assets/bloodmagic/models/item/variants/soulaxe_vengeful.json
cddaa2be8db3aff90933fb772b92cab735ebf11e assets/bloodmagic/models/item/variants/soulgemcommon.json
874aa708d02de2315e29033b2f67fd313edc8aff assets/bloodmagic/models/item/variants/soulgemcommon_corrosive.json
3ca3c4251a8907c1c47caf49e53a711265e0e92c assets/bloodmagic/models/item/variants/soulgemcommon_destructive.json
3ad2785d3e893943ea769c7e39d69cedd71e556a assets/bloodmagic/models/item/variants/soulgemcommon_steadfast.json
016ccdfb8a6e0101975e64f9f548e6a93d32f53c assets/bloodmagic/models/item/variants/soulgemcommon_vengeful.json
daef17113abd2003f745e069c1ccecc911445919 assets/bloodmagic/models/item/variants/soulgemgreater.json
73926de465b378adad07303f02a01c41c2f3656e assets/bloodmagic/models/item/variants/soulgemgreater_corrosive.json
1807f9b243e98c9ea43ac230ae211a324c82db79 assets/bloodmagic/models/item/variants/soulgemgreater_destructive.json
07c68e7574ef7d4db2e011e23c3bc20ad258daea assets/bloodmagic/models/item/variants/soulgemgreater_steadfast.json
3691ec7d9fedd3694feb1d6d387a9420e87ff8ce assets/bloodmagic/models/item/variants/soulgemgreater_vengeful.json
2b2322dfd3f7e28ea5d0ad2d9df2223d7ee47f00 assets/bloodmagic/models/item/variants/soulgemlesser.json
8eaab2fddfe201dc83d2d2ffd65e1537a3e5a388 assets/bloodmagic/models/item/variants/soulgemlesser_corrosive.json
24608fc7a19e41d71ec84a80c18ceccbc869cd79 assets/bloodmagic/models/item/variants/soulgemlesser_destructive.json
1ef6dd3ceed7f6ffd3e91283146fbe3f6db46d10 assets/bloodmagic/models/item/variants/soulgemlesser_steadfast.json
7801bda9366c21aad10137d30151ac4154acbea1 assets/bloodmagic/models/item/variants/soulgemlesser_vengeful.json
0b37376d07ecf8ff91df345435abd5d94d28714e assets/bloodmagic/models/item/variants/soulgempetty.json
fb9e51a933316daa4a99b6e6c9a2606dc354f0dc assets/bloodmagic/models/item/variants/soulgempetty_corrosive.json
0a15d2c90a8d139c1689579460379e5feefaddec assets/bloodmagic/models/item/variants/soulgempetty_destructive.json
a94516c3019969baa379f4a32d68736010cb473a assets/bloodmagic/models/item/variants/soulgempetty_steadfast.json
eabd2e88451ef42250e86c6675868b322aa0db92 assets/bloodmagic/models/item/variants/soulgempetty_vengeful.json
cebb0537b96480ac99314840a45107108b1bbc3a assets/bloodmagic/models/item/variants/soulpickaxe.json
2045e6593e80a11da9c60d0bdcef456503141232 assets/bloodmagic/models/item/variants/soulpickaxe_corrosive.json
37144adb7eb312c66a3567faeb3ece5aeef76e70 assets/bloodmagic/models/item/variants/soulpickaxe_destructive.json
e09d7927fdb84c372d36b290e3c69f728c922675 assets/bloodmagic/models/item/variants/soulpickaxe_steadfast.json
bec6cecf74db6a32fb5890b0596ddb7e2bf2daef assets/bloodmagic/models/item/variants/soulpickaxe_vengeful.json
a1fa69851bf9bb7022a25c0bef26fd44633616e2 assets/bloodmagic/models/item/variants/soulscythe.json
7c97bf4b12fc39cbe100d0e54e6b1b53a592c771 assets/bloodmagic/models/item/variants/soulscythe_corrosive.json
ad9c84341af3f0e90cdb206f39fbf4c2e589c52a assets/bloodmagic/models/item/variants/soulscythe_destructive.json
00b631dc41ee04264a91fe9a9e0b5660daf9fbc5 assets/bloodmagic/models/item/variants/soulscythe_steadfast.json
379922deb3b4e352763b335c01d4d66bfc531218 assets/bloodmagic/models/item/variants/soulscythe_vengeful.json
501142d1ff49eaf663e9a2044da17b8b5a25e361 assets/bloodmagic/models/item/variants/soulshovel.json
f65e2a2d4f0cae6c3dc986274c2dee0f1773cfb2 assets/bloodmagic/models/item/variants/soulshovel_corrosive.json
6c6b04b81358bb82b4d127fc621190dc2804fd45 assets/bloodmagic/models/item/variants/soulshovel_destructive.json
0e193ee2b27783f3d10461977c7d719be96af203 assets/bloodmagic/models/item/variants/soulshovel_steadfast.json
a8a7f03cc24f0d796e8868ace72f50ec4343dd5b assets/bloodmagic/models/item/variants/soulshovel_vengeful.json
0cd32e8e693d85b8a81e96ea305ffafb4a72e861 assets/bloodmagic/models/item/variants/soulsword_activated.json
60831276c8b0a5ecfa8e1a7beee6c5a4838cae69 assets/bloodmagic/models/item/variants/soulsword_corrosive_activated.json
792bb3a3e613808890cf0c31585318dc8e16891d assets/bloodmagic/models/item/variants/soulsword_corrosive_deactivated.json
ba7a7366b1471dd58b27b523bde130e39220fe01 assets/bloodmagic/models/item/variants/soulsword_deactivated.json
ef838be270d9d87651aec70c6b59197b01e48a6c assets/bloodmagic/models/item/variants/soulsword_destructive_activated.json
ec6f6bf7f520182b2044f3cc5a10f1d4c7a8d7ab assets/bloodmagic/models/item/variants/soulsword_destructive_deactivated.json
149f3e3049bd4f4ed559e56db79027bda9e8478e assets/bloodmagic/models/item/variants/soulsword_steadfast_activated.json
7d22fdba9bb8593c247a0b33df11f3b26a16c254 assets/bloodmagic/models/item/variants/soulsword_steadfast_deactivated.json
2029220112f89a3f4d432ab4749dff6143846659 assets/bloodmagic/models/item/variants/soulsword_vengeful_activated.json
0f5a3e1e5993a03ccda156eed855b71fbd0be0a2 assets/bloodmagic/models/item/variants/soulsword_vengeful_deactivated.json
81776d7be5f2d13e44622a6d38929821bc78ae7d assets/bloodmagic/models/item/veinmine_charge.json
16bde91467016c6012fe2b618c898d0340043492 assets/bloodmagic/models/item/vengefulcrystal.json
11e3347147e079093c4fa12018412071db22a4f5 assets/bloodmagic/models/item/vengefuldemoncrystal.json
9019dcd2f21b03e703ceeee1ea3199de72110268 assets/bloodmagic/models/item/voidsigil.json
a31019db55828cb937a071ac2f74b125a2d0c955 assets/bloodmagic/models/item/waterritualstone.json
23d5a97cb44909c470ea76833138cd187f13ba80 assets/bloodmagic/models/item/waterscribetool.json
bfa6dec13cc193bbe634c2c68b641f3897ccb342 assets/bloodmagic/models/item/watersigil.json
cb4eaa9292890e172b0f36a63605db0c973f735e assets/bloodmagic/models/item/weakbloodorb.json
46423c1325542ab0efad772e1aab52082d9ef636 assets/bloodmagic/models/item/weakbloodshard.json
6b16a94dcb06f31b7a92f250449ec42dbc3568aa assets/bloodmagic/models/item/will_power_anointment.json
c0907e611e09ccc924452070519006add21f3d12 assets/bloodmagic/models/item/woodbrickpath.json
1de444baa270a146dcd33c784b08f75a3d745421 assets/bloodmagic/models/item/woodtilepath.json
c8ea88c439c91d0eeee3e6204a3c50f8cfd36758 assets/bloodmagic/models/item/wornstonebrickpath.json
2d9dab8ebc036473d82eb044eb7a7bba0d0937a4 assets/bloodmagic/models/item/wornstonetilepath.json
273f8363ef906c87c67ae8aeb21a7d9d2834bbc6 data/bloodmagic/advancements/recipes/bloodmagictab/alchemy_table.json
e6a3ac3998653b10ee09780be9099a9d0c5b3917 data/bloodmagic/advancements/recipes/bloodmagictab/arc.json
08af21340e8457f43f7e5235790f58c2a67b9b3a data/bloodmagic/advancements/recipes/bloodmagictab/blood_altar.json
80cf1e0f026565be99279c46306b92be06bda65c data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_acceleration.json
f77e3947a24a252c04a80d1eb26547a3fbf868e7 data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_aug_capacity.json
f8b66411c96c6a7a409fb10f6888d078f1f8fa14 data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_blank.json
ab5612f33028487c08e51de4b91bb786df1b1b95 data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_capacity.json
e59e508cdbd51f62f83559edeb5f2a89226d7694 data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_charging.json
d707d48cc670ae65f224487a5012d5464c0a9760 data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_displacement.json
e897d6f91e2a0bd12b0da0a50e5c897294989e7c data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_orb.json
4a53004c651901cd1245de452810161736d9b067 data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_sacrifice.json
263f7c251d2f163db5bd229f2ab8a222f23ae03a data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_self_sacrifice.json
7ca400d1141ff4be1b529cd060950b42cf3b9bfb data/bloodmagic/advancements/recipes/bloodmagictab/blood_rune_speed.json
764e54fdaa24f87cceb815990bbbd2e2cd87f205 data/bloodmagic/advancements/recipes/bloodmagictab/bloodstonebrick.json
2e7ec285e758b06c2bd7d9fd93eedd96f511fa49 data/bloodmagic/advancements/recipes/bloodmagictab/corrupted_dust.json
f92c8a88a2c0ca63510d170c33f5eb2d1aee25ec data/bloodmagic/advancements/recipes/bloodmagictab/experience_tome.json
1b1dab3143eae33e25c4a14c011adec72768c9b5 data/bloodmagic/advancements/recipes/bloodmagictab/hellforged_block.json
a6f012d0584d36d9b7dd0ec4f9e4cbd2a3ff1146 data/bloodmagic/advancements/recipes/bloodmagictab/incense_altar.json
4c24af93a64071aadc0308b27bcbc44572e5ccfc data/bloodmagic/advancements/recipes/bloodmagictab/largebloodstonebrick.json
344567e6f5671131addcfebbd92d18e5cbd66ef5 data/bloodmagic/advancements/recipes/bloodmagictab/lava_crystal.json
d8ca7255f72a2ab6915552cdeb682ecc6efde03a data/bloodmagic/advancements/recipes/bloodmagictab/path/path_stone.json
1b85f9d2b823aef941158276b6f46bd8279cd693 data/bloodmagic/advancements/recipes/bloodmagictab/path/path_stonetile.json
f17f721149daf9246788be3235e5a6472155215a data/bloodmagic/advancements/recipes/bloodmagictab/path/path_wood.json
147ba38e68ca50e503ecf1ea96e85ce62c2dd86d data/bloodmagic/advancements/recipes/bloodmagictab/path/path_woodtile.json
ea0b32b5595661f0d09f68a8a596577cc62ba0b1 data/bloodmagic/advancements/recipes/bloodmagictab/path/path_wornstone.json
0dc717f46c2c6f36b58114df2bf5c82aadb104d2 data/bloodmagic/advancements/recipes/bloodmagictab/path/path_wornstonetile.json
091fbd276c5ad173716e9e7474fa278e742a662f data/bloodmagic/advancements/recipes/bloodmagictab/primitive_furnace_cell.json
7cf09fef1a5bfc1401ecc34857bdf78c7282c12a data/bloodmagic/advancements/recipes/bloodmagictab/primitive_hydration_cell.json
01e90bb9c59d44a52777ecc0cf28754295fda675 data/bloodmagic/advancements/recipes/bloodmagictab/ritual_diviner_0.json
836e1fc171dba197e02d6a9e3e61a3718cb5a482 data/bloodmagic/advancements/recipes/bloodmagictab/ritual_diviner_1.json
5deb91599f19a4f28e5b03c9fcb428d3f00a3644 data/bloodmagic/advancements/recipes/bloodmagictab/ritual_reader.json
c8e5cdac0e7328640ab1cb0eab0a46f0733b59b3 data/bloodmagic/advancements/recipes/bloodmagictab/ritual_stone_blank.json
1578416eb302aecb3fd61e481634c5c021541f51 data/bloodmagic/advancements/recipes/bloodmagictab/ritual_stone_master.json
832301a424345b7ca70b43cb214faa104179f0fb data/bloodmagic/advancements/recipes/bloodmagictab/sacrificial_dagger.json
b76943e5606d3cd4ec9933b533e0925499af5c65 data/bloodmagic/advancements/recipes/bloodmagictab/smelting/ingot_hellforged.json
766cf6a61f198a8426debb6f0c9f43e36193fc76 data/bloodmagic/advancements/recipes/bloodmagictab/soul_forge.json
1c751b044e5ce4d05746857d6cf5e812e94a4026 data/bloodmagic/advancements/recipes/misc/smelting/ingot_gold.json
af036dd1bd5193c2d36e7cb96c0a2b73a37b76ab data/bloodmagic/advancements/recipes/misc/smelting/ingot_iron.json
ab358377c93ecbdd790722d5e796df59095e79e1 data/bloodmagic/advancements/recipes/misc/smelting/ingot_netherite_scrap.json
639ebb2ccabb2eaece59be96c2e6f28c31f4d2f4 data/bloodmagic/loot_tables/blocks/accelerationrune.json
26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/airritualstone.json
1ed1f3cebe68450b6d5ca3ce69e4728a7d250b1c data/bloodmagic/loot_tables/blocks/alchemicalreactionchamber.json
443550be9eaf1021b11fd2bbe6afcfe2cee6f7ad data/bloodmagic/loot_tables/blocks/alchemyarray.json
c92a9f2a90f2c17933f89832899c295cde1f194d data/bloodmagic/loot_tables/blocks/alchemytable.json
17d8dcc62320d5d2eeb781e925963d9b9d5eec54 data/bloodmagic/loot_tables/blocks/altar.json
05bb6268d7e884c962061a632e162d5baf73271e data/bloodmagic/loot_tables/blocks/altarcapacityrune.json
87d44fa5143733864c12608443d11744b91e0496 data/bloodmagic/loot_tables/blocks/bettercapacityrune.json
867d0fa555de94140215d9edb7cd7ae533bbc619 data/bloodmagic/loot_tables/blocks/blankrune.json
f1a8e3131d85077665563372cad868534a72fb31 data/bloodmagic/loot_tables/blocks/bloodlight.json
f0827ad5bf71c06a71f50aeb0298c04d0cb1a1d9 data/bloodmagic/loot_tables/blocks/bloodstonebrick.json
779b809a2a51e6dab46f9e6799249f2f14653ebb data/bloodmagic/loot_tables/blocks/chargingrune.json
0d501e4eb447e84b38250ab1c396abe1218d129c data/bloodmagic/loot_tables/blocks/corrosivedemoncrystal.json
e59c93dcc8d42b3ddb71dad1695573b1c284213f data/bloodmagic/loot_tables/blocks/creeping_doubt.json
794eab6d989fe113f797835fa6a2f7ead5bfbd38 data/bloodmagic/loot_tables/blocks/deforester_charge.json
4c9ed83e7e7215f995df35054e96d2f4e5027016 data/bloodmagic/loot_tables/blocks/demoncrucible.json
c590b923d28b3d7916932dfcb05091df815f71dd data/bloodmagic/loot_tables/blocks/demoncrystallizer.json
b0ce964c69f63aa13350259279e5fe831ae18e2c data/bloodmagic/loot_tables/blocks/destructivedemoncrystal.json
a9fcfc656fab957328c10ee1d9d33807e697b7f7 data/bloodmagic/loot_tables/blocks/dislocationrune.json
e39c50638d466bf706327f52fd42c915e2990d7e data/bloodmagic/loot_tables/blocks/dungeon_brick1.json
be050ff812ae62793e3c51d7c2ab343294ede7f0 data/bloodmagic/loot_tables/blocks/dungeon_brick2.json
75252b630d7e0cf77db12125844283949ee94226 data/bloodmagic/loot_tables/blocks/dungeon_brick3.json
607d6e286ff2280686f258a931341aeed5334781 data/bloodmagic/loot_tables/blocks/dungeon_brick_assorted.json
03410080009911badbf6458a54b596bee464cbe4 data/bloodmagic/loot_tables/blocks/dungeon_brick_gate.json
0d30aeb91425e2419abf555e9baab34475f45afc data/bloodmagic/loot_tables/blocks/dungeon_brick_stairs.json
fa335aded871280065ca02db79d6de59ced7f6c9 data/bloodmagic/loot_tables/blocks/dungeon_brick_wall.json
47baa958866616d96eb39e2671a4cf488e0abae2 data/bloodmagic/loot_tables/blocks/dungeon_eye.json
055aa396cd80393d84ed340692be62f74ecb6ffc data/bloodmagic/loot_tables/blocks/dungeon_metal.json
234675dab5d5ff7e1fec0e13cede1f141811fc92 data/bloodmagic/loot_tables/blocks/dungeon_ore.json
53864c213b973e67006cda4596877bcdd3474396 data/bloodmagic/loot_tables/blocks/dungeon_pillar_cap.json
db8be3b67639ab451d0a28e0674240094ceea046 data/bloodmagic/loot_tables/blocks/dungeon_pillar_center.json
c3deab4dd4ef8c1cf6f217d660ea07e5d7bd8555 data/bloodmagic/loot_tables/blocks/dungeon_pillar_special.json
32d9f0674d7d416a5d668af187b89caede4188a3 data/bloodmagic/loot_tables/blocks/dungeon_polished.json
dc0822572a66634163dd630797b1b90d98d47c22 data/bloodmagic/loot_tables/blocks/dungeon_polished_gate.json
a44e605af1925a17a806c751f9f4279dbffa417f data/bloodmagic/loot_tables/blocks/dungeon_polished_stairs.json
d6f0610c923131dee1c8723231ffafd7a75eb689 data/bloodmagic/loot_tables/blocks/dungeon_polished_wall.json
e936d89fc5a75a786a455a32e9bce2f7b1bdcb34 data/bloodmagic/loot_tables/blocks/dungeon_smallbrick.json
b6732b30df9e946739a1913671a60f56090679f8 data/bloodmagic/loot_tables/blocks/dungeon_stone.json
69eb25424b97782eb86d9667581ada8d03e3b220 data/bloodmagic/loot_tables/blocks/dungeon_tile.json
6381473b6e0bc7c16b8214eb083f5069622b4dd1 data/bloodmagic/loot_tables/blocks/dungeon_tilespecial.json
26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/duskritualstone.json
26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/earthritualstone.json
2f27b244e5b3459408e9519dde05dc70cbb03998 data/bloodmagic/loot_tables/blocks/ethereal_mimic.json
26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/fireritualstone.json
70ecedd4cea1655ce9fe5b1d3f72796a5c0ff133 data/bloodmagic/loot_tables/blocks/fungal_charge.json
59dd54a876b7ccd0b6c90f409753c2af2d687f03 data/bloodmagic/loot_tables/blocks/incensealtar.json
462a82b07e7fe3e479a2c072c73507686c339346 data/bloodmagic/loot_tables/blocks/largebloodstonebrick.json
26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/lightritualstone.json
72610188b4538d98ffcd015c2813d63d19889d5f data/bloodmagic/loot_tables/blocks/masterritualstone.json
ce5bf03f0ee03205ef6a1b6f512cb5da23addc57 data/bloodmagic/loot_tables/blocks/mimic.json
842c4dce4e47561fe29d7b5c03d3953808ada929 data/bloodmagic/loot_tables/blocks/nether_soil.json
3892d33bbef90db50034b1358d4a9ee8b731bc8d data/bloodmagic/loot_tables/blocks/obsidianbrickpath.json
3576b2f9d92ab5bdc456cb904905fb5c969e55f3 data/bloodmagic/loot_tables/blocks/obsidiantilepath.json
95442c1bb740fab2eb8ee051f7184813f6023afa data/bloodmagic/loot_tables/blocks/orbcapacityrune.json
6c59e846922061c0f2249b0c73c3be89ec73ea31 data/bloodmagic/loot_tables/blocks/rawdemoncrystal.json
26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/ritualstone.json
e0239eff7762a414a4e4faa0158d844dffb8c1f6 data/bloodmagic/loot_tables/blocks/sacrificerune.json
9b697e37046b6238b3a19eae9113b88010ccff32 data/bloodmagic/loot_tables/blocks/selfsacrificerune.json
fce757b3f3b79758be0fba70e016b3bdb373814e data/bloodmagic/loot_tables/blocks/shaped_charge.json
f748a5ba8838b50de0502f132fe2a65f4726dae6 data/bloodmagic/loot_tables/blocks/soulforge.json
015e07226fd90935f7ec663f4bcf3873a57a82d1 data/bloodmagic/loot_tables/blocks/speedrune.json
128ec3ee93e927d457beeb8161e80706e9239760 data/bloodmagic/loot_tables/blocks/steadfastdemoncrystal.json
8849e41b699c2eb7c3712a8e862bd9dd309a5c31 data/bloodmagic/loot_tables/blocks/stonebrickpath.json
6149fd464bafaabf35ca431202680c84cf5441b1 data/bloodmagic/loot_tables/blocks/stonetilepath.json
10b636d364f9ff72eb6db34f6f5e6aca704fc621 data/bloodmagic/loot_tables/blocks/veinmine_charge.json
33a22d9b198c93ed07ac69b7a594bb08db64b239 data/bloodmagic/loot_tables/blocks/vengefuldemoncrystal.json
26e3f34021426def32602e5ae7755e4672878320 data/bloodmagic/loot_tables/blocks/waterritualstone.json
04c5bc02383ddff04588af3a048ee3973e69666f data/bloodmagic/loot_tables/blocks/woodbrickpath.json
2c471cedf5e3e39610821766609646698d2b47e3 data/bloodmagic/loot_tables/blocks/woodtilepath.json
9ab0aac56f75e7811f9641a6a20ff8d9dd78876a data/bloodmagic/loot_tables/blocks/wornstonebrickpath.json
4a7395079f874ae08af94f64a8a00211a56e906a data/bloodmagic/loot_tables/blocks/wornstonetilepath.json
c95cd70b7ca320e18618c07827add555984b0e45 data/bloodmagic/loot_tables/test.json
966981b01944985f1fe5cfa72b21c9ceeebd9cc4 data/bloodmagic/recipes/alchemy_table.json
6e508e442b24c2a0e3f85026277c199cc0deada0 data/bloodmagic/recipes/alchemytable/arcane_ash.json
a343604b5a75e1b3810df97d024813fb041cffb6 data/bloodmagic/recipes/alchemytable/basic_cutting_fluid.json
cc28a48ec4b21be99c4ec13f6e560c322012192c data/bloodmagic/recipes/alchemytable/bow_power_anointment.json
6a93bcd65cf2636fc684276777f56630f82d710c data/bloodmagic/recipes/alchemytable/bread.json
e50009fa724173c2dcb4fab49b4f029039f69bf8 data/bloodmagic/recipes/alchemytable/clay_from_sand.json
72f8d4afe57970d3969a9373b18f8eac86b245bc data/bloodmagic/recipes/alchemytable/cobweb.json
96cc66cdb9c5f786eaa899e1fbdd38144e44a0fe data/bloodmagic/recipes/alchemytable/explosive_powder.json
1fa964af556af521d8eaf1a686befdd9d69c63af data/bloodmagic/recipes/alchemytable/flint_from_gravel.json
90b9431139014864558e96916eb835105f3b5a2f data/bloodmagic/recipes/alchemytable/fortune_anointment.json
7b4b20c316a4c2e533d8a123025a4424ea808142 data/bloodmagic/recipes/alchemytable/gold_ore_from_gilded.json
aff95e4322f9e8daaffc2337964f95ab6f9d631c data/bloodmagic/recipes/alchemytable/grass_block.json
540edca1f507d366e55887b4429a9952c00f4060 data/bloodmagic/recipes/alchemytable/gunpowder.json
9f1b37b59f8abbe419306b3eb8af59317a54483a data/bloodmagic/recipes/alchemytable/hidden_knowledge_anointment.json
566352daaa6e6803df68475d964108b3f89cebd2 data/bloodmagic/recipes/alchemytable/holy_water_anointment.json
0657a60976678fdfbdf0b8ee2c178502520d194a data/bloodmagic/recipes/alchemytable/leather_from_flesh.json
c42ae24ad8955d8cf0a1f1096b0bca37d55621cf data/bloodmagic/recipes/alchemytable/looting_anointment.json
93620eaad39a46a97f3381ff5c645e59d7dddd16 data/bloodmagic/recipes/alchemytable/melee_damage_anointment.json
b18dde32d8a428f44437c0e53e5fdb990597498d data/bloodmagic/recipes/alchemytable/nether_wart_from_block.json
0a5ce0f2d09a596fb47b27a60e66eceeb04e0b0d data/bloodmagic/recipes/alchemytable/plantoil_from_beets.json
f1fd76dab242882e327b4677b95328cb3a52deee data/bloodmagic/recipes/alchemytable/plantoil_from_carrots.json
e9f5a06e4800cb03cc13480db9fdb7b9fa47f487 data/bloodmagic/recipes/alchemytable/plantoil_from_taters.json
f41e9bf8376ffcad07752b5657e27e06e500be0a data/bloodmagic/recipes/alchemytable/plantoil_from_wheat.json
6230b36712a5b6d239ec35b85e7fda0917ca7bc2 data/bloodmagic/recipes/alchemytable/quick_draw_anointment.json
eb8f2ef0c592ba022190d727eec69d73b7437bac data/bloodmagic/recipes/alchemytable/reagent_air.json
755960529025fecd187cae962dc76988c1d52c8e data/bloodmagic/recipes/alchemytable/reagent_binding.json
47a4511054bd10454302a6b41eecfac942d27864 data/bloodmagic/recipes/alchemytable/reagent_blood_light.json
e50bf64f33ac29e704f553ef465c2631c1857777 data/bloodmagic/recipes/alchemytable/reagent_fastminer.json
00d41617bb2e67cdfcfcd87c3bb931726bd37e13 data/bloodmagic/recipes/alchemytable/reagent_growth.json
2c613ba6d23fb3a133963e48134893ac7e404042 data/bloodmagic/recipes/alchemytable/reagent_holding.json
e06d24e618d3f2f17cb34a79ac630bd81c85dc45 data/bloodmagic/recipes/alchemytable/reagent_lava.json
41969af0a92baece82c53a779f2e71aec71fe0cb data/bloodmagic/recipes/alchemytable/reagent_magnetism.json
cb5b17173d9f6b7dad40a59aa920f47601e1304e data/bloodmagic/recipes/alchemytable/reagent_sight.json
1f19c4b4070c9e519c83fc624cb401503d8178cb data/bloodmagic/recipes/alchemytable/reagent_void.json
ef693cd04a08d89990ec8bb2620ff5e7efc353fc data/bloodmagic/recipes/alchemytable/reagent_water.json
842713a090b5abf3ce967dbee90d7582f7414949 data/bloodmagic/recipes/alchemytable/sand_coal.json
9292733697eca52de2c2ac7325ba45ab0354bfa3 data/bloodmagic/recipes/alchemytable/sand_gold.json
06f00cce47e0d5e5d25a2587796494340f8a3278 data/bloodmagic/recipes/alchemytable/sand_iron.json
3e3359b89a8c38c0fdeb2b4ca2920bce053082f8 data/bloodmagic/recipes/alchemytable/silk_touch_anointment.json
f7e91d164ea5c782420ff3507a98da16c5915b73 data/bloodmagic/recipes/alchemytable/slate_vial.json
4158f21d795aeeec52cfdec718ba9f82b0f2d10d data/bloodmagic/recipes/alchemytable/smelting_anointment.json
a91e81c79959b522bcd1bac901bca646184015de data/bloodmagic/recipes/alchemytable/string.json
3c9d829f7bff8a4d607c46fc3ff4f86dffa28fd5 data/bloodmagic/recipes/altar/air_tool.json
f41b0e9dfab608c42a85c3c5c5bbc050b03f02a1 data/bloodmagic/recipes/altar/apprenticebloodorb.json
2269c03d8ba4b790fb6a30c32bdb0169c283e5e2 data/bloodmagic/recipes/altar/bucket_life.json
2a67e37497a571b5ee944375d315fddccea87697 data/bloodmagic/recipes/altar/daggerofsacrifice.json
c5a4a256a7437f2e13c574a6f0c4d75fc2e718cb data/bloodmagic/recipes/altar/demonicslate.json
d79a96eb3eed597f1c18a8983764a6362a24748c data/bloodmagic/recipes/altar/dusk_tool.json
7272cdd4e1469cf83849e5444b4b93a7563a6bf2 data/bloodmagic/recipes/altar/earth_tool.json
37913b1babf9b8159332db09b114c919b1b49473 data/bloodmagic/recipes/altar/fire_tool.json
9aeb0d2d33d839eedb2d9bbdaf76fc73e0b39941 data/bloodmagic/recipes/altar/imbuedslate.json
2643d1516f6dae79128fdc8c48c4cfe23453f171 data/bloodmagic/recipes/altar/magicianbloodorb.json
5996888ae6e4ae9afc86a5d629a729d624fc4372 data/bloodmagic/recipes/altar/masterbloodorb.json
30d84c946ad9235f6e59f1046edbe8d44acc799e data/bloodmagic/recipes/altar/reinforcedslate.json
584d01dff4d64bb88bd3783751a29723700f1728 data/bloodmagic/recipes/altar/slate.json
5e6289a1c8deb414202bba0f16fc09f9fdf7add0 data/bloodmagic/recipes/altar/soul_snare.json
926d4a0e165c87a15a609744d832d2f5f04a40d0 data/bloodmagic/recipes/altar/water_tool.json
dd59da50b674ec8f680e01a91261bf34091075cf data/bloodmagic/recipes/altar/weakbloodorb.json
5807b2515f4a2dc9855327940e6055f6947f0749 data/bloodmagic/recipes/arc.json
f35bb47d609201f6568b598307ae9d157792fe3e data/bloodmagic/recipes/arc/clay_from_sand.json
6b8ba1822bac8a1af426a14f87d613dc89e3fca0 data/bloodmagic/recipes/arc/clay_from_terracotta.json
5206a65f02d3bea5c23164325eb23ce8e928102f data/bloodmagic/recipes/arc/dustsfrom_gravel_gold.json
5af6c601a7be4c0fc4811befa59324c1a2cdb758 data/bloodmagic/recipes/arc/dustsfrom_gravel_iron.json
6f3f5d2f3054d61a3965b10bcebc8cefe107cf5f data/bloodmagic/recipes/arc/dustsfrom_gravel_netherite_scrap.json
b5d3a7ee94494665a9e69519da43a0d4056deb76 data/bloodmagic/recipes/arc/dustsfrom_ingot_gold.json
a31e17fb2da1259fb186cfd07c9cd500e6354518 data/bloodmagic/recipes/arc/dustsfrom_ingot_iron.json
b9dc41ad0d9ee6035084a8e9a8eb920223817d33 data/bloodmagic/recipes/arc/dustsfrom_ingot_netherite_scrap.json
e0846e670dc94334ba695d2a1182527a5016cd31 data/bloodmagic/recipes/arc/dustsfrom_ore_gold.json
855c963531471cedd2f5f067801b96c0bd6a0c56 data/bloodmagic/recipes/arc/dustsfrom_ore_iron.json
e410be937d52aea0f186aa14fa9b2929a98ffaf3 data/bloodmagic/recipes/arc/dustsfrom_ore_netherite_scrap.json
517a3b7a6bbfc486777f509c2d9af6490ff722c9 data/bloodmagic/recipes/arc/fragmentsgold.json
d8b9e64d14e67299aa08888246cdead76ebd91ce data/bloodmagic/recipes/arc/fragmentsiron.json
ec54b6d447bf5709b15d7bccb9c7d0790661f621 data/bloodmagic/recipes/arc/fragmentsnetherite_scrap.json
0275b4a539ccac64818c19bcb5351408eea9d193 data/bloodmagic/recipes/arc/gravelsgold.json
32b0aeab82c1d98b86b162e98036b2591ccf649c data/bloodmagic/recipes/arc/gravelsiron.json
f83ad96ea74fd51f1fd78ee40ff0fbeb08755b12 data/bloodmagic/recipes/arc/gravelsnetherite_scrap.json
2eb26a1af68ed7a5fdb6ac9d4bbc7557729c56cd data/bloodmagic/recipes/arc/netherrack_to_sulfer.json
0a6a8034c55d093fed458759bbc85e5893712d35 data/bloodmagic/recipes/arc/ore/dustgold.json
b2760564e300976d88a3938bc0e9e2d2defa0841 data/bloodmagic/recipes/arc/ore/dustiron.json
249229687c1b41a4191c455278624b642b501b4e data/bloodmagic/recipes/arc/reversion/apprentice_blood_orb.json
a2b7d868ac099dd6fb29fa54892aad90e29d028d data/bloodmagic/recipes/arc/reversion/magician_blood_orb.json
a7f51456052d0fd317164d400cdd595ae2687df8 data/bloodmagic/recipes/arc/reversion/master_blood_orb.json
8d9d66d63e21cc8a6f02fac2111f5d169c8542ff data/bloodmagic/recipes/arc/reversion/weak_blood_orb.json
1e5814caf63714b8e1ff2b2f413a86ba8c840ebb data/bloodmagic/recipes/arc/weakbloodshard.json
e1285ec51100f2336c1ea1a1a3057e74a0dd84d1 data/bloodmagic/recipes/array/airsigil.json
d1ac23080f72f21adb5908befefe965ffb4efd4f data/bloodmagic/recipes/array/bloodlightsigil.json
f6b6c72c0a2d6b3e602976f0dd2dfa778be41777 data/bloodmagic/recipes/array/bounce.json
7110895fe75e65404bc66d6c09087d9e58220a11 data/bloodmagic/recipes/array/day.json
1890706e5b93cd6df764b0419483c348e0d7f277 data/bloodmagic/recipes/array/divinationsigil.json
4bd220ced486f1d8fc4468ebd61dac755670d716 data/bloodmagic/recipes/array/fastminersigil.json
d9ae32c70d4bd872f22229006ad3c8e0cf7e3721 data/bloodmagic/recipes/array/grove.json
f191a3c9982b827b0b2ba93164a81fc4f8cb0959 data/bloodmagic/recipes/array/growthsigil.json
4452b681c328ed01ec680b6b68cb2a0aee11ed3d data/bloodmagic/recipes/array/holdingsigil.json
78c880321f0bfad14239d4b9d2edae170a7fa86e data/bloodmagic/recipes/array/lavasigil.json
165f8f8ba7ae094cdd1367716a0797a0f8d4d605 data/bloodmagic/recipes/array/living_boots.json
1de17e8a769d471c934835955184d0c8782fb619 data/bloodmagic/recipes/array/living_helmet.json
4a48885f110a87505381c7e2f2607d30612a3604 data/bloodmagic/recipes/array/living_leggings.json
5e3c6dd7bfcd16e79f17e963d8c1b59c0d1aebe9 data/bloodmagic/recipes/array/living_plate.json
8b1007de1b7fca5d27b54d7c9839cde9e47ab1c0 data/bloodmagic/recipes/array/magnetismsigil.json
7a674784e0d8d4f6f071a72d26ba677087976970 data/bloodmagic/recipes/array/movement.json
5c208259e33c3a56c5d6f6ab951ac0c4d5b60e26 data/bloodmagic/recipes/array/night.json
6fd91801759c6a7a018b9d18601fc3db4d3ee3b4 data/bloodmagic/recipes/array/seersigil.json
1921cc1cba3bcc36a6be6edd377dd44eb9b884a0 data/bloodmagic/recipes/array/spike.json
085bf564ec74060e5c0224155cefc6ba0635c2c8 data/bloodmagic/recipes/array/updraft.json
cabe693e7c714203ad708a1068f302b3ee3120b0 data/bloodmagic/recipes/array/voidsigil.json
5e68d933fff631142a8dd819aee235d343d43cff data/bloodmagic/recipes/array/watersigil.json
ac895b8c95ca10d61ae6efedfe5815b980588433 data/bloodmagic/recipes/blood_altar.json
f4de3cfc4616f762b4a87b08510153ae06733528 data/bloodmagic/recipes/blood_rune_acceleration.json
78e3f4666bc13897821abec9fa41e8b72accd007 data/bloodmagic/recipes/blood_rune_aug_capacity.json
2f31d0108cdb0cca056405023bd0ac64b6c02524 data/bloodmagic/recipes/blood_rune_blank.json
5c4e4af372250a3f967666f0f97198547cfbd5e1 data/bloodmagic/recipes/blood_rune_capacity.json
f905c1a8ca4d3a9f841ca6c44caa91de327fc29d data/bloodmagic/recipes/blood_rune_charging.json
ac0ee73ab691edd09be24453bd3fe3dc1a8f1ecb data/bloodmagic/recipes/blood_rune_displacement.json
89563d5c176d465632a45005cbe5e570791fd8dd data/bloodmagic/recipes/blood_rune_orb.json
b63d77c3762f86d4a91f62e192c3e9b26e3b52ca data/bloodmagic/recipes/blood_rune_sacrifice.json
7c4e247c1df6ef594bbb2fc2196afb102f45982b data/bloodmagic/recipes/blood_rune_self_sacrifice.json
e2bcf2a6f951fbcef45554ec90ba28d14e261d18 data/bloodmagic/recipes/blood_rune_speed.json
eeb5e64b8bc90adc2554dde88b8792b92ad7c8cc data/bloodmagic/recipes/bloodstonebrick.json
68e9201ef0d0051618a73434b35791a208bacde1 data/bloodmagic/recipes/corrupted_dust.json
ab11cf6806dab2a2d1cda2f7fde9cd2ecd9cdf9f data/bloodmagic/recipes/experience_tome.json
84aeee900c15d94f1940e72c8f331755d0a97b11 data/bloodmagic/recipes/hellforged_block.json
9a5749465020b32b0147b3367784ce31a0d3b54b data/bloodmagic/recipes/incense_altar.json
63bca28ba5eebb9c488c819bcb117595eadb877d data/bloodmagic/recipes/largebloodstonebrick.json
9dedad36e9d2ab6688e069c2e6df3851c395b583 data/bloodmagic/recipes/lava_crystal.json
50d84717ac673875e4b52522b583f564a8a75e8e data/bloodmagic/recipes/path/path_stone.json
2756ff3f29e1231795671c94fdaf9e5abc65bbee data/bloodmagic/recipes/path/path_stonetile.json
dcb702aeb768bc0ff5d1f05c5ac95066c4082193 data/bloodmagic/recipes/path/path_wood.json
7491b9f62c29d2fde6ff1dbff09f16f458b9afe8 data/bloodmagic/recipes/path/path_woodtile.json
d85f637e3c87ba050c24581b8f4bef4176e1ba14 data/bloodmagic/recipes/path/path_wornstone.json
2ee3e7f073df764289939b8df814cc8f056eced0 data/bloodmagic/recipes/path/path_wornstonetile.json
0b1a11f0e1b6bc317e2dbf04560a81581623f41e data/bloodmagic/recipes/primitive_furnace_cell.json
7e1a70935e9b5ba6b345af6a7077287896ec6cfe data/bloodmagic/recipes/primitive_hydration_cell.json
bfd7925ad30534463d7daf0f7dce03cf1502cbcf data/bloodmagic/recipes/ritual_diviner_0.json
2ec436681cdd169bae99d090bb889c2a45420b6c data/bloodmagic/recipes/ritual_diviner_1.json
18accae45d6c592b108c227c629caf15e430bf2b data/bloodmagic/recipes/ritual_reader.json
7757e5fd52f71b0d21595e072593fc592210dd64 data/bloodmagic/recipes/ritual_stone_blank.json
8608f828f997b1a8015287bd9cd436e9d7dff2ff data/bloodmagic/recipes/ritual_stone_master.json
aefbf1fd258f1cda8d04db7e0794b9612993e6bf data/bloodmagic/recipes/sacrificial_dagger.json
1eab0535b38c4a8a021a72244b9e6a75353970f0 data/bloodmagic/recipes/smelting/ingot_gold.json
b644726cea2da0626f33b60fbc64701f26d48561 data/bloodmagic/recipes/smelting/ingot_hellforged.json
477f968ee84a5b9cd3e9c2a9864be32b5e7d3a32 data/bloodmagic/recipes/smelting/ingot_iron.json
06855bcd8951355604ab1e63b5db717382430967 data/bloodmagic/recipes/smelting/ingot_netherite_scrap.json
d4ee90b52934c7c530fb031dcf81d4f1ccb27a9b data/bloodmagic/recipes/soul_forge.json
8b64af8453c60b6b1ae55bd0dd1a68fe95e8ba19 data/bloodmagic/recipes/soulforge/commontartaricgem.json
659db62f8fb71c792b00d6409b1c9a2f1ca96048 data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json
5ad148899ed46134ae0572b220736b9d38004980 data/bloodmagic/recipes/soulforge/deforester_charge.json
26d7fb7f868bcc96ce268adccead7207d5559afb data/bloodmagic/recipes/soulforge/deforester_charge_fortune_1.json
40ae097cd8b3c0dcd38f7032d928acdb71da13da data/bloodmagic/recipes/soulforge/deforester_charge_silk_touch.json
bd63ccb772c829a4a50df17f06a641353dc3b98e data/bloodmagic/recipes/soulforge/deforester_charge_smelting.json
2c90f1da43a79e61d2b6b09c012d08f53b133264 data/bloodmagic/recipes/soulforge/demon_crucible.json
bc4ad3b44720a3f7363ef53027b4aae35622e7c1 data/bloodmagic/recipes/soulforge/demon_crystallizer.json
759279a190f3bc74e162dedf0f5d311267e06fbc data/bloodmagic/recipes/soulforge/destructive_crystal_block.json
78f0e3dc5fa61d8f9c182a3608184f21925f79db data/bloodmagic/recipes/soulforge/fungal_charge.json
61003f9b47ae96e5bccd518d514ef2532ce6e028 data/bloodmagic/recipes/soulforge/fungal_charge_fortune_1.json
9f7efc88c863110e6253b8877eee93c2e6533090 data/bloodmagic/recipes/soulforge/fungal_charge_silk_touch.json
a625c60e99970a93cb188e17579bcb958890d7a9 data/bloodmagic/recipes/soulforge/fungal_charge_smelting.json
0b82d2354aaa635b4fe5514e4815298ee0dedf80 data/bloodmagic/recipes/soulforge/greatertartaricgem.json
d46b61779b3c8382862d4e66c3909a1241ecca18 data/bloodmagic/recipes/soulforge/lessertartaricgem.json
d6e06747c75fc06e708a15358911f1c63eee86b1 data/bloodmagic/recipes/soulforge/pettytartaricgem.json
2468dd785e301732b1be8108caa468bdd5008e46 data/bloodmagic/recipes/soulforge/primitive_crystalline_resonator.json
535a9ec33a425bde205dffc3254635741d1c82d6 data/bloodmagic/recipes/soulforge/raw_crystal_block.json
4a4340f334c51beaacb77fd201298ad94b71e79c data/bloodmagic/recipes/soulforge/sanguine_reverter.json
799c9b83373966f70bbd6777cdae0ff2ff89fd84 data/bloodmagic/recipes/soulforge/sentientaxe.json
6d94372ffffbe36ca91ed2a5e46991bff896726c data/bloodmagic/recipes/soulforge/sentientpickaxe.json
6b47831e5c2f3033b6706706d810fa96d8abebd6 data/bloodmagic/recipes/soulforge/sentientscythe.json
6dcced40126f950b85f868aa04c77e90b71b69f2 data/bloodmagic/recipes/soulforge/sentientshovel.json
7e281841a2953c1284d332c2bbf75097f8128241 data/bloodmagic/recipes/soulforge/sentientsword.json
dc977e9d98fcba66fbcce3f6c31a746db5ed60f5 data/bloodmagic/recipes/soulforge/shaped_charge.json
865cac49dd9604f35577aa6cfd2756946b49b8b1 data/bloodmagic/recipes/soulforge/shaped_charge_fortune_1.json
83b9b038785f449e4948cf17f8fa35457c24a3cb data/bloodmagic/recipes/soulforge/shaped_charge_silk_touch.json
7417c0ad20f4c23a7fed958f658e6dc96720ec60 data/bloodmagic/recipes/soulforge/shaped_charge_smelting.json
c4102a1573e632d0b9f894353b0d522a51a7c65e data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json
ed0875aaba76e013684b8ea2f8275d5563e90e98 data/bloodmagic/recipes/soulforge/throwing_dagger.json
b081dbc0865421df6a591366393ffdbceb205907 data/bloodmagic/recipes/soulforge/throwing_dagger_syringe.json
978033adf58e34fa317bcea448ac1ddf3f0cd69e data/bloodmagic/recipes/soulforge/vein_charge.json
a06bb2d29cfa5d9c38092e93196bed7f331bcc97 data/bloodmagic/recipes/soulforge/vein_charge_fortune_1.json
29a712f5e12e1702f6221c4c8918ba37299edd7c data/bloodmagic/recipes/soulforge/vein_charge_silk_touch.json
911023ba84eed7836875793a21c32a83755760d3 data/bloodmagic/recipes/soulforge/vein_charge_smelting.json
3aa852edda803a2225ebe53d2daa55bd46b0a1b9 data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json
d7d993bb729284a5201c164ea81fbe1d8e4e4750 data/bloodmagic/recipes/weak_activation_crystal.json
cf63fdccec992f2cb36c72843791623463cecc44 data/bloodmagic/tags/items/arc/cuttingfluid.json
54a0fcc973590c80a4d3cd6b82f5602ba7208438 data/bloodmagic/tags/items/arc/explosive.json
331b978ba851ae3c48390c5d992bcd5f28ac644d data/bloodmagic/tags/items/arc/furnace.json
a62b82e1f59284d230b4b983ffa4a4cecb288c0e data/bloodmagic/tags/items/arc/hydrate.json
9689738644fcfa3a80effc6ee150b67c67e8b8f4 data/bloodmagic/tags/items/arc/resonator.json
65326040c8974fcfcc8711d29040b4297ff55ec1 data/bloodmagic/tags/items/arc/reverter.json
14fb88c612622be110e273818eee9512cd285d56 data/bloodmagic/tags/items/arc/sieve.json
bcd2befe59cbb4931c8c9bed183d19b2a469e506 data/bloodmagic/tags/items/arc/tool.json
2bdc1397bd092d373f785f08a2befdce8c1c1e2e data/bloodmagic/tags/items/crystals/demon.json
dab44ece8bcdf079b349fc4f49da67aafe9c4cf7 data/bloodmagic/tags/items/dusts/corrupted.json
dc8d6f8f8d128499f3d2632ef1bc353cc49d1ddb data/bloodmagic/tags/items/fragments/gold.json
a60c7b779168689387a03f00002bfd8380d919e5 data/bloodmagic/tags/items/fragments/iron.json
590aab8d5f5a4ed18dd211865e917674dcabfea0 data/bloodmagic/tags/items/fragments/netherite_scrap.json
af9b1a9ba1b16a85e3e1cf84b99e4cc9e12f9886 data/bloodmagic/tags/items/gravels/gold.json
19547e1b8859f1e2f1ae858e74b4456fc20be53f data/bloodmagic/tags/items/gravels/iron.json
3597daeddb742612d0b7fe2d0f711251a2781ac2 data/bloodmagic/tags/items/gravels/netherite_scrap.json
04fdfff381183672d6d7b3e55ded42a0a5b89f16 data/bloodmagic/tags/items/tiny_dusts/corrupted.json
b7b3ffae086763317f5ed70a4f857e9634932972 data/forge/tags/fluids/life.json
4f8f46a7e30fe81d36790d3ffed37efef7c87d06 data/forge/tags/items/dusts/coal.json
82f2679934e550a1188658350e52cfac7c450c4d data/forge/tags/items/dusts/gold.json
205d57b4f622a13fceda5e8062d9bba80d619e92 data/forge/tags/items/dusts/hellforged.json
625a1e6a3b635b2ac5176a49afbae9b476de4f71 data/forge/tags/items/dusts/iron.json
05fbe38ee5bdb3d912a5980254886ad64399e062 data/forge/tags/items/dusts/netherite_scrap.json
9380fe45b06787ba776af4a7d542a047c1441031 data/forge/tags/items/dusts/saltpeter.json
5c709b6444acb94ca784c33618547ba535e15db2 data/forge/tags/items/dusts/sulfur.json
ca758f49ba878f8e498fe156d4916c1e332d552c data/forge/tags/items/ingots/hellforged.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/copper.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/lead.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/osmium.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/silver.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/forge/tags/items/ores/tin.json
d348e6ef5f30db7c6c6ef2aac89c45e9c4c6fef7 data/minecraft/tags/blocks/mushroom_hyphae.json
95fd3a7b178a92c5aecdd097fec5359f14a06c13 data/minecraft/tags/blocks/mushroom_stem.json
2ba6f93ee0567360afa3ae9999027b839ed06532 data/minecraft/tags/blocks/walls.json
d348e6ef5f30db7c6c6ef2aac89c45e9c4c6fef7 data/minecraft/tags/items/mushroom_hyphae.json
95fd3a7b178a92c5aecdd097fec5359f14a06c13 data/minecraft/tags/items/mushroom_stem.json

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/accelerationrune"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/airritualstone"
}
}
}

View file

@ -1,34 +0,0 @@
{
"variants": {
"facing=north,lit=false": {
"model": "bloodmagic:block/alchemicalreactionchamber"
},
"facing=south,lit=false": {
"model": "bloodmagic:block/alchemicalreactionchamber",
"y": 180
},
"facing=west,lit=false": {
"model": "bloodmagic:block/alchemicalreactionchamber",
"y": 270
},
"facing=east,lit=false": {
"model": "bloodmagic:block/alchemicalreactionchamber",
"y": 90
},
"facing=north,lit=true": {
"model": "bloodmagic:block/alchemicalreactionchamber"
},
"facing=south,lit=true": {
"model": "bloodmagic:block/alchemicalreactionchamber",
"y": 180
},
"facing=west,lit=true": {
"model": "bloodmagic:block/alchemicalreactionchamber",
"y": 270
},
"facing=east,lit=true": {
"model": "bloodmagic:block/alchemicalreactionchamber",
"y": 90
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/altarcapacityrune"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/bettercapacityrune"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/blankrune"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/bloodlight"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/bloodstonebrick"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/chargingrune"
}
}
}

View file

@ -1,431 +0,0 @@
{
"multipart": [
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal1",
"x": 180
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal1"
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal1",
"x": 90
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal1",
"x": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal1",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal1",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal2",
"x": 180
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal2"
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal2",
"x": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal2",
"x": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal2",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal2",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal3",
"x": 180
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal3"
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal3",
"x": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal3",
"x": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal3",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal3",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal4",
"x": 180
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal4"
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal4",
"x": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal4",
"x": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal4",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal4",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal5",
"x": 180
}
},
{
"when": {
"age": "4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal5"
}
},
{
"when": {
"age": "4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal5",
"x": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal5",
"x": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal5",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal5",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal6",
"x": 180
}
},
{
"when": {
"age": "5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal6"
}
},
{
"when": {
"age": "5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal6",
"x": 90
}
},
{
"when": {
"age": "5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal6",
"x": 270
}
},
{
"when": {
"age": "5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal6",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal6",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal7",
"x": 180
}
},
{
"when": {
"age": "6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal7"
}
},
{
"when": {
"age": "6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal7",
"x": 90
}
},
{
"when": {
"age": "6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal7",
"x": 270
}
},
{
"when": {
"age": "6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal7",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/corrosivecrystal7",
"x": 90,
"y": 90
}
}
]
}

View file

@ -1,28 +0,0 @@
{
"variants": {
"age=0": {
"model": "bloodmagic:block/creeping_doubt_1"
},
"age=1": {
"model": "bloodmagic:block/creeping_doubt_2"
},
"age=2": {
"model": "bloodmagic:block/creeping_doubt_3"
},
"age=3": {
"model": "bloodmagic:block/creeping_doubt_4"
},
"age=4": {
"model": "bloodmagic:block/creeping_doubt_5"
},
"age=5": {
"model": "bloodmagic:block/creeping_doubt_6"
},
"age=6": {
"model": "bloodmagic:block/creeping_doubt_7"
},
"age=7": {
"model": "bloodmagic:block/creeping_doubt_8"
}
}
}

View file

@ -1,29 +0,0 @@
{
"variants": {
"attached=down": {
"model": "bloodmagic:block/deforester_charge",
"x": 180
},
"attached=up": {
"model": "bloodmagic:block/deforester_charge"
},
"attached=north": {
"model": "bloodmagic:block/deforester_charge",
"x": 90
},
"attached=south": {
"model": "bloodmagic:block/deforester_charge",
"x": 270
},
"attached=west": {
"model": "bloodmagic:block/deforester_charge",
"x": 90,
"y": 270
},
"attached=east": {
"model": "bloodmagic:block/deforester_charge",
"x": 90,
"y": 90
}
}
}

View file

@ -1,431 +0,0 @@
{
"multipart": [
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal1",
"x": 180
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal1"
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal1",
"x": 90
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal1",
"x": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal1",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal1",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal2",
"x": 180
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal2"
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal2",
"x": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal2",
"x": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal2",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal2",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal3",
"x": 180
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal3"
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal3",
"x": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal3",
"x": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal3",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal3",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal4",
"x": 180
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal4"
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal4",
"x": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal4",
"x": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal4",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal4",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal5",
"x": 180
}
},
{
"when": {
"age": "4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal5"
}
},
{
"when": {
"age": "4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal5",
"x": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal5",
"x": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal5",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal5",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal6",
"x": 180
}
},
{
"when": {
"age": "5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal6"
}
},
{
"when": {
"age": "5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal6",
"x": 90
}
},
{
"when": {
"age": "5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal6",
"x": 270
}
},
{
"when": {
"age": "5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal6",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal6",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal7",
"x": 180
}
},
{
"when": {
"age": "6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal7"
}
},
{
"when": {
"age": "6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal7",
"x": 90
}
},
{
"when": {
"age": "6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal7",
"x": 270
}
},
{
"when": {
"age": "6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal7",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/destructivecrystal7",
"x": 90,
"y": 90
}
}
]
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dislocationrune"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_brick1"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_brick2"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_brick3"
}
}
}

View file

@ -1,15 +0,0 @@
{
"variants": {
"": [
{
"model": "bloodmagic:block/dungeon_brick1"
},
{
"model": "bloodmagic:block/dungeon_brick2"
},
{
"model": "bloodmagic:block/dungeon_brick3"
}
]
}
}

View file

@ -1,80 +0,0 @@
{
"variants": {
"facing=north,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate",
"uvlock": true
},
"facing=west,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate",
"y": 270,
"uvlock": true
},
"facing=north,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate_wall",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate_wall",
"uvlock": true
},
"facing=west,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate_wall",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_brick_gate_wall",
"y": 270,
"uvlock": true
},
"facing=north,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_open",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_open",
"uvlock": true
},
"facing=west,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_open",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_open",
"y": 270,
"uvlock": true
},
"facing=north,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_wall_open",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_wall_open",
"uvlock": true
},
"facing=west,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_wall_open",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_brick_gate_wall_open",
"y": 270,
"uvlock": true
}
}
}

View file

@ -1,90 +0,0 @@
{
"multipart": [
{
"when": {
"up": "true"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_post"
}
},
{
"when": {
"east": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side",
"y": 90,
"uvlock": true
}
},
{
"when": {
"east": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side_tall",
"y": 90,
"uvlock": true
}
},
{
"when": {
"north": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side",
"uvlock": true
}
},
{
"when": {
"north": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side_tall",
"uvlock": true
}
},
{
"when": {
"south": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side",
"y": 180,
"uvlock": true
}
},
{
"when": {
"south": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side_tall",
"y": 180,
"uvlock": true
}
},
{
"when": {
"west": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side",
"y": 270,
"uvlock": true
}
},
{
"when": {
"west": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_brick_wall_side_tall",
"y": 270,
"uvlock": true
}
}
]
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_eye"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_metal"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_ore"
}
}
}

View file

@ -1,22 +0,0 @@
{
"variants": {
"facing=down": {
"model": "bloodmagic:block/dungeon_pillar_cap_down"
},
"facing=up": {
"model": "bloodmagic:block/dungeon_pillar_cap"
},
"facing=north": {
"model": "bloodmagic:block/dungeon_pillar_cap_north"
},
"facing=south": {
"model": "bloodmagic:block/dungeon_pillar_cap_south"
},
"facing=west": {
"model": "bloodmagic:block/dungeon_pillar_cap_west"
},
"facing=east": {
"model": "bloodmagic:block/dungeon_pillar_cap_east"
}
}
}

View file

@ -1,13 +0,0 @@
{
"variants": {
"axis=x": {
"model": "bloodmagic:block/dungeon_pillar_center_x"
},
"axis=y": {
"model": "bloodmagic:block/dungeon_pillar_center"
},
"axis=z": {
"model": "bloodmagic:block/dungeon_pillar_center_z"
}
}
}

View file

@ -1,13 +0,0 @@
{
"variants": {
"axis=x": {
"model": "bloodmagic:block/dungeon_pillar_special_x"
},
"axis=y": {
"model": "bloodmagic:block/dungeon_pillar_special"
},
"axis=z": {
"model": "bloodmagic:block/dungeon_pillar_special_z"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_polished"
}
}
}

View file

@ -1,80 +0,0 @@
{
"variants": {
"facing=north,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate",
"uvlock": true
},
"facing=west,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=false,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate",
"y": 270,
"uvlock": true
},
"facing=north,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate_wall",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate_wall",
"uvlock": true
},
"facing=west,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate_wall",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=true,open=false": {
"model": "bloodmagic:block/dungeon_polished_gate_wall",
"y": 270,
"uvlock": true
},
"facing=north,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_open",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_open",
"uvlock": true
},
"facing=west,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_open",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=false,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_open",
"y": 270,
"uvlock": true
},
"facing=north,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_wall_open",
"y": 180,
"uvlock": true
},
"facing=south,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_wall_open",
"uvlock": true
},
"facing=west,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_wall_open",
"y": 90,
"uvlock": true
},
"facing=east,in_wall=true,open=true": {
"model": "bloodmagic:block/dungeon_polished_gate_wall_open",
"y": 270,
"uvlock": true
}
}
}

View file

@ -1,90 +0,0 @@
{
"multipart": [
{
"when": {
"up": "true"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_post"
}
},
{
"when": {
"east": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side",
"y": 90,
"uvlock": true
}
},
{
"when": {
"east": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side_tall",
"y": 90,
"uvlock": true
}
},
{
"when": {
"north": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side",
"uvlock": true
}
},
{
"when": {
"north": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side_tall",
"uvlock": true
}
},
{
"when": {
"south": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side",
"y": 180,
"uvlock": true
}
},
{
"when": {
"south": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side_tall",
"y": 180,
"uvlock": true
}
},
{
"when": {
"west": "low"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side",
"y": 270,
"uvlock": true
}
},
{
"when": {
"west": "tall"
},
"apply": {
"model": "bloodmagic:block/dungeon_polished_wall_side_tall",
"y": 270,
"uvlock": true
}
}
]
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_smallbrick"
}
}
}

View file

@ -1,20 +0,0 @@
{
"variants": {
"": [
{
"model": "bloodmagic:block/dungeon_stone"
},
{
"model": "bloodmagic:block/dungeon_stone_mirrored"
},
{
"model": "bloodmagic:block/dungeon_stone",
"y": 180
},
{
"model": "bloodmagic:block/dungeon_stone_mirrored",
"y": 180
}
]
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_tile"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/dungeon_tilespecial"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/duskritualstone"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/earthritualstone"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/fireritualstone"
}
}
}

View file

@ -1,29 +0,0 @@
{
"variants": {
"attached=down": {
"model": "bloodmagic:block/fungal_charge",
"x": 180
},
"attached=up": {
"model": "bloodmagic:block/fungal_charge"
},
"attached=north": {
"model": "bloodmagic:block/fungal_charge",
"x": 90
},
"attached=south": {
"model": "bloodmagic:block/fungal_charge",
"x": 270
},
"attached=west": {
"model": "bloodmagic:block/fungal_charge",
"x": 90,
"y": 270
},
"attached=east": {
"model": "bloodmagic:block/fungal_charge",
"x": 90,
"y": 90
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/largebloodstonebrick"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/lightritualstone"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/masterritualstone"
}
}
}

View file

@ -1,28 +0,0 @@
{
"variants": {
"moisture=0": {
"model": "bloodmagic:block/nether_soil"
},
"moisture=1": {
"model": "bloodmagic:block/nether_soil"
},
"moisture=2": {
"model": "bloodmagic:block/nether_soil"
},
"moisture=3": {
"model": "bloodmagic:block/nether_soil"
},
"moisture=4": {
"model": "bloodmagic:block/nether_soil"
},
"moisture=5": {
"model": "bloodmagic:block/nether_soil"
},
"moisture=6": {
"model": "bloodmagic:block/nether_soil"
},
"moisture=7": {
"model": "bloodmagic:block/nether_soil"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/obsidianbrickpath"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/obsidiantilepath"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/orbcapacityrune"
}
}
}

View file

@ -1,431 +0,0 @@
{
"multipart": [
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal1",
"x": 180
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal1"
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal1",
"x": 90
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal1",
"x": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal1",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal1",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal2",
"x": 180
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal2"
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal2",
"x": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal2",
"x": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal2",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal2",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal3",
"x": 180
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal3"
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal3",
"x": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal3",
"x": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal3",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal3",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal4",
"x": 180
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal4"
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal4",
"x": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal4",
"x": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal4",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal4",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal5",
"x": 180
}
},
{
"when": {
"age": "4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal5"
}
},
{
"when": {
"age": "4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal5",
"x": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal5",
"x": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal5",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal5",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal6",
"x": 180
}
},
{
"when": {
"age": "5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal6"
}
},
{
"when": {
"age": "5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal6",
"x": 90
}
},
{
"when": {
"age": "5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal6",
"x": 270
}
},
{
"when": {
"age": "5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal6",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal6",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal7",
"x": 180
}
},
{
"when": {
"age": "6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal7"
}
},
{
"when": {
"age": "6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal7",
"x": 90
}
},
{
"when": {
"age": "6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal7",
"x": 270
}
},
{
"when": {
"age": "6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal7",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/defaultcrystal7",
"x": 90,
"y": 90
}
}
]
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/ritualstone"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/sacrificerune"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/selfsacrificerune"
}
}
}

View file

@ -1,29 +0,0 @@
{
"variants": {
"attached=down": {
"model": "bloodmagic:block/shaped_charge",
"x": 180
},
"attached=up": {
"model": "bloodmagic:block/shaped_charge"
},
"attached=north": {
"model": "bloodmagic:block/shaped_charge",
"x": 90
},
"attached=south": {
"model": "bloodmagic:block/shaped_charge",
"x": 270
},
"attached=west": {
"model": "bloodmagic:block/shaped_charge",
"x": 90,
"y": 270
},
"attached=east": {
"model": "bloodmagic:block/shaped_charge",
"x": 90,
"y": 90
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/speedrune"
}
}
}

View file

@ -1,431 +0,0 @@
{
"multipart": [
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal1",
"x": 180
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal1"
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal1",
"x": 90
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal1",
"x": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal1",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal1",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal2",
"x": 180
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal2"
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal2",
"x": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal2",
"x": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal2",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal2",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal3",
"x": 180
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal3"
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal3",
"x": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal3",
"x": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal3",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal3",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal4",
"x": 180
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal4"
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal4",
"x": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal4",
"x": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal4",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal4",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal5",
"x": 180
}
},
{
"when": {
"age": "4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal5"
}
},
{
"when": {
"age": "4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal5",
"x": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal5",
"x": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal5",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal5",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal6",
"x": 180
}
},
{
"when": {
"age": "5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal6"
}
},
{
"when": {
"age": "5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal6",
"x": 90
}
},
{
"when": {
"age": "5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal6",
"x": 270
}
},
{
"when": {
"age": "5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal6",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal6",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal7",
"x": 180
}
},
{
"when": {
"age": "6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal7"
}
},
{
"when": {
"age": "6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal7",
"x": 90
}
},
{
"when": {
"age": "6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal7",
"x": 270
}
},
{
"when": {
"age": "6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal7",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/steadfastcrystal7",
"x": 90,
"y": 90
}
}
]
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/stonebrickpath"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/stonetilepath"
}
}
}

View file

@ -1,29 +0,0 @@
{
"variants": {
"attached=down": {
"model": "bloodmagic:block/veinmine_charge",
"x": 180
},
"attached=up": {
"model": "bloodmagic:block/veinmine_charge"
},
"attached=north": {
"model": "bloodmagic:block/veinmine_charge",
"x": 90
},
"attached=south": {
"model": "bloodmagic:block/veinmine_charge",
"x": 270
},
"attached=west": {
"model": "bloodmagic:block/veinmine_charge",
"x": 90,
"y": 270
},
"attached=east": {
"model": "bloodmagic:block/veinmine_charge",
"x": 90,
"y": 90
}
}
}

View file

@ -1,431 +0,0 @@
{
"multipart": [
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal1",
"x": 180
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal1"
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal1",
"x": 90
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal1",
"x": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal1",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "0|1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal1",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal2",
"x": 180
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal2"
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal2",
"x": 90
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal2",
"x": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal2",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "1|2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal2",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal3",
"x": 180
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal3"
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal3",
"x": 90
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal3",
"x": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal3",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "2|3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal3",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal4",
"x": 180
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal4"
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal4",
"x": 90
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal4",
"x": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal4",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "3|4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal4",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal5",
"x": 180
}
},
{
"when": {
"age": "4|5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal5"
}
},
{
"when": {
"age": "4|5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal5",
"x": 90
}
},
{
"when": {
"age": "4|5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal5",
"x": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal5",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "4|5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal5",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "5|6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal6",
"x": 180
}
},
{
"when": {
"age": "5|6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal6"
}
},
{
"when": {
"age": "5|6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal6",
"x": 90
}
},
{
"when": {
"age": "5|6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal6",
"x": 270
}
},
{
"when": {
"age": "5|6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal6",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "5|6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal6",
"x": 90,
"y": 90
}
},
{
"when": {
"age": "6",
"attached": "down"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal7",
"x": 180
}
},
{
"when": {
"age": "6",
"attached": "up"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal7"
}
},
{
"when": {
"age": "6",
"attached": "north"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal7",
"x": 90
}
},
{
"when": {
"age": "6",
"attached": "south"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal7",
"x": 270
}
},
{
"when": {
"age": "6",
"attached": "west"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal7",
"x": 90,
"y": 270
}
},
{
"when": {
"age": "6",
"attached": "east"
},
"apply": {
"model": "bloodmagic:block/crystal/vengefulcrystal7",
"x": 90,
"y": 90
}
}
]
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/waterritualstone"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/woodbrickpath"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/woodtilepath"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/wornstonebrickpath"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "bloodmagic:block/wornstonetilepath"
}
}
}

View file

@ -1,503 +0,0 @@
{
"anointment.bloodmagic.bow_power": "Heavy Shot",
"anointment.bloodmagic.fortune": "Fortunate",
"anointment.bloodmagic.hidden_knowledge": "Miner's Secrets",
"anointment.bloodmagic.holy_water": "Holy Light",
"anointment.bloodmagic.looting": "Plundering",
"anointment.bloodmagic.melee_damage": "Whetstone",
"anointment.bloodmagic.quick_draw": "Deft Hands",
"anointment.bloodmagic.silk_touch": "Soft Touch",
"anointment.bloodmagic.smelting": "Heated Tool",
"block.bloodmagic.accelerationrune": "Acceleration Rune",
"block.bloodmagic.airritualstone": "Air Ritual Stone",
"block.bloodmagic.alchemicalreactionchamber": "Alchemical Reaction Chamber",
"block.bloodmagic.alchemytable": "Alchemy Table",
"block.bloodmagic.altar": "Blood Altar",
"block.bloodmagic.altarcapacityrune": "Rune of Capacity",
"block.bloodmagic.bettercapacityrune": "Rune of Augmented Capacity",
"block.bloodmagic.blankrune": "Blank Rune",
"block.bloodmagic.bloodstonebrick": "Bloodstone Brick",
"block.bloodmagic.chargingrune": "Charging Rune",
"block.bloodmagic.corrosivedemoncrystal": "Corrosive Crystal Cluster",
"block.bloodmagic.deforester_charge": "Deforester Charge",
"block.bloodmagic.demoncrucible": "Demon Crucible",
"block.bloodmagic.demoncrystallizer": "Demon Crystallizer",
"block.bloodmagic.destructivedemoncrystal": "Destructive Crystal Cluster",
"block.bloodmagic.dislocationrune": "Displacement Rune",
"block.bloodmagic.dungeon_brick1": "Demon Bricks",
"block.bloodmagic.dungeon_brick2": "Offset Demon Bricks",
"block.bloodmagic.dungeon_brick3": "Long Demon Bricks",
"block.bloodmagic.dungeon_brick_assorted": "Assorted Demon Bricks",
"block.bloodmagic.dungeon_brick_gate": "Demon Brick Gate",
"block.bloodmagic.dungeon_brick_stairs": "Demon Brick Stairs",
"block.bloodmagic.dungeon_brick_wall": "Demon Brick Wall",
"block.bloodmagic.dungeon_eye": "Demon Eye",
"block.bloodmagic.dungeon_ore": "Demonite",
"block.bloodmagic.dungeon_pillar_cap": "Demon Stone Pillar Cap",
"block.bloodmagic.dungeon_pillar_center": "Demon Stone Pillar",
"block.bloodmagic.dungeon_pillar_special": "Accented Demon Stone Pillar",
"block.bloodmagic.dungeon_polished": "Polished Demon Stone",
"block.bloodmagic.dungeon_polished_gate": "Demon Stone Gate",
"block.bloodmagic.dungeon_polished_stairs": "Demon Stone Stairs",
"block.bloodmagic.dungeon_polished_wall": "Demon Stone Wall",
"block.bloodmagic.dungeon_smallbrick": "Small Demon Bricks",
"block.bloodmagic.dungeon_stone": "Demon Stone",
"block.bloodmagic.dungeon_tile": "Demon Stone Tiles",
"block.bloodmagic.dungeon_tilespecial": "Accented Demon Stone Tiles",
"block.bloodmagic.duskritualstone": "Dusk Ritual Stone",
"block.bloodmagic.earthritualstone": "Earth Ritual Stone",
"block.bloodmagic.fireritualstone": "Fire Ritual Stone",
"block.bloodmagic.fungal_charge": "Fungal Charge",
"block.bloodmagic.incensealtar": "Incense Altar",
"block.bloodmagic.largebloodstonebrick": "Large Bloodstone Brick",
"block.bloodmagic.lightritualstone": "Dawn Ritual Stone",
"block.bloodmagic.masterritualstone": "Master Ritual Stone",
"block.bloodmagic.obsidianbrickpath": "Obsidian Path",
"block.bloodmagic.obsidiantilepath": "Tiled Obsidian Path",
"block.bloodmagic.orbcapacityrune": "Rune of the Orb",
"block.bloodmagic.rawdemoncrystal": "Raw Crystal Cluster",
"block.bloodmagic.ritualstone": "Ritual Stone",
"block.bloodmagic.sacrificerune": "Rune of Sacrifice",
"block.bloodmagic.selfsacrificerune": "Rune of Self Sacrifice",
"block.bloodmagic.shaped_charge": "Shaped Charge",
"block.bloodmagic.soulforge": "Hellfire Forge",
"block.bloodmagic.speedrune": "Speed Rune",
"block.bloodmagic.steadfastdemoncrystal": "Steadfast Crystal Cluster",
"block.bloodmagic.stonebrickpath": "Stone Path",
"block.bloodmagic.stonetilepath": "Tiled Stone Path",
"block.bloodmagic.veinmine_charge": "Controlled Charge",
"block.bloodmagic.vengefuldemoncrystal": "Vengeful Crystal Cluster",
"block.bloodmagic.waterritualstone": "Water Ritual Stone",
"block.bloodmagic.woodbrickpath": "Wooden Path",
"block.bloodmagic.woodtilepath": "Tiled Wooden Path",
"block.bloodmagic.wornstonebrickpath": "Worn Stone Path",
"block.bloodmagic.wornstonetilepath": "Tiled Worn Stone Path",
"bloodmagic.keybind.cycle_holding_neg": "Cycle Sigil (-)",
"bloodmagic.keybind.cycle_holding_pos": "Cycle Sigil (+)",
"bloodmagic.keybind.open_holding": "Open Sigil of Holding",
"chat.bloodmagic.damageSource": "%s's soul became too weak",
"chat.bloodmagic.living_upgrade_level_increase": "%s has leveled up to %d",
"chat.bloodmagic.ritual.activate": "A rush of energy flows through the ritual!",
"chat.bloodmagic.ritual.notValid": "You feel that these runes are not configured correctly...",
"chat.bloodmagic.ritual.prevent": "The ritual is actively resisting you!",
"chat.bloodmagic.ritual.weak": "You feel a push, but are too weak to perform this ritual.",
"gui.bloodmagic.empty": "Empty",
"guide.bloodmagic.landing_text": "\"It is my dear hope that by holding this tome in your hands, I may impart the knowledge of the lost art that is Blood Magic\"$(br)$(o)- Magus Arcana$()",
"guide.bloodmagic.name": "Sanguine Scientiem",
"hud.bloodmagic.inactive": "Inactive",
"item.bloodmagic.activationcrystalawakened": "Awakened Activation Crystal",
"item.bloodmagic.activationcrystalcreative": "Creative Activation Crystal",
"item.bloodmagic.activationcrystalweak": "Weak Activation Crystal",
"item.bloodmagic.airscribetool": "Inscription Tool: Air",
"item.bloodmagic.airsigil": "Air Sigil",
"item.bloodmagic.apprenticebloodorb": "Apprentice Blood Orb",
"item.bloodmagic.arcaneashes": "Arcane Ashes",
"item.bloodmagic.basemonstersoul": "Demon Will",
"item.bloodmagic.basemonstersoul_corrosive": "Demon Will",
"item.bloodmagic.basemonstersoul_destructive": "Demon Will",
"item.bloodmagic.basemonstersoul_steadfast": "Demon Will",
"item.bloodmagic.basemonstersoul_vengeful": "Demon Will",
"item.bloodmagic.basiccuttingfluid": "Basic Cutting Fluid",
"item.bloodmagic.blankslate": "Blank Slate",
"item.bloodmagic.bloodlightsigil": "Sigil of the Blood Lamp",
"item.bloodmagic.bow_power_anointment": "Iron Tip",
"item.bloodmagic.coalsand": "Coal Sand",
"item.bloodmagic.corrosivecrystal": "Corrosive Will Crystal",
"item.bloodmagic.crystalline_resonator": "Crystalline Resonator",
"item.bloodmagic.daggerofsacrifice": "Dagger of Sacrifice",
"item.bloodmagic.defaultcrystal": "Demon Will Crystal",
"item.bloodmagic.demonslate": "Demonic Slate",
"item.bloodmagic.destructivecrystal": "Destructive Will Crystal",
"item.bloodmagic.divinationsigil": "Divination Sigil",
"item.bloodmagic.duskscribetool": "Inscription Tool: Dusk",
"item.bloodmagic.earthscribetool": "Inscription Tool: Earth",
"item.bloodmagic.etherealslate": "Ethereal Slate",
"item.bloodmagic.experiencebook": "Tome of Peritia",
"item.bloodmagic.explosivepowder": "Explosive Powder",
"item.bloodmagic.firescribetool": "Inscription Tool: Fire",
"item.bloodmagic.fortune_anointment": "Fortuna Extract",
"item.bloodmagic.fragment_netherite_scrap": "Ancient Debris Fragment",
"item.bloodmagic.furnacecell_primitive": "Primitive Fuel Cell",
"item.bloodmagic.goldfragment": "Gold Ore Fragment",
"item.bloodmagic.goldgravel": "Gold Gravel",
"item.bloodmagic.goldsand": "Gold Sand",
"item.bloodmagic.gravel_netherite_scrap": "Ancient Debris Gravel",
"item.bloodmagic.growthsigil": "Sigil of the Green Grove",
"item.bloodmagic.hidden_knowledge_anointment": "Miner's Secrets",
"item.bloodmagic.holy_water_anointment": "Holy Water",
"item.bloodmagic.icesigil": "Sigil of the Frozen Lake",
"item.bloodmagic.infusedslate": "Imbued Slate",
"item.bloodmagic.ironfragment": "Iron Ore Fragment",
"item.bloodmagic.irongravel": "Iron Gravel",
"item.bloodmagic.ironsand": "Iron Sand",
"item.bloodmagic.lavacrystal": "Lava Crystal",
"item.bloodmagic.lavasigil": "Lava Sigil",
"item.bloodmagic.life_essence_bucket": "Bucket of Life",
"item.bloodmagic.livingboots": "Living Boots",
"item.bloodmagic.livinghelmet": "Living Helmet",
"item.bloodmagic.livingleggings": "Living Leggings",
"item.bloodmagic.livingplate": "Living Chestplate",
"item.bloodmagic.looting_anointment": "Plunderer's Glint",
"item.bloodmagic.magicianbloodorb": "Magician Blood Orb",
"item.bloodmagic.masterbloodorb": "Master Blood Orb",
"item.bloodmagic.melee_anointment": "Honing Oil",
"item.bloodmagic.miningsigil": "Sigil of the Fast Miner",
"item.bloodmagic.plantoil": "Plant Oil",
"item.bloodmagic.primitive_crystalline_resonator": "Primitive Resonator",
"item.bloodmagic.primitive_explosive_cell": "Primitive Explosive Cell",
"item.bloodmagic.primitive_hydration_cell": "Primitive Hydration Cell",
"item.bloodmagic.quick_draw_anointment": "Dexterity Alkahest",
"item.bloodmagic.reagentair": "Air Reagent",
"item.bloodmagic.reagentbinding": "Binding Reagent",
"item.bloodmagic.reagentbloodlight": "Blood Lamp Reagent",
"item.bloodmagic.reagentfastminer": "Mining Reagent",
"item.bloodmagic.reagentgrowth": "Growth Reagent",
"item.bloodmagic.reagentholding": "Holding Reagent",
"item.bloodmagic.reagentlava": "Lava Reagent",
"item.bloodmagic.reagentmagnetism": "Magnetism Reagent",
"item.bloodmagic.reagentsight": "Sight Reagent",
"item.bloodmagic.reagentvoid": "Void Reagent",
"item.bloodmagic.reagentwater": "Water Reagent",
"item.bloodmagic.reinforcedslate": "Reinforced Slate",
"item.bloodmagic.ritualdiviner": "Ritual Diviner",
"item.bloodmagic.ritualdivinerdusk": "Ritual Diviner [Dusk]",
"item.bloodmagic.ritualtinkerer": "Ritual Tinkerer",
"item.bloodmagic.sacrificialdagger": "Sacrificial Knife",
"item.bloodmagic.saltpeter": "Saltpeter",
"item.bloodmagic.sand_netherite": "Netherite Scrap Sand",
"item.bloodmagic.sanguinereverter": "Sanguine Reverter",
"item.bloodmagic.seersigil": "Seer's Sigil",
"item.bloodmagic.sigilofholding": "Sigil of Holding",
"item.bloodmagic.sigilofmagnetism": "Sigil of Magnetism",
"item.bloodmagic.silk_touch_anointment": "Soft Coating",
"item.bloodmagic.slate_ampoule": "Slate Ampoule",
"item.bloodmagic.slate_vial": "Slate-infused Vial",
"item.bloodmagic.smelting_anointment": "Slow-burning Oil",
"item.bloodmagic.soulaxe": "Sentient Axe",
"item.bloodmagic.soulgemcommon": "Common Tartaric Gem",
"item.bloodmagic.soulgemgreater": "Greater Tartaric Gem",
"item.bloodmagic.soulgemlesser": "Lesser Tartaric Gem",
"item.bloodmagic.soulgempetty": "Petty Tartaric Gem",
"item.bloodmagic.soulpickaxe": "Sentient Pickaxe",
"item.bloodmagic.soulscythe": "Sentient Scythe",
"item.bloodmagic.soulshovel": "Sentient Shovel",
"item.bloodmagic.soulsnare": "Soul Snare",
"item.bloodmagic.soulsword": "Sentient Sword",
"item.bloodmagic.steadfastcrystal": "Steadfast Will Crystal",
"item.bloodmagic.sulfur": "Sulfur",
"item.bloodmagic.throwing_dagger": "Iron Throwing Dagger",
"item.bloodmagic.throwing_dagger_syringe": "Syringe Throwing Dagger",
"item.bloodmagic.upgradetome": "Living Armour Upgrade Tome",
"item.bloodmagic.vengefulcrystal": "Vengeful Will Crystal",
"item.bloodmagic.voidsigil": "Void Sigil",
"item.bloodmagic.waterscribetool": "Inscription Tool: Water",
"item.bloodmagic.watersigil": "Water Sigil",
"item.bloodmagic.weakbloodorb": "Weak Blood Orb",
"item.bloodmagic.weakbloodshard": "Weak Blood Shard",
"itemGroup.bloodmagic.creativeTab": "Blood Magic",
"itemGroup.bloodmagictab": "Blood Magic",
"jei.bloodmagic.recipe.alchemyarraycrafting": "Alchemy Array",
"jei.bloodmagic.recipe.alchemytable": "Alchemy Table",
"jei.bloodmagic.recipe.altar": "Blood Altar",
"jei.bloodmagic.recipe.arc": "ARC Recipe",
"jei.bloodmagic.recipe.arcfurnace": "ARC Furnace Recipe",
"jei.bloodmagic.recipe.consumptionrate": "Consumption: %s LP/t",
"jei.bloodmagic.recipe.drainrate": "Drain: %s LP/t",
"jei.bloodmagic.recipe.lpDrained": "Drained: %s LP",
"jei.bloodmagic.recipe.minimumsouls": "Minimum: %s Will",
"jei.bloodmagic.recipe.requiredlp": "LP: %d",
"jei.bloodmagic.recipe.requiredtier": "Tier: %d",
"jei.bloodmagic.recipe.soulforge": "Hellfire Forge",
"jei.bloodmagic.recipe.soulsdrained": "Drained: %s Will",
"jei.bloodmagic.recipe.ticksRequired": "Time: %sTicks",
"key.bloodmagic.category": "Blood Magic",
"living_upgrade.bloodmagic.arrow_protect": "Pin Cushion",
"living_upgrade.bloodmagic.arrow_shot": "Trick Shot",
"living_upgrade.bloodmagic.battleHunger": "Battle Hungry",
"living_upgrade.bloodmagic.crippledArm": "Crippled Arm",
"living_upgrade.bloodmagic.critical_strike": "True Strike",
"living_upgrade.bloodmagic.digSlowdown": "Weakened Pick",
"living_upgrade.bloodmagic.digging": "Dwarven Might",
"living_upgrade.bloodmagic.disoriented": "Disoriented",
"living_upgrade.bloodmagic.elytra": "Elytra",
"living_upgrade.bloodmagic.experienced": "Experienced",
"living_upgrade.bloodmagic.fall_protect": "Soft Fall",
"living_upgrade.bloodmagic.fire_resist": "Gift of Ignis",
"living_upgrade.bloodmagic.grave_digger": "Grave Digger",
"living_upgrade.bloodmagic.grim_reaper": "Grim Reaper's Sprint",
"living_upgrade.bloodmagic.health": "Healthy",
"living_upgrade.bloodmagic.jump": "Strong Legs",
"living_upgrade.bloodmagic.knockback_resist": "Body Builder",
"living_upgrade.bloodmagic.meleeDecrease": "Dulled Blade",
"living_upgrade.bloodmagic.melee_damage": "Fierce Strike",
"living_upgrade.bloodmagic.night_sight": "Nocturnal Prowess",
"living_upgrade.bloodmagic.physical_protect": "Tough",
"living_upgrade.bloodmagic.poison_resist": "Poison Resistance",
"living_upgrade.bloodmagic.quenched": "Quenched",
"living_upgrade.bloodmagic.repair": "Repairing",
"living_upgrade.bloodmagic.revealing": "Revealing",
"living_upgrade.bloodmagic.self_sacrifice": "Tough Palms",
"living_upgrade.bloodmagic.slippery": "Loose Traction",
"living_upgrade.bloodmagic.slowHeal": "Diseased",
"living_upgrade.bloodmagic.slowness": "Limp Leg",
"living_upgrade.bloodmagic.solar_powered": "Solar Powered",
"living_upgrade.bloodmagic.speed": "Quick Feet",
"living_upgrade.bloodmagic.sprint_attack": "Charging Strike",
"living_upgrade.bloodmagic.step_assist": "Step Assist",
"living_upgrade.bloodmagic.stormTrooper": "Storm Trooper",
"living_upgrade.bloodmagic.thaumRunicShielding": "Runic Shielding",
"ritual.bloodmagic.altarBuilderRitual": "The Assembly of the High Altar",
"ritual.bloodmagic.altarBuilderRitual.info": "Builds an altar out of the components inside of the connected inventory.",
"ritual.bloodmagic.animalGrowthRitual": "Ritual of the Shepherd",
"ritual.bloodmagic.animalGrowthRitual.chest.info": "(Chest) Chest for breeding items if properly augmented.",
"ritual.bloodmagic.animalGrowthRitual.corrosive.info": "(Corrosive) Unimplemented.",
"ritual.bloodmagic.animalGrowthRitual.default.info": "(Raw) Increases the speed of the ritual based on the total Will in the Aura.",
"ritual.bloodmagic.animalGrowthRitual.destructive.info": "(Destructive) Causes adults that have not bred lately to run at mobs and explode.",
"ritual.bloodmagic.animalGrowthRitual.growing.info": "(Growth) Animals within this range will grow much faster.",
"ritual.bloodmagic.animalGrowthRitual.info": "Increases the maturity rate of baby animals within its range.",
"ritual.bloodmagic.animalGrowthRitual.steadfast.info": "(Steadfast) Automatically breeds adults within its area using items in the connected chest.",
"ritual.bloodmagic.animalGrowthRitual.vengeful.info": "(Vengeful) Decreases the time it takes for adults to breed again.",
"ritual.bloodmagic.armourEvolveRitual": "Ritual of Living Evolution",
"ritual.bloodmagic.armourEvolveRitual.info": "Increases the amount of maximum Upgrade Points on your Living Armor to 300.",
"ritual.bloodmagic.blockRange.firstBlock": "First block for new range stored.",
"ritual.bloodmagic.blockRange.inactive": "The ritual stone is currently inactive, and cannot have its range modified.",
"ritual.bloodmagic.blockRange.noRange": "The range was not properly chosen.",
"ritual.bloodmagic.blockRange.success": "New range successfully set!",
"ritual.bloodmagic.blockRange.tooBig": "The block range given is too big! Needs to be at most %s blocks.",
"ritual.bloodmagic.blockRange.tooFar": "The block range given is too far! Needs to be within a vertical range of %s blocks and a horizontal range of %s blocks.",
"ritual.bloodmagic.cobblestoneRitual": "Le Vulcanos Frigius",
"ritual.bloodmagic.condorRitual.info": "Provides flight in an area around the ritual.",
"ritual.bloodmagic.containmentRitual": "Ritual of Containment",
"ritual.bloodmagic.containmentRitual.containmentRange.info": "(Containment) The area of the ritual where mobs will be pulled. All mobs are pulled towards the master ritual stone, regardless of where this area is.",
"ritual.bloodmagic.containmentRitual.info": "Pulls all mobs within its area towards the master ritual stone.",
"ritual.bloodmagic.crushingRitual": "Ritual of the Crusher",
"ritual.bloodmagic.crushingRitual.chest.info": "(Chest) The location of the inventory that the ritual will place the broken blocks into.",
"ritual.bloodmagic.crushingRitual.corrosive.info": "(Corrosive) All blocks are broken to be processed with a form of cutting fluid. Overrides Silk Touch where applicable.",
"ritual.bloodmagic.crushingRitual.crushingRange.info": "(Crushing) The blocks that the ritual will break.",
"ritual.bloodmagic.crushingRitual.default.info": "(Raw) Increases the speed of the ritual based on total Will.",
"ritual.bloodmagic.crushingRitual.destructive.info": "(Destructive) Blocks are broken down forcefully: all blocks broken are affected by Fortune III.",
"ritual.bloodmagic.crushingRitual.info": "Breaks blocks within its crushing range and places the items into the linked chest.",
"ritual.bloodmagic.crushingRitual.steadfast.info": "(Steadfast) Causes all blocks that are broken to be picked up with silk touch. Overrides Fortune where applicable.",
"ritual.bloodmagic.crushingRitual.vengeful.info": "(Vengeful) Compresses the inventory on successful operation. Currently only does one compression per operation.",
"ritual.bloodmagic.crystalHarvestRitual": "Crack of the Fractured Crystal",
"ritual.bloodmagic.crystalHarvestRitual.crystal.info": "(Crystal) All Demon Will crystal clusters have a single crystal broken off, spawning the crystal into the world. If there is only one crystal on the cluster, it will not break it.",
"ritual.bloodmagic.crystalHarvestRitual.info": "Breaks Demon Will crystal clusters within its range, dropping the results on top of the crystals.",
"ritual.bloodmagic.crystalSplitRitual": "Resonance of the Faceted Crystal",
"ritual.bloodmagic.crystalSplitRitual.info": "Splits apart a well-grown Raw crystal cluster into seperal aspected crystal clusters.",
"ritual.bloodmagic.ellipseRitual": "Focus of the Ellipsoid",
"ritual.bloodmagic.ellipseRitual.chest.info": "(Chest) The location of the inventory that the ritual will grab blocks from to place in the world.",
"ritual.bloodmagic.ellipseRitual.info": "Creates a hollow spheroid around the ritual using the blocks in the attached chest.",
"ritual.bloodmagic.ellipseRitual.spheroidRange.info": "(Placement) The range that the ritual will place its blocks in. Spheroid is centered on the ritual - if one side is shorter than the side opposite the spheroid is truncated.",
"ritual.bloodmagic.eternalSoulRitual.info": "Capable of transferring Life Essence from a Network back into an Altar at a cost.",
"ritual.bloodmagic.expulsionRitual": "Aura of Expulsion",
"ritual.bloodmagic.expulsionRitual.expulsionRange.info": "(Expulsion) The area from which players that are not owner or have an orb in the chest will be teleported away from.",
"ritual.bloodmagic.expulsionRitual.info": "Expels players from its range that are neither the owner nor have a bound blood orb in the chest on top of the master ritual stone.",
"ritual.bloodmagic.featheredKnifeRitual": "Ritual of the Feathered Knife",
"ritual.bloodmagic.featheredKnifeRitual.altar.info": "(Altar) This range defines the area that the ritual searches for the blood altar. Changing this will either expand or limit the range to a certain region.",
"ritual.bloodmagic.featheredKnifeRitual.corrosive.info": "(Corrosive) Uses the player's Incense to increase the yield.",
"ritual.bloodmagic.featheredKnifeRitual.damage.info": "(Damage) This defines where the ritual will damage a player. Players inside of this range will receive damage over time up to the specified limit.",
"ritual.bloodmagic.featheredKnifeRitual.default.info": "(Raw) Increases the speed of the ritual based on the total Will in the Aura.",
"ritual.bloodmagic.featheredKnifeRitual.destructive.info": "(Destructive) Increases the yield of the ritual based on total Will.",
"ritual.bloodmagic.featheredKnifeRitual.info": "Drains health from players in its area and puts the LP into a nearby blood altar.",
"ritual.bloodmagic.featheredKnifeRitual.steadfast.info": "(Steadfast) Sets the minimum health for sacrificing from 30%% to 70%%.",
"ritual.bloodmagic.featheredKnifeRitual.vengeful.info": "(Vengeful) Sets the minimum health for sacrificing to 10%%. Overridden by Steadfast for the Owner if active.",
"ritual.bloodmagic.fellingRitual": "The Timberman",
"ritual.bloodmagic.fellingRitual.chest.info": "(Chest) The location of the inventory that the ritual will place the results into.",
"ritual.bloodmagic.fellingRitual.fellingRange.info": "(Cutting) The range that the ritual will search out logs and leaves in order to cut down.",
"ritual.bloodmagic.fellingRitual.info": "A standard tree-cutting machine, this ritual will cut down all trees and leaves within its area and collect the drops.",
"ritual.bloodmagic.forsakenSoulRitual": "Gathering of the Forsaken Souls",
"ritual.bloodmagic.forsakenSoulRitual.crystal.info": "(Crystal) Demon Crystals in this range receive an increase in growth speed when a mob is killed by the ritual.",
"ritual.bloodmagic.forsakenSoulRitual.damage.info": "(Damage) Mobs within this range will be slowly damaged, and when killed will grow the crystals.",
"ritual.bloodmagic.forsakenSoulRitual.info": "Damages mobs within its damage range and when the mob dies a demon crystal within its crystal range will be grown.",
"ritual.bloodmagic.fullStomachRitual": "Ritual of the Satiated Stomach",
"ritual.bloodmagic.fullStomachRitual.chest.info": "(Chest) The location of the inventory that the ritual will grab food from to feed players in range.",
"ritual.bloodmagic.fullStomachRitual.fillRange.info": "(Feeding) The range that the ritual will look at to feed players.",
"ritual.bloodmagic.fullStomachRitual.info": "Takes food from the linked chest and fills the player's saturation with it.",
"ritual.bloodmagic.greenGroveRitual": "Ritual of the Green Grove",
"ritual.bloodmagic.greenGroveRitual.corrosive.info": "(Corrosive) Entities within range are attacked by nearby plants, leeching away their life.",
"ritual.bloodmagic.greenGroveRitual.default.info": "(Raw) Increases the speed of all of the ritual operations depending on the total Will in the Aura.",
"ritual.bloodmagic.greenGroveRitual.destructive.info": "(Destructive) Growing range is increased based on total Will.",
"ritual.bloodmagic.greenGroveRitual.growing.info": "(Growth) The area that the ritual will grow plants in.",
"ritual.bloodmagic.greenGroveRitual.hydrate.info": "(Steadfast) Blocks within this range are rehydrated into farmland, and seeds within the area are planted nearby.",
"ritual.bloodmagic.greenGroveRitual.info": "Grows crops within its area.",
"ritual.bloodmagic.greenGroveRitual.leech.info": "(Corrosive) Entities in this area have their life drained to grow nearby crops.",
"ritual.bloodmagic.greenGroveRitual.steadfast.info": "(Steadfast) Seeds are replanted and blocks are hydrated within the Hydration range.",
"ritual.bloodmagic.greenGroveRitual.vengeful.info": "(Vengeful) Increases the rate that a growth tick is successful.",
"ritual.bloodmagic.groundingRitual.corrosive.info": "(Corrosive) Disables gravity (+Vengeful) Applies Levitation.",
"ritual.bloodmagic.groundingRitual.default.info": "(Raw) Affects players.",
"ritual.bloodmagic.groundingRitual.destructive.info": "(Destructive) Applies Heavy Heart (increases fall damage) (+Vengeful) Stronger effect.",
"ritual.bloodmagic.groundingRitual.info": "Forces entities on the ground and prevents jumping.",
"ritual.bloodmagic.groundingRitual.steadfast.info": "(Steadfast) Affects Bosses. Doesn't affect bosses that are immune against motion change or immune against potions (except Wither and Ender Dragon).",
"ritual.bloodmagic.groundingRitual.vengeful.info": "(Vengeful) Makes effects stronger. (+Corrosive) Applies Levitation. (+Destructive) Higher Heavy Heart amplifier.",
"ritual.bloodmagic.harvestRitual": "Reap of the Harvest Moon",
"ritual.bloodmagic.harvestRitual.harvestRange.info": "(Harvesting) Plants within this range will be harvested.",
"ritual.bloodmagic.harvestRitual.info": "Harvests plants within its range, dropping the results on the ground.",
"ritual.bloodmagic.interdictionRitual": "Ritual of Interdiction",
"ritual.bloodmagic.interdictionRitual.info": "Pushes all mobs within its area away from the master ritual stone.",
"ritual.bloodmagic.interdictionRitual.interdictionRange.info": "(Push) The area of the ritual where mobs will be pushed. All mobs are pushed away from the master ritual stone, regardless of where this area is.",
"ritual.bloodmagic.jumpRitual": "Ritual of the High Jump",
"ritual.bloodmagic.jumpRitual.info": "Causes entities to leap up into the air.",
"ritual.bloodmagic.jumpRitual.jumpRange.info": "(Jumping) Entities in this range will be launched in the air.",
"ritual.bloodmagic.lavaRitual": "Serenade of the Nether",
"ritual.bloodmagic.lavaRitual.corrosive.info": "(Corrosive) Entities within range that are immune to fire are damaged severely.",
"ritual.bloodmagic.lavaRitual.default.info": "(Raw) Decreases the LP cost of placing lava and allows lava to be placed insided of a linked container.",
"ritual.bloodmagic.lavaRitual.destructive.info": "(Destructive) Lava placement range is increased based on total Will.",
"ritual.bloodmagic.lavaRitual.fireDamage.info": "(Corrosive) Entities within this range that are immune to fire damage are hurt proportional to the Will.",
"ritual.bloodmagic.lavaRitual.fireFuse.info": "(Vengeful) Entities in this range are afflicted by Fire Fuse.",
"ritual.bloodmagic.lavaRitual.fireResist.info": "(Steadfast) Players in this range have Fire Resist applied.",
"ritual.bloodmagic.lavaRitual.info": "Generates a source of lava from the master ritual stone.",
"ritual.bloodmagic.lavaRitual.lavaRange.info": "(Lava) The area that the ritual will place lava source blocks.",
"ritual.bloodmagic.lavaRitual.lavaTank.info": "(Raw) The tank that the ritual will place lava into.",
"ritual.bloodmagic.lavaRitual.steadfast.info": "(Steadfast) Players within a designated range have Fire Resistance applied to them.",
"ritual.bloodmagic.lavaRitual.vengeful.info": "(Vengeful) Entities within range have Fire Fuse applied to them.",
"ritual.bloodmagic.magneticRitual": "Ritual of Magnetism",
"ritual.bloodmagic.magneticRitual.info": "Pulls up ores from the ground and puts them into its placement range.",
"ritual.bloodmagic.magneticRitual.placementRange.info": "(Placement) The range that the ritual will place the grabbed ores into.",
"ritual.bloodmagic.meteorRitual.info": "Consumes an item inside of its item range to summon a meteor full of resources from the sky, aimed directly at the ritual.",
"ritual.bloodmagic.placerRitual": "The Filler",
"ritual.bloodmagic.placerRitual.chest.info": "(Chest) The location of the inventory that the ritual will grab blocks from to place in the world.",
"ritual.bloodmagic.placerRitual.info": "Grabs blocks that are inside of the connected inventory and places them into the world.",
"ritual.bloodmagic.placerRitual.placerRange.info": "(Placement) The range that the ritual will place its blocks in.",
"ritual.bloodmagic.portalRitual": "The Gate of the Fold",
"ritual.bloodmagic.portalRitual.info": "Creates a portal network based on the activator and the immediately surrounding blocks. Blocks can be changed after activation without changing the network of portals, and portals with the same \"key\" will link together.",
"ritual.bloodmagic.pumpRitual": "Hymn of Siphoning",
"ritual.bloodmagic.pumpRitual.info": "Looks around the world and grabs fluids from the defined area. Will only remove and put the fluid into the connected tank if the tank has at least a bucket's worth of the same fluid.",
"ritual.bloodmagic.pumpRitual.pumpRange.info": "(Pump) The region that the ritual will look for fluids to grab from the world.",
"ritual.bloodmagic.regenerationRitual": "Ritual of Regeneration",
"ritual.bloodmagic.regenerationRitual.corrosive.info": "(Corrosive) Steals health from non-players inside of its Vampirism range and directly heals players.",
"ritual.bloodmagic.regenerationRitual.default.info": "(Raw)",
"ritual.bloodmagic.regenerationRitual.destructive.info": "(Destructive)",
"ritual.bloodmagic.regenerationRitual.heal.info": "(Healing) Entities within this range will receive a regeneration buff.",
"ritual.bloodmagic.regenerationRitual.info": "Casts regeneration on entities within its range if they are missing health.",
"ritual.bloodmagic.regenerationRitual.steadfast.info": "(Steadfast)",
"ritual.bloodmagic.regenerationRitual.vampire.info": "(Vampirism) Mobs within this range have their health syphoned to heal players in the Healing range.",
"ritual.bloodmagic.regenerationRitual.vengeful.info": "(Vengeful)",
"ritual.bloodmagic.speedRitual": "Ritual of Speed",
"ritual.bloodmagic.speedRitual.default.info": "(Raw) Increases the velocity caused by the ritual based on total Will.",
"ritual.bloodmagic.speedRitual.destructive.info": "(Destructive) Prevents child mobs and players from being transported. Players are transported if paired with Vengeful.",
"ritual.bloodmagic.speedRitual.info": "Launches players within its range in the direction of the ritual.",
"ritual.bloodmagic.speedRitual.sanicRange.info": "(Speed) All entities within this area are launched in the direction of the arrow formed by the ritual.",
"ritual.bloodmagic.speedRitual.vengeful.info": "(Vengeful) Prevents adult mobs and players from being transported. Players are transported if paired with Destructive.",
"ritual.bloodmagic.suppressionRitual": "Ritual of Suppression",
"ritual.bloodmagic.suppressionRitual.info": "Suppresses fluids within its range - deactivating the ritual returns the fluids back to the world.",
"ritual.bloodmagic.suppressionRitual.suppressionRange.info": "(Suppress) All liquids within the range are suppressed.",
"ritual.bloodmagic.testRitual": "Test Ritual",
"ritual.bloodmagic.upgradeRemoveRitual": "Sound of the Cleansing Soul",
"ritual.bloodmagic.upgradeRemoveRitual.info": "Removes all upgrades (and downgrades) from your Living Armor and gives you the corresponding Upgrade (and Downgrade) Tomes. These Tomes can be used to be applied to your Living Armor again.",
"ritual.bloodmagic.waterRitual": "Ritual of the Full Spring",
"ritual.bloodmagic.waterRitual.info": "Generates a source of water from the master ritual stone.",
"ritual.bloodmagic.waterRitual.waterRange.info": "(Water) The area that the ritual will place water source blocks.",
"ritual.bloodmagic.waterRitual.waterTank.info": "(Raw) The tank that the ritual will place water into.",
"ritual.bloodmagic.wellOfSufferingRitual": "Well of Suffering",
"ritual.bloodmagic.wellOfSufferingRitual.altar.info": "(Altar) This range defines the area that the ritual searches for the blood altar. Changing this will either expand or limit the range to a certain region.",
"ritual.bloodmagic.wellOfSufferingRitual.damage.info": "(Damage) This defines where the ritual will damage a mob. All mobs inside of this range (except for players) will receive damage over time.",
"ritual.bloodmagic.wellOfSufferingRitual.info": "Attacks mobs within its damage zone and puts the LP into a nearby blood altar.",
"ritual.bloodmagic.willConfig.set": "The ritual will use these Demon Will types: %s",
"ritual.bloodmagic.willConfig.void": "The ritual no longer uses Demon Will",
"ritual.bloodmagic.zephyrRitual": "Call of the Zephyr",
"ritual.bloodmagic.zephyrRitual.chest.info": "(Chest) The location of the inventory that the ritual will place the picked up items into.",
"ritual.bloodmagic.zephyrRitual.info": "Picks up items within its range and places them into the linked chest.",
"ritual.bloodmagic.zephyrRitual.zephyrRange.info": "(Suction) Items within this range will be sucked into the linked chest.",
"tile.bloodmagic.alchemytable.name": "Alchemy Table",
"tile.bloodmagic.arc.name": "Alchemical Reaction Chamber",
"tile.bloodmagic.soulforge.name": "Hellfire Forge",
"tooltip.bloodmagic.activated": "Activated",
"tooltip.bloodmagic.activationcrystal.awakened": "Activates more powerful rituals",
"tooltip.bloodmagic.activationcrystal.creative": "Creative Only - Activates any ritual",
"tooltip.bloodmagic.activationcrystal.weak": "Activates low-level rituals",
"tooltip.bloodmagic.arcaneAshes": "Ashes used to draw an alchemy circle",
"tooltip.bloodmagic.arctool.additionaldrops": "Increases chance of additional outputs by: x%s",
"tooltip.bloodmagic.arctool.uses": "Uses remaining: %s",
"tooltip.bloodmagic.blood_provider.slate.desc": "A simple ampoule containing 500LP",
"tooltip.bloodmagic.config.disabled": "Currently disabled in the Config",
"tooltip.bloodmagic.currentBaseType.corrosive": "Corrosive",
"tooltip.bloodmagic.currentBaseType.default": "Raw",
"tooltip.bloodmagic.currentBaseType.destructive": "Destructive",
"tooltip.bloodmagic.currentBaseType.steadfast": "Steadfast",
"tooltip.bloodmagic.currentBaseType.vengeful": "Vengeful",
"tooltip.bloodmagic.currentOwner": "Current owner: %s",
"tooltip.bloodmagic.currentTier": "Current tier: %d",
"tooltip.bloodmagic.currentType.corrosive": "Contains: Corrosive Will",
"tooltip.bloodmagic.currentType.default": "Contains: Raw Will",
"tooltip.bloodmagic.currentType.destructive": "Contains: Destructive Will",
"tooltip.bloodmagic.currentType.steadfast": "Contains: Steadfast Will",
"tooltip.bloodmagic.currentType.vengeful": "Contains: Vengeful Will",
"tooltip.bloodmagic.deactivated": "Deactivated",
"tooltip.bloodmagic.decoration.notSafe": "Dangerous for decoration",
"tooltip.bloodmagic.decoration.safe": "Safe for decoration",
"tooltip.bloodmagic.diviner.airRune": "Air Runes: %d",
"tooltip.bloodmagic.diviner.blankRune": "Blank Runes: %d",
"tooltip.bloodmagic.diviner.currentDirection": "Current Direction: %s",
"tooltip.bloodmagic.diviner.currentRitual": "Current Ritual: %s",
"tooltip.bloodmagic.diviner.dawnRune": "Dawn Runes: %d",
"tooltip.bloodmagic.diviner.duskRune": "Dusk Runes: %d",
"tooltip.bloodmagic.diviner.earthRune": "Earth Runes: %d",
"tooltip.bloodmagic.diviner.extraExtraInfo": "-Hold shift + alt for augmentation info-",
"tooltip.bloodmagic.diviner.extraInfo": "Press shift for extra info",
"tooltip.bloodmagic.diviner.fireRune": "Fire Runes: %d",
"tooltip.bloodmagic.diviner.totalRune": "Total Runes: %d",
"tooltip.bloodmagic.diviner.waterRune": "Water Runes: %d",
"tooltip.bloodmagic.experienceTome": "A book used to store experience",
"tooltip.bloodmagic.experienceTome.exp": "Exp: %0.3f",
"tooltip.bloodmagic.experienceTome.expLevel": "Level: %d",
"tooltip.bloodmagic.extraInfo": "&9-Hold shift for more info-",
"tooltip.bloodmagic.holdShiftForInfo": "Press shift for extra info",
"tooltip.bloodmagic.inscriber.desc": "The writing is on the wall...",
"tooltip.bloodmagic.livingarmour.extraExtraInfo": "&9-Hold shift + M for progress info-",
"tooltip.bloodmagic.livingarmour.upgrade.level": "%s (Level %d)",
"tooltip.bloodmagic.livingarmour.upgrade.points": "Upgrade points: %s / %s",
"tooltip.bloodmagic.livingarmour.upgrade.progress": "%s (%d/100)",
"tooltip.bloodmagic.orb.desc": "Stores raw Life Essence",
"tooltip.bloodmagic.orb.owner": "Added by: %s",
"tooltip.bloodmagic.ritualReader.currentState": "Current mode: %s",
"tooltip.bloodmagic.ritualReader.desc.information": "Right click on an active Master Ritual Stone to gather basic information about the ritual.",
"tooltip.bloodmagic.ritualReader.desc.set_area": "Right click on an active Master Ritual stone to cycle what area of the ritual you want to modify. Then click on the two corners of the new range you want to set the range.",
"tooltip.bloodmagic.ritualReader.desc.set_will_types": "Set the types of demon will that the ritual will consume from the aura by right clicking on the MRS with the same types of crystals on your hotbar.",
"tooltip.bloodmagic.ritualReader.information": "Information",
"tooltip.bloodmagic.ritualReader.set_area": "Define Area",
"tooltip.bloodmagic.ritualReader.set_will_types": "Set Will Consumed",
"tooltip.bloodmagic.sacrificialdagger.desc": "Just a prick of the finger will suffice...",
"tooltip.bloodmagic.sentientAxe.desc": "Uses demon will to unleash its full potential.",
"tooltip.bloodmagic.sentientPickaxe.desc": "Uses demon will to unleash its full potential.",
"tooltip.bloodmagic.sentientShovel.desc": "Uses demon will to unleash its full potential.",
"tooltip.bloodmagic.sentientSword.desc": "Uses demon will to unleash its full potential.",
"tooltip.bloodmagic.sigil.air.desc": "I feel lighter already...",
"tooltip.bloodmagic.sigil.bloodlight.desc": "I see a light!",
"tooltip.bloodmagic.sigil.divination.currentAltarCapacity": "Current Capacity: %d LP",
"tooltip.bloodmagic.sigil.divination.currentAltarTier": "Current Tier: %d",
"tooltip.bloodmagic.sigil.divination.currentBonus": "Current Bonus: +%d%%",
"tooltip.bloodmagic.sigil.divination.currentEssence": "Current Essence: %d LP",
"tooltip.bloodmagic.sigil.divination.currentTranquility": "Current Tranquility: %d",
"tooltip.bloodmagic.sigil.divination.desc": "Peer into the soul",
"tooltip.bloodmagic.sigil.divination.otherNetwork": "Peering into the soul of %s",
"tooltip.bloodmagic.sigil.fastminer.desc": "Keep mining, and mining...",
"tooltip.bloodmagic.sigil.greengrove.desc": "Environmentally friendly",
"tooltip.bloodmagic.sigil.holding.desc": "Sigil-ception",
"tooltip.bloodmagic.sigil.holding.press": "Press %s to modify",
"tooltip.bloodmagic.sigil.holding.sigilInSlot": "Slot %d: %s",
"tooltip.bloodmagic.sigil.lava.desc": "HOT! DO NOT EAT",
"tooltip.bloodmagic.sigil.magnetism.desc": "I have a very magnetic personality",
"tooltip.bloodmagic.sigil.seer.currentAltarCapacity": "Current Capacity: %d LP",
"tooltip.bloodmagic.sigil.seer.currentAltarConsumptionRate": "Consumption Rate: %d LP",
"tooltip.bloodmagic.sigil.seer.currentAltarProgress": "Current Progress: %d LP/ %s LP",
"tooltip.bloodmagic.sigil.seer.currentAltarProgress.percent": "Current Progress: %s",
"tooltip.bloodmagic.sigil.seer.currentAltarTier": "Current Tier: %d",
"tooltip.bloodmagic.sigil.seer.currentBonus": "Current Bonus: +%d%%",
"tooltip.bloodmagic.sigil.seer.currentCharge": "Current Charge: %d",
"tooltip.bloodmagic.sigil.seer.currentEssence": "Current Essence: %d LP",
"tooltip.bloodmagic.sigil.seer.currentTranquility": "Current Tranquility: %d",
"tooltip.bloodmagic.sigil.seer.desc": "When seeing all is not enough",
"tooltip.bloodmagic.sigil.void.desc": "Better than a Swiffer\u00AE!",
"tooltip.bloodmagic.sigil.water.desc": "Infinite water, anyone?",
"tooltip.bloodmagic.slate.desc": "Infused stone inside of a Blood Altar",
"tooltip.bloodmagic.slate_vial": "A glass vial infused with a simple slate",
"tooltip.bloodmagic.soulGem.common": "A gem used to contain more will",
"tooltip.bloodmagic.soulGem.grand": "A gem used to contain a large amount of will",
"tooltip.bloodmagic.soulGem.greater": "A gem used to contain a greater amount of will",
"tooltip.bloodmagic.soulGem.lesser": "A gem used to contain some will",
"tooltip.bloodmagic.soulGem.petty": "A gem used to contain a little will",
"tooltip.bloodmagic.soulSnare.desc": "Throw at a monster and then kill them to obtain their demonic will",
"tooltip.bloodmagic.throwing_dagger.desc": "Not to be used in the kitchen",
"tooltip.bloodmagic.tier": "Tier %d",
"tooltip.bloodmagic.will": "Will Quality: %s"
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/accelerationrune"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/airritualstone"
}
}

View file

@ -1,9 +0,0 @@
{
"parent": "minecraft:block/orientable_with_bottom",
"textures": {
"side": "bloodmagic:block/arc_side",
"front": "bloodmagic:block/arc_front",
"bottom": "bloodmagic:block/arc_bottom",
"top": "bloodmagic:block/arc_top"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/altarcapacityrune"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/bettercapacityrune"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/blankrune"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/bloodlight"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/bloodstonebrick"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "bloodmagic:block/chargingrune"
}
}

Some files were not shown because too many files have changed in this diff Show more