diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..5fafbf7b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,256 @@ +root = true + +[*] +charset = utf-8 +indent_size = 4 +indent_style = space +insert_final_newline = true +max_line_length = 500 +# tab_width = 4 +# ij_continuation_indent_size = 4 + +[*.json] +indent_size = 2 + +[*.java] +indent_size = 2 +# tab_width = 8 +# ij_continuation_indent_size = 4 +# ij_java_align_consecutive_assignments = false +# ij_java_align_consecutive_variable_declarations = false +# ij_java_align_group_field_declarations = false +# ij_java_align_multiline_annotation_parameters = false +# ij_java_align_multiline_array_initializer_expression = true +# ij_java_align_multiline_assignment = true +# ij_java_align_multiline_binary_operation = true +# ij_java_align_multiline_chained_methods = true +# ij_java_align_multiline_extends_list = true +# ij_java_align_multiline_for = true +# ij_java_align_multiline_method_parentheses = false +# ij_java_align_multiline_parameters = true +# ij_java_align_multiline_parameters_in_calls = true +# ij_java_align_multiline_parenthesized_expression = true +# ij_java_align_multiline_resources = true +# ij_java_align_multiline_ternary_operation = true +# ij_java_align_multiline_throws_list = true +# ij_java_align_subsequent_simple_methods = false +# ij_java_align_throws_keyword = false +# ij_java_annotation_parameter_wrap = off +# ij_java_array_initializer_new_line_after_left_brace = false +# ij_java_array_initializer_right_brace_on_new_line = false +# ij_java_array_initializer_wrap = off +# ij_java_assert_statement_colon_on_next_line = false +# ij_java_assert_statement_wrap = off +# ij_java_assignment_wrap = off +# ij_java_binary_operation_sign_on_next_line = true +# ij_java_binary_operation_wrap = off +# ij_java_blank_lines_after_anonymous_class_header = 0 +ij_java_blank_lines_after_class_header = 1 +ij_java_blank_lines_after_imports = 1 +# ij_java_blank_lines_after_package = 1 +# ij_java_blank_lines_around_class = 1 +# ij_java_blank_lines_around_field = 0 +# ij_java_blank_lines_around_field_in_interface = 0 +# ij_java_blank_lines_around_initializer = 1 +# ij_java_blank_lines_around_method = 1 +# ij_java_blank_lines_around_method_in_interface = 1 +# ij_java_blank_lines_before_class_end = 0 +# ij_java_blank_lines_before_imports = 1 +# ij_java_blank_lines_before_method_body = 0 +# ij_java_blank_lines_before_package = 0 +# ij_java_block_brace_style = end_of_line +# ij_java_block_comment_at_first_column = true +# ij_java_call_parameters_new_line_after_left_paren = false +# ij_java_call_parameters_right_paren_on_new_line = false +# ij_java_call_parameters_wrap = off +# ij_java_case_statement_on_separate_line = true +# ij_java_catch_on_new_line = false +# ij_java_class_annotation_wrap = split_into_lines +# ij_java_class_brace_style = end_of_line +ij_java_class_count_to_use_import_on_demand = 99 +# ij_java_class_names_in_javadoc = 1 +# ij_java_do_not_indent_top_level_class_members = false +# ij_java_do_not_wrap_after_single_annotation = false +# ij_java_do_while_brace_force = always +# ij_java_doc_add_blank_line_after_description = true +# ij_java_doc_add_blank_line_after_param_comments = false +# ij_java_doc_add_blank_line_after_return = false +# ij_java_doc_add_p_tag_on_empty_lines = true +# ij_java_doc_align_exception_comments = true +# ij_java_doc_align_param_comments = true +# ij_java_doc_do_not_wrap_if_one_line = false +# ij_java_doc_enable_formatting = true +# ij_java_doc_enable_leading_asterisks = true +# ij_java_doc_indent_on_continuation = false +# ij_java_doc_keep_empty_lines = true +# ij_java_doc_keep_empty_parameter_tag = true +# ij_java_doc_keep_empty_return_tag = true +# ij_java_doc_keep_empty_throws_tag = true +# ij_java_doc_keep_invalid_tags = true +# ij_java_doc_param_description_on_new_line = false +# ij_java_doc_preserve_line_breaks = false +# ij_java_doc_use_throws_not_exception_tag = true +# ij_java_else_on_new_line = true +# ij_java_entity_dd_suffix = EJB +# ij_java_entity_eb_suffix = Bean +# ij_java_entity_hi_suffix = Home +# ij_java_entity_lhi_prefix = Local +# ij_java_entity_lhi_suffix = Home +# ij_java_entity_li_prefix = Local +# ij_java_entity_pk_class = java.lang.String +# ij_java_entity_vo_suffix = VO +# ij_java_enum_constants_wrap = off +# ij_java_extends_keyword_wrap = normal +# ij_java_extends_list_wrap = normal +# ij_java_field_annotation_wrap = split_into_lines +# ij_java_finally_on_new_line = false +# ij_java_for_brace_force = always +# ij_java_for_statement_new_line_after_left_paren = false +# ij_java_for_statement_right_paren_on_new_line = false +# ij_java_for_statement_wrap = normal +# ij_java_generate_final_locals = false +# ij_java_generate_final_parameters = false +# ij_java_if_brace_force = always +# ij_java_imports_layout = com.google.**,|,android.**,|,antenna.**,|,antlr.**,|,ar.**,|,asposewobfuscated.**,|,asquare.**,|,atg.**,|,au.**,|,beaver.**,|,bibtex.**,|,bmsi.**,|,bsh.**,|,ccl.**,|,cern.**,|,ChartDirector.**,|,checkers.**,|,com.**,|,COM.**,|,common.**,|,contribs.**,|,corejava.**,|,cryptix.**,|,cybervillains.**,|,dalvik.**,|,danbikel.**,|,de.**,|,EDU.**,|,eg.**,|,eu.**,|,examples.**,|,fat.**,|,fit.**,|,fitlibrary.**,|,fmpp.**,|,freemarker.**,|,gnu.**,|,groovy.**,|,groovyjarjarantlr.**,|,groovyjarjarasm.**,|,hak.**,|,hep.**,|,ie.**,|,imageinfo.**,|,info.**,|,it.**,|,jal.**,|,Jama.**,|,japa.**,|,japacheckers.**,|,jas.**,|,jasmin.**,|,javancss.**,|,javanet.**,|,javassist.**,|,javazoom.**,|,java_cup.**,|,jcifs.**,|,jetty.**,|,JFlex.**,|,jj2000.**,|,jline.**,|,jp.**,|,JSci.**,|,jsr166y.**,|,junit.**,|,jxl.**,|,jxxload_help.**,|,kawa.**,|,kea.**,|,libcore.**,|,libsvm.**,|,lti.**,|,memetic.**,|,mt.**,|,mx4j.**,|,net.**,|,netscape.**,|,nl.**,|,nu.**,|,oauth.**,|,ognl.**,|,opennlp.**,|,oracle.**,|,org.**,|,penn2dg.**,|,pennconverter.**,|,pl.**,|,prefuse.**,|,proguard.**,|,repackage.**,|,scm.**,|,se.**,|,serp.**,|,simple.**,|,soot.**,|,sqlj.**,|,src.**,|,ssa.**,|,sun.**,|,sunlabs.**,|,tcl.**,|,testdata.**,|,testshell.**,|,testsuite.**,|,twitter4j.**,|,uk.**,|,ViolinStrings.**,|,weka.**,|,wet.**,|,winstone.**,|,woolfel.**,|,wowza.**,|,java.**,|,javax.**,|,*,|,$* +# ij_java_indent_case_from_switch = true +# ij_java_insert_inner_class_imports = false +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 2 +ij_java_keep_blank_lines_between_package_declaration_and_header = 2 +ij_java_keep_blank_lines_in_code = 2 +ij_java_keep_blank_lines_in_declarations = 2 +# ij_java_keep_control_statement_in_one_line = false +# ij_java_keep_first_column_comment = true +# ij_java_keep_indents_on_empty_lines = false +# ij_java_keep_line_breaks = true +# ij_java_keep_multiple_expressions_in_one_line = false +ij_java_keep_simple_blocks_in_one_line = true +ij_java_keep_simple_classes_in_one_line = true +ij_java_keep_simple_lambdas_in_one_line = true +ij_java_keep_simple_methods_in_one_line = true +# ij_java_lambda_brace_style = end_of_line +# ij_java_layout_static_imports_separately = true +# ij_java_line_comment_add_space = false +# ij_java_line_comment_at_first_column = true +# ij_java_message_dd_suffix = EJB +# ij_java_message_eb_suffix = Bean +# ij_java_method_annotation_wrap = split_into_lines +# ij_java_method_brace_style = end_of_line +# ij_java_method_call_chain_wrap = off +# ij_java_method_parameters_new_line_after_left_paren = false +# ij_java_method_parameters_right_paren_on_new_line = false +# ij_java_method_parameters_wrap = off +# ij_java_modifier_list_wrap = false +ij_java_names_count_to_use_import_on_demand = 99 +# ij_java_packages_to_use_import_on_demand = java.awt.*,javax.swing.* +# ij_java_parameter_annotation_wrap = off +# ij_java_parentheses_expression_new_line_after_left_paren = false +# ij_java_parentheses_expression_right_paren_on_new_line = false +# ij_java_place_assignment_sign_on_next_line = false +# ij_java_prefer_longer_names = true +# ij_java_prefer_parameters_wrap = false +# ij_java_repeat_synchronized = true +# ij_java_replace_instanceof_and_cast = false +# ij_java_replace_null_check = true +# ij_java_replace_sum_lambda_with_method_ref = true +# ij_java_resource_list_new_line_after_left_paren = false +# ij_java_resource_list_right_paren_on_new_line = false +# ij_java_resource_list_wrap = off +# ij_java_session_dd_suffix = EJB +# ij_java_session_eb_suffix = Bean +# ij_java_session_hi_suffix = Home +# ij_java_session_lhi_prefix = Local +# ij_java_session_lhi_suffix = Home +# ij_java_session_li_prefix = Local +# ij_java_session_si_suffix = Service +# ij_java_space_after_closing_angle_bracket_in_type_argument = false +# ij_java_space_after_colon = true +# ij_java_space_after_comma = true +# ij_java_space_after_comma_in_type_arguments = true +# ij_java_space_after_for_semicolon = true +# ij_java_space_after_quest = true +# ij_java_space_after_type_cast = true +# ij_java_space_before_annotation_array_initializer_left_brace = false +# ij_java_space_before_annotation_parameter_list = false +# ij_java_space_before_array_initializer_left_brace = false +# ij_java_space_before_catch_keyword = true +# ij_java_space_before_catch_left_brace = true +# ij_java_space_before_catch_parentheses = false +# ij_java_space_before_class_left_brace = true +# ij_java_space_before_colon = true +# ij_java_space_before_colon_in_foreach = true +# ij_java_space_before_comma = false +# ij_java_space_before_do_left_brace = true +# ij_java_space_before_else_keyword = true +# ij_java_space_before_else_left_brace = true +# ij_java_space_before_finally_keyword = true +# ij_java_space_before_finally_left_brace = true +# ij_java_space_before_for_left_brace = true +# ij_java_space_before_for_parentheses = false +# ij_java_space_before_for_semicolon = false +# ij_java_space_before_if_left_brace = true +# ij_java_space_before_if_parentheses = false +# ij_java_space_before_method_call_parentheses = false +# ij_java_space_before_method_left_brace = true +# ij_java_space_before_method_parentheses = false +# ij_java_space_before_opening_angle_bracket_in_type_parameter = false +# ij_java_space_before_quest = true +# ij_java_space_before_switch_left_brace = true +# ij_java_space_before_switch_parentheses = false +# ij_java_space_before_synchronized_left_brace = true +# ij_java_space_before_synchronized_parentheses = false +# ij_java_space_before_try_left_brace = true +# ij_java_space_before_try_parentheses = false +# ij_java_space_before_type_parameter_list = false +# ij_java_space_before_while_keyword = true +# ij_java_space_before_while_left_brace = true +# ij_java_space_before_while_parentheses = false +# ij_java_space_inside_one_line_enum_braces = false +# ij_java_space_within_empty_array_initializer_braces = false +# ij_java_space_within_empty_method_call_parentheses = false +# ij_java_space_within_empty_method_parentheses = false +# ij_java_spaces_around_additive_operators = true +# ij_java_spaces_around_assignment_operators = true +# ij_java_spaces_around_bitwise_operators = true +# ij_java_spaces_around_equality_operators = true +# ij_java_spaces_around_lambda_arrow = true +# ij_java_spaces_around_logical_operators = true +# ij_java_spaces_around_method_ref_dbl_colon = false +# ij_java_spaces_around_multiplicative_operators = true +# ij_java_spaces_around_relational_operators = true +# ij_java_spaces_around_shift_operators = true +# ij_java_spaces_around_type_bounds_in_type_parameters = true +# ij_java_spaces_around_unary_operator = false +# ij_java_spaces_within_angle_brackets = false +# ij_java_spaces_within_annotation_parentheses = false +# ij_java_spaces_within_array_initializer_braces = false +# ij_java_spaces_within_braces = false +# ij_java_spaces_within_brackets = false +# ij_java_spaces_within_cast_parentheses = false +# ij_java_spaces_within_catch_parentheses = false +# ij_java_spaces_within_for_parentheses = false +# ij_java_spaces_within_if_parentheses = false +# ij_java_spaces_within_method_call_parentheses = false +# ij_java_spaces_within_method_parentheses = false +# ij_java_spaces_within_parentheses = false +# ij_java_spaces_within_switch_parentheses = false +# ij_java_spaces_within_synchronized_parentheses = false +# ij_java_spaces_within_try_parentheses = false +# ij_java_spaces_within_while_parentheses = false +# ij_java_special_else_if_treatment = true +# ij_java_subclass_name_suffix = Impl +# ij_java_ternary_operation_signs_on_next_line = true +# ij_java_ternary_operation_wrap = off +# ij_java_test_name_suffix = Test +# ij_java_throws_keyword_wrap = normal +# ij_java_throws_list_wrap = normal +# ij_java_use_external_annotations = false +# ij_java_use_fq_class_names = false +# ij_java_use_single_class_imports = true +# ij_java_variable_annotation_wrap = off +# ij_java_visibility = public +# ij_java_while_brace_force = always +# ij_java_while_on_new_line = false +# ij_java_wrap_comments = false +# ij_java_wrap_first_method_in_call_chain = false +# ij_java_wrap_long_lines = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..f811f6ae --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# Disable autocrlf on generated files, they always generate with LF +# Add any extra files or paths here to make git stop saying they +# are changed when only line endings change. +src/generated/**/.cache/cache text eol=lf +src/generated/**/*.json text eol=lf diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..a93aa5f9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,21 @@ + + + +## Version Information +`Minecraft: ` +`Forge: ` +`Iron Chests: ` + +## Report Information + + +## Steps to Reproduce + + +## Crash Log + + +## Forge Log + + + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 3a2f51b3..d29b5fa0 100755 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,29 @@ -build/ +# eclipse +bin +*.launch +.settings +.metadata .classpath .project -/*.launch -.gradle/ -eclipse/ -bin/ -repo/ -/run/ -.settings/ -#IDEA files from Gradle -.idea/ -/*.iml -/*.ipr -/*.iws + +# idea +out +*.ipr +*.iws +*.iml +.idea + +# gradle +build +.gradle + +# vscode +.vscode + +# other +eclipse +run +runs +run-data + +repo diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..a6cdd76b --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,31 @@ +pipeline { + agent any + + stages { + stage('Checkout') { + steps { + checkout scm + sh "rm -rf build/libs" + } + } + + stage('Build') { + steps { + sh "JAVA_HOME=${env.JDK_21} ./gradlew build -PBUILD_NUMBER=${env.BUILD_NUMBER} --no-daemon" + } + } + + stage('Archive') { + steps { + archive includes: 'build/libs/*.jar' + junit allowEmptyResults: true, testResults: 'build/test-results/**/*.xml' + } + } + + stage('Deploy') { + steps { + sh "JAVA_HOME=${env.JDK_21} ./gradlew publishMavenJavaPublicationToMavenRepository -PBUILD_NUMBER=${env.BUILD_NUMBER} -PDEPLOY_DIR=${env.MAVEN_DEPLOY_DIR} --no-daemon" + } + } + } +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..f288702d --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, 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 +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index 7c2d0e91..88e41a66 100755 --- a/README.md +++ b/README.md @@ -1,10 +1,18 @@ -ironchest -========= +Iron Chests [![Curseforge](http://cf.way2muchnoise.eu/full_iron-chests_downloads.svg)](https://minecraft.curseforge.com/projects/iron-chests) [![Curseforge](http://cf.way2muchnoise.eu/versions/For%20MC_iron-chests_all.svg)](https://minecraft.curseforge.com/projects/iron-chests) +=========== -Iron Chest minecraft mod +Iron Chests! A mod that adds new chests. -a GPL v3 licensed mod by cpw +Please note that the Shulker Boxes in 1.13+ have been moved to their own mod: [Iron Shulker Boxes](https://minecraft.curseforge.com/projects/iron-shulker-boxes) -Currently Maintained by ProgWML6 +For issues with the Shulker Boxes starting in 1.13+, Please report them to [Iron Shulker Boxes](https://github.com/progwml6/ironshulkerboxes) -See http://files.minecraftforge.net/IronChests2/ for downloads +## Setting up a Workspace/Compiling from Source +Note: Git MUST be installed and in the system path to use our scripts. +* Setup: Run [gradle]in the repository root: `gradlew[.bat] [eclipse] OR import build.gradle into idea` +* Build: Run [gradle]in the repository root: `gradlew[.bat] build` +* If obscure Gradle issues are found try running `gradlew clean` and `gradlew cleanCache` + +[![Discord](https://img.shields.io/discord/102860784329052160.svg?style=for-the-badge)](https://discord.gg/njGrvuh) + +If you have queries about any license or the other restrictions, please drop by our IRC channel, #progsmods on irc.esper.net diff --git a/build.gradle b/build.gradle index fb780093..60e3111a 100755 --- a/build.gradle +++ b/build.gradle @@ -1,185 +1,207 @@ -// This sets us up for building a forge project - you need all of these -buildscript { - repositories { - jcenter() - maven { - name = "forge" - url = "http://files.minecraftforge.net/maven" - } - } - dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' - } -} plugins { - id "com.matthewprenger.cursegradle" version "1.0.9" + id 'java-library' + id 'eclipse' + id 'idea' + id 'maven-publish' + id 'net.neoforged.gradle.userdev' version '7.0.145' } -apply plugin: 'net.minecraftforge.gradle.forge' -apply plugin: 'maven' -apply plugin: 'eclipse' -apply plugin: 'idea' +tasks.named('wrapper', Wrapper).configure { + // Define wrapper values here so as to not have to always do so when updating gradlew.properties. + // Switching this to Wrapper.DistributionType.ALL will download the full gradle sources that comes with + // documentation attached on cursor hover of gradle classes and methods. However, this comes with increased + // file size for Gradle. If you do switch this to ALL, run the Gradle wrapper task twice afterwards. + // (Verify by checking gradle/wrapper/gradle-wrapper.properties to see if distributionUrl now points to `-all`) + distributionType = Wrapper.DistributionType.BIN +} -// This is a simple flatdir repository for "uploadArchives" when you don't have a remote repo to target repositories { - flatDir { - name "fileRepo" - dirs "repo" - } - maven { + mavenLocal() + maven { name 'DVS1 Maven FS' - url 'http://dvs1.progwml6.com/files/maven' + url 'https://dvs1.progwml6.com/files/maven' + } + maven { + name 'BlameJared Maven' + url 'https://maven.blamejared.com' } } -dependencies { - deobfCompile "mezz.jei:jei_1.12.2:4.7.+" -} +task buildInfo { + def cmd = "git rev-parse --short HEAD" + def proc = cmd.execute() + proc.waitFor() + if (proc.exitValue() == 0) { + ext.revision = proc.text.trim() + } else { + ext.revision = "GITBORK" + } -// This is our group. I'm cpw.mods -group = "cpw.mods" // http://maven.apache.org/guides/mini/guide-naming-conventions.html -// This is our actual project within the group. Note: FML has "fml" here. But this is ironchest. -archivesBaseName = "ironchest" + if (System.getenv().BUILD_NUMBER != null) { + ext.buildNum = System.getenv().BUILD_NUMBER + } else { + ext.buildNum = "DEV.${project.buildInfo.revision}" + } +} -sourceCompatibility = 1.8 -targetCompatibility = 1.8 +version = "${minecraft_version}-neoforge-${mod_version}.${project.buildInfo.buildNum}" +group = mod_group_id -// Setup the forge minecraft plugin data. Specify the preferred forge/minecraft version here -minecraft { - version = "1.12.2-14.23.0.2493" - mappings = "snapshot_20170927" - runDir = "run" +base { + archivesName = mod_id } -// IronChest uses git tagging to mark major versions. This sets up the project version to that version data -def versionInfo = getGitVersion() -version = "${project.minecraft.version}-${versionInfo['IronChest.version']}" +// Mojang ships Java 21 to end users starting in 1.20.5, so mods should target Java 21. +java.toolchain.languageVersion = JavaLanguageVersion.of(21) + +minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg') + +runs { + // applies to all the run configs below + configureEach { + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + systemProperty 'forge.logging.markers', 'REGISTRIES' -curseforge { - apiKey = project.hasProperty('curseforge_apikey') ? project.curseforge_apikey : '0' - project { - id = '228756' - changelog = 'Empty' - releaseType = 'beta' + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + systemProperty 'forge.logging.console.level', 'debug' + + modSource project.sourceSets.main + } + + client { + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + + //The below if statements are to add args to your gradle.properties file in user home + // (DO NOT add them directly to the gradle.properties file for this project) + // Setting the below properties allows use of your normal Minecraft account in the + // dev environment including having your skin load. Each property also has a comment + // explaining what information to set the value to/format it expects + // One thing to note is because of the caching that goes on, after changing these + // variables, you need to refresh the project and rerun genIntellijRuns/genEclipseRuns + if (project.hasProperty('mc_uuid')) { + //Your uuid without any dashes in the middle + args '--uuid', project.getProperty('mc_uuid') + } + if (project.hasProperty('mc_username')) { + //Your username/display name, this is the name that shows up in chat + // Note: This is not your email, even if you have a Mojang account + args '--username', project.getProperty('mc_username') + } + if (project.hasProperty('mc_accessToken')) { + //Your access token, you can find it in your '.minecraft/launcher_profiles.json' file + args '--accessToken', project.getProperty('mc_accessToken') + } } -} + server { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + programArgument '--nogui' + } -// This wrangles the resources for the jar files- stuff like textures and languages -processResources -{ - // we're omitting the .xcf files - they're development only - exclude '**/*.xcf' - // we only want to do search/replace stuff in mcmod.info, nothing else - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - - // replace version and mcversion - expand 'version':project.version, 'mcversion':project.minecraft.version + // This run config launches GameTestServer and runs all registered gametests, then exits. + // By default, the server will crash when no gametests are provided. + // The gametest system is also enabled by default for other run configs under the /test command. + gameTestServer { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id } - - // copy everything else, thats not the mcmod.info - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' + + data { + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() } +} + +// Include resources generated by data generators. +sourceSets.main.resources { srcDir 'src/generated/resources' } + +// Sets up a dependency configuration called 'localRuntime'. +// This configuration should be used instead of 'runtimeOnly' to declare +// a dependency that will be present for runtime testing but that is +// "optional", meaning it will not be pulled by dependents of this mod. +configurations { + runtimeClasspath.extendsFrom localRuntime +} + +dependencies { + implementation "net.neoforged:neoforge:${neo_version}" - // generate version.properties file from the git version data earlier - doLast { - def propsFile = new File(destinationDir, 'version.properties') - def properties = new Properties() - properties.putAll(versionInfo) - properties['IronChest.build.mcversion'] = project.minecraft.version - properties.store(propsFile.newWriter(), null) - } + // compile against the JEI API but do not include it at runtime + compileOnly("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}") + compileOnly("mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}") + // at runtime, use the full JEI jar for NeoForge + runtimeOnly("mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}") } -// Configure an upload task. this is setup for uploading to files.minecraftforge.net. There are other examples around -uploadArchives { - repositories.mavenDeployer { +tasks.withType(ProcessResources).configureEach { + var replaceProperties = [ + minecraft_version : minecraft_version, + minecraft_version_range: minecraft_version_range, + neo_version : neo_version, + neo_version_range : neo_version_range, + loader_version_range : loader_version_range, + mod_issue_tracker : mod_issue_tracker, + mod_id : mod_id, + mod_name : mod_name, + mod_license : mod_license, + mod_version : version, + mod_authors : mod_authors, + mod_description : mod_description, + mod_display_url : mod_display_url + ] + inputs.properties replaceProperties + + filesMatching(['META-INF/neoforge.mods.toml']) { + expand replaceProperties + } +} - dependsOn 'build' +tasks.named('jar', Jar).configure { + manifest { + attributes([ + 'Specification-Title' : mod_id, + 'Specification-Vendor' : mod_authors, + 'Specification-Version' : "1", + 'Implementation-Title' : project.name, + 'Implementation-Version' : project.jar.archiveVersion, + 'Implementation-Vendor' : mod_authors, + 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") + ]) + } +} - if (project.hasProperty('forgeMavenPassword')) - { - repository(url: "http://files.minecraftforge.net/maven/manage/upload") { - authentication(userName: project.getProperty('forgeMavenUser'), password: project.getProperty('forgeMavenPassword')) // the elvis operator. look it up. +// Example configuration to allow publishing using the maven-publish plugin +publishing { + publications { + register('mavenJava', MavenPublication) { + afterEvaluate { + artifact project.jar } } - else - { - // local repo folder. Might wanna juset use gradle install if you wanans end it to maven-local - repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath()) - } - // This is just the pom data for the maven repo - pom { - groupId = project.group - // Force the maven upload to use the - syntax preferred at files - version = "${project.version}" - artifactId = project.archivesBaseName - project { - name project.archivesBaseName - packaging 'jar' - description 'IronChest' - url 'https://github.com/progwml6/IronChest' - - scm { - url 'https://github.com/progwml6/IronChest' - connection 'scm:git:git://github.com/progwml6/IronChest.git' - developerConnection 'scm:git:git@github.com:progwml6/IronChest.git' - } - - issueManagement { - system 'github' - url 'https://github.com/progwml6/IronChest/issues' - } - - licenses { - license { - name 'GNU Public License (GPL), Version 3.0' - url 'http://www.gnu.org/licenses/gpl-3.0.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'cpw' - name 'cpw' - roles { role 'developer' } - } - } + } + repositories { + if (project.hasProperty('DEPLOY_DIR')) { + maven { + url DEPLOY_DIR } } } } -// This is a special task for pulling the version information from git and the environment (for BUILD_NUMBER) -def getGitVersion() -{ - def out = [:] - - // call git command. - def outStream = new ByteArrayOutputStream() - def result = exec { - executable = 'git' - args = [ 'describe', '--long', "--match=[^(jenkins)]*"] - standardOutput = outStream - } - - def fullVersion = outStream.toString().trim() - def matcher = fullVersion =~ /(\d+).(\d+)-(\d+)-(.*)/ - - def maj = matcher[0][1] - def min = matcher[0][2] - def rev = matcher[0][3] - def bn = System.getenv("PROMOTED_NUMBER") ?: System.getenv("BUILD_NUMBER") ?: "1" - - out['IronChest.build.major.number'] = maj.toString() - out['IronChest.build.minor.number'] = min.toString() - out['IronChest.build.revision.number'] = rev.toString() - out['IronChest.build.githash'] = matcher[0][4].toString() - out['IronChest.build.number' ] = bn.toString() - out['IronChest.version' ] = "${maj}.${min}.${rev}.${bn}".toString() - - return out +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +} + +// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior. +idea { + module { + downloadSources = true + downloadJavadoc = true + } } diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..532776b3 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,46 @@ +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +org.gradle.jvmargs=-Xmx1G +org.gradle.daemon=false +org.gradle.debug=false +#read more on this at https://github.com/neoforged/NeoGradle/blob/NG_7.0/README.md#apply-parchment-mappings +# you can also find the latest versions at: https://parchmentmc.org/docs/getting-started +neogradle.subsystems.parchment.minecraftVersion=1.20.6 +neogradle.subsystems.parchment.mappingsVersion=2024.05.01 +# Environment Properties +# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge +# The Minecraft version must agree with the Neo version to get a valid artifact +minecraft_version=1.21 +# The Minecraft version range can use any release version of Minecraft as bounds. +# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly +# as they do not follow standard versioning conventions. +minecraft_version_range=[1.21,1.21.1) +# The Neo version must agree with the Minecraft version to get a valid artifact +neo_version=21.0.24-beta +# The Neo version range can use any version of Neo as bounds +neo_version_range=[21.0.0-beta,) +# The loader version range can only use the major version of FML as bounds +loader_version_range=[4,) +## Mod Properties +# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} +# Must match the String constant located in the main mod class annotated with @Mod. +mod_id=ironchest +# The human-readable display name for the mod. +mod_name=Iron Chests +# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. +mod_license=GNU General Public License v3.0 +# The mod version. See https://semver.org/ +mod_version=16.0 +# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. +# This should match the base package used for the mod sources. +# See https://maven.apache.org/guides/mini/guide-naming-conventions.html +mod_group_id=com.progwml6.ironchest +# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. +mod_authors=cpw, alexbegt, progwml6 +# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. +mod_description=New chests with larger sizes, with in-place upgrade items.\nThe feature chest is the crystal chest, which is transparent - some inventory contents are visible without opening the chest. +# The issue tracker URL +mod_issue_tracker=https://github.com/progwml6/ironchest/issues +# The mod display URL +mod_display_url=https://minecraft.curseforge.com/projects/iron-chests +# Build dependencies +jei_version=19.0.0.9 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar old mode 100755 new mode 100644 index b5166dad..e6441136 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties old mode 100755 new mode 100644 index 92011764..b82aa23a --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ -#Sun Nov 22 23:58:08 EST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.7-bin.zip diff --git a/gradlew b/gradlew index 91a7e269..1aa94a42 100755 --- a/gradlew +++ b/gradlew @@ -1,79 +1,127 @@ -#!/usr/bin/env bash +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum -warn ( ) { +warn () { echo "$*" -} +} >&2 -die ( ) { +die () { echo echo "$*" echo exit 1 -} +} >&2 # 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 - ;; +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=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" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -82,83 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -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 - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat old mode 100755 new mode 100644 index aec99730..25da30db --- a/gradlew.bat +++ b/gradlew.bat @@ -1,90 +1,92 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@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 Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@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. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -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 - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@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="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..83e7f30c --- /dev/null +++ b/settings.gradle @@ -0,0 +1,13 @@ +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + maven { url = 'https://maven.neoforged.net/releases' } + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' +} + +rootProject.name = 'ironchest' diff --git a/src/api/java/invtweaks/api/container/ChestContainer.java b/src/api/java/invtweaks/api/container/ChestContainer.java index 52a07a35..e148569b 100644 --- a/src/api/java/invtweaks/api/container/ChestContainer.java +++ b/src/api/java/invtweaks/api/container/ChestContainer.java @@ -6,7 +6,8 @@ import java.lang.annotation.Target; /** - * A marker for containers that have a chest-like persistent storage component. Enables the Inventory Tweaks sorting buttons for this container. + * A marker for containers that have a chest-like persistent storage component. Enables the Inventory Tweaks sorting + * buttons for this container. */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @@ -31,10 +32,10 @@ } // Annotation for method to get size of a chest row if it is not a fixed size for this container class - // Signature int func() + // Signature boolean func() @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @interface IsLargeCallback { } -} \ No newline at end of file +} diff --git a/src/generated/resources/.cache/0dbbd54ceb2dbdad297666c0ed7345b878c15d35 b/src/generated/resources/.cache/0dbbd54ceb2dbdad297666c0ed7345b878c15d35 new file mode 100644 index 00000000..22f45000 --- /dev/null +++ b/src/generated/resources/.cache/0dbbd54ceb2dbdad297666c0ed7345b878c15d35 @@ -0,0 +1,2 @@ +// 1.21 2024-06-22T19:20:04.923746 atlases generator for ironchest +bba03f0849be21ea0fb2f99f25b892838b1ec7a2 assets/minecraft/atlases/chests.json diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d new file mode 100644 index 00000000..cbcddc6b --- /dev/null +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -0,0 +1,15 @@ +// 1.21 2024-06-23T18:24:26.085787 Loot Tables +9ad5e7fade2fef39cc1edc420b2de38d279f87be data/ironchest/loot_table/blocks/copper_chest.json +d297a76ab610e0c11747a2b3750efae242de470e data/ironchest/loot_table/blocks/crystal_chest.json +599c0cfc1534085a0ca3f4fc5a2ec74df8f222af data/ironchest/loot_table/blocks/diamond_chest.json +062f36ad8d3d031d9c089d51f9b4eaf7e85039dc data/ironchest/loot_table/blocks/dirt_chest.json +e8257c385a3c803c32c090305788dd3e476efae2 data/ironchest/loot_table/blocks/gold_chest.json +6295ea21bbfcdacfb102c835b69c028fa1efd2ad data/ironchest/loot_table/blocks/iron_chest.json +0ed56f4f907f93f49d78a9d56ecb2739ac3f6f12 data/ironchest/loot_table/blocks/obsidian_chest.json +e1fb8add902d7d9451c95e5209f2f8378ea41864 data/ironchest/loot_table/blocks/trapped_copper_chest.json +f499dc4f5f38987a515a2c073c7188152a705ec4 data/ironchest/loot_table/blocks/trapped_crystal_chest.json +d166b0229b5b529851fd76dafb97a7414adb678a data/ironchest/loot_table/blocks/trapped_diamond_chest.json +b7807c780d380fc8917c72e042c8cee7253f1a9e data/ironchest/loot_table/blocks/trapped_dirt_chest.json +52f3a8b8b7267e36551bfa9be2a8f445aea5069b data/ironchest/loot_table/blocks/trapped_gold_chest.json +2768fa1400f840f08ee176d1350fcd89423b4fb2 data/ironchest/loot_table/blocks/trapped_iron_chest.json +7cc7540d12945ae07176c1c1510eb42b6dc14ff5 data/ironchest/loot_table/blocks/trapped_obsidian_chest.json diff --git a/src/generated/resources/.cache/73a642a5921fdd8af683dcd68adc2a2cacb7445d b/src/generated/resources/.cache/73a642a5921fdd8af683dcd68adc2a2cacb7445d new file mode 100644 index 00000000..e91e805d --- /dev/null +++ b/src/generated/resources/.cache/73a642a5921fdd8af683dcd68adc2a2cacb7445d @@ -0,0 +1,5 @@ +// 1.21 2024-06-22T19:20:04.916523 Tags for minecraft:block mod id ironchest +d8f6b5a884da49100b8e712b5b6b542d20ae1073 data/minecraft/tags/block/features_cannot_replace.json +9d9739e029d3448f4948a70f64e2ee83f71c7eea data/minecraft/tags/block/guarded_by_piglins.json +9d9739e029d3448f4948a70f64e2ee83f71c7eea data/minecraft/tags/block/mineable/pickaxe.json +1b0c9b763a2ad4ff1ccd8d407afcc11cb074e1aa data/minecraft/tags/block/mineable/shovel.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e new file mode 100644 index 00000000..fad1a18e --- /dev/null +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -0,0 +1,45 @@ +// 1.21 2024-06-22T19:20:04.922335 Recipes +1db83ea8be4fb956b8ec878d876af2293553ae2f data/ironchest/advancement/recipes/decorations/chests/copper_iron_chest.json +85de9deb0f2a2339c7589937caaec742260953df data/ironchest/advancement/recipes/decorations/chests/diamond_crystal_chest.json +eb80cb6843f39adf08af45fb2369292e67c8f6f6 data/ironchest/advancement/recipes/decorations/chests/diamond_obsidian_chest.json +5a363d0d831465df0f3218fc84d80117e267bbeb data/ironchest/advancement/recipes/decorations/chests/gold_diamond_chest.json +7208c85c149da09015570ebc2e99237cbad49563 data/ironchest/advancement/recipes/decorations/chests/iron_gold_chest.json +4edeaaf2b467715a4e76b96e91ca5b8cead941a7 data/ironchest/advancement/recipes/decorations/chests/trapped_copper_chest.json +90ca0f25078bbe154a7ac214128c7b59bba79958 data/ironchest/advancement/recipes/decorations/chests/trapped_crystal_chest.json +cd3cac6af89b1ed8b074289619cd3b05f55863fb data/ironchest/advancement/recipes/decorations/chests/trapped_diamond_chest.json +8de0bf5b47ff8642ca708e3cd954b607aecff31f data/ironchest/advancement/recipes/decorations/chests/trapped_dirt_chest.json +0562874e7617127c5a813b041b0d5171ea9eb3ba data/ironchest/advancement/recipes/decorations/chests/trapped_gold_chest.json +f19e973a1742a21f195279b07a53e760ca4cdc9b data/ironchest/advancement/recipes/decorations/chests/trapped_iron_chest.json +069cee99898f383793c1fb841c95346f01b09ef7 data/ironchest/advancement/recipes/decorations/chests/trapped_obsidian_chest.json +73f0d5b27cfc1460d653fefd1e6a5cb8b70eeac5 data/ironchest/advancement/recipes/decorations/chests/vanilla_copper_chest.json +cff86ee77c557c1237bdcc249f12f84a36daa101 data/ironchest/advancement/recipes/decorations/chests/vanilla_dirt_chest.json +1dff94badc241dffe9f8312656a8ec210f4eaab6 data/ironchest/advancement/recipes/decorations/chests/vanilla_iron_chest.json +977a66ddd753b4da2718aa037efa8341c74a9005 data/ironchest/advancement/recipes/decorations/upgrades/copper_to_iron_chest_upgrade.json +bc99f68ae64ed510ec2c46e1f9fdb21ba4a106a2 data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_crystal_chest_upgrade.json +eb2a443538435dc2ae5e7d9bba5a42cd2844feb6 data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_obsidian_chest_upgrade.json +71c87399734c12d4a124bdd50918ab6094f552e3 data/ironchest/advancement/recipes/decorations/upgrades/gold_to_diamond_chest_upgrade.json +2f9db07b21ad26caaba600f293ac9f1eb70488d2 data/ironchest/advancement/recipes/decorations/upgrades/iron_to_gold_chest_upgrade.json +420aa09d4c575f3547b7c22dc718351793334a3e data/ironchest/advancement/recipes/decorations/upgrades/wood_to_copper_chest_upgrade.json +cdaad3ce355748d00e0cee5ff8113d095f93c8a3 data/ironchest/advancement/recipes/decorations/upgrades/wood_to_iron_chest_upgrade.json +6a207885c36fb1097a70bdaabd5eeb5a2f5c6752 data/ironchest/recipe/chests/copper_iron_chest.json +913b1af9665a2e59a30d5c3cf3dfcf7b3f0a5af5 data/ironchest/recipe/chests/diamond_crystal_chest.json +1bd54edaaade431d8c8d0da80db644ba040515db data/ironchest/recipe/chests/diamond_obsidian_chest.json +21315b25d989a6cd89c17c551580f007677afa7c data/ironchest/recipe/chests/gold_diamond_chest.json +00f31b80cf5f08ee80dc1ce8cb8b40850e48eaab data/ironchest/recipe/chests/iron_gold_chest.json +71e12e5a033a0e55022f37cc719adaf086f34662 data/ironchest/recipe/chests/trapped_copper_chest.json +6f82cd0412432b3e57a9ca13439b950f0eee895c data/ironchest/recipe/chests/trapped_crystal_chest.json +f73a535c5ed8f251039ea750a54c6cf188ae5ca4 data/ironchest/recipe/chests/trapped_diamond_chest.json +a9981d79a4cf6bb55a7a85522641e28cdbc1c7dc data/ironchest/recipe/chests/trapped_dirt_chest.json +62dd7547d23595ceab1fa9a1952f9affa003e981 data/ironchest/recipe/chests/trapped_gold_chest.json +5e019d280921c947321688c6c64e78dd53fceed5 data/ironchest/recipe/chests/trapped_iron_chest.json +2772908554ab75c8ab01d176b93ceb7037feaf5d data/ironchest/recipe/chests/trapped_obsidian_chest.json +9ef49058720c6b179aafd541576f47902c2ab8b5 data/ironchest/recipe/chests/vanilla_copper_chest.json +c565a211d835c8dc6782b7bdddbad51bd4b88c7c data/ironchest/recipe/chests/vanilla_dirt_chest.json +74bd31bad8964181b771ed8243369ef045b04809 data/ironchest/recipe/chests/vanilla_iron_chest.json +2dcc51b817b9655736f838ac98692d0caef9b642 data/ironchest/recipe/upgrades/copper_to_iron_chest_upgrade.json +6982eb200b7d32debb04c706dbeada9b47aa79c1 data/ironchest/recipe/upgrades/diamond_to_crystal_chest_upgrade.json +314eccb32ef67fed9beb254953bb2a9256b3af11 data/ironchest/recipe/upgrades/diamond_to_obsidian_chest_upgrade.json +867d17d4067a4f00a028d2fee3c2ec9da5af3b93 data/ironchest/recipe/upgrades/gold_to_diamond_chest_upgrade.json +9827900619ca968fbda96423ac7559a01c48bde0 data/ironchest/recipe/upgrades/iron_to_gold_chest_upgrade.json +7ecf729c08f36d7e84a5fc5b8e9cdc4219a4a526 data/ironchest/recipe/upgrades/wood_to_copper_chest_upgrade.json +0a970e62f2c9ad7985dca247edcae56141b2a30b data/ironchest/recipe/upgrades/wood_to_iron_chest_upgrade.json diff --git a/src/generated/resources/.cache/a3957ed431d836c317aa5e9f45df3f960c06fc99 b/src/generated/resources/.cache/a3957ed431d836c317aa5e9f45df3f960c06fc99 new file mode 100644 index 00000000..f5948f56 --- /dev/null +++ b/src/generated/resources/.cache/a3957ed431d836c317aa5e9f45df3f960c06fc99 @@ -0,0 +1,2 @@ +// 1.21 2024-06-22T19:20:04.919903 Languages: en_us for mod: ironchest +a4d945e31dc91e78f57f3f53257307b1e627320b assets/ironchest/lang/en_us.json diff --git a/src/generated/resources/assets/ironchest/lang/en_us.json b/src/generated/resources/assets/ironchest/lang/en_us.json new file mode 100644 index 00000000..f7b0e562 --- /dev/null +++ b/src/generated/resources/assets/ironchest/lang/en_us.json @@ -0,0 +1,38 @@ +{ + "block.ironchest.copper_chest": "Copper Chest", + "block.ironchest.crystal_chest": "Crystal Chest", + "block.ironchest.diamond_chest": "Diamond Chest", + "block.ironchest.dirt_chest": "DirtChest 9000!", + "block.ironchest.gold_chest": "Gold Chest", + "block.ironchest.iron_chest": "Iron Chest", + "block.ironchest.obsidian_chest": "Obsidian Chest", + "block.ironchest.trapped_copper_chest": "Trapped Copper Chest", + "block.ironchest.trapped_crystal_chest": "Trapped Crystal Chest", + "block.ironchest.trapped_diamond_chest": "Trapped Diamond Chest", + "block.ironchest.trapped_dirt_chest": "Trapped DirtChest 9000!", + "block.ironchest.trapped_gold_chest": "Trapped Gold Chest", + "block.ironchest.trapped_iron_chest": "Trapped Iron Chest", + "block.ironchest.trapped_obsidian_chest": "Trapped Obsidian Chest", + "ironchest.book.dirtchest9000": "How to use your DirtChest 9000!", + "ironchest.book.dirtchest9000.1": "Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility.", + "ironchest.book.dirtchest9000.2": "Usage: simply insert the stack of dirt of your choice into the highly receptive slot and enjoy the great convenience of having that dirt available to you, any time you pass by this chest!", + "ironchest.book.dirtchest9000.3": "We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated.", + "ironchest.book.dirtchest9000.4": "Warranty: This product has no warranty of any kind. Your dirt may not be stored, it may slowly leech into the environment, or alternatively, it may not do anything at all.", + "ironchest.book.dirtchest9000.5": "DirtChest 9000 is kind to the environment. Please dispose of this guide book responsibly, and do not whatever you do just chuck it into some lava. We would be very sad.", + "ironchest.container.copper_chest": "Copper Chest", + "ironchest.container.crystal_chest": "Crystal Chest", + "ironchest.container.diamond_chest": "Diamond Chest", + "ironchest.container.dirt_chest": "DirtChest 9000!", + "ironchest.container.gold_chest": "Gold Chest", + "ironchest.container.iron_chest": "Iron Chest", + "ironchest.container.obsidian_chest": "Obsidian Chest", + "ironchest.container.silver_chest": "Silver Chest", + "item.ironchest.copper_to_iron_chest_upgrade": "Copper to Iron Chest Upgrade", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Diamond to Crystal Chest Upgrade", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Diamond to Obsidian Chest Upgrade", + "item.ironchest.gold_to_diamond_chest_upgrade": "Gold to Diamond Chest Upgrade", + "item.ironchest.iron_to_gold_chest_upgrade": "Iron to Gold Chest Upgrade", + "item.ironchest.wood_to_copper_chest_upgrade": "Wood to Copper Chest Upgrade", + "item.ironchest.wood_to_iron_chest_upgrade": "Wood to Iron Chest Upgrade", + "itemGroup.ironchest": "Iron Chests" +} \ No newline at end of file diff --git a/src/generated/resources/assets/minecraft/atlases/chests.json b/src/generated/resources/assets/minecraft/atlases/chests.json new file mode 100644 index 00000000..4c205d05 --- /dev/null +++ b/src/generated/resources/assets/minecraft/atlases/chests.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "minecraft:directory", + "prefix": "model/", + "source": "model" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/copper_iron_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/copper_iron_chest.json new file mode 100644 index 00000000..60bbfae3 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/copper_iron_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/copper_iron_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/copper_iron_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/diamond_crystal_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/diamond_crystal_chest.json new file mode 100644 index 00000000..06e9de53 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/diamond_crystal_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "#c:glass_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/diamond_crystal_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/diamond_crystal_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/diamond_obsidian_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/diamond_obsidian_chest.json new file mode 100644 index 00000000..689118be --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/diamond_obsidian_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/diamond_obsidian_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_obsidian" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/diamond_obsidian_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/gold_diamond_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/gold_diamond_chest.json new file mode 100644 index 00000000..4d8ef79e --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/gold_diamond_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamonds": { + "conditions": { + "items": [ + { + "items": "#c:gems/diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/gold_diamond_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamonds" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/gold_diamond_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/iron_gold_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/iron_gold_chest.json new file mode 100644 index 00000000..e926cf2a --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/iron_gold_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/iron_gold_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/iron_gold_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_copper_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_copper_chest.json new file mode 100644 index 00000000..ef97e070 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_copper_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/trapped_copper_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/trapped_copper_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_crystal_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_crystal_chest.json new file mode 100644 index 00000000..dcdae589 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_crystal_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/trapped_crystal_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/trapped_crystal_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_diamond_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_diamond_chest.json new file mode 100644 index 00000000..dc80a48b --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_diamond_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/trapped_diamond_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/trapped_diamond_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_dirt_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_dirt_chest.json new file mode 100644 index 00000000..06e16f6c --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_dirt_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/trapped_dirt_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/trapped_dirt_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_gold_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_gold_chest.json new file mode 100644 index 00000000..840329f7 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_gold_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/trapped_gold_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/trapped_gold_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_iron_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_iron_chest.json new file mode 100644 index 00000000..16807646 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_iron_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/trapped_iron_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/trapped_iron_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_obsidian_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_obsidian_chest.json new file mode 100644 index 00000000..fdea0d05 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/trapped_obsidian_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/trapped_obsidian_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/trapped_obsidian_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_copper_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_copper_chest.json new file mode 100644 index 00000000..42cea992 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_copper_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/vanilla_copper_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/vanilla_copper_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_dirt_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_dirt_chest.json new file mode 100644 index 00000000..5841c6dd --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_dirt_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:dirt" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/vanilla_dirt_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/vanilla_dirt_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_iron_chest.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_iron_chest.json new file mode 100644 index 00000000..b19c9ca5 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/chests/vanilla_iron_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:chests/vanilla_iron_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:chests/vanilla_iron_chest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/copper_to_iron_chest_upgrade.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/copper_to_iron_chest_upgrade.json new file mode 100644 index 00000000..0b524e54 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/copper_to_iron_chest_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:upgrades/copper_to_iron_chest_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:upgrades/copper_to_iron_chest_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_crystal_chest_upgrade.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_crystal_chest_upgrade.json new file mode 100644 index 00000000..9618ab26 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_crystal_chest_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "#c:glass_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:upgrades/diamond_to_crystal_chest_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "ironchest:upgrades/diamond_to_crystal_chest_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_obsidian_chest_upgrade.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_obsidian_chest_upgrade.json new file mode 100644 index 00000000..e824b9e8 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/diamond_to_obsidian_chest_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "#c:glass_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:upgrades/diamond_to_obsidian_chest_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "ironchest:upgrades/diamond_to_obsidian_chest_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/gold_to_diamond_chest_upgrade.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/gold_to_diamond_chest_upgrade.json new file mode 100644 index 00000000..dc3b0c1d --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/gold_to_diamond_chest_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "#c:glass_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:upgrades/gold_to_diamond_chest_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "ironchest:upgrades/gold_to_diamond_chest_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/iron_to_gold_chest_upgrade.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/iron_to_gold_chest_upgrade.json new file mode 100644 index 00000000..c2b3db55 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/iron_to_gold_chest_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:upgrades/iron_to_gold_chest_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:upgrades/iron_to_gold_chest_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/wood_to_copper_chest_upgrade.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/wood_to_copper_chest_upgrade.json new file mode 100644 index 00000000..0439011e --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/wood_to_copper_chest_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:upgrades/wood_to_copper_chest_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:upgrades/wood_to_copper_chest_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/wood_to_iron_chest_upgrade.json b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/wood_to_iron_chest_upgrade.json new file mode 100644 index 00000000..25c979b0 --- /dev/null +++ b/src/generated/resources/data/ironchest/advancement/recipes/decorations/upgrades/wood_to_iron_chest_upgrade.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "ironchest:upgrades/wood_to_iron_chest_upgrade" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "ironchest:upgrades/wood_to_iron_chest_upgrade" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/copper_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/copper_chest.json new file mode 100644 index 00000000..32a5f77b --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/copper_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:copper_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/copper_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/crystal_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/crystal_chest.json new file mode 100644 index 00000000..ff49a56c --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/crystal_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:crystal_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/crystal_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/diamond_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/diamond_chest.json new file mode 100644 index 00000000..2a6ad6e5 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/diamond_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:diamond_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/diamond_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/dirt_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/dirt_chest.json new file mode 100644 index 00000000..a5f6d06c --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/dirt_chest.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "ironchest:chest_placed_already" + ], + "source": "block_entity" + } + ], + "name": "ironchest:dirt_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/dirt_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/gold_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/gold_chest.json new file mode 100644 index 00000000..c4719807 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/gold_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:gold_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/gold_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/iron_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/iron_chest.json new file mode 100644 index 00000000..5f9a92f3 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/iron_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:iron_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/iron_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/obsidian_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/obsidian_chest.json new file mode 100644 index 00000000..73ca71f3 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/obsidian_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:obsidian_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/obsidian_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/trapped_copper_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_copper_chest.json new file mode 100644 index 00000000..febb4772 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_copper_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:trapped_copper_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/trapped_copper_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/trapped_crystal_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_crystal_chest.json new file mode 100644 index 00000000..56b35195 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_crystal_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:trapped_crystal_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/trapped_crystal_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/trapped_diamond_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_diamond_chest.json new file mode 100644 index 00000000..64937e21 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_diamond_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:trapped_diamond_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/trapped_diamond_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/trapped_dirt_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_dirt_chest.json new file mode 100644 index 00000000..66e61896 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_dirt_chest.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "ironchest:chest_placed_already" + ], + "source": "block_entity" + } + ], + "name": "ironchest:trapped_dirt_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/trapped_dirt_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/trapped_gold_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_gold_chest.json new file mode 100644 index 00000000..2670ebcb --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_gold_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:trapped_gold_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/trapped_gold_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/trapped_iron_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_iron_chest.json new file mode 100644 index 00000000..6c62c88c --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_iron_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:trapped_iron_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/trapped_iron_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/loot_table/blocks/trapped_obsidian_chest.json b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_obsidian_chest.json new file mode 100644 index 00000000..adbe6e95 --- /dev/null +++ b/src/generated/resources/data/ironchest/loot_table/blocks/trapped_obsidian_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "ironchest:trapped_obsidian_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ironchest:blocks/trapped_obsidian_chest" +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/copper_iron_chest.json b/src/generated/resources/data/ironchest/recipe/chests/copper_iron_chest.json new file mode 100644 index 00000000..edd95dbc --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/copper_iron_chest.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "M": { + "tag": "c:ingots/iron" + }, + "S": { + "item": "ironchest:copper_chest" + } + }, + "pattern": [ + "MGM", + "GSG", + "MGM" + ], + "result": { + "count": 1, + "id": "ironchest:iron_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/diamond_crystal_chest.json b/src/generated/resources/data/ironchest/recipe/chests/diamond_crystal_chest.json new file mode 100644 index 00000000..772e066a --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/diamond_crystal_chest.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "S": { + "item": "ironchest:diamond_chest" + } + }, + "pattern": [ + "GGG", + "GSG", + "GGG" + ], + "result": { + "count": 1, + "id": "ironchest:crystal_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/diamond_obsidian_chest.json b/src/generated/resources/data/ironchest/recipe/chests/diamond_obsidian_chest.json new file mode 100644 index 00000000..b4ed3e94 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/diamond_obsidian_chest.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "M": { + "item": "minecraft:obsidian" + }, + "S": { + "item": "ironchest:diamond_chest" + } + }, + "pattern": [ + "MMM", + "MSM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:obsidian_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/gold_diamond_chest.json b/src/generated/resources/data/ironchest/recipe/chests/gold_diamond_chest.json new file mode 100644 index 00000000..5f7b2f4f --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/gold_diamond_chest.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "M": { + "tag": "c:gems/diamond" + }, + "S": { + "item": "ironchest:gold_chest" + } + }, + "pattern": [ + "GGG", + "MSM", + "GGG" + ], + "result": { + "count": 1, + "id": "ironchest:diamond_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/iron_gold_chest.json b/src/generated/resources/data/ironchest/recipe/chests/iron_gold_chest.json new file mode 100644 index 00000000..f7e4c6e1 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/iron_gold_chest.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "M": { + "tag": "c:ingots/gold" + }, + "S": { + "item": "ironchest:iron_chest" + } + }, + "pattern": [ + "MMM", + "MSM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:gold_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/trapped_copper_chest.json b/src/generated/resources/data/ironchest/recipe/chests/trapped_copper_chest.json new file mode 100644 index 00000000..f71851c5 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/trapped_copper_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ironchest:copper_chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "ironchest:trapped_copper_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/trapped_crystal_chest.json b/src/generated/resources/data/ironchest/recipe/chests/trapped_crystal_chest.json new file mode 100644 index 00000000..db947524 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/trapped_crystal_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ironchest:crystal_chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "ironchest:trapped_crystal_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/trapped_diamond_chest.json b/src/generated/resources/data/ironchest/recipe/chests/trapped_diamond_chest.json new file mode 100644 index 00000000..8bef72d3 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/trapped_diamond_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ironchest:diamond_chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "ironchest:trapped_diamond_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/trapped_dirt_chest.json b/src/generated/resources/data/ironchest/recipe/chests/trapped_dirt_chest.json new file mode 100644 index 00000000..55ed30d4 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/trapped_dirt_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ironchest:dirt_chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "ironchest:trapped_dirt_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/trapped_gold_chest.json b/src/generated/resources/data/ironchest/recipe/chests/trapped_gold_chest.json new file mode 100644 index 00000000..a27e9253 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/trapped_gold_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ironchest:gold_chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "ironchest:trapped_gold_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/trapped_iron_chest.json b/src/generated/resources/data/ironchest/recipe/chests/trapped_iron_chest.json new file mode 100644 index 00000000..4e2caa58 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/trapped_iron_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ironchest:iron_chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "ironchest:trapped_iron_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/trapped_obsidian_chest.json b/src/generated/resources/data/ironchest/recipe/chests/trapped_obsidian_chest.json new file mode 100644 index 00000000..9395e080 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/trapped_obsidian_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ironchest:obsidian_chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "ironchest:trapped_obsidian_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/vanilla_copper_chest.json b/src/generated/resources/data/ironchest/recipe/chests/vanilla_copper_chest.json new file mode 100644 index 00000000..ea59e7b5 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/vanilla_copper_chest.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "M": { + "tag": "c:ingots/copper" + }, + "S": { + "tag": "c:chests/wooden" + } + }, + "pattern": [ + "MMM", + "MSM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:copper_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/vanilla_dirt_chest.json b/src/generated/resources/data/ironchest/recipe/chests/vanilla_dirt_chest.json new file mode 100644 index 00000000..feab4a77 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/vanilla_dirt_chest.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "M": [ + { + "item": "minecraft:dirt" + }, + { + "item": "minecraft:coarse_dirt" + }, + { + "item": "minecraft:podzol" + } + ], + "S": { + "tag": "c:chests/wooden" + } + }, + "pattern": [ + "MMM", + "MSM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:dirt_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/chests/vanilla_iron_chest.json b/src/generated/resources/data/ironchest/recipe/chests/vanilla_iron_chest.json new file mode 100644 index 00000000..85c94c02 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/chests/vanilla_iron_chest.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "M": { + "tag": "c:ingots/iron" + }, + "S": { + "tag": "c:chests/wooden" + } + }, + "pattern": [ + "MMM", + "MSM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:iron_chest" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/upgrades/copper_to_iron_chest_upgrade.json b/src/generated/resources/data/ironchest/recipe/upgrades/copper_to_iron_chest_upgrade.json new file mode 100644 index 00000000..785c45cd --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/upgrades/copper_to_iron_chest_upgrade.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "tag": "c:ingots/copper" + }, + "G": { + "tag": "c:glass_blocks" + }, + "I": { + "tag": "c:ingots/iron" + } + }, + "pattern": [ + "IGI", + "GCG", + "IGI" + ], + "result": { + "count": 1, + "id": "ironchest:copper_to_iron_chest_upgrade" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/upgrades/diamond_to_crystal_chest_upgrade.json b/src/generated/resources/data/ironchest/recipe/upgrades/diamond_to_crystal_chest_upgrade.json new file mode 100644 index 00000000..e4a0f300 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/upgrades/diamond_to_crystal_chest_upgrade.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "M": { + "item": "minecraft:obsidian" + } + }, + "pattern": [ + "GGG", + "GMG", + "GGG" + ], + "result": { + "count": 1, + "id": "ironchest:diamond_to_crystal_chest_upgrade" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/upgrades/diamond_to_obsidian_chest_upgrade.json b/src/generated/resources/data/ironchest/recipe/upgrades/diamond_to_obsidian_chest_upgrade.json new file mode 100644 index 00000000..697828ca --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/upgrades/diamond_to_obsidian_chest_upgrade.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "M": { + "item": "minecraft:obsidian" + } + }, + "pattern": [ + "MMM", + "MGM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:diamond_to_obsidian_chest_upgrade" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/upgrades/gold_to_diamond_chest_upgrade.json b/src/generated/resources/data/ironchest/recipe/upgrades/gold_to_diamond_chest_upgrade.json new file mode 100644 index 00000000..4c42ca16 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/upgrades/gold_to_diamond_chest_upgrade.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "tag": "c:glass_blocks" + }, + "M": { + "tag": "c:gems/diamond" + }, + "S": { + "tag": "c:ingots/gold" + } + }, + "pattern": [ + "GGG", + "MSM", + "GGG" + ], + "result": { + "count": 1, + "id": "ironchest:gold_to_diamond_chest_upgrade" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/upgrades/iron_to_gold_chest_upgrade.json b/src/generated/resources/data/ironchest/recipe/upgrades/iron_to_gold_chest_upgrade.json new file mode 100644 index 00000000..23e54a4e --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/upgrades/iron_to_gold_chest_upgrade.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "tag": "c:ingots/gold" + }, + "I": { + "tag": "c:ingots/iron" + } + }, + "pattern": [ + "GGG", + "GIG", + "GGG" + ], + "result": { + "count": 1, + "id": "ironchest:iron_to_gold_chest_upgrade" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/upgrades/wood_to_copper_chest_upgrade.json b/src/generated/resources/data/ironchest/recipe/upgrades/wood_to_copper_chest_upgrade.json new file mode 100644 index 00000000..af37fe80 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/upgrades/wood_to_copper_chest_upgrade.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "M": { + "tag": "c:ingots/copper" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "MMM", + "MPM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:wood_to_copper_chest_upgrade" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/ironchest/recipe/upgrades/wood_to_iron_chest_upgrade.json b/src/generated/resources/data/ironchest/recipe/upgrades/wood_to_iron_chest_upgrade.json new file mode 100644 index 00000000..113e8336 --- /dev/null +++ b/src/generated/resources/data/ironchest/recipe/upgrades/wood_to_iron_chest_upgrade.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "M": { + "tag": "c:ingots/iron" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "MMM", + "MPM", + "MMM" + ], + "result": { + "count": 1, + "id": "ironchest:wood_to_iron_chest_upgrade" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/features_cannot_replace.json b/src/generated/resources/data/minecraft/tags/block/features_cannot_replace.json new file mode 100644 index 00000000..01b495fc --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/features_cannot_replace.json @@ -0,0 +1,10 @@ +{ + "values": [ + "ironchest:iron_chest", + "ironchest:gold_chest", + "ironchest:diamond_chest", + "ironchest:copper_chest", + "ironchest:crystal_chest", + "ironchest:obsidian_chest" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/guarded_by_piglins.json b/src/generated/resources/data/minecraft/tags/block/guarded_by_piglins.json new file mode 100644 index 00000000..341c8f8a --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/guarded_by_piglins.json @@ -0,0 +1,16 @@ +{ + "values": [ + "ironchest:iron_chest", + "ironchest:gold_chest", + "ironchest:diamond_chest", + "ironchest:copper_chest", + "ironchest:crystal_chest", + "ironchest:obsidian_chest", + "ironchest:trapped_iron_chest", + "ironchest:trapped_gold_chest", + "ironchest:trapped_diamond_chest", + "ironchest:trapped_copper_chest", + "ironchest:trapped_crystal_chest", + "ironchest:trapped_obsidian_chest" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 00000000..341c8f8a --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,16 @@ +{ + "values": [ + "ironchest:iron_chest", + "ironchest:gold_chest", + "ironchest:diamond_chest", + "ironchest:copper_chest", + "ironchest:crystal_chest", + "ironchest:obsidian_chest", + "ironchest:trapped_iron_chest", + "ironchest:trapped_gold_chest", + "ironchest:trapped_diamond_chest", + "ironchest:trapped_copper_chest", + "ironchest:trapped_crystal_chest", + "ironchest:trapped_obsidian_chest" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json b/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json new file mode 100644 index 00000000..80d5a679 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/mineable/shovel.json @@ -0,0 +1,6 @@ +{ + "values": [ + "ironchest:dirt_chest", + "ironchest:trapped_dirt_chest" + ] +} \ No newline at end of file diff --git a/src/main/java/com/progwml6/ironchest/IronChests.java b/src/main/java/com/progwml6/ironchest/IronChests.java new file mode 100644 index 00000000..968a9f2b --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/IronChests.java @@ -0,0 +1,82 @@ +package com.progwml6.ironchest; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.AbstractIronChestBlock; +import com.progwml6.ironchest.common.creativetabs.IronChestsCreativeTabs; +import com.progwml6.ironchest.common.data.IronChestsBlockTags; +import com.progwml6.ironchest.common.data.IronChestsLanguageProvider; +import com.progwml6.ironchest.common.data.IronChestsRecipeProvider; +import com.progwml6.ironchest.common.data.IronChestsSpriteSourceProvider; +import com.progwml6.ironchest.common.data.loot.IronChestsLootTableProvider; +import com.progwml6.ironchest.common.datacomponents.IronChestsDataComponents; +import com.progwml6.ironchest.common.inventory.IronChestsMenuTypes; +import com.progwml6.ironchest.common.item.IronChestsItems; +import com.progwml6.ironchest.common.network.TopStacksSyncPacket; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.data.event.GatherDataEvent; +import net.neoforged.neoforge.items.wrapper.InvWrapper; +import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; +import net.neoforged.neoforge.network.registration.PayloadRegistrar; + +import java.util.concurrent.CompletableFuture; + +@Mod(IronChests.MODID) +public class IronChests { + + public static final String MODID = "ironchest"; + + public IronChests(IEventBus modEventBus) { + // General mod setup + modEventBus.addListener(this::gatherData); + modEventBus.addListener(this::setupPackets); + modEventBus.addListener(this::registerCapabilities); + + // Registry objects + IronChestsBlocks.BLOCKS.register(modEventBus); + IronChestsItems.ITEMS.register(modEventBus); + IronChestsBlockEntityTypes.BLOCK_ENTITIES.register(modEventBus); + IronChestsMenuTypes.CONTAINERS.register(modEventBus); + IronChestsCreativeTabs.CREATIVE_MODE_TABS.register(modEventBus); + IronChestsDataComponents.COMPONENTS.register(modEventBus); + } + + public void gatherData(GatherDataEvent event) { + ExistingFileHelper ext = event.getExistingFileHelper(); + DataGenerator gen = event.getGenerator(); + PackOutput packOutput = gen.getPackOutput(); + CompletableFuture lookupProvider = event.getLookupProvider(); + + gen.addProvider(event.includeServer(), new IronChestsLootTableProvider(packOutput, lookupProvider)); + + gen.addProvider(event.includeClient(), new IronChestsRecipeProvider(packOutput, lookupProvider)); + gen.addProvider(event.includeClient(), new IronChestsBlockTags(packOutput, lookupProvider, ext)); + gen.addProvider(event.includeClient(), new IronChestsSpriteSourceProvider(packOutput, ext, lookupProvider)); + gen.addProvider(event.includeClient(), new IronChestsLanguageProvider(packOutput, "en_us")); + } + + public void setupPackets(RegisterPayloadHandlersEvent event) { + PayloadRegistrar registrar = event.registrar(MODID).versioned("1.0.0").optional(); + + registrar.playBidirectional(TopStacksSyncPacket.TYPE, TopStacksSyncPacket.STREAM_CODEC, TopStacksSyncPacket::handle); + } + + public void registerCapabilities(RegisterCapabilitiesEvent event) { + event.registerBlock(Capabilities.ItemHandler.BLOCK, (level, pos, state, blockEntity, context) -> new InvWrapper(AbstractIronChestBlock.getContainer((AbstractIronChestBlock) state.getBlock(), state, level, pos, true)), + IronChestsBlocks.IRON_CHEST.get(), IronChestsBlocks.TRAPPED_IRON_CHEST.get(), + IronChestsBlocks.GOLD_CHEST.get(), IronChestsBlocks.TRAPPED_GOLD_CHEST.get(), + IronChestsBlocks.DIAMOND_CHEST.get(), IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get(), + IronChestsBlocks.COPPER_CHEST.get(), IronChestsBlocks.TRAPPED_COPPER_CHEST.get(), + IronChestsBlocks.CRYSTAL_CHEST.get(), IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get(), + IronChestsBlocks.OBSIDIAN_CHEST.get(), IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get(), + IronChestsBlocks.DIRT_CHEST.get() + ); + } +} diff --git a/src/main/java/com/progwml6/ironchest/client/IronChestsClientRegistration.java b/src/main/java/com/progwml6/ironchest/client/IronChestsClientRegistration.java new file mode 100644 index 00000000..49e18a58 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/IronChestsClientRegistration.java @@ -0,0 +1,55 @@ +package com.progwml6.ironchest.client; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.client.render.IronChestRenderer; +import com.progwml6.ironchest.client.screen.IronChestScreen; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestsMenuTypes; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.client.event.EntityRenderersEvent; +import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent; + +@EventBusSubscriber(modid = IronChests.MODID, value = Dist.CLIENT, bus = EventBusSubscriber.Bus.MOD) +public class IronChestsClientRegistration { + + public static final ModelLayerLocation IRON_CHEST = new ModelLayerLocation(ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "iron_chest"), "main"); + + @SubscribeEvent + public static void registerLayer(EntityRenderersEvent.RegisterLayerDefinitions event) { + event.registerLayerDefinition(IRON_CHEST, IronChestRenderer::createLayerDefinition); + } + + @SubscribeEvent + public static void registerScreens(RegisterMenuScreensEvent event) { + event.register(IronChestsMenuTypes.IRON_CHEST.get(), IronChestScreen::new); + event.register(IronChestsMenuTypes.GOLD_CHEST.get(), IronChestScreen::new); + event.register(IronChestsMenuTypes.DIAMOND_CHEST.get(), IronChestScreen::new); + event.register(IronChestsMenuTypes.CRYSTAL_CHEST.get(), IronChestScreen::new); + event.register(IronChestsMenuTypes.COPPER_CHEST.get(), IronChestScreen::new); + event.register(IronChestsMenuTypes.OBSIDIAN_CHEST.get(), IronChestScreen::new); + event.register(IronChestsMenuTypes.DIRT_CHEST.get(), IronChestScreen::new); + } + + @SubscribeEvent + public static void registerEntityRenderers(EntityRenderersEvent.RegisterRenderers event) { + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.IRON_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.GOLD_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.DIAMOND_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.COPPER_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.CRYSTAL_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.OBSIDIAN_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.DIRT_CHEST.get(), IronChestRenderer::new); + + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.TRAPPED_IRON_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.TRAPPED_GOLD_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.TRAPPED_DIAMOND_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.TRAPPED_COPPER_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.TRAPPED_CRYSTAL_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.TRAPPED_OBSIDIAN_CHEST.get(), IronChestRenderer::new); + event.registerBlockEntityRenderer(IronChestsBlockEntityTypes.TRAPPED_DIRT_CHEST.get(), IronChestRenderer::new); + } +} diff --git a/src/main/java/com/progwml6/ironchest/client/model/IronChestsModels.java b/src/main/java/com/progwml6/ironchest/client/model/IronChestsModels.java new file mode 100644 index 00000000..02ba0bb3 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/model/IronChestsModels.java @@ -0,0 +1,49 @@ +package com.progwml6.ironchest.client.model; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +public class IronChestsModels { + + public static final ResourceLocation IRON_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/iron_chest"); + public static final ResourceLocation GOLD_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/gold_chest"); + public static final ResourceLocation DIAMOND_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/diamond_chest"); + public static final ResourceLocation COPPER_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/copper_chest"); + public static final ResourceLocation CRYSTAL_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/crystal_chest"); + public static final ResourceLocation OBSIDIAN_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/obsidian_chest"); + public static final ResourceLocation DIRT_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/dirt_chest"); + public static final ResourceLocation VANILLA_CHEST_LOCATION = ResourceLocation.withDefaultNamespace("entity/chest/normal"); + + public static final ResourceLocation TRAPPED_IRON_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/trapped_iron_chest"); + public static final ResourceLocation TRAPPED_GOLD_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/trapped_gold_chest"); + public static final ResourceLocation TRAPPED_DIAMOND_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/trapped_diamond_chest"); + public static final ResourceLocation TRAPPED_COPPER_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/trapped_copper_chest"); + public static final ResourceLocation TRAPPED_CRYSTAL_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/trapped_crystal_chest"); + public static final ResourceLocation TRAPPED_OBSIDIAN_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/trapped_obsidian_chest"); + public static final ResourceLocation TRAPPED_DIRT_CHEST_LOCATION = ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "model/trapped_dirt_chest"); + public static final ResourceLocation TRAPPED_VANILLA_CHEST_LOCATION = ResourceLocation.withDefaultNamespace("entity/chest/trapped"); + + public static ResourceLocation chooseChestTexture(IronChestsTypes type, boolean trapped) { + if (trapped) { + return getResourceLocation(type, TRAPPED_IRON_CHEST_LOCATION, TRAPPED_GOLD_CHEST_LOCATION, TRAPPED_DIAMOND_CHEST_LOCATION, TRAPPED_COPPER_CHEST_LOCATION, TRAPPED_CRYSTAL_CHEST_LOCATION, TRAPPED_OBSIDIAN_CHEST_LOCATION, TRAPPED_DIRT_CHEST_LOCATION, TRAPPED_VANILLA_CHEST_LOCATION); + } else { + return getResourceLocation(type, IRON_CHEST_LOCATION, GOLD_CHEST_LOCATION, DIAMOND_CHEST_LOCATION, COPPER_CHEST_LOCATION, CRYSTAL_CHEST_LOCATION, OBSIDIAN_CHEST_LOCATION, DIRT_CHEST_LOCATION, VANILLA_CHEST_LOCATION); + } + } + + @NotNull + private static ResourceLocation getResourceLocation(IronChestsTypes type, ResourceLocation ironChestLocation, ResourceLocation goldChestLocation, ResourceLocation diamondChestLocation, ResourceLocation copperChestLocation, ResourceLocation crystalChestLocation, ResourceLocation obsidianChestLocation, ResourceLocation dirtChestLocation, ResourceLocation vanillaChestLocation) { + return switch (type) { + case IRON -> ironChestLocation; + case GOLD -> goldChestLocation; + case DIAMOND -> diamondChestLocation; + case COPPER -> copperChestLocation; + case CRYSTAL -> crystalChestLocation; + case OBSIDIAN -> obsidianChestLocation; + case DIRT -> dirtChestLocation; + default -> vanillaChestLocation; + }; + } +} diff --git a/src/main/java/com/progwml6/ironchest/client/model/inventory/IronChestItemStackRenderer.java b/src/main/java/com/progwml6/ironchest/client/model/inventory/IronChestItemStackRenderer.java new file mode 100644 index 00000000..40103178 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/model/inventory/IronChestItemStackRenderer.java @@ -0,0 +1,33 @@ +package com.progwml6.ironchest.client.model.inventory; + +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.model.geom.EntityModelSet; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; + +import java.util.function.Supplier; + +@OnlyIn(Dist.CLIENT) +public class IronChestItemStackRenderer extends BlockEntityWithoutLevelRenderer { + + private final Supplier te; + private final BlockEntityRenderDispatcher blockEntityRenderDispatcher; + + public IronChestItemStackRenderer(BlockEntityRenderDispatcher renderDispatcher, EntityModelSet modelSet, Supplier te) { + super(renderDispatcher, modelSet); + + this.te = te; + this.blockEntityRenderDispatcher = renderDispatcher; + } + + @Override + public void renderByItem(ItemStack itemStackIn, ItemDisplayContext transformType, PoseStack matrixStackIn, MultiBufferSource bufferIn, int combinedLightIn, int combinedOverlayIn) { + this.blockEntityRenderDispatcher.renderItem(this.te.get(), matrixStackIn, bufferIn, combinedLightIn, combinedOverlayIn); + } +} diff --git a/src/main/java/com/progwml6/ironchest/client/model/inventory/ModelItem.java b/src/main/java/com/progwml6/ironchest/client/model/inventory/ModelItem.java new file mode 100644 index 00000000..c6557c7d --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/model/inventory/ModelItem.java @@ -0,0 +1,68 @@ +package com.progwml6.ironchest.client.model.inventory; + +import org.joml.Vector3f; + +public class ModelItem { + + private final Vector3f center; + private final float size; + + /** + * Item center location in percentages, lazy loaded + */ + private Vector3f centerScaled; + /** + * Item size in percentages, lazy loaded + */ + private Float sizeScaled; + + public ModelItem(Vector3f center, float size) { + this.center = center; + this.size = size; + } + + /** + * Gets the center for rendering this item, scaled for renderer + * + * @return Scaled center + */ + public Vector3f getCenterScaled() { + if (centerScaled == null) { + centerScaled = new Vector3f(center); + centerScaled.mul(1f / 16f); + } + + return centerScaled; + } + + /** + * Gets the size to render this item, scaled for the renderer + * + * @return Size scaled + */ + public float getSizeScaled() { + if (sizeScaled == null) { + sizeScaled = size / 16f; + } + + return sizeScaled; + } + + /** + * Gets the center for rendering this item + * + * @return Center + */ + public Vector3f getCenter() { + return center; + } + + /** + * Gets the size to render this item + * + * @return Size + */ + public float getSize() { + return size; + } +} diff --git a/src/main/java/com/progwml6/ironchest/client/model/inventory/package-info.java b/src/main/java/com/progwml6/ironchest/client/model/inventory/package-info.java new file mode 100644 index 00000000..294d1a38 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/model/inventory/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.client.model.inventory; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/client/model/package-info.java b/src/main/java/com/progwml6/ironchest/client/model/package-info.java new file mode 100644 index 00000000..65ddbb94 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/model/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.client.model; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/client/package-info.java b/src/main/java/com/progwml6/ironchest/client/package-info.java new file mode 100644 index 00000000..cda3c2bf --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.client; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/client/render/IronChestRenderer.java b/src/main/java/com/progwml6/ironchest/client/render/IronChestRenderer.java new file mode 100644 index 00000000..920dcab4 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/render/IronChestRenderer.java @@ -0,0 +1,195 @@ +package com.progwml6.ironchest.client.render; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Axis; +import com.progwml6.ironchest.client.IronChestsClientRegistration; +import com.progwml6.ironchest.client.model.IronChestsModels; +import com.progwml6.ironchest.client.model.inventory.ModelItem; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.ICrystalChest; +import com.progwml6.ironchest.common.block.regular.AbstractIronChestBlock; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.AbstractTrappedIronChestBlockEntity; +import it.unimi.dsi.fastutil.floats.Float2FloatFunction; +import it.unimi.dsi.fastutil.ints.Int2IntFunction; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.model.geom.PartPose; +import net.minecraft.client.model.geom.builders.CubeListBuilder; +import net.minecraft.client.model.geom.builders.LayerDefinition; +import net.minecraft.client.model.geom.builders.MeshDefinition; +import net.minecraft.client.model.geom.builders.PartDefinition; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.Sheets; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.client.renderer.blockentity.BrightnessCombiner; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.client.resources.model.Material; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DoubleBlockCombiner; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.LidBlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import org.joml.Vector3f; + +import java.util.Arrays; +import java.util.List; + +@OnlyIn(Dist.CLIENT) +public class IronChestRenderer implements BlockEntityRenderer { + + private final ModelPart lid; + private final ModelPart bottom; + private final ModelPart lock; + + private final BlockEntityRenderDispatcher renderer; + + private static final List MODEL_ITEMS = Arrays.asList( + new ModelItem(new Vector3f(0.3F, 0.45F, 0.3F), 3.0F), + new ModelItem(new Vector3f(0.7F, 0.45F, 0.3F), 3.0F), + new ModelItem(new Vector3f(0.3F, 0.45F, 0.7F), 3.0F), + new ModelItem(new Vector3f(0.7F, 0.45F, 0.7F), 3.0F), + new ModelItem(new Vector3f(0.3F, 0.1F, 0.3F), 3.0F), + new ModelItem(new Vector3f(0.7F, 0.1F, 0.3F), 3.0F), + new ModelItem(new Vector3f(0.3F, 0.1F, 0.7F), 3.0F), + new ModelItem(new Vector3f(0.7F, 0.1F, 0.7F), 3.0F), + new ModelItem(new Vector3f(0.5F, 0.32F, 0.5F), 3.0F) + ); + + public IronChestRenderer(BlockEntityRendererProvider.Context context) { + ModelPart modelPart = context.bakeLayer(IronChestsClientRegistration.IRON_CHEST); + + this.renderer = context.getBlockEntityRenderDispatcher(); + this.bottom = modelPart.getChild("iron_bottom"); + this.lid = modelPart.getChild("iron_lid"); + this.lock = modelPart.getChild("iron_lock"); + } + + public static LayerDefinition createLayerDefinition() { + MeshDefinition meshDefinition = new MeshDefinition(); + PartDefinition partDefinition = meshDefinition.getRoot(); + + partDefinition.addOrReplaceChild("iron_bottom", CubeListBuilder.create().texOffs(0, 19).addBox(1.0F, 0.0F, 1.0F, 14.0F, 10.0F, 14.0F), PartPose.ZERO); + partDefinition.addOrReplaceChild("iron_lid", CubeListBuilder.create().texOffs(0, 0).addBox(1.0F, 0.0F, 0.0F, 14.0F, 5.0F, 14.0F), PartPose.offset(0.0F, 9.0F, 1.0F)); + partDefinition.addOrReplaceChild("iron_lock", CubeListBuilder.create().texOffs(0, 0).addBox(7.0F, -2.0F, 14.0F, 2.0F, 4.0F, 1.0F), PartPose.offset(0.0F, 9.0F, 1.0F)); + + return LayerDefinition.create(meshDefinition, 64, 64); + } + + @Override + public void render(T tileEntityIn, float partialTicks, PoseStack poseStack, MultiBufferSource bufferSource, int combinedLightIn, int combinedOverlayIn) { + AbstractIronChestBlockEntity tileEntity = (AbstractIronChestBlockEntity) tileEntityIn; + + Level level = tileEntity.getLevel(); + boolean useTileEntityBlockState = level != null; + + BlockState blockState = useTileEntityBlockState ? tileEntity.getBlockState() : (BlockState) tileEntity.getBlockToUse().defaultBlockState().setValue(AbstractIronChestBlock.FACING, Direction.SOUTH); + Block block = blockState.getBlock(); + IronChestsTypes chestType = IronChestsTypes.IRON; + IronChestsTypes actualType = AbstractIronChestBlock.getTypeFromBlock(block); + + if (actualType != null) { + chestType = actualType; + } + + if (block instanceof AbstractIronChestBlock abstractChestBlock) { + poseStack.pushPose(); + + float f = blockState.getValue(AbstractIronChestBlock.FACING).toYRot(); + + poseStack.translate(0.5D, 0.5D, 0.5D); + poseStack.mulPose(Axis.YP.rotationDegrees(-f)); + poseStack.translate(-0.5D, -0.5D, -0.5D); + + DoubleBlockCombiner.NeighborCombineResult neighborCombineResult; + + if (useTileEntityBlockState) { + neighborCombineResult = abstractChestBlock.combine(blockState, level, tileEntityIn.getBlockPos(), true); + } else { + neighborCombineResult = DoubleBlockCombiner.Combiner::acceptNone; + } + + float openness = neighborCombineResult.apply(AbstractIronChestBlock.opennessCombiner(tileEntity)).get(partialTicks); + openness = 1.0F - openness; + openness = 1.0F - openness * openness * openness; + + int brightness = neighborCombineResult.apply(new BrightnessCombiner<>()).applyAsInt(combinedLightIn); + + boolean trapped = tileEntityIn instanceof AbstractTrappedIronChestBlockEntity; + + Material material = new Material(Sheets.CHEST_SHEET, IronChestsModels.chooseChestTexture(chestType, trapped)); + + VertexConsumer vertexConsumer = material.buffer(bufferSource, RenderType::entityCutout); + + this.render(poseStack, vertexConsumer, this.lid, this.lock, this.bottom, openness, brightness, combinedOverlayIn); + + poseStack.popPose(); + + if (chestType.isTransparent() && tileEntity instanceof ICrystalChest crystalChest && Vec3.atCenterOf(tileEntityIn.getBlockPos()).closerThan(this.renderer.camera.getPosition(), 128d)) { + float rotation = (float) (360D * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL) - partialTicks; + + for (int j = 0; j < MODEL_ITEMS.size() - 1; j++) { + renderItem(poseStack, bufferSource, crystalChest.getTopItems().get(j), MODEL_ITEMS.get(j), rotation, combinedLightIn); + } + } + } + } + + private void render(PoseStack poseStack, VertexConsumer vertexConsumer, ModelPart lid, ModelPart lock, ModelPart bottom, float openness, int brightness, int combinedOverlayIn) { + lid.xRot = -(openness * ((float) Math.PI / 2F)); + lock.xRot = lid.xRot; + + lid.render(poseStack, vertexConsumer, brightness, combinedOverlayIn); + lock.render(poseStack, vertexConsumer, brightness, combinedOverlayIn); + bottom.render(poseStack, vertexConsumer, brightness, combinedOverlayIn); + } + + /** + * Renders a single item in a TESR + * + * @param matrices Matrix stack instance + * @param buffer Buffer instance + * @param item Item to render + * @param modelItem Model items for render information + * @param light Model light + */ + public static void renderItem(PoseStack matrices, MultiBufferSource buffer, ItemStack item, ModelItem modelItem, float rotation, int light) { + // if no stack, skip + if (item.isEmpty()) return; + + // start rendering + matrices.pushPose(); + Vector3f center = modelItem.getCenter(); + matrices.translate(center.x(), center.y(), center.z()); + + matrices.mulPose(Axis.YP.rotationDegrees(rotation)); + + // scale + float scale = modelItem.getSizeScaled(); + matrices.scale(scale, scale, scale); + + // render the actual item + Minecraft.getInstance().getItemRenderer().renderStatic(item, ItemDisplayContext.NONE, light, OverlayTexture.NO_OVERLAY, matrices, buffer, null, 0); + + matrices.popPose(); + } + + @Override + public AABB getRenderBoundingBox(T blockEntity) { + BlockPos pos = blockEntity.getBlockPos(); + return AABB.encapsulatingFullBlocks(pos.offset(-1, 0, -1), pos.offset(1, 1, 1)); + } +} diff --git a/src/main/java/com/progwml6/ironchest/client/render/package-info.java b/src/main/java/com/progwml6/ironchest/client/render/package-info.java new file mode 100644 index 00000000..68b255f0 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/render/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.client.render; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/client/screen/IronChestScreen.java b/src/main/java/com/progwml6/ironchest/client/screen/IronChestScreen.java new file mode 100644 index 00000000..9dbf0898 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/screen/IronChestScreen.java @@ -0,0 +1,59 @@ +package com.progwml6.ironchest.client.screen; + +import com.mojang.blaze3d.systems.RenderSystem; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.gui.screens.inventory.MenuAccess; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; + +@OnlyIn(Dist.CLIENT) +public class IronChestScreen extends AbstractContainerScreen implements MenuAccess { + + private final IronChestsTypes chestType; + + private final int textureXSize; + + private final int textureYSize; + + public IronChestScreen(IronChestMenu ironChestMenu, Inventory playerInventory, Component title) { + super(ironChestMenu, playerInventory, title); + + this.chestType = ironChestMenu.getChestType(); + this.imageWidth = ironChestMenu.getChestType().xSize; + this.imageHeight = ironChestMenu.getChestType().ySize; + this.textureXSize = ironChestMenu.getChestType().textureXSize; + this.textureYSize = ironChestMenu.getChestType().textureYSize; + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { + this.renderBackground(guiGraphics, mouseX, mouseY, partialTicks); + super.render(guiGraphics, mouseX, mouseY, partialTicks); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + guiGraphics.drawString(this.font, this.title, 8, 6, 4210752, false); + + guiGraphics.drawString(this.font, this.playerInventoryTitle, 8, (this.imageHeight - 96 + 2), 4210752, false); + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int mouseX, int mouseY) { + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + RenderSystem.setShaderTexture(0, this.chestType.guiTexture); + + int x = (this.width - this.imageWidth) / 2; + int y = (this.height - this.imageHeight) / 2; + + guiGraphics.blit(this.chestType.guiTexture, x, y, 0, 0, this.imageWidth, this.imageHeight, this.textureXSize, this.textureYSize); + } +} diff --git a/src/main/java/com/progwml6/ironchest/client/screen/package-info.java b/src/main/java/com/progwml6/ironchest/client/screen/package-info.java new file mode 100644 index 00000000..7df14342 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/client/screen/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.client.screen; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/Util.java b/src/main/java/com/progwml6/ironchest/common/Util.java new file mode 100644 index 00000000..8c8ed3dd --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/Util.java @@ -0,0 +1,55 @@ +package com.progwml6.ironchest.common; + +import com.progwml6.ironchest.IronChests; +import net.minecraft.core.component.DataComponents; +import net.minecraft.nbt.ListTag; +import net.minecraft.network.chat.Component; +import net.minecraft.server.network.Filterable; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.component.WrittenBookContent; +import org.apache.commons.lang3.StringUtils; + +import javax.annotation.Nullable; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class Util { + + static String BOOK_AUTHOR = "cpw"; + + public static String toEnglishName(String internalName) { + return Arrays.stream(internalName.toLowerCase(Locale.ROOT).split("_")) + .map(StringUtils::capitalize) + .collect(Collectors.joining(" ")); + } + + public static ItemStack createDirtGuideBook() { + ItemStack book = new ItemStack(Items.WRITTEN_BOOK); + addBookInformationStatic(book, new ListTag(), "dirtchest9000", 5); + return book; + } + + public static void addBookInformationStatic(ItemStack book, ListTag bookPages, @Nullable String name, int pageCount) { + String key = name == null ? "unknown" : name; + + Function> pageGenerationFunc = index -> Filterable.passThrough(Component.translatable(IronChests.MODID + ".book." + key + "." + (index + 1))); + + List> list = Stream.iterate(0, index -> index + 1) + .limit(pageCount) + .map(pageGenerationFunc) + .toList(); + + book.set(DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent( + Filterable.passThrough("How to use your DirtChest 9000!"), + BOOK_AUTHOR, + 3, + list, + true + )); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/ai/CatsSitOnChestsHandler.java b/src/main/java/com/progwml6/ironchest/common/ai/CatsSitOnChestsHandler.java new file mode 100644 index 00000000..60d29416 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/ai/CatsSitOnChestsHandler.java @@ -0,0 +1,33 @@ +package com.progwml6.ironchest.common.ai; + +import com.progwml6.ironchest.IronChests; +import net.minecraft.world.entity.ai.goal.CatSitOnBlockGoal; +import net.minecraft.world.entity.ai.goal.WrappedGoal; +import net.minecraft.world.entity.animal.Cat; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.tick.EntityTickEvent; + +import java.util.HashSet; + +@EventBusSubscriber(modid = IronChests.MODID, bus = EventBusSubscriber.Bus.GAME) +public class CatsSitOnChestsHandler { + + @SubscribeEvent + static void changeSittingTaskForOcelots(EntityTickEvent.Post evt) { + if (evt.getEntity().tickCount < 5 && evt.getEntity() instanceof Cat cat) { + HashSet goals = new HashSet<>(); + + for (WrappedGoal goal : cat.goalSelector.getAvailableGoals()) { + if (goal.getGoal().getClass() == CatSitOnBlockGoal.class) { + goals.add(goal); + } + } + + for (WrappedGoal goal : goals) { + cat.goalSelector.removeGoal(goal.getGoal()); + cat.goalSelector.addGoal(goal.getPriority(), new IronChestCatSitOnBlockGoal(cat, 0.4F)); + } + } + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/ai/IronChestCatSitOnBlockGoal.java b/src/main/java/com/progwml6/ironchest/common/ai/IronChestCatSitOnBlockGoal.java new file mode 100644 index 00000000..a88d78ae --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/ai/IronChestCatSitOnBlockGoal.java @@ -0,0 +1,33 @@ +package com.progwml6.ironchest.common.ai; + +import com.progwml6.ironchest.common.block.regular.AbstractIronChestBlock; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.ai.goal.CatSitOnBlockGoal; +import net.minecraft.world.entity.animal.Cat; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class IronChestCatSitOnBlockGoal extends CatSitOnBlockGoal { + + public IronChestCatSitOnBlockGoal(Cat cat, double speedModifier) { + super(cat, speedModifier); + } + + @Override + protected boolean isValidTarget(LevelReader worldIn, BlockPos pos) { + if (!worldIn.isEmptyBlock(pos.above())) { + return false; + } else { + BlockState blockstate = worldIn.getBlockState(pos); + Block block = blockstate.getBlock(); + + if (block instanceof AbstractIronChestBlock) { + return AbstractIronChestBlockEntity.getOpenCount(worldIn, pos) < 1; + } + + return super.isValidTarget(worldIn, pos); + } + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/ai/package-info.java b/src/main/java/com/progwml6/ironchest/common/ai/package-info.java new file mode 100644 index 00000000..caafd4af --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/ai/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.ai; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/block/IronChestsBlocks.java b/src/main/java/com/progwml6/ironchest/common/block/IronChestsBlocks.java new file mode 100644 index 00000000..93859dd0 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/IronChestsBlocks.java @@ -0,0 +1,111 @@ +package com.progwml6.ironchest.common.block; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.regular.CopperChestBlock; +import com.progwml6.ironchest.common.block.regular.CrystalChestBlock; +import com.progwml6.ironchest.common.block.regular.DiamondChestBlock; +import com.progwml6.ironchest.common.block.regular.DirtChestBlock; +import com.progwml6.ironchest.common.block.regular.GoldChestBlock; +import com.progwml6.ironchest.common.block.regular.IronChestBlock; +import com.progwml6.ironchest.common.block.regular.ObsidianChestBlock; +import com.progwml6.ironchest.common.block.trapped.TrappedCopperChestBlock; +import com.progwml6.ironchest.common.block.trapped.TrappedCrystalChestBlock; +import com.progwml6.ironchest.common.block.trapped.TrappedDiamondChestBlock; +import com.progwml6.ironchest.common.block.trapped.TrappedDirtChestBlock; +import com.progwml6.ironchest.common.block.trapped.TrappedGoldChestBlock; +import com.progwml6.ironchest.common.block.trapped.TrappedIronChestBlock; +import com.progwml6.ironchest.common.block.trapped.TrappedObsidianChestBlock; +import com.progwml6.ironchest.common.item.IronChestBlockItem; +import com.progwml6.ironchest.common.item.IronChestsItems; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.material.MapColor; +import net.neoforged.neoforge.registries.DeferredBlock; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Function; +import java.util.function.Supplier; + +public class IronChestsBlocks { + + public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(IronChests.MODID); + public static final DeferredRegister.Items ITEMS = IronChestsItems.ITEMS; + + public static final DeferredBlock IRON_CHEST = register( + "iron_chest", () -> new IronChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.IRON, false); + + public static final DeferredBlock GOLD_CHEST = register( + "gold_chest", () -> new GoldChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.GOLD, false); + + public static final DeferredBlock DIAMOND_CHEST = register( + "diamond_chest", () -> new DiamondChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.DIAMOND, false); + + public static final DeferredBlock COPPER_CHEST = register( + "copper_chest", () -> new CopperChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.COPPER, false); + + public static final DeferredBlock CRYSTAL_CHEST = register( + "crystal_chest", () -> new CrystalChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.CRYSTAL, false); + + public static final DeferredBlock OBSIDIAN_CHEST = register( + "obsidian_chest", () -> new ObsidianChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.OBSIDIAN, false); + + public static final DeferredBlock DIRT_CHEST = register( + "dirt_chest", () -> new DirtChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.DIRT, false); + + // Trapped Chests + public static final DeferredBlock TRAPPED_IRON_CHEST = register( + "trapped_iron_chest", () -> new TrappedIronChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.IRON, true); + + public static final DeferredBlock TRAPPED_GOLD_CHEST = register( + "trapped_gold_chest", () -> new TrappedGoldChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.GOLD, true); + + public static final DeferredBlock TRAPPED_DIAMOND_CHEST = register( + "trapped_diamond_chest", () -> new TrappedDiamondChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.DIAMOND, true); + + public static final DeferredBlock TRAPPED_COPPER_CHEST = register( + "trapped_copper_chest", () -> new TrappedCopperChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.COPPER, true); + + public static final DeferredBlock TRAPPED_CRYSTAL_CHEST = register( + "trapped_crystal_chest", () -> new TrappedCrystalChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.CRYSTAL, true); + + public static final DeferredBlock TRAPPED_OBSIDIAN_CHEST = register( + "trapped_obsidian_chest", () -> new TrappedObsidianChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.OBSIDIAN, true); + + public static final DeferredBlock TRAPPED_DIRT_CHEST = register( + "trapped_dirt_chest", () -> new TrappedDirtChestBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(3.0F)), + IronChestsTypes.DIRT, true); + + //HELPERS + + private static DeferredBlock register(String name, Supplier sup, IronChestsTypes chestType, boolean trapped) { + return register(name, sup, block -> item(block, chestType, trapped)); + } + + private static DeferredBlock register(String name, Supplier sup, Function, Supplier> itemCreator) { + DeferredBlock ret = registerNoItem(name, sup); + ITEMS.register(name, itemCreator.apply(ret)); + return ret; + } + + private static DeferredBlock registerNoItem(String name, Supplier sup) { + return BLOCKS.register(name, sup); + } + + private static Supplier item(final DeferredBlock block, IronChestsTypes chestType, Boolean trapped) { + return () -> new IronChestBlockItem(block.get(), new Item.Properties(), chestType, trapped); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/IronChestsTypes.java b/src/main/java/com/progwml6/ironchest/common/block/IronChestsTypes.java new file mode 100644 index 00000000..3b2c022e --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/IronChestsTypes.java @@ -0,0 +1,126 @@ +package com.progwml6.ironchest.common.block; + +import com.progwml6.ironchest.common.Util; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.CopperChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.CrystalChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.DiamondChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.DirtChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.GoldChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.IronChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.ObsidianChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCopperChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCrystalChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDiamondChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDirtChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedGoldChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedIronChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedObsidianChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; + +public enum IronChestsTypes implements StringRepresentable { + + IRON(54, 9, 184, 222, ResourceLocation.fromNamespaceAndPath("ironchest", "textures/gui/iron_container.png"), 256, 256), + GOLD(81, 9, 184, 276, ResourceLocation.fromNamespaceAndPath("ironchest", "textures/gui/gold_container.png"), 256, 276), + DIAMOND(108, 12, 238, 276, ResourceLocation.fromNamespaceAndPath("ironchest", "textures/gui/diamond_container.png"), 256, 276), + COPPER(45, 9, 184, 204, ResourceLocation.fromNamespaceAndPath("ironchest", "textures/gui/copper_container.png"), 256, 256), + CRYSTAL(108, 12, 238, 276, ResourceLocation.fromNamespaceAndPath("ironchest", "textures/gui/diamond_container.png"), 256, 276), + OBSIDIAN(108, 12, 238, 276, ResourceLocation.fromNamespaceAndPath("ironchest", "textures/gui/diamond_container.png"), 256, 276), + DIRT(1, 1, 184, 184, ResourceLocation.fromNamespaceAndPath("ironchest", "textures/gui/dirt_container.png"), 256, 256), + WOOD(0, 0, 0, 0, null, 0, 0); + + private final String name; + public final int size; + public final int rowLength; + public final int xSize; + public final int ySize; + public final ResourceLocation guiTexture; + public final int textureXSize; + public final int textureYSize; + + IronChestsTypes(int size, int rowLength, int xSize, int ySize, ResourceLocation guiTexture, int textureXSize, int textureYSize) { + this(null, size, rowLength, xSize, ySize, guiTexture, textureXSize, textureYSize); + } + + IronChestsTypes(@Nullable String name, int size, int rowLength, int xSize, int ySize, ResourceLocation guiTexture, int textureXSize, int textureYSize) { + this.name = name == null ? Util.toEnglishName(this.name()) : name; + this.size = size; + this.rowLength = rowLength; + this.xSize = xSize; + this.ySize = ySize; + this.guiTexture = guiTexture; + this.textureXSize = textureXSize; + this.textureYSize = textureYSize; + } + + public String getId() { + return this.name().toLowerCase(Locale.ROOT); + } + + public String getEnglishName() { + return this.name; + } + + @Override + public String getSerializedName() { + return this.getEnglishName(); + } + + public int getRowCount() { + return this.size / this.rowLength; + } + + public boolean isTransparent() { + return this == CRYSTAL; + } + + public static List get(IronChestsTypes type) { + return switch (type) { + case IRON -> Arrays.asList(IronChestsBlocks.IRON_CHEST.get(), IronChestsBlocks.TRAPPED_IRON_CHEST.get()); + case GOLD -> Arrays.asList(IronChestsBlocks.GOLD_CHEST.get(), IronChestsBlocks.TRAPPED_GOLD_CHEST.get()); + case DIAMOND -> Arrays.asList(IronChestsBlocks.DIAMOND_CHEST.get(), IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get()); + case COPPER -> Arrays.asList(IronChestsBlocks.COPPER_CHEST.get(), IronChestsBlocks.TRAPPED_COPPER_CHEST.get()); + case CRYSTAL -> Arrays.asList(IronChestsBlocks.CRYSTAL_CHEST.get(), IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get()); + case OBSIDIAN -> Arrays.asList(IronChestsBlocks.OBSIDIAN_CHEST.get(), IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get()); + case DIRT -> Arrays.asList(IronChestsBlocks.DIRT_CHEST.get(), IronChestsBlocks.TRAPPED_DIRT_CHEST.get()); + default -> List.of(Blocks.CHEST); + }; + } + + @Nullable + public AbstractIronChestBlockEntity makeEntity(BlockPos blockPos, BlockState blockState, boolean trapped) { + if (trapped) { + return switch (this) { + case IRON -> new TrappedIronChestBlockEntity(blockPos, blockState); + case GOLD -> new TrappedGoldChestBlockEntity(blockPos, blockState); + case DIAMOND -> new TrappedDiamondChestBlockEntity(blockPos, blockState); + case COPPER -> new TrappedCopperChestBlockEntity(blockPos, blockState); + case CRYSTAL -> new TrappedCrystalChestBlockEntity(blockPos, blockState); + case OBSIDIAN -> new TrappedObsidianChestBlockEntity(blockPos, blockState); + case DIRT -> new TrappedDirtChestBlockEntity(blockPos, blockState); + default -> null; + }; + } else { + return switch (this) { + case IRON -> new IronChestBlockEntity(blockPos, blockState); + case GOLD -> new GoldChestBlockEntity(blockPos, blockState); + case DIAMOND -> new DiamondChestBlockEntity(blockPos, blockState); + case COPPER -> new CopperChestBlockEntity(blockPos, blockState); + case CRYSTAL -> new CrystalChestBlockEntity(blockPos, blockState); + case OBSIDIAN -> new ObsidianChestBlockEntity(blockPos, blockState); + case DIRT -> new DirtChestBlockEntity(blockPos, blockState); + default -> null; + }; + } + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/entity/ICrystalChest.java b/src/main/java/com/progwml6/ironchest/common/block/entity/ICrystalChest.java new file mode 100644 index 00000000..da340d8e --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/entity/ICrystalChest.java @@ -0,0 +1,154 @@ +package com.progwml6.ironchest.common.block.entity; + +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.network.TopStacksSyncPacket; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.neoforge.network.PacketDistributor; + +import javax.annotation.Nullable; + +public interface ICrystalChest { + + default NonNullList buildItemStackDataList() { + if (this.getChestType().isTransparent()) { + NonNullList sortList = NonNullList.withSize(this.getTopItems().size(), ItemStack.EMPTY); + + int pos = 0; + + for (ItemStack is : this.getTopItems()) { + if (!is.isEmpty()) { + sortList.set(pos, is); + } else { + sortList.set(pos, ItemStack.EMPTY); + } + + pos++; + } + + return sortList; + } + + return NonNullList.withSize(this.getTopItems().size(), ItemStack.EMPTY); + } + + IronChestsTypes getChestType(); + + default void sendTopStacksPacket() { + NonNullList stacks = this.buildItemStackDataList(); + + if (this.getChestLevel() != null && this.getChestLevel() instanceof ServerLevel serverLevel && !this.getChestLevel().isClientSide) { + PacketDistributor.sendToPlayersTrackingChunk(serverLevel, serverLevel.getChunkAt(this.getChestWorldPosition()).getPos(), new TopStacksSyncPacket(this.getChestWorldPosition(), stacks)); + } + } + + NonNullList getTopItems(); + + @Nullable + Level getChestLevel(); + + BlockPos getChestWorldPosition(); + + void receiveMessageFromServer(NonNullList topStacks); + + default void sortTopStacks() { + if (!this.getChestType().isTransparent() || (this.getChestLevel() != null && this.getChestLevel().isClientSide)) { + return; + } + + NonNullList tempCopy = NonNullList.withSize(IronChestsTypes.CRYSTAL.size, ItemStack.EMPTY); + + boolean hasStuff = false; + + int compressedIdx = 0; + + mainLoop: + for (int i = 0; i < IronChestsTypes.CRYSTAL.size; i++) { + ItemStack itemStack = this.getCurrentItems().get(i); + + if (!itemStack.isEmpty()) { + for (int j = 0; j < compressedIdx; j++) { + ItemStack tempCopyStack = tempCopy.get(j); + + if (ItemStack.isSameItemSameComponents(tempCopyStack, itemStack)) { + if (itemStack.getCount() != tempCopyStack.getCount()) { + tempCopyStack.grow(itemStack.getCount()); + } + + continue mainLoop; + } + } + + tempCopy.set(compressedIdx, itemStack.copy()); + + compressedIdx++; + + hasStuff = true; + } + } + + if (!hasStuff && this.getHadStuff()) { + this.setHadStuff(false); + + for (int i = 0; i < this.getTopItems().size(); i++) { + this.getTopItems().set(i, ItemStack.EMPTY); + } + + if (this.getChestLevel() != null) { + BlockState blockState = this.getChestLevel().getBlockState(this.getChestWorldPosition()); + + this.getChestLevel().sendBlockUpdated(this.getChestWorldPosition(), blockState, blockState, 3); + } + + return; + } + + this.setHadStuff(true); + + tempCopy.sort((stack1, stack2) -> { + if (stack1.isEmpty()) { + return 1; + } else if (stack2.isEmpty()) { + return -1; + } else { + return stack2.getCount() - stack1.getCount(); + } + }); + + int slot = 0; + + for (ItemStack itemStack : tempCopy) { + if (!itemStack.isEmpty() && itemStack.getCount() > 0) { + if (slot == this.getTopItems().size()) { + break; + } + + this.getTopItems().set(slot, itemStack); + + slot++; + } + } + + for (int i = slot; i < this.getTopItems().size(); i++) { + this.getTopItems().set(i, ItemStack.EMPTY); + } + + if (this.getChestLevel() != null) { + BlockState blockState = this.getChestLevel().getBlockState(this.getChestWorldPosition()); + + this.getChestLevel().sendBlockUpdated(this.getChestWorldPosition(), blockState, blockState, 3); + } + + this.sendTopStacksPacket(); + } + + NonNullList getCurrentItems(); + + void setHadStuff(boolean hadStuff); + + boolean getHadStuff(); +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/entity/IronChestsBlockEntityTypes.java b/src/main/java/com/progwml6/ironchest/common/block/entity/IronChestsBlockEntityTypes.java new file mode 100644 index 00000000..1c860df3 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/entity/IronChestsBlockEntityTypes.java @@ -0,0 +1,80 @@ +package com.progwml6.ironchest.common.block.entity; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.regular.entity.CopperChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.CrystalChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.DiamondChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.DirtChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.GoldChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.IronChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.ObsidianChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCopperChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCrystalChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDiamondChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDirtChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedGoldChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedIronChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedObsidianChestBlockEntity; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class IronChestsBlockEntityTypes { + + public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, IronChests.MODID); + + public static final DeferredHolder, BlockEntityType> IRON_CHEST = BLOCK_ENTITIES.register( + "iron_chest", () -> typeOf(IronChestBlockEntity::new, IronChestsBlocks.IRON_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> GOLD_CHEST = BLOCK_ENTITIES.register( + "gold_chest", () -> typeOf(GoldChestBlockEntity::new, IronChestsBlocks.GOLD_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> DIAMOND_CHEST = BLOCK_ENTITIES.register( + "diamond_chest", () -> typeOf(DiamondChestBlockEntity::new, IronChestsBlocks.DIAMOND_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> COPPER_CHEST = BLOCK_ENTITIES.register( + "copper_chest", () -> typeOf(CopperChestBlockEntity::new, IronChestsBlocks.COPPER_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> CRYSTAL_CHEST = BLOCK_ENTITIES.register( + "crystal_chest", () -> typeOf(CrystalChestBlockEntity::new, IronChestsBlocks.CRYSTAL_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> OBSIDIAN_CHEST = BLOCK_ENTITIES.register( + "obsidian_chest", () -> typeOf(ObsidianChestBlockEntity::new, IronChestsBlocks.OBSIDIAN_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> DIRT_CHEST = BLOCK_ENTITIES.register( + "dirt_chest", () -> typeOf(DirtChestBlockEntity::new, IronChestsBlocks.DIRT_CHEST.get())); + + // Trapped Chests + + public static final DeferredHolder, BlockEntityType> TRAPPED_IRON_CHEST = BLOCK_ENTITIES.register( + "trapped_iron_chest", () -> typeOf(TrappedIronChestBlockEntity::new, IronChestsBlocks.TRAPPED_IRON_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> TRAPPED_GOLD_CHEST = BLOCK_ENTITIES.register( + "trapped_gold_chest", () -> typeOf(TrappedGoldChestBlockEntity::new, IronChestsBlocks.TRAPPED_GOLD_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> TRAPPED_DIAMOND_CHEST = BLOCK_ENTITIES.register( + "trapped_diamond_chest", () -> typeOf(TrappedDiamondChestBlockEntity::new, IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> TRAPPED_COPPER_CHEST = BLOCK_ENTITIES.register( + "trapped_copper_chest", () -> typeOf(TrappedCopperChestBlockEntity::new, IronChestsBlocks.TRAPPED_COPPER_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> TRAPPED_CRYSTAL_CHEST = BLOCK_ENTITIES.register( + "trapped_crystal_chest", () -> typeOf(TrappedCrystalChestBlockEntity::new, IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> TRAPPED_OBSIDIAN_CHEST = BLOCK_ENTITIES.register( + "trapped_obsidian_chest", () -> typeOf(TrappedObsidianChestBlockEntity::new, IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get())); + + public static final DeferredHolder, BlockEntityType> TRAPPED_DIRT_CHEST = BLOCK_ENTITIES.register( + "trapped_dirt_chest", () -> typeOf(TrappedDirtChestBlockEntity::new, IronChestsBlocks.TRAPPED_DIRT_CHEST.get())); + + /** + * Helper method to avoid having a NonNull error on each line + */ + private static BlockEntityType typeOf(BlockEntityType.BlockEntitySupplier entity, Block... blocks) { + return BlockEntityType.Builder.of(entity, blocks).build(null); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/entity/package-info.java b/src/main/java/com/progwml6/ironchest/common/block/entity/package-info.java new file mode 100644 index 00000000..79c16fce --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/entity/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.block.entity; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/block/package-info.java b/src/main/java/com/progwml6/ironchest/common/block/package-info.java new file mode 100644 index 00000000..ad133309 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.block; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/AbstractIronChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/AbstractIronChestBlock.java new file mode 100644 index 00000000..3685b4e8 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/AbstractIronChestBlock.java @@ -0,0 +1,326 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import it.unimi.dsi.fastutil.floats.Float2FloatFunction; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.stats.Stat; +import net.minecraft.stats.Stats; +import net.minecraft.util.RandomSource; +import net.minecraft.world.Container; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.animal.Cat; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DoubleBlockCombiner; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.LidBlockEntity; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.Optional; +import java.util.function.BiPredicate; +import java.util.function.Supplier; + +public abstract class AbstractIronChestBlock extends BaseEntityBlock implements SimpleWaterloggedBlock { + + public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + protected static final VoxelShape AABB = Block.box(1.0, 0.0, 1.0, 15.0, 14.0, 15.0); + + private static final DoubleBlockCombiner.Combiner> CHEST_COMBINER = new DoubleBlockCombiner.Combiner<>() { + @Override + public Optional acceptDouble(AbstractIronChestBlockEntity blockEntityOne, AbstractIronChestBlockEntity blockEntityTwo) { + return Optional.empty(); + } + + @Override + public Optional acceptSingle(AbstractIronChestBlockEntity blockEntity) { + return Optional.of(blockEntity); + } + + @Override + public Optional acceptNone() { + return Optional.empty(); + } + }; + + private static final DoubleBlockCombiner.Combiner> MENU_PROVIDER_COMBINER = new DoubleBlockCombiner.Combiner<>() { + @Override + public Optional acceptDouble(AbstractIronChestBlockEntity blockEntityOne, AbstractIronChestBlockEntity blockEntityTwo) { + return Optional.empty(); + } + + @Override + public Optional acceptSingle(AbstractIronChestBlockEntity blockEntity) { + return Optional.of(blockEntity); + } + + @Override + public Optional acceptNone() { + return Optional.empty(); + } + }; + + private final IronChestsTypes type; + + protected final Supplier> blockEntityType; + + public AbstractIronChestBlock(BlockBehaviour.Properties properties, Supplier> blockEntityType, IronChestsTypes type) { + super(properties); + + this.type = type; + this.blockEntityType = blockEntityType; + + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(WATERLOGGED, Boolean.FALSE)); + } + + public static DoubleBlockCombiner.BlockType getBlockType(BlockState blockState) { + return DoubleBlockCombiner.BlockType.SINGLE; + } + + @Override + public RenderShape getRenderShape(BlockState state) { + return RenderShape.ENTITYBLOCK_ANIMATED; + } + + @Override + @Deprecated + public BlockState updateShape(BlockState blockState, Direction direction, BlockState facingState, LevelAccessor levelAccessor, BlockPos currentPos, BlockPos facingPos) { + if (blockState.getValue(WATERLOGGED)) { + levelAccessor.scheduleTick(currentPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelAccessor)); + } + + return super.updateShape(blockState, direction, facingState, levelAccessor, currentPos, facingPos); + } + + @Override + @Deprecated + public VoxelShape getShape(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, CollisionContext context) { + return AABB; + } + + public static Direction getConnectedDirection(BlockState blockState) { + return blockState.getValue(FACING).getCounterClockWise(); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Direction direction = context.getHorizontalDirection().getOpposite(); + FluidState fluidState = context.getLevel().getFluidState(context.getClickedPos()); + + return this.defaultBlockState().setValue(FACING, direction).setValue(WATERLOGGED, fluidState.getType() == Fluids.WATER); + } + + @Override + @Deprecated + public FluidState getFluidState(BlockState blockState) { + return blockState.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(blockState); + } + + @Override + @Deprecated + public void onRemove(BlockState blockState, Level level, BlockPos blockPos, BlockState newState, boolean isMoving) { + if (!blockState.is(newState.getBlock())) { + BlockEntity blockEntity = level.getBlockEntity(blockPos); + if (blockEntity instanceof AbstractIronChestBlockEntity) { + ((AbstractIronChestBlockEntity) blockEntity).removeAdornments(); + + Containers.dropContents(level, blockPos, (AbstractIronChestBlockEntity) blockEntity); + level.updateNeighbourForOutputSignal(blockPos, this); + } + + super.onRemove(blockState, level, blockPos, newState, isMoving); + } + } + + @Override + @Deprecated + public InteractionResult useWithoutItem(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, BlockHitResult pHitResult) { + if (pLevel.isClientSide) { + return InteractionResult.SUCCESS; + } else { + MenuProvider menuProvider = this.getMenuProvider(pState, pLevel, pPos); + + if (menuProvider != null) { + pPlayer.openMenu(menuProvider); + pPlayer.awardStat(this.getOpenChestStat()); + } + + return InteractionResult.CONSUME; + } + } + + protected Stat getOpenChestStat() { + return Stats.CUSTOM.get(Stats.OPEN_CHEST); + } + + public BlockEntityType blockEntityType() { + return this.blockEntityType.get(); + } + + @Nullable + public static Container getContainer(AbstractIronChestBlock chestBlock, BlockState blockState, Level level, BlockPos blockPos, boolean ignoreBlockedChest) { + return chestBlock.combine(blockState, level, blockPos, ignoreBlockedChest).>apply(CHEST_COMBINER).orElse(null); + } + + public DoubleBlockCombiner.NeighborCombineResult combine(BlockState blockState, Level level, BlockPos blockPos, boolean ignoreBlockedChest) { + BiPredicate biPredicate; + + if (ignoreBlockedChest) { + biPredicate = (levelAccessor, blockPos1) -> false; + } else { + biPredicate = AbstractIronChestBlock::isChestBlockedAt; + } + + return DoubleBlockCombiner.combineWithNeigbour(this.blockEntityType.get(), AbstractIronChestBlock::getBlockType, AbstractIronChestBlock::getConnectedDirection, FACING, blockState, level, blockPos, biPredicate); + } + + @Nullable + public MenuProvider getMenuProvider(BlockState blockState, Level level, BlockPos blockPos) { + return this.combine(blockState, level, blockPos, false).apply(MENU_PROVIDER_COMBINER).orElse(null); + } + + public static DoubleBlockCombiner.Combiner opennessCombiner(final LidBlockEntity lidBlockEntity) { + return new DoubleBlockCombiner.Combiner<>() { + public Float2FloatFunction acceptDouble(AbstractIronChestBlockEntity blockEntityOne, AbstractIronChestBlockEntity blockEntityTwo) { + return (lidBlockEntity) -> Math.max(blockEntityOne.getOpenNess(lidBlockEntity), blockEntityTwo.getOpenNess(lidBlockEntity)); + } + + public Float2FloatFunction acceptSingle(AbstractIronChestBlockEntity blockEntity) { + return blockEntity::getOpenNess; + } + + public Float2FloatFunction acceptNone() { + return lidBlockEntity::getOpenNess; + } + }; + } + + @Override + @Nullable + public BlockEntityTicker getTicker(Level level, BlockState blockState, BlockEntityType blockEntityType) { + return level.isClientSide ? createTickerHelper(blockEntityType, this.blockEntityType(), AbstractIronChestBlockEntity::lidAnimateTick) : null; + } + + public static boolean isChestBlockedAt(LevelAccessor levelAccessor, BlockPos blockPos) { + return isBlockedChestByBlock(levelAccessor, blockPos) || isCatSittingOnChest(levelAccessor, blockPos); + } + + private static boolean isBlockedChestByBlock(BlockGetter blockGetter, BlockPos blockPos) { + BlockPos above = blockPos.above(); + + return blockGetter.getBlockState(above).isRedstoneConductor(blockGetter, above); + } + + private static boolean isCatSittingOnChest(LevelAccessor levelAccessor, BlockPos blockPos) { + List list = levelAccessor.getEntitiesOfClass( + Cat.class, + new AABB( + blockPos.getX(), + blockPos.getY() + 1, + blockPos.getZ(), + blockPos.getX() + 1, + blockPos.getY() + 2, + blockPos.getZ() + 1 + ) + ); + + if (!list.isEmpty()) { + for (Cat cat : list) { + if (cat.isInSittingPose()) { + return true; + } + } + } + + return false; + } + + @Override + public boolean hasAnalogOutputSignal(BlockState blockState) { + return true; + } + + @Override + public int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos blockPos) { + return AbstractContainerMenu.getRedstoneSignalFromContainer(getContainer(this, blockState, level, blockPos, false)); + } + + @Override + public BlockState rotate(BlockState blockState, Rotation rotation) { + return blockState.setValue(FACING, rotation.rotate(blockState.getValue(FACING))); + } + + @Override + public BlockState mirror(BlockState blockState, Mirror mirror) { + return blockState.rotate(mirror.getRotation(blockState.getValue(FACING))); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder blockBlockStateBuilder) { + blockBlockStateBuilder.add(FACING, WATERLOGGED); + } + + @Override + protected boolean isPathfindable(BlockState pState, PathComputationType pPathComputationType) { + return false; + } + + @Override + public void tick(BlockState blockState, ServerLevel serverLevel, BlockPos blockPos, RandomSource random) { + BlockEntity blockEntity = serverLevel.getBlockEntity(blockPos); + + if (blockEntity instanceof AbstractIronChestBlockEntity) { + ((AbstractIronChestBlockEntity) blockEntity).recheckOpen(); + } + } + + @Nullable + public static IronChestsTypes getTypeFromItem(Item itemIn) { + return getTypeFromBlock(Block.byItem(itemIn)); + } + + @Nullable + public static IronChestsTypes getTypeFromBlock(Block block) { + return block instanceof AbstractIronChestBlock ? ((AbstractIronChestBlock) block).getType() : null; + } + + public IronChestsTypes getType() { + return this.type; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/CopperChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/CopperChestBlock.java new file mode 100644 index 00000000..3f6ca963 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/CopperChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.CopperChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class CopperChestBlock extends AbstractIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(CopperChestBlock::new); + + public CopperChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.COPPER_CHEST::get, IronChestsTypes.COPPER); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new CopperChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/CrystalChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/CrystalChestBlock.java new file mode 100644 index 00000000..02c1fbdf --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/CrystalChestBlock.java @@ -0,0 +1,42 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.CrystalChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class CrystalChestBlock extends AbstractIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(CrystalChestBlock::new); + + public CrystalChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.CRYSTAL_CHEST::get, IronChestsTypes.CRYSTAL); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new CrystalChestBlockEntity(blockPos, blockState); + } + + @Override + @Nullable + public BlockEntityTicker getTicker(Level level, BlockState blockState, BlockEntityType blockEntityType) { + return level.isClientSide ? createTickerHelper(blockEntityType, this.blockEntityType(), AbstractIronChestBlockEntity::lidAnimateTick) : createTickerHelper(blockEntityType, this.blockEntityType(), CrystalChestBlockEntity::tick); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/DiamondChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/DiamondChestBlock.java new file mode 100644 index 00000000..fd6cb3a2 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/DiamondChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.DiamondChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class DiamondChestBlock extends AbstractIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(DiamondChestBlock::new); + + public DiamondChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.DIAMOND_CHEST::get, IronChestsTypes.DIAMOND); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new DiamondChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/DirtChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/DirtChestBlock.java new file mode 100644 index 00000000..0b17cd3a --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/DirtChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.DirtChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class DirtChestBlock extends AbstractIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(DirtChestBlock::new); + + public DirtChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.DIRT_CHEST::get, IronChestsTypes.DIRT); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new DirtChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/GoldChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/GoldChestBlock.java new file mode 100644 index 00000000..bb3325ff --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/GoldChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.GoldChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class GoldChestBlock extends AbstractIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(GoldChestBlock::new); + + public GoldChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.GOLD_CHEST::get, IronChestsTypes.GOLD); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new GoldChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/IronChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/IronChestBlock.java new file mode 100644 index 00000000..2bd87d29 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/IronChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.IronChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class IronChestBlock extends AbstractIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(IronChestBlock::new); + + public IronChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.IRON_CHEST::get, IronChestsTypes.IRON); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new IronChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/ObsidianChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/regular/ObsidianChestBlock.java new file mode 100644 index 00000000..682733ef --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/ObsidianChestBlock.java @@ -0,0 +1,33 @@ +package com.progwml6.ironchest.common.block.regular; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.ObsidianChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class ObsidianChestBlock extends AbstractIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(ObsidianChestBlock::new); + + public ObsidianChestBlock(BlockBehaviour.Properties properties) { + super(properties, IronChestsBlockEntityTypes.OBSIDIAN_CHEST::get, IronChestsTypes.OBSIDIAN); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new ObsidianChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/AbstractIronChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/AbstractIronChestBlockEntity.java new file mode 100644 index 00000000..c8c27584 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/AbstractIronChestBlockEntity.java @@ -0,0 +1,205 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.regular.AbstractIronChestBlock; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.CompoundContainer; +import net.minecraft.world.Container; +import net.minecraft.world.ContainerHelper; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.ChestLidController; +import net.minecraft.world.level.block.entity.ContainerOpenersCounter; +import net.minecraft.world.level.block.entity.LidBlockEntity; +import net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.function.Supplier; + +public abstract class AbstractIronChestBlockEntity extends RandomizableContainerBlockEntity implements LidBlockEntity { + + private NonNullList items; + + private final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() { + protected void onOpen(Level level, BlockPos pos, BlockState blockState) { + AbstractIronChestBlockEntity.playSound(level, pos, blockState, SoundEvents.CHEST_OPEN); + } + + protected void onClose(Level level, BlockPos pos, BlockState blockState) { + AbstractIronChestBlockEntity.playSound(level, pos, blockState, SoundEvents.CHEST_CLOSE); + } + + protected void openerCountChanged(Level level, BlockPos pos, BlockState blockState, int previousCount, int newCount) { + AbstractIronChestBlockEntity.this.signalOpenCount(level, pos, blockState, previousCount, newCount); + } + + protected boolean isOwnContainer(Player player) { + if (!(player.containerMenu instanceof IronChestMenu)) { + return false; + } else { + Container container = ((IronChestMenu) player.containerMenu).getContainer(); + return container instanceof AbstractIronChestBlockEntity || container instanceof CompoundContainer && ((CompoundContainer) container).contains(AbstractIronChestBlockEntity.this); + } + } + }; + + private final ChestLidController chestLidController = new ChestLidController(); + + private final IronChestsTypes chestType; + private final Supplier blockToUse; + + protected AbstractIronChestBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState, IronChestsTypes chestTypeIn, Supplier blockToUseIn) { + super(blockEntityType, blockPos, blockState); + + this.items = NonNullList.withSize(chestTypeIn.size, ItemStack.EMPTY); + this.chestType = chestTypeIn; + this.blockToUse = blockToUseIn; + } + + @Override + public int getContainerSize() { + return this.getItems().size(); + } + + @Override + protected Component getDefaultName() { + return Component.translatable(IronChests.MODID + ".container." + this.chestType.getId() + "_chest"); + } + + @Override + public void loadAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.loadAdditional(pTag, pRegistries); + + this.items = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); + + if (!this.tryLoadLootTable(pTag)) { + ContainerHelper.loadAllItems(pTag, this.items, pRegistries); + } + } + + @Override + public void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); + + if (!this.trySaveLootTable(pTag)) { + ContainerHelper.saveAllItems(pTag, this.items, pRegistries); + } + } + + public static void lidAnimateTick(Level level, BlockPos blockPos, BlockState blockState, AbstractIronChestBlockEntity chestBlockEntity) { + chestBlockEntity.chestLidController.tickLid(); + } + + static void playSound(Level level, BlockPos blockPos, BlockState blockState, SoundEvent soundEvent) { + double d0 = (double) blockPos.getX() + 0.5; + double d1 = (double) blockPos.getY() + 0.5; + double d2 = (double) blockPos.getZ() + 0.5; + + level.playSound(null, d0, d1, d2, soundEvent, SoundSource.BLOCKS, 0.5F, level.random.nextFloat() * 0.1F + 0.9F); + } + + @Override + public boolean triggerEvent(int id, int type) { + if (id == 1) { + this.chestLidController.shouldBeOpen(type > 0); + return true; + } else { + return super.triggerEvent(id, type); + } + } + + @Override + public void startOpen(Player player) { + if (!this.remove && !player.isSpectator()) { + this.openersCounter.incrementOpeners(player, this.getLevel(), this.getBlockPos(), this.getBlockState()); + } + } + + @Override + public void stopOpen(Player player) { + if (!this.remove && !player.isSpectator()) { + this.openersCounter.decrementOpeners(player, this.getLevel(), this.getBlockPos(), this.getBlockState()); + } + } + + @Override + public NonNullList getItems() { + return this.items; + } + + @Override + public void setItems(NonNullList itemsIn) { + this.items = NonNullList.withSize(this.getChestType().size, ItemStack.EMPTY); + + for (int i = 0; i < itemsIn.size(); i++) { + if (i < this.items.size()) { + this.getItems().set(i, itemsIn.get(i)); + } + } + } + + @Override + public float getOpenNess(float partialTicks) { + return this.chestLidController.getOpenness(partialTicks); + } + + public static int getOpenCount(BlockGetter blockGetter, BlockPos blockPos) { + BlockState blockstate = blockGetter.getBlockState(blockPos); + + if (blockstate.hasBlockEntity()) { + BlockEntity blockentity = blockGetter.getBlockEntity(blockPos); + + if (blockentity instanceof AbstractIronChestBlockEntity) { + return ((AbstractIronChestBlockEntity) blockentity).openersCounter.getOpenerCount(); + } + } + + return 0; + } + + public void recheckOpen() { + if (!this.remove) { + this.openersCounter.recheckOpeners(this.getLevel(), this.getBlockPos(), this.getBlockState()); + } + } + + protected void signalOpenCount(Level level, BlockPos blockPos, BlockState blockState, int previousCount, int newCount) { + Block block = blockState.getBlock(); + level.blockEvent(blockPos, block, 1, newCount); + } + + public void removeAdornments() { + } + + public IronChestsTypes getChestType() { + IronChestsTypes type = IronChestsTypes.IRON; + + if (this.hasLevel()) { + IronChestsTypes typeFromBlock = AbstractIronChestBlock.getTypeFromBlock(this.getBlockState().getBlock()); + + if (typeFromBlock != null) { + type = typeFromBlock; + } + } + + return type; + } + + public Block getBlockToUse() { + return this.blockToUse.get(); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/CopperChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/CopperChestBlockEntity.java new file mode 100644 index 00000000..e36b71c7 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/CopperChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class CopperChestBlockEntity extends AbstractIronChestBlockEntity { + + public CopperChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.COPPER_CHEST.get(), blockPos, blockState, IronChestsTypes.COPPER, IronChestsBlocks.COPPER_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createCopperContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/CrystalChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/CrystalChestBlockEntity.java new file mode 100644 index 00000000..6ce9a973 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/CrystalChestBlockEntity.java @@ -0,0 +1,91 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.ICrystalChest; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public class CrystalChestBlockEntity extends AbstractIronChestBlockEntity implements ICrystalChest { + + private NonNullList topStacks; + private boolean inventoryTouched; + private boolean hadStuff; + + public CrystalChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.CRYSTAL_CHEST.get(), blockPos, blockState, IronChestsTypes.CRYSTAL, IronChestsBlocks.CRYSTAL_CHEST::get); + + this.topStacks = NonNullList.withSize(8, ItemStack.EMPTY); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createCrystalContainer(containerId, playerInventory, this); + } + + public static void tick(Level level, BlockPos blockPos, BlockState blockState, AbstractIronChestBlockEntity chestBlockEntity) { + if (chestBlockEntity instanceof CrystalChestBlockEntity crystalChestBlockEntity) { + if (!level.isClientSide && crystalChestBlockEntity.inventoryTouched) { + crystalChestBlockEntity.inventoryTouched = false; + + crystalChestBlockEntity.sortTopStacks(); + } + } + } + + @Override + public void setItems(NonNullList contents) { + super.setItems(contents); + + this.inventoryTouched = true; + } + + @Override + public ItemStack getItem(int index) { + this.inventoryTouched = true; + + return super.getItem(index); + } + + @Override + public NonNullList getTopItems() { + return this.topStacks; + } + + @Override + public Level getChestLevel() { + return this.level; + } + + @Override + public BlockPos getChestWorldPosition() { + return this.worldPosition; + } + + @Override + public void receiveMessageFromServer(NonNullList topStacks) { + this.topStacks = topStacks; + } + + @Override + public void setHadStuff(boolean hadStuff) { + this.hadStuff = hadStuff; + } + + @Override + public boolean getHadStuff() { + return this.hadStuff; + } + + @Override + public NonNullList getCurrentItems() { + return this.getItems(); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/DiamondChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/DiamondChestBlockEntity.java new file mode 100644 index 00000000..16af11d1 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/DiamondChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class DiamondChestBlockEntity extends AbstractIronChestBlockEntity { + + public DiamondChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.DIAMOND_CHEST.get(), blockPos, blockState, IronChestsTypes.DIAMOND, IronChestsBlocks.DIAMOND_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createDiamondContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/DirtChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/DirtChestBlockEntity.java new file mode 100644 index 00000000..5d2b2cb6 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/DirtChestBlockEntity.java @@ -0,0 +1,70 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.common.Util; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.datacomponents.IronChestsDataComponents; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentMap; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class DirtChestBlockEntity extends AbstractIronChestBlockEntity { + + private static final ItemStack DIRT_CHEST_BOOK = Util.createDirtGuideBook(); + + public DirtChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.DIRT_CHEST.get(), blockPos, blockState, IronChestsTypes.DIRT, IronChestsBlocks.DIRT_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createDirtContainer(containerId, playerInventory, this); + } + + @Override + public void removeAdornments() { + if (!this.getItems().get(0).isEmpty() && ItemStack.isSameItem(this.getItems().get(0), DIRT_CHEST_BOOK)) { + this.getItems().set(0, ItemStack.EMPTY); + } + } + + @Override + public void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); + + pTag.putBoolean("chest_placed_already", true); + } + + + @Override + protected void applyImplicitComponents(BlockEntity.DataComponentInput pComponentInput) { + super.applyImplicitComponents(pComponentInput); + + if (!pComponentInput.getOrDefault(IronChestsDataComponents.CHEST_PLACED_ALREADY.get(), false)) { + this.setItem(0, DIRT_CHEST_BOOK.copy()); + } + } + + @Override + protected void collectImplicitComponents(DataComponentMap.Builder pComponents) { + super.collectImplicitComponents(pComponents); + pComponents.set(IronChestsDataComponents.CHEST_PLACED_ALREADY.get(), true); + } + + @Override + public void removeComponentsFromTag(CompoundTag pTag) { + super.removeComponentsFromTag(pTag); + pTag.remove("chest_placed_already"); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/GoldChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/GoldChestBlockEntity.java new file mode 100644 index 00000000..c28c6ac0 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/GoldChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class GoldChestBlockEntity extends AbstractIronChestBlockEntity { + + public GoldChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.GOLD_CHEST.get(), blockPos, blockState, IronChestsTypes.GOLD, IronChestsBlocks.GOLD_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createGoldContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/IronChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/IronChestBlockEntity.java new file mode 100644 index 00000000..d238b5b7 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/IronChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class IronChestBlockEntity extends AbstractIronChestBlockEntity { + + public IronChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.IRON_CHEST.get(), blockPos, blockState, IronChestsTypes.IRON, IronChestsBlocks.IRON_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createIronContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/ObsidianChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/ObsidianChestBlockEntity.java new file mode 100644 index 00000000..a89a529c --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/ObsidianChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.regular.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class ObsidianChestBlockEntity extends AbstractIronChestBlockEntity { + + public ObsidianChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.OBSIDIAN_CHEST.get(), blockPos, blockState, IronChestsTypes.OBSIDIAN, IronChestsBlocks.OBSIDIAN_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createObsidianContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/entity/package-info.java b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/package-info.java new file mode 100644 index 00000000..67249c21 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/entity/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.block.regular.entity; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/block/regular/package-info.java b/src/main/java/com/progwml6/ironchest/common/block/regular/package-info.java new file mode 100644 index 00000000..e3e360cb --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/regular/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.block.regular; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/AbstractTrappedIronChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/AbstractTrappedIronChestBlock.java new file mode 100644 index 00000000..5bb4f701 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/AbstractTrappedIronChestBlock.java @@ -0,0 +1,44 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.regular.AbstractIronChestBlock; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.AbstractTrappedIronChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.stats.Stat; +import net.minecraft.stats.Stats; +import net.minecraft.util.Mth; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.function.Supplier; + +public abstract class AbstractTrappedIronChestBlock extends AbstractIronChestBlock { + + public AbstractTrappedIronChestBlock(Properties properties, Supplier> blockEntityType, IronChestsTypes type) { + super(properties, blockEntityType, type); + } + + @Override + protected Stat getOpenChestStat() { + return Stats.CUSTOM.get(Stats.TRIGGER_TRAPPED_CHEST); + } + + @Override + public boolean isSignalSource(BlockState blockState) { + return true; + } + + @Override + public int getSignal(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, Direction direction) { + return Mth.clamp(AbstractTrappedIronChestBlockEntity.getOpenCount(blockGetter, blockPos), 0, 15); + } + + @Override + public int getDirectSignal(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, Direction direction) { + return direction == Direction.UP ? blockState.getSignal(blockGetter, blockPos, direction) : 0; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedCopperChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedCopperChestBlock.java new file mode 100644 index 00000000..903ea0ba --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedCopperChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCopperChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedCopperChestBlock extends AbstractTrappedIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(TrappedCopperChestBlock::new); + + public TrappedCopperChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.TRAPPED_COPPER_CHEST::get, IronChestsTypes.COPPER); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new TrappedCopperChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedCrystalChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedCrystalChestBlock.java new file mode 100644 index 00000000..1ab7f8b2 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedCrystalChestBlock.java @@ -0,0 +1,42 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCrystalChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedCrystalChestBlock extends AbstractTrappedIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(TrappedCrystalChestBlock::new); + + public TrappedCrystalChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.TRAPPED_CRYSTAL_CHEST::get, IronChestsTypes.CRYSTAL); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new TrappedCrystalChestBlockEntity(blockPos, blockState); + } + + @Override + @Nullable + public BlockEntityTicker getTicker(Level level, BlockState blockState, BlockEntityType blockEntityType) { + return level.isClientSide ? createTickerHelper(blockEntityType, this.blockEntityType(), AbstractIronChestBlockEntity::lidAnimateTick) : createTickerHelper(blockEntityType, this.blockEntityType(), TrappedCrystalChestBlockEntity::tick); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedDiamondChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedDiamondChestBlock.java new file mode 100644 index 00000000..c3202fb1 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedDiamondChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDiamondChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedDiamondChestBlock extends AbstractTrappedIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(TrappedDiamondChestBlock::new); + + public TrappedDiamondChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.TRAPPED_DIAMOND_CHEST::get, IronChestsTypes.DIAMOND); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new TrappedDiamondChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedDirtChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedDirtChestBlock.java new file mode 100644 index 00000000..4ef8fe9c --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedDirtChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDirtChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedDirtChestBlock extends AbstractTrappedIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(TrappedDirtChestBlock::new); + + public TrappedDirtChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.TRAPPED_DIRT_CHEST::get, IronChestsTypes.DIRT); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new TrappedDirtChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedGoldChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedGoldChestBlock.java new file mode 100644 index 00000000..0860a683 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedGoldChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedGoldChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedGoldChestBlock extends AbstractTrappedIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(TrappedGoldChestBlock::new); + + public TrappedGoldChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.TRAPPED_GOLD_CHEST::get, IronChestsTypes.GOLD); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new TrappedGoldChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedIronChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedIronChestBlock.java new file mode 100644 index 00000000..7472fdba --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedIronChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedIronChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedIronChestBlock extends AbstractTrappedIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(TrappedIronChestBlock::new); + + public TrappedIronChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.TRAPPED_IRON_CHEST::get, IronChestsTypes.IRON); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new TrappedIronChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedObsidianChestBlock.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedObsidianChestBlock.java new file mode 100644 index 00000000..bad768f4 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/TrappedObsidianChestBlock.java @@ -0,0 +1,32 @@ +package com.progwml6.ironchest.common.block.trapped; + +import com.mojang.serialization.MapCodec; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedObsidianChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedObsidianChestBlock extends AbstractTrappedIronChestBlock { + + public static final MapCodec CODEC = simpleCodec(TrappedObsidianChestBlock::new); + + public TrappedObsidianChestBlock(Properties properties) { + super(properties, IronChestsBlockEntityTypes.TRAPPED_OBSIDIAN_CHEST::get, IronChestsTypes.OBSIDIAN); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return new TrappedObsidianChestBlockEntity(blockPos, blockState); + } + + @Override + protected MapCodec codec() { + return CODEC; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/AbstractTrappedIronChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/AbstractTrappedIronChestBlockEntity.java new file mode 100644 index 00000000..01b48230 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/AbstractTrappedIronChestBlockEntity.java @@ -0,0 +1,30 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.function.Supplier; + +public abstract class AbstractTrappedIronChestBlockEntity extends AbstractIronChestBlockEntity { + + protected AbstractTrappedIronChestBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState, IronChestsTypes chestTypeIn, Supplier blockToUseIn) { + super(blockEntityType, blockPos, blockState, chestTypeIn, blockToUseIn); + } + + @Override + protected void signalOpenCount(Level level, BlockPos blockPos, BlockState blockState, int previousCount, int newCount) { + super.signalOpenCount(level, blockPos, blockState, previousCount, newCount); + + if (previousCount != newCount) { + Block block = blockState.getBlock(); + + level.updateNeighborsAt(blockPos, block); + level.updateNeighborsAt(blockPos.below(), block); + } + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedCopperChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedCopperChestBlockEntity.java new file mode 100644 index 00000000..b5bae16f --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedCopperChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class TrappedCopperChestBlockEntity extends AbstractTrappedIronChestBlockEntity { + + public TrappedCopperChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.TRAPPED_COPPER_CHEST.get(), blockPos, blockState, IronChestsTypes.COPPER, IronChestsBlocks.TRAPPED_COPPER_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createCopperContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedCrystalChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedCrystalChestBlockEntity.java new file mode 100644 index 00000000..88ef05d7 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedCrystalChestBlockEntity.java @@ -0,0 +1,92 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.ICrystalChest; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public class TrappedCrystalChestBlockEntity extends AbstractTrappedIronChestBlockEntity implements ICrystalChest { + + private NonNullList topStacks; + private boolean inventoryTouched; + private boolean hadStuff; + + public TrappedCrystalChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.TRAPPED_CRYSTAL_CHEST.get(), blockPos, blockState, IronChestsTypes.CRYSTAL, IronChestsBlocks.TRAPPED_CRYSTAL_CHEST::get); + + this.topStacks = NonNullList.withSize(8, ItemStack.EMPTY); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createCrystalContainer(containerId, playerInventory, this); + } + + public static void tick(Level level, BlockPos blockPos, BlockState blockState, AbstractIronChestBlockEntity chestBlockEntity) { + if (chestBlockEntity instanceof TrappedCrystalChestBlockEntity crystalChest) { + if (!level.isClientSide && crystalChest.inventoryTouched) { + crystalChest.inventoryTouched = false; + + crystalChest.sortTopStacks(); + } + } + } + + @Override + public void setItems(NonNullList contents) { + super.setItems(contents); + + this.inventoryTouched = true; + } + + @Override + public ItemStack getItem(int index) { + this.inventoryTouched = true; + + return super.getItem(index); + } + + @Override + public NonNullList getTopItems() { + return this.topStacks; + } + + @Override + public Level getChestLevel() { + return this.level; + } + + @Override + public BlockPos getChestWorldPosition() { + return this.worldPosition; + } + + @Override + public void receiveMessageFromServer(NonNullList topStacks) { + this.topStacks = topStacks; + } + + @Override + public NonNullList getCurrentItems() { + return this.getItems(); + } + + @Override + public void setHadStuff(boolean hadStuff) { + this.hadStuff = hadStuff; + } + + @Override + public boolean getHadStuff() { + return this.hadStuff; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedDiamondChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedDiamondChestBlockEntity.java new file mode 100644 index 00000000..2e473406 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedDiamondChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class TrappedDiamondChestBlockEntity extends AbstractTrappedIronChestBlockEntity { + + public TrappedDiamondChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.TRAPPED_DIAMOND_CHEST.get(), blockPos, blockState, IronChestsTypes.DIAMOND, IronChestsBlocks.TRAPPED_DIAMOND_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createDiamondContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedDirtChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedDirtChestBlockEntity.java new file mode 100644 index 00000000..ceaa2f12 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedDirtChestBlockEntity.java @@ -0,0 +1,69 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.Util; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.datacomponents.IronChestsDataComponents; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentMap; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class TrappedDirtChestBlockEntity extends AbstractTrappedIronChestBlockEntity { + + private static final ItemStack DIRT_CHEST_BOOK = Util.createDirtGuideBook(); + + public TrappedDirtChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.TRAPPED_DIRT_CHEST.get(), blockPos, blockState, IronChestsTypes.DIRT, IronChestsBlocks.TRAPPED_DIRT_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createDirtContainer(containerId, playerInventory, this); + } + + @Override + public void removeAdornments() { + if (!this.getItems().get(0).isEmpty() && ItemStack.isSameItem(this.getItems().get(0), DIRT_CHEST_BOOK)) { + this.getItems().set(0, ItemStack.EMPTY); + } + } + + @Override + public void saveAdditional(CompoundTag pTag, HolderLookup.Provider pRegistries) { + super.saveAdditional(pTag, pRegistries); + + pTag.putBoolean("chest_placed_already", true); + } + + + @Override + protected void applyImplicitComponents(BlockEntity.DataComponentInput pComponentInput) { + super.applyImplicitComponents(pComponentInput); + + if (!pComponentInput.getOrDefault(IronChestsDataComponents.CHEST_PLACED_ALREADY.get(), false)) { + this.setItem(0, DIRT_CHEST_BOOK.copy()); + } + } + + @Override + protected void collectImplicitComponents(DataComponentMap.Builder pComponents) { + super.collectImplicitComponents(pComponents); + pComponents.set(IronChestsDataComponents.CHEST_PLACED_ALREADY.get(), true); + } + + @Override + public void removeComponentsFromTag(CompoundTag pTag) { + super.removeComponentsFromTag(pTag); + pTag.remove("chest_placed_already"); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedGoldChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedGoldChestBlockEntity.java new file mode 100644 index 00000000..f1ebea07 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedGoldChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class TrappedGoldChestBlockEntity extends AbstractTrappedIronChestBlockEntity { + + public TrappedGoldChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.TRAPPED_GOLD_CHEST.get(), blockPos, blockState, IronChestsTypes.GOLD, IronChestsBlocks.TRAPPED_GOLD_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createGoldContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedIronChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedIronChestBlockEntity.java new file mode 100644 index 00000000..97ba93f0 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedIronChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class TrappedIronChestBlockEntity extends AbstractTrappedIronChestBlockEntity { + + public TrappedIronChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.TRAPPED_IRON_CHEST.get(), blockPos, blockState, IronChestsTypes.IRON, IronChestsBlocks.TRAPPED_IRON_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createIronContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedObsidianChestBlockEntity.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedObsidianChestBlockEntity.java new file mode 100644 index 00000000..f8d178ef --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/TrappedObsidianChestBlockEntity.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.block.trapped.entity; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.entity.IronChestsBlockEntityTypes; +import com.progwml6.ironchest.common.inventory.IronChestMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.state.BlockState; + +public class TrappedObsidianChestBlockEntity extends AbstractTrappedIronChestBlockEntity { + + public TrappedObsidianChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(IronChestsBlockEntityTypes.TRAPPED_OBSIDIAN_CHEST.get(), blockPos, blockState, IronChestsTypes.OBSIDIAN, IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST::get); + } + + @Override + protected AbstractContainerMenu createMenu(int containerId, Inventory playerInventory) { + return IronChestMenu.createObsidianContainer(containerId, playerInventory, this); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/package-info.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/package-info.java new file mode 100644 index 00000000..20e28bb9 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/entity/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.block.trapped.entity; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/block/trapped/package-info.java b/src/main/java/com/progwml6/ironchest/common/block/trapped/package-info.java new file mode 100644 index 00000000..4006f146 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/block/trapped/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.block.trapped; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/creativetabs/IronChestsCreativeTabs.java b/src/main/java/com/progwml6/ironchest/common/creativetabs/IronChestsCreativeTabs.java new file mode 100644 index 00000000..70a831ba --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/creativetabs/IronChestsCreativeTabs.java @@ -0,0 +1,27 @@ +package com.progwml6.ironchest.common.creativetabs; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.item.IronChestsItems; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class IronChestsCreativeTabs { + + public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, IronChests.MODID); + + public static final DeferredHolder IRON_CHEST_TAP = CREATIVE_MODE_TABS.register("ironchest", () -> CreativeModeTab.builder() + .withTabsBefore(CreativeModeTabs.SPAWN_EGGS) + .title(Component.translatable("itemGroup.ironchest")) + .icon(() -> new ItemStack(IronChestsBlocks.IRON_CHEST.get())) + .displayItems((parameters, output) -> { + for (final Item item : IronChestsItems.ITEMS.getEntries().stream().map(DeferredHolder::value).toList()) + output.accept(item); + }).build()); +} diff --git a/src/main/java/com/progwml6/ironchest/common/data/IronChestsBlockTags.java b/src/main/java/com/progwml6/ironchest/common/data/IronChestsBlockTags.java new file mode 100644 index 00000000..e78a0e24 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/IronChestsBlockTags.java @@ -0,0 +1,65 @@ +package com.progwml6.ironchest.common.data; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.tags.BlockTags; +import net.neoforged.neoforge.common.data.BlockTagsProvider; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class IronChestsBlockTags extends BlockTagsProvider { + + public IronChestsBlockTags(PackOutput output, CompletableFuture lookup, ExistingFileHelper existingFileHelper) { + super(output, lookup, IronChests.MODID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider provider) { + tag(BlockTags.MINEABLE_WITH_SHOVEL).add( + IronChestsBlocks.DIRT_CHEST.get(), + IronChestsBlocks.TRAPPED_DIRT_CHEST.get() + ); + + tag(BlockTags.MINEABLE_WITH_PICKAXE).add( + IronChestsBlocks.IRON_CHEST.get(), + IronChestsBlocks.GOLD_CHEST.get(), + IronChestsBlocks.DIAMOND_CHEST.get(), + IronChestsBlocks.COPPER_CHEST.get(), + IronChestsBlocks.CRYSTAL_CHEST.get(), + IronChestsBlocks.OBSIDIAN_CHEST.get(), + IronChestsBlocks.TRAPPED_IRON_CHEST.get(), + IronChestsBlocks.TRAPPED_GOLD_CHEST.get(), + IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get(), + IronChestsBlocks.TRAPPED_COPPER_CHEST.get(), + IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get(), + IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get() + ); + + tag(BlockTags.FEATURES_CANNOT_REPLACE).add( + IronChestsBlocks.IRON_CHEST.get(), + IronChestsBlocks.GOLD_CHEST.get(), + IronChestsBlocks.DIAMOND_CHEST.get(), + IronChestsBlocks.COPPER_CHEST.get(), + IronChestsBlocks.CRYSTAL_CHEST.get(), + IronChestsBlocks.OBSIDIAN_CHEST.get() + ); + + tag(BlockTags.GUARDED_BY_PIGLINS).add( + IronChestsBlocks.IRON_CHEST.get(), + IronChestsBlocks.GOLD_CHEST.get(), + IronChestsBlocks.DIAMOND_CHEST.get(), + IronChestsBlocks.COPPER_CHEST.get(), + IronChestsBlocks.CRYSTAL_CHEST.get(), + IronChestsBlocks.OBSIDIAN_CHEST.get(), + IronChestsBlocks.TRAPPED_IRON_CHEST.get(), + IronChestsBlocks.TRAPPED_GOLD_CHEST.get(), + IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get(), + IronChestsBlocks.TRAPPED_COPPER_CHEST.get(), + IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get(), + IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get() + ); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/data/IronChestsLanguageProvider.java b/src/main/java/com/progwml6/ironchest/common/data/IronChestsLanguageProvider.java new file mode 100644 index 00000000..b6df5831 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/IronChestsLanguageProvider.java @@ -0,0 +1,69 @@ +package com.progwml6.ironchest.common.data; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.item.IronChestsItems; +import com.progwml6.ironchest.common.item.IronChestsUpgradeType; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.common.data.LanguageProvider; + +public class IronChestsLanguageProvider extends LanguageProvider { + + public IronChestsLanguageProvider(PackOutput output, String locale) { + super(output, IronChests.MODID, locale); + } + + @Override + protected void addTranslations() { + this.addBlock(IronChestsBlocks.IRON_CHEST, "Iron Chest"); + this.addBlock(IronChestsBlocks.GOLD_CHEST, "Gold Chest"); + this.addBlock(IronChestsBlocks.DIAMOND_CHEST, "Diamond Chest"); + this.addBlock(IronChestsBlocks.COPPER_CHEST, "Copper Chest"); + this.addBlock(IronChestsBlocks.CRYSTAL_CHEST, "Crystal Chest"); + this.addBlock(IronChestsBlocks.OBSIDIAN_CHEST, "Obsidian Chest"); + this.addBlock(IronChestsBlocks.DIRT_CHEST, "DirtChest 9000!"); + + this.addBlock(IronChestsBlocks.TRAPPED_IRON_CHEST, "Trapped Iron Chest"); + this.addBlock(IronChestsBlocks.TRAPPED_GOLD_CHEST, "Trapped Gold Chest"); + this.addBlock(IronChestsBlocks.TRAPPED_DIAMOND_CHEST, "Trapped Diamond Chest"); + this.addBlock(IronChestsBlocks.TRAPPED_COPPER_CHEST, "Trapped Copper Chest"); + this.addBlock(IronChestsBlocks.TRAPPED_CRYSTAL_CHEST, "Trapped Crystal Chest"); + this.addBlock(IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST, "Trapped Obsidian Chest"); + this.addBlock(IronChestsBlocks.TRAPPED_DIRT_CHEST, "Trapped DirtChest 9000!"); + + this.addItem(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.IRON_TO_GOLD), "Iron to Gold Chest Upgrade"); + this.addItem(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.GOLD_TO_DIAMOND), "Gold to Diamond Chest Upgrade"); + this.addItem(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.COPPER_TO_IRON), "Copper to Iron Chest Upgrade"); + this.addItem(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_CRYSTAL), "Diamond to Crystal Chest Upgrade"); + this.addItem(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_IRON), "Wood to Iron Chest Upgrade"); + this.addItem(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_COPPER), "Wood to Copper Chest Upgrade"); + this.addItem(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_OBSIDIAN), "Diamond to Obsidian Chest Upgrade"); + + this.addBookAndContents("dirtchest9000", "How to use your DirtChest 9000!", + "Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility.", + "Usage: simply insert the stack of dirt of your choice into the highly receptive slot and enjoy the great convenience of having that dirt available to you, any time you pass by this chest!", + "We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated.", + "Warranty: This product has no warranty of any kind. Your dirt may not be stored, it may slowly leech into the environment, or alternatively, it may not do anything at all.", + "DirtChest 9000 is kind to the environment. Please dispose of this guide book responsibly, and do not whatever you do just chuck it into some lava. We would be very sad."); + + this.add("itemGroup.ironchest", "Iron Chests"); + + this.add("ironchest.container.iron_chest", "Iron Chest"); + this.add("ironchest.container.gold_chest", "Gold Chest"); + this.add("ironchest.container.diamond_chest", "Diamond Chest"); + this.add("ironchest.container.copper_chest", "Copper Chest"); + this.add("ironchest.container.silver_chest", "Silver Chest"); + this.add("ironchest.container.crystal_chest", "Crystal Chest"); + this.add("ironchest.container.obsidian_chest", "Obsidian Chest"); + this.add("ironchest.container.dirt_chest", "DirtChest 9000!"); + } + + public void addBookAndContents(String bookKey, String bookTitle, String... pages) { + this.add("ironchest.book." + bookKey, bookTitle); + int pageCount = 0; + for (String page : pages) { + pageCount++; + this.add("ironchest.book." + bookKey + "." + pageCount, page); + } + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/data/IronChestsRecipeProvider.java b/src/main/java/com/progwml6/ironchest/common/data/IronChestsRecipeProvider.java new file mode 100644 index 00000000..87b9b858 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/IronChestsRecipeProvider.java @@ -0,0 +1,243 @@ +package com.progwml6.ironchest.common.data; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.item.IronChestsItems; +import com.progwml6.ironchest.common.item.IronChestsUpgradeType; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.minecraft.data.recipes.ShapelessRecipeBuilder; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.block.Blocks; +import net.neoforged.neoforge.common.Tags; +import net.neoforged.neoforge.common.conditions.IConditionBuilder; + +import java.util.concurrent.CompletableFuture; + +public class IronChestsRecipeProvider extends RecipeProvider implements IConditionBuilder { + + public IronChestsRecipeProvider(PackOutput output, CompletableFuture provider) { + super(output, provider); + } + + @Override + protected void buildRecipes(RecipeOutput recipeOutput) { + this.addChestsRecipes(recipeOutput); + this.addUpgradesRecipes(recipeOutput); + } + + private void addChestsRecipes(RecipeOutput recipeOutput) { + String folder = "chests/"; + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.COPPER_CHEST.get()) + .define('M', Tags.Items.INGOTS_COPPER) + .define('S', Tags.Items.CHESTS_WOODEN) + .pattern("MMM") + .pattern("MSM") + .pattern("MMM") + .unlockedBy("has_copper_ingot", has(Tags.Items.INGOTS_COPPER)) + .save(recipeOutput, location(folder + "vanilla_copper_chest")); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.IRON_CHEST.get()) + .define('M', Tags.Items.INGOTS_IRON) + .define('S', Tags.Items.CHESTS_WOODEN) + .pattern("MMM") + .pattern("MSM") + .pattern("MMM") + .unlockedBy("has_iron_ingot", has(Tags.Items.INGOTS_IRON)) + .save(recipeOutput, location(folder + "vanilla_iron_chest")); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.IRON_CHEST.get()) + .define('M', Tags.Items.INGOTS_IRON) + .define('S', IronChestsBlocks.COPPER_CHEST.get()) + .define('G', Tags.Items.GLASS_BLOCKS) + .pattern("MGM") + .pattern("GSG") + .pattern("MGM") + .unlockedBy("has_iron_ingot", has(Tags.Items.INGOTS_IRON)) + .save(recipeOutput, location(folder + "copper_iron_chest")); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.GOLD_CHEST.get()) + .define('M', Tags.Items.INGOTS_GOLD) + .define('S', IronChestsBlocks.IRON_CHEST.get()) + .pattern("MMM") + .pattern("MSM") + .pattern("MMM") + .unlockedBy("has_gold_ingot", has(Tags.Items.INGOTS_GOLD)) + .save(recipeOutput, location(folder + "iron_gold_chest")); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.DIAMOND_CHEST.get()) + .define('M', Tags.Items.GEMS_DIAMOND) + .define('S', IronChestsBlocks.GOLD_CHEST.get()) + .define('G', Tags.Items.GLASS_BLOCKS) + .pattern("GGG") + .pattern("MSM") + .pattern("GGG") + .unlockedBy("has_diamonds", has(Tags.Items.GEMS_DIAMOND)) + .save(recipeOutput, location(folder + "gold_diamond_chest")); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.OBSIDIAN_CHEST.get()) + .define('M', Blocks.OBSIDIAN) + .define('S', IronChestsBlocks.DIAMOND_CHEST.get()) + .pattern("MMM") + .pattern("MSM") + .pattern("MMM") + .unlockedBy("has_obsidian", has(Blocks.OBSIDIAN)) + .save(recipeOutput, location(folder + "diamond_obsidian_chest")); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.CRYSTAL_CHEST.get()) + .define('G', Tags.Items.GLASS_BLOCKS) + .define('S', IronChestsBlocks.DIAMOND_CHEST.get()) + .pattern("GGG") + .pattern("GSG") + .pattern("GGG") + .unlockedBy("has_glass", has(Tags.Items.GLASS_BLOCKS)) + .save(recipeOutput, location(folder + "diamond_crystal_chest")); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsBlocks.DIRT_CHEST.get()) + .define('M', Ingredient.of(Blocks.DIRT, Blocks.COARSE_DIRT, Blocks.PODZOL)) + .define('S', Tags.Items.CHESTS_WOODEN) + .pattern("MMM") + .pattern("MSM") + .pattern("MMM") + .unlockedBy("has_iron_ingot", has(Blocks.DIRT)) + .save(recipeOutput, location(folder + "vanilla_dirt_chest")); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, IronChestsBlocks.TRAPPED_IRON_CHEST.get()) + .requires(IronChestsBlocks.IRON_CHEST.get()) + .requires(Blocks.TRIPWIRE_HOOK) + .unlockedBy("has_tripwire_hook", has(Blocks.TRIPWIRE_HOOK)) + .save(recipeOutput, location(folder + "trapped_iron_chest")); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, IronChestsBlocks.TRAPPED_GOLD_CHEST.get()) + .requires(IronChestsBlocks.GOLD_CHEST.get()) + .requires(Blocks.TRIPWIRE_HOOK) + .unlockedBy("has_tripwire_hook", has(Blocks.TRIPWIRE_HOOK)) + .save(recipeOutput, location(folder + "trapped_gold_chest")); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get()) + .requires(IronChestsBlocks.DIAMOND_CHEST.get()) + .requires(Blocks.TRIPWIRE_HOOK) + .unlockedBy("has_tripwire_hook", has(Blocks.TRIPWIRE_HOOK)) + .save(recipeOutput, location(folder + "trapped_diamond_chest")); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, IronChestsBlocks.TRAPPED_COPPER_CHEST.get()) + .requires(IronChestsBlocks.COPPER_CHEST.get()) + .requires(Blocks.TRIPWIRE_HOOK) + .unlockedBy("has_tripwire_hook", has(Blocks.TRIPWIRE_HOOK)) + .save(recipeOutput, location(folder + "trapped_copper_chest")); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get()) + .requires(IronChestsBlocks.CRYSTAL_CHEST.get()) + .requires(Blocks.TRIPWIRE_HOOK) + .unlockedBy("has_tripwire_hook", has(Blocks.TRIPWIRE_HOOK)) + .save(recipeOutput, location(folder + "trapped_crystal_chest")); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get()) + .requires(IronChestsBlocks.OBSIDIAN_CHEST.get()) + .requires(Blocks.TRIPWIRE_HOOK) + .unlockedBy("has_tripwire_hook", has(Blocks.TRIPWIRE_HOOK)) + .save(recipeOutput, location(folder + "trapped_obsidian_chest")); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.DECORATIONS, IronChestsBlocks.TRAPPED_DIRT_CHEST.get()) + .requires(IronChestsBlocks.DIRT_CHEST.get()) + .requires(Blocks.TRIPWIRE_HOOK) + .unlockedBy("has_tripwire_hook", has(Blocks.TRIPWIRE_HOOK)) + .save(recipeOutput, location(folder + "trapped_dirt_chest")); + } + + private void addUpgradesRecipes(RecipeOutput recipeOutput) { + String folder = "upgrades/"; + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_COPPER).get()) + .define('M', Tags.Items.INGOTS_COPPER) + .define('P', ItemTags.PLANKS) + .pattern("MMM") + .pattern("MPM") + .pattern("MMM") + .unlockedBy("has_copper_ingot", has(Tags.Items.INGOTS_COPPER)) + .save(recipeOutput, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_COPPER).get(), folder)); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_IRON).get()) + .define('M', Tags.Items.INGOTS_IRON) + .define('P', ItemTags.PLANKS) + .pattern("MMM") + .pattern("MPM") + .pattern("MMM") + .unlockedBy("has_iron_ingot", has(Tags.Items.INGOTS_IRON)) + .save(recipeOutput, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.WOOD_TO_IRON).get(), folder)); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsItems.UPGRADES.get(IronChestsUpgradeType.COPPER_TO_IRON).get()) + .define('I', Tags.Items.INGOTS_IRON) + .define('C', Tags.Items.INGOTS_COPPER) + .define('G', Tags.Items.GLASS_BLOCKS) + .pattern("IGI") + .pattern("GCG") + .pattern("IGI") + .unlockedBy("has_iron_ingot", has(Tags.Items.INGOTS_IRON)) + .save(recipeOutput, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.COPPER_TO_IRON).get(), folder)); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsItems.UPGRADES.get(IronChestsUpgradeType.IRON_TO_GOLD).get()) + .define('I', Tags.Items.INGOTS_IRON) + .define('G', Tags.Items.INGOTS_GOLD) + .pattern("GGG") + .pattern("GIG") + .pattern("GGG") + .unlockedBy("has_iron_ingot", has(Tags.Items.INGOTS_IRON)) + .save(recipeOutput, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.IRON_TO_GOLD).get(), folder)); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsItems.UPGRADES.get(IronChestsUpgradeType.GOLD_TO_DIAMOND).get()) + .define('M', Tags.Items.GEMS_DIAMOND) + .define('S', Tags.Items.INGOTS_GOLD) + .define('G', Tags.Items.GLASS_BLOCKS) + .pattern("GGG") + .pattern("MSM") + .pattern("GGG") + .unlockedBy("has_glass", has(Tags.Items.GLASS_BLOCKS)) + .save(recipeOutput, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.GOLD_TO_DIAMOND).get(), folder)); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_OBSIDIAN).get()) + .define('M', Blocks.OBSIDIAN) + .define('G', Tags.Items.GLASS_BLOCKS) + .pattern("MMM") + .pattern("MGM") + .pattern("MMM") + .unlockedBy("has_glass", has(Tags.Items.GLASS_BLOCKS)) + .save(recipeOutput, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_OBSIDIAN).get(), folder)); + + ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_CRYSTAL).get()) + .define('M', Blocks.OBSIDIAN) + .define('G', Tags.Items.GLASS_BLOCKS) + .pattern("GGG") + .pattern("GMG") + .pattern("GGG") + .unlockedBy("has_glass", has(Tags.Items.GLASS_BLOCKS)) + .save(recipeOutput, prefix(IronChestsItems.UPGRADES.get(IronChestsUpgradeType.DIAMOND_TO_CRYSTAL).get(), folder)); + } + + protected static ResourceLocation prefix(ItemLike item, String prefix) { + ResourceLocation registryName = BuiltInRegistries.ITEM.getResourceKey(item.asItem()) + .map(ResourceKey::location) + .orElseThrow(() -> new IllegalStateException("Could not retrieve registry name for output.")); + return location(prefix + registryName.getPath()); + } + + private static ResourceLocation location(String id) { + return ResourceLocation.fromNamespaceAndPath(IronChests.MODID, id); + } + + private static TagKey tag(String name) { + return ItemTags.create(ResourceLocation.fromNamespaceAndPath("forge", name)); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/data/IronChestsSpriteSourceProvider.java b/src/main/java/com/progwml6/ironchest/common/data/IronChestsSpriteSourceProvider.java new file mode 100644 index 00000000..ce1f2785 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/IronChestsSpriteSourceProvider.java @@ -0,0 +1,22 @@ +package com.progwml6.ironchest.common.data; + +import com.progwml6.ironchest.IronChests; +import net.minecraft.client.renderer.texture.atlas.sources.DirectoryLister; +import net.minecraft.core.HolderLookup.Provider; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.common.data.SpriteSourceProvider; + +import java.util.concurrent.CompletableFuture; + +public class IronChestsSpriteSourceProvider extends SpriteSourceProvider { + + public IronChestsSpriteSourceProvider(PackOutput output, ExistingFileHelper fileHelper, CompletableFuture lookupProvider) { + super(output, lookupProvider, IronChests.MODID, fileHelper); + } + + @Override + protected void gather() { + atlas(CHESTS_ATLAS).addSource(new DirectoryLister("model", "model/")); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/data/loot/IronChestsBlockLoot.java b/src/main/java/com/progwml6/ironchest/common/data/loot/IronChestsBlockLoot.java new file mode 100644 index 00000000..6a45339c --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/loot/IronChestsBlockLoot.java @@ -0,0 +1,80 @@ +package com.progwml6.ironchest.common.data.loot; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.datacomponents.IronChestsDataComponents; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponents; +import net.minecraft.data.loot.BlockLootSubProvider; +import net.minecraft.world.flag.FeatureFlags; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.storage.loot.LootPool; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.entries.LootItem; +import net.minecraft.world.level.storage.loot.functions.CopyComponentsFunction; +import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; +import java.util.Set; + +public class IronChestsBlockLoot extends BlockLootSubProvider { + + + private final Set knownBlocks = new ReferenceOpenHashSet<>(); + + public IronChestsBlockLoot(HolderLookup.Provider provider) { + super(Collections.emptySet(), FeatureFlags.REGISTRY.allFlags(), provider); + } + + @Override + protected void generate() { + this.add(IronChestsBlocks.IRON_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.GOLD_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.DIAMOND_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.COPPER_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.CRYSTAL_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.OBSIDIAN_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.DIRT_CHEST.get(), this::createDirtChestNameableBlockEntityTable); + + // Trapped Chests + this.add(IronChestsBlocks.TRAPPED_IRON_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.TRAPPED_GOLD_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.TRAPPED_COPPER_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get(), this::createNameableBlockEntityTable); + this.add(IronChestsBlocks.TRAPPED_DIRT_CHEST.get(), this::createDirtChestNameableBlockEntityTable); + } + + protected LootTable.Builder createDirtChestNameableBlockEntityTable(Block pBlock) { + return LootTable.lootTable() + .withPool( + this.applyExplosionCondition( + pBlock, + LootPool.lootPool() + .setRolls(ConstantValue.exactly(1.0F)) + .add( + LootItem.lootTableItem(pBlock) + .apply( + CopyComponentsFunction.copyComponents(CopyComponentsFunction.Source.BLOCK_ENTITY) + .include(DataComponents.CUSTOM_NAME) + .include(IronChestsDataComponents.CHEST_PLACED_ALREADY.get()) + ) + ) + ) + ); + } + + @Override + protected void add(@NotNull Block block, @NotNull LootTable.Builder table) { + //Overwrite the core register method to add to our list of known blocks + super.add(block, table); + knownBlocks.add(block); + } + + @Override + protected Iterable getKnownBlocks() { + return knownBlocks; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/data/loot/IronChestsLootTableProvider.java b/src/main/java/com/progwml6/ironchest/common/data/loot/IronChestsLootTableProvider.java new file mode 100644 index 00000000..39fb227a --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/loot/IronChestsLootTableProvider.java @@ -0,0 +1,17 @@ +package com.progwml6.ironchest.common.data.loot; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.loot.LootTableProvider; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +public class IronChestsLootTableProvider extends LootTableProvider { + + public IronChestsLootTableProvider(PackOutput pOutput, CompletableFuture provider) { + super(pOutput, Collections.emptySet(), List.of(new SubProviderEntry(IronChestsBlockLoot::new, LootContextParamSets.BLOCK)), provider); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/data/loot/package-info.java b/src/main/java/com/progwml6/ironchest/common/data/loot/package-info.java new file mode 100644 index 00000000..baf861c8 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/loot/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.data.loot; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/data/package-info.java b/src/main/java/com/progwml6/ironchest/common/data/package-info.java new file mode 100644 index 00000000..6660673e --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/data/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.data; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/datacomponents/IronChestsDataComponents.java b/src/main/java/com/progwml6/ironchest/common/datacomponents/IronChestsDataComponents.java new file mode 100644 index 00000000..21a10baf --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/datacomponents/IronChestsDataComponents.java @@ -0,0 +1,14 @@ +package com.progwml6.ironchest.common.datacomponents; + +import com.mojang.serialization.Codec; +import com.progwml6.ironchest.IronChests; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.network.codec.ByteBufCodecs; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class IronChestsDataComponents { + public static final DeferredRegister> COMPONENTS = DeferredRegister.createDataComponents(IronChests.MODID); + + public static final DeferredHolder, DataComponentType> CHEST_PLACED_ALREADY = COMPONENTS.register("chest_placed_already", () -> DataComponentType.builder().persistent(Codec.BOOL).networkSynchronized(ByteBufCodecs.BOOL).build()); +} diff --git a/src/main/java/com/progwml6/ironchest/common/datacomponents/package-info.java b/src/main/java/com/progwml6/ironchest/common/datacomponents/package-info.java new file mode 100644 index 00000000..4dfd3c5b --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/datacomponents/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.datacomponents; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/inventory/DirtChestSlot.java b/src/main/java/com/progwml6/ironchest/common/inventory/DirtChestSlot.java new file mode 100644 index 00000000..ac42073f --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/inventory/DirtChestSlot.java @@ -0,0 +1,18 @@ +package com.progwml6.ironchest.common.inventory; + +import net.minecraft.world.Container; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Blocks; + +public class DirtChestSlot extends Slot { + + public DirtChestSlot(Container inventoryIn, int slotIndex, int xPosition, int yPosition) { + super(inventoryIn, slotIndex, xPosition, yPosition); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return stack.isEmpty() || stack.getItem() == Blocks.DIRT.asItem(); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/inventory/IronChestMenu.java b/src/main/java/com/progwml6/ironchest/common/inventory/IronChestMenu.java new file mode 100644 index 00000000..5b309234 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/inventory/IronChestMenu.java @@ -0,0 +1,163 @@ +package com.progwml6.ironchest.common.inventory; + +import com.progwml6.ironchest.common.block.IronChestsTypes; +import net.minecraft.world.Container; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; + +public class IronChestMenu extends AbstractContainerMenu { + + private final Container container; + + private final IronChestsTypes chestType; + + private IronChestMenu(@Nullable MenuType menuType, int containerId, Inventory playerInventory) { + this(menuType, containerId, playerInventory, new SimpleContainer(IronChestsTypes.WOOD.size), IronChestsTypes.WOOD); + } + + public static IronChestMenu createIronContainer(int containerId, Inventory playerInventory) { + return new IronChestMenu(IronChestsMenuTypes.IRON_CHEST.get(), containerId, playerInventory, new SimpleContainer(IronChestsTypes.IRON.size), IronChestsTypes.IRON); + } + + public static IronChestMenu createIronContainer(int containerId, Inventory playerInventory, Container inventory) { + return new IronChestMenu(IronChestsMenuTypes.IRON_CHEST.get(), containerId, playerInventory, inventory, IronChestsTypes.IRON); + } + + public static IronChestMenu createGoldContainer(int containerId, Inventory playerInventory) { + return new IronChestMenu(IronChestsMenuTypes.GOLD_CHEST.get(), containerId, playerInventory, new SimpleContainer(IronChestsTypes.GOLD.size), IronChestsTypes.GOLD); + } + + public static IronChestMenu createGoldContainer(int containerId, Inventory playerInventory, Container inventory) { + return new IronChestMenu(IronChestsMenuTypes.GOLD_CHEST.get(), containerId, playerInventory, inventory, IronChestsTypes.GOLD); + } + + public static IronChestMenu createDiamondContainer(int containerId, Inventory playerInventory) { + return new IronChestMenu(IronChestsMenuTypes.DIAMOND_CHEST.get(), containerId, playerInventory, new SimpleContainer(IronChestsTypes.DIAMOND.size), IronChestsTypes.DIAMOND); + } + + public static IronChestMenu createDiamondContainer(int containerId, Inventory playerInventory, Container inventory) { + return new IronChestMenu(IronChestsMenuTypes.DIAMOND_CHEST.get(), containerId, playerInventory, inventory, IronChestsTypes.DIAMOND); + } + + public static IronChestMenu createCrystalContainer(int containerId, Inventory playerInventory) { + return new IronChestMenu(IronChestsMenuTypes.CRYSTAL_CHEST.get(), containerId, playerInventory, new SimpleContainer(IronChestsTypes.CRYSTAL.size), IronChestsTypes.CRYSTAL); + } + + public static IronChestMenu createCrystalContainer(int containerId, Inventory playerInventory, Container inventory) { + return new IronChestMenu(IronChestsMenuTypes.CRYSTAL_CHEST.get(), containerId, playerInventory, inventory, IronChestsTypes.CRYSTAL); + } + + public static IronChestMenu createCopperContainer(int containerId, Inventory playerInventory) { + return new IronChestMenu(IronChestsMenuTypes.COPPER_CHEST.get(), containerId, playerInventory, new SimpleContainer(IronChestsTypes.COPPER.size), IronChestsTypes.COPPER); + } + + public static IronChestMenu createCopperContainer(int containerId, Inventory playerInventory, Container inventory) { + return new IronChestMenu(IronChestsMenuTypes.COPPER_CHEST.get(), containerId, playerInventory, inventory, IronChestsTypes.COPPER); + } + + public static IronChestMenu createObsidianContainer(int containerId, Inventory playerInventory) { + return new IronChestMenu(IronChestsMenuTypes.OBSIDIAN_CHEST.get(), containerId, playerInventory, new SimpleContainer(IronChestsTypes.OBSIDIAN.size), IronChestsTypes.OBSIDIAN); + } + + public static IronChestMenu createObsidianContainer(int containerId, Inventory playerInventory, Container inventory) { + return new IronChestMenu(IronChestsMenuTypes.OBSIDIAN_CHEST.get(), containerId, playerInventory, inventory, IronChestsTypes.OBSIDIAN); + } + + public static IronChestMenu createDirtContainer(int containerId, Inventory playerInventory) { + return new IronChestMenu(IronChestsMenuTypes.DIRT_CHEST.get(), containerId, playerInventory, new SimpleContainer(IronChestsTypes.DIRT.size), IronChestsTypes.DIRT); + } + + public static IronChestMenu createDirtContainer(int containerId, Inventory playerInventory, Container inventory) { + return new IronChestMenu(IronChestsMenuTypes.DIRT_CHEST.get(), containerId, playerInventory, inventory, IronChestsTypes.DIRT); + } + + protected IronChestMenu(@Nullable MenuType menuType, int containerId, Inventory playerInventory, Container inventory, IronChestsTypes chestType) { + super(menuType, containerId); + + checkContainerSize(inventory, chestType.size); + + this.container = inventory; + this.chestType = chestType; + + inventory.startOpen(playerInventory.player); + + if (chestType == IronChestsTypes.DIRT) { + this.addSlot(new DirtChestSlot(inventory, 0, 12 + 4 * 18, 8 + 2 * 18)); + } else { + for (int chestRow = 0; chestRow < chestType.getRowCount(); chestRow++) { + for (int chestCol = 0; chestCol < chestType.rowLength; chestCol++) { + this.addSlot(new Slot(inventory, chestCol + chestRow * chestType.rowLength, 12 + chestCol * 18, 18 + chestRow * 18)); + } + } + } + + int leftCol = (chestType.xSize - 162) / 2 + 1; + + for (int playerInvRow = 0; playerInvRow < 3; playerInvRow++) { + for (int playerInvCol = 0; playerInvCol < 9; playerInvCol++) { + this.addSlot(new Slot(playerInventory, playerInvCol + playerInvRow * 9 + 9, leftCol + playerInvCol * 18, chestType.ySize - (4 - playerInvRow) * 18 - 10)); + } + + } + + for (int hotHarSlot = 0; hotHarSlot < 9; hotHarSlot++) { + this.addSlot(new Slot(playerInventory, hotHarSlot, leftCol + hotHarSlot * 18, chestType.ySize - 24)); + } + } + + @Override + public boolean stillValid(Player player) { + return this.container.stillValid(player); + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + ItemStack itemstack = ItemStack.EMPTY; + Slot slot = this.slots.get(index); + + if (slot != null && slot.hasItem()) { + ItemStack itemstack1 = slot.getItem(); + itemstack = itemstack1.copy(); + + if (index < this.chestType.size) { + if (!this.moveItemStackTo(itemstack1, this.chestType.size, this.slots.size(), true)) { + return ItemStack.EMPTY; + } + } else if (!this.moveItemStackTo(itemstack1, 0, this.chestType.size, false)) { + return ItemStack.EMPTY; + } + + if (itemstack1.isEmpty()) { + slot.set(ItemStack.EMPTY); + } else { + slot.setChanged(); + } + } + + return itemstack; + } + + @Override + public void removed(Player playerIn) { + super.removed(playerIn); + this.container.stopOpen(playerIn); + } + + public Container getContainer() { + return this.container; + } + + @OnlyIn(Dist.CLIENT) + public IronChestsTypes getChestType() { + return this.chestType; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/inventory/IronChestsMenuTypes.java b/src/main/java/com/progwml6/ironchest/common/inventory/IronChestsMenuTypes.java new file mode 100644 index 00000000..57591f7d --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/inventory/IronChestsMenuTypes.java @@ -0,0 +1,27 @@ +package com.progwml6.ironchest.common.inventory; + +import com.progwml6.ironchest.IronChests; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.flag.FeatureFlags; +import net.minecraft.world.inventory.MenuType; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class IronChestsMenuTypes { + + public static final DeferredRegister> CONTAINERS = DeferredRegister.create(Registries.MENU, IronChests.MODID); + + public static final DeferredHolder, MenuType> IRON_CHEST = CONTAINERS.register("iron_chest", () -> new MenuType<>(IronChestMenu::createIronContainer, FeatureFlags.REGISTRY.allFlags())); + + public static final DeferredHolder, MenuType> GOLD_CHEST = CONTAINERS.register("gold_chest", () -> new MenuType<>(IronChestMenu::createGoldContainer, FeatureFlags.REGISTRY.allFlags())); + + public static final DeferredHolder, MenuType> DIAMOND_CHEST = CONTAINERS.register("diamond_chest", () -> new MenuType<>(IronChestMenu::createDiamondContainer, FeatureFlags.REGISTRY.allFlags())); + + public static final DeferredHolder, MenuType> CRYSTAL_CHEST = CONTAINERS.register("crystal_chest", () -> new MenuType<>(IronChestMenu::createCrystalContainer, FeatureFlags.REGISTRY.allFlags())); + + public static final DeferredHolder, MenuType> COPPER_CHEST = CONTAINERS.register("copper_chest", () -> new MenuType<>(IronChestMenu::createCopperContainer, FeatureFlags.REGISTRY.allFlags())); + + public static final DeferredHolder, MenuType> OBSIDIAN_CHEST = CONTAINERS.register("obsidian_chest", () -> new MenuType<>(IronChestMenu::createObsidianContainer, FeatureFlags.REGISTRY.allFlags())); + + public static final DeferredHolder, MenuType> DIRT_CHEST = CONTAINERS.register("dirt_chest", () -> new MenuType<>(IronChestMenu::createDirtContainer, FeatureFlags.REGISTRY.allFlags())); +} diff --git a/src/main/java/com/progwml6/ironchest/common/inventory/package-info.java b/src/main/java/com/progwml6/ironchest/common/inventory/package-info.java new file mode 100644 index 00000000..3dfff890 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/inventory/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.inventory; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/item/ChestUpgradeItem.java b/src/main/java/com/progwml6/ironchest/common/item/ChestUpgradeItem.java new file mode 100644 index 00000000..5e9a525f --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/item/ChestUpgradeItem.java @@ -0,0 +1,173 @@ +package com.progwml6.ironchest.common.item; + +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.regular.AbstractIronChestBlock; +import com.progwml6.ironchest.common.block.regular.entity.AbstractIronChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.AbstractTrappedIronChestBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.NonNullList; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.ChestBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.ChestBlockEntity; +import net.minecraft.world.level.block.entity.TrappedChestBlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +public class ChestUpgradeItem extends Item { + + private final IronChestsUpgradeType type; + + public ChestUpgradeItem(IronChestsUpgradeType type, Properties properties) { + super(properties); + this.type = type; + } + + @Override + public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { + Player entityPlayer = context.getPlayer(); + BlockPos blockPos = context.getClickedPos(); + Level world = context.getLevel(); + ItemStack itemStack = context.getItemInHand(); + boolean passed = false; + + if (world.isClientSide) { + return InteractionResult.PASS; + } + + if (entityPlayer == null) { + return InteractionResult.PASS; + } + + if (this.type.canUpgrade(IronChestsTypes.WOOD)) { + if (world.getBlockState(blockPos).getBlock() instanceof ChestBlock) { + passed = true; + } + } else { + for (Block block : IronChestsTypes.get(this.type.source)) { + if (!passed) + passed = world.getBlockState(blockPos).getBlock().defaultBlockState() == block.defaultBlockState(); + } + } + + if (!passed) { + return InteractionResult.PASS; + } + + + BlockEntity tileEntity = world.getBlockEntity(blockPos); + + if (this.type.canUpgrade(IronChestsTypes.WOOD)) { + if (!(tileEntity instanceof ChestBlockEntity)) { + return InteractionResult.PASS; + } + } + + AbstractIronChestBlockEntity newChest = null; + Component customName = null; + NonNullList chestContents = NonNullList.withSize(27, ItemStack.EMPTY); + Direction chestFacing = Direction.NORTH; + BlockState iBlockState = IronChestsBlocks.COPPER_CHEST.get().defaultBlockState(); + + if (tileEntity != null) { + if (tileEntity instanceof AbstractIronChestBlockEntity chest) { + BlockState chestState = world.getBlockState(blockPos); + + if (AbstractIronChestBlockEntity.getOpenCount(world, blockPos) > 0) { + return InteractionResult.PASS; + } + + if (!chest.canOpen(entityPlayer)) { + return InteractionResult.PASS; + } + + boolean trapped = tileEntity instanceof AbstractTrappedIronChestBlockEntity; + + if (trapped) { + iBlockState = IronChestsTypes.get(this.type.target).get(1).defaultBlockState(); + } else { + iBlockState = IronChestsTypes.get(this.type.target).get(0).defaultBlockState(); + } + + chestContents = chest.getItems(); + chestFacing = chestState.getValue(AbstractIronChestBlock.FACING); + customName = chest.getCustomName(); + iBlockState = iBlockState.setValue(AbstractIronChestBlock.FACING, chestFacing); + + newChest = this.type.target.makeEntity(blockPos, iBlockState, trapped); + } else if (tileEntity instanceof ChestBlockEntity chest) { + BlockState chestState = world.getBlockState(blockPos); + chestFacing = chestState.getValue(ChestBlock.FACING); + + if (ChestBlockEntity.getOpenCount(world, blockPos) > 0) { + return InteractionResult.PASS; + } + + if (!chest.canOpen(entityPlayer)) { + return InteractionResult.PASS; + } + + if (!this.type.canUpgrade(IronChestsTypes.WOOD)) { + return InteractionResult.PASS; + } + + chestContents = NonNullList.withSize(chest.getContainerSize(), ItemStack.EMPTY); + + for (int slot = 0; slot < chestContents.size(); slot++) { + chestContents.set(slot, chest.getItem(slot)); + } + + customName = chest.getCustomName(); + + boolean trapped = tileEntity instanceof TrappedChestBlockEntity; + + if (trapped) { + iBlockState = IronChestsTypes.get(this.type.target).get(1).defaultBlockState(); + } else { + iBlockState = IronChestsTypes.get(this.type.target).get(0).defaultBlockState(); + } + + iBlockState = iBlockState.setValue(AbstractIronChestBlock.FACING, chestFacing); + + newChest = this.type.target.makeEntity(blockPos, iBlockState, trapped); + } + } + + if (newChest == null) { + return InteractionResult.PASS; + } + + world.removeBlockEntity(blockPos); + world.removeBlock(blockPos, false); + + world.setBlock(blockPos, iBlockState, 3); + world.setBlockEntity(newChest); + + world.sendBlockUpdated(blockPos, iBlockState, iBlockState, 3); + + BlockEntity tileEntity2 = world.getBlockEntity(blockPos); + + if (tileEntity2 instanceof AbstractIronChestBlockEntity) { + if (customName != null) { + ((AbstractIronChestBlockEntity) tileEntity2).name = customName; + } + + ((AbstractIronChestBlockEntity) tileEntity2).setItems(chestContents); + } + + if (!entityPlayer.getAbilities().instabuild) { + itemStack.shrink(1); + } + + return InteractionResult.SUCCESS; + } + +} diff --git a/src/main/java/com/progwml6/ironchest/common/item/IronChestBlockItem.java b/src/main/java/com/progwml6/ironchest/common/item/IronChestBlockItem.java new file mode 100644 index 00000000..fec8bd9b --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/item/IronChestBlockItem.java @@ -0,0 +1,79 @@ +package com.progwml6.ironchest.common.item; + +import com.progwml6.ironchest.client.model.inventory.IronChestItemStackRenderer; +import com.progwml6.ironchest.common.block.IronChestsBlocks; +import com.progwml6.ironchest.common.block.IronChestsTypes; +import com.progwml6.ironchest.common.block.regular.entity.CopperChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.CrystalChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.DiamondChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.DirtChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.GoldChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.IronChestBlockEntity; +import com.progwml6.ironchest.common.block.regular.entity.ObsidianChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCopperChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedCrystalChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDiamondChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedDirtChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedGoldChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedIronChestBlockEntity; +import com.progwml6.ironchest.common.block.trapped.entity.TrappedObsidianChestBlockEntity; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; + +import java.util.function.Consumer; +import java.util.function.Supplier; + +public class IronChestBlockItem extends BlockItem { + + protected IronChestsTypes type; + + protected Boolean trapped; + + public IronChestBlockItem(Block block, Properties properties, IronChestsTypes type, Boolean trapped) { + super(block, properties); + + this.type = type; + this.trapped = trapped; + } + + @Override + public void initializeClient(Consumer consumer) { + super.initializeClient(consumer); + + consumer.accept(new IClientItemExtensions() { + @Override + public BlockEntityWithoutLevelRenderer getCustomRenderer() { + Supplier modelToUse; + + if (trapped) { + switch (type) { + case GOLD -> modelToUse = () -> new TrappedGoldChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.TRAPPED_GOLD_CHEST.get().defaultBlockState()); + case DIAMOND -> modelToUse = () -> new TrappedDiamondChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.TRAPPED_DIAMOND_CHEST.get().defaultBlockState()); + case COPPER -> modelToUse = () -> new TrappedCopperChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.TRAPPED_COPPER_CHEST.get().defaultBlockState()); + case CRYSTAL -> modelToUse = () -> new TrappedCrystalChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.TRAPPED_CRYSTAL_CHEST.get().defaultBlockState()); + case OBSIDIAN -> modelToUse = () -> new TrappedObsidianChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.TRAPPED_OBSIDIAN_CHEST.get().defaultBlockState()); + case DIRT -> modelToUse = () -> new TrappedDirtChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.TRAPPED_DIRT_CHEST.get().defaultBlockState()); + default -> modelToUse = () -> new TrappedIronChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.TRAPPED_IRON_CHEST.get().defaultBlockState()); + } + } else { + switch (type) { + case GOLD -> modelToUse = () -> new GoldChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.GOLD_CHEST.get().defaultBlockState()); + case DIAMOND -> modelToUse = () -> new DiamondChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.DIAMOND_CHEST.get().defaultBlockState()); + case COPPER -> modelToUse = () -> new CopperChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.COPPER_CHEST.get().defaultBlockState()); + case CRYSTAL -> modelToUse = () -> new CrystalChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.CRYSTAL_CHEST.get().defaultBlockState()); + case OBSIDIAN -> modelToUse = () -> new ObsidianChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.OBSIDIAN_CHEST.get().defaultBlockState()); + case DIRT -> modelToUse = () -> new DirtChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.DIRT_CHEST.get().defaultBlockState()); + default -> modelToUse = () -> new IronChestBlockEntity(BlockPos.ZERO, IronChestsBlocks.IRON_CHEST.get().defaultBlockState()); + } + } + + return new IronChestItemStackRenderer(Minecraft.getInstance().getBlockEntityRenderDispatcher(), Minecraft.getInstance().getEntityModels(), modelToUse); + } + }); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/item/IronChestsItems.java b/src/main/java/com/progwml6/ironchest/common/item/IronChestsItems.java new file mode 100644 index 00000000..b5375474 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/item/IronChestsItems.java @@ -0,0 +1,26 @@ +package com.progwml6.ironchest.common.item; + +import com.google.common.collect.ImmutableMap; +import com.progwml6.ironchest.IronChests; +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.Arrays; +import java.util.Locale; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +public class IronChestsItems { + + public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(IronChests.MODID); + + public static final ImmutableMap> UPGRADES = ImmutableMap.copyOf(Arrays.stream(IronChestsUpgradeType.values()) + .collect(Collectors.toMap(Function.identity(), type -> register(type.name().toLowerCase(Locale.ROOT) + "_chest_upgrade", + () -> new ChestUpgradeItem(type, new Item.Properties().stacksTo(1)))))); + + private static DeferredItem register(final String name, final Supplier sup) { + return ITEMS.register(name, sup); + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/item/IronChestsUpgradeType.java b/src/main/java/com/progwml6/ironchest/common/item/IronChestsUpgradeType.java new file mode 100644 index 00000000..898ead09 --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/item/IronChestsUpgradeType.java @@ -0,0 +1,37 @@ +package com.progwml6.ironchest.common.item; + +import com.progwml6.ironchest.common.Util; +import com.progwml6.ironchest.common.block.IronChestsTypes; + +import static com.progwml6.ironchest.common.block.IronChestsTypes.COPPER; +import static com.progwml6.ironchest.common.block.IronChestsTypes.CRYSTAL; +import static com.progwml6.ironchest.common.block.IronChestsTypes.DIAMOND; +import static com.progwml6.ironchest.common.block.IronChestsTypes.GOLD; +import static com.progwml6.ironchest.common.block.IronChestsTypes.IRON; +import static com.progwml6.ironchest.common.block.IronChestsTypes.OBSIDIAN; +import static com.progwml6.ironchest.common.block.IronChestsTypes.WOOD; + +public enum IronChestsUpgradeType { + + IRON_TO_GOLD(IRON, GOLD), + GOLD_TO_DIAMOND(GOLD, DIAMOND), + COPPER_TO_IRON(COPPER, IRON), + DIAMOND_TO_CRYSTAL(DIAMOND, CRYSTAL), + WOOD_TO_IRON(WOOD, IRON), + WOOD_TO_COPPER(WOOD, COPPER), + DIAMOND_TO_OBSIDIAN(DIAMOND, OBSIDIAN); + + public final String name; + public final IronChestsTypes source; + public final IronChestsTypes target; + + IronChestsUpgradeType(IronChestsTypes source, IronChestsTypes target) { + this.name = Util.toEnglishName(this.name()); + this.source = source; + this.target = target; + } + + public boolean canUpgrade(IronChestsTypes from) { + return from == this.source; + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/item/package-info.java b/src/main/java/com/progwml6/ironchest/common/item/package-info.java new file mode 100644 index 00000000..037c3d9e --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/item/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.item; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/network/TopStacksSyncPacket.java b/src/main/java/com/progwml6/ironchest/common/network/TopStacksSyncPacket.java new file mode 100644 index 00000000..30988ebf --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/network/TopStacksSyncPacket.java @@ -0,0 +1,73 @@ +package com.progwml6.ironchest.common.network; + +import com.progwml6.ironchest.IronChests; +import com.progwml6.ironchest.common.block.entity.ICrystalChest; +import net.minecraft.client.Minecraft; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.neoforged.neoforge.network.handling.IPayloadContext; + +import java.util.List; + +public class TopStacksSyncPacket implements CustomPacketPayload { + + public static final Type TYPE = new Type<>(ResourceLocation.fromNamespaceAndPath(IronChests.MODID, "top_stacks")); + public static final StreamCodec STREAM_CODEC = CustomPacketPayload.codec(TopStacksSyncPacket::write, TopStacksSyncPacket::new); + + private final BlockPos blockPos; + private final NonNullList topItemStacks; + + public TopStacksSyncPacket(BlockPos blockPos, NonNullList topItemStacks) { + this.blockPos = blockPos; + this.topItemStacks = topItemStacks; + } + + public TopStacksSyncPacket(RegistryFriendlyByteBuf buf) { + this.blockPos = buf.readBlockPos(); + List topItemStacks = ItemStack.OPTIONAL_STREAM_CODEC.apply(ByteBufCodecs.list()).decode(buf); + + this.topItemStacks = NonNullList.withSize(topItemStacks.size(), ItemStack.EMPTY); + + for (int i = 0; i < topItemStacks.size(); i++) { + if (i < this.topItemStacks.size()) { + this.topItemStacks.set(i, topItemStacks.get(i)); + } + } + } + + public void write(RegistryFriendlyByteBuf buf) { + buf.writeBlockPos(this.blockPos); + ItemStack.OPTIONAL_STREAM_CODEC.apply(ByteBufCodecs.list()).encode(buf, this.topItemStacks); + } + + @Override + public Type type() { + return TYPE; + } + + public static void handle(TopStacksSyncPacket msg, IPayloadContext ctx) { + if (ctx.flow().isClientbound()) { + ctx.enqueueWork(() -> { + Level level = ctx.player().level(); + + BlockEntity blockEntity = level.getBlockEntity(msg.blockPos); + + if (blockEntity != null) { + if (blockEntity instanceof ICrystalChest) { + ((ICrystalChest) blockEntity).receiveMessageFromServer(msg.topItemStacks); + + Minecraft.getInstance().levelRenderer.blockChanged(null, msg.blockPos, null, null, 0); + } + } + }); + } + } +} diff --git a/src/main/java/com/progwml6/ironchest/common/network/package-info.java b/src/main/java/com/progwml6/ironchest/common/network/package-info.java new file mode 100644 index 00000000..0c75c7ef --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/network/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common.network; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/common/package-info.java b/src/main/java/com/progwml6/ironchest/common/package-info.java new file mode 100644 index 00000000..1ed6007d --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/common/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest.common; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/progwml6/ironchest/package-info.java b/src/main/java/com/progwml6/ironchest/package-info.java new file mode 100644 index 00000000..567fa08d --- /dev/null +++ b/src/main/java/com/progwml6/ironchest/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package com.progwml6.ironchest; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/cpw/mods/ironchest/IronChest.java b/src/main/java/cpw/mods/ironchest/IronChest.java deleted file mode 100755 index 45f0de29..00000000 --- a/src/main/java/cpw/mods/ironchest/IronChest.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest; - -import java.util.Properties; - -import cpw.mods.ironchest.common.CommonProxy; -import cpw.mods.ironchest.common.lib.BlockLists; -import cpw.mods.ironchest.common.network.MessageCrystalChestSync; -import cpw.mods.ironchest.common.network.MessageCrystalShulkerSync; -import cpw.mods.ironchest.common.util.MissingMappingsHandler; -import cpw.mods.ironchest.common.util.OcelotsSitOnChestsHandler; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.Mod.EventHandler; -import net.minecraftforge.fml.common.Mod.Instance; -import net.minecraftforge.fml.common.SidedProxy; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.network.NetworkRegistry; -import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import net.minecraftforge.fml.relauncher.Side; - -@Mod(modid = IronChest.MOD_ID, name = "Iron Chests", dependencies = "required-after:forge@[14.21.0.2359,)", acceptedMinecraftVersions = "[1.12, 1.13)") -public class IronChest -{ - public static final String MOD_ID = "ironchest"; - - @Instance(IronChest.MOD_ID) - public static IronChest instance; - - @SidedProxy(clientSide = "cpw.mods.ironchest.client.ClientProxy", serverSide = "cpw.mods.ironchest.common.CommonProxy") - public static CommonProxy proxy; - - public static final SimpleNetworkWrapper packetHandler = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID); - - @EventHandler - public void preInit(FMLPreInitializationEvent event) - { - Properties properties = event.getVersionProperties(); - - if (properties != null) - { - String major = properties.getProperty("IronChest.build.major.number"); - String minor = properties.getProperty("IronChest.build.minor.number"); - String rev = properties.getProperty("IronChest.build.revision.number"); - String build = properties.getProperty("IronChest.build.number"); - - event.getModMetadata().version = String.format("%s.%s.%s build %s", major, minor, rev, build); - } - - proxy.preInit(); - - NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy); - - MinecraftForge.EVENT_BUS.register(new OcelotsSitOnChestsHandler()); - - MinecraftForge.EVENT_BUS.register(new MissingMappingsHandler()); - } - - @EventHandler - public void init(FMLInitializationEvent event) - { - int messageId = 0; - packetHandler.registerMessage(MessageCrystalChestSync.Handler.class, MessageCrystalChestSync.class, messageId++, Side.CLIENT); - packetHandler.registerMessage(MessageCrystalShulkerSync.Handler.class, MessageCrystalShulkerSync.class, messageId++, Side.CLIENT); - - BlockLists.createShulkerItemList(); - } - -} diff --git a/src/main/java/cpw/mods/ironchest/client/ClientProxy.java b/src/main/java/cpw/mods/ironchest/client/ClientProxy.java deleted file mode 100755 index 881d277b..00000000 --- a/src/main/java/cpw/mods/ironchest/client/ClientProxy.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.client; - -import cpw.mods.ironchest.client.gui.chest.GUIChest; -import cpw.mods.ironchest.client.gui.shulker.GUIShulkerChest; -import cpw.mods.ironchest.client.renderer.chest.TileEntityIronChestRenderer; -import cpw.mods.ironchest.client.renderer.shulker.TileEntityIronShulkerBoxRenderer; -import cpw.mods.ironchest.common.CommonProxy; -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.client.registry.ClientRegistry; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ClientProxy extends CommonProxy -{ - @Override - public void preInit() - { - for (IronChestType type : IronChestType.values()) - { - ClientRegistry.bindTileEntitySpecialRenderer(type.clazz, new TileEntityIronChestRenderer()); - } - - for (IronShulkerBoxType type : IronShulkerBoxType.values()) - { - ClientRegistry.bindTileEntitySpecialRenderer(type.clazz, new TileEntityIronShulkerBoxRenderer()); - } - } - - @Override - public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) - { - TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); - - if (te != null && te instanceof TileEntityIronChest) - { - return GUIChest.GUI.buildGUI(IronChestType.values()[ID], player.inventory, (TileEntityIronChest) te); - } - else if (te != null && te instanceof TileEntityIronShulkerBox) - { - return GUIShulkerChest.GUI.buildGUI(IronShulkerBoxType.values()[ID], player.inventory, (TileEntityIronShulkerBox) te); - } - else - { - return null; - } - } - - @Override - public World getClientWorld() - { - return Minecraft.getMinecraft().world; - } -} diff --git a/src/main/java/cpw/mods/ironchest/client/gui/chest/GUIChest.java b/src/main/java/cpw/mods/ironchest/client/gui/chest/GUIChest.java deleted file mode 100755 index 91e44845..00000000 --- a/src/main/java/cpw/mods/ironchest/client/gui/chest/GUIChest.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.client.gui.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.gui.chest.ContainerIronChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.util.ResourceLocation; - -public class GUIChest extends GuiContainer -{ - public enum ResourceList - { - //@formatter:off - IRON(new ResourceLocation("ironchest", "textures/gui/iron_container.png")), - COPPER(new ResourceLocation("ironchest", "textures/gui/copper_container.png")), - SILVER(new ResourceLocation("ironchest", "textures/gui/silver_container.png")), - GOLD(new ResourceLocation("ironchest", "textures/gui/gold_container.png")), - DIAMOND(new ResourceLocation("ironchest", "textures/gui/diamond_container.png")), - DIRT(new ResourceLocation("ironchest", "textures/gui/dirt_container.png")); - //@formatter:on - public final ResourceLocation location; - - ResourceList(ResourceLocation loc) - { - this.location = loc; - } - } - - public enum GUI - { - //@formatter:off - IRON(184, 202, ResourceList.IRON, IronChestType.IRON), - GOLD(184, 256, ResourceList.GOLD, IronChestType.GOLD), - DIAMOND(238, 256, ResourceList.DIAMOND, IronChestType.DIAMOND), - COPPER(184, 184, ResourceList.COPPER, IronChestType.COPPER), - SILVER(184, 238, ResourceList.SILVER, IronChestType.SILVER), - CRYSTAL(238, 256, ResourceList.DIAMOND, IronChestType.CRYSTAL), - OBSIDIAN(238, 256, ResourceList.DIAMOND,IronChestType.OBSIDIAN), - DIRTCHEST9000(184, 184, ResourceList.DIRT, IronChestType.DIRTCHEST9000); - //@formatter:on - - private int xSize; - - private int ySize; - - private ResourceList guiResourceList; - - private IronChestType mainType; - - GUI(int xSize, int ySize, ResourceList guiResourceList, IronChestType mainType) - { - this.xSize = xSize; - this.ySize = ySize; - this.guiResourceList = guiResourceList; - this.mainType = mainType; - } - - protected Container makeContainer(IInventory player, IInventory chest) - { - return new ContainerIronChest(player, chest, this.mainType, this.xSize, this.ySize); - } - - public static GUIChest buildGUI(IronChestType type, IInventory playerInventory, TileEntityIronChest chestInventory) - { - return new GUIChest(values()[chestInventory.getType().ordinal()], playerInventory, chestInventory); - } - } - - private GUI type; - - private GUIChest(GUI type, IInventory player, IInventory chest) - { - super(type.makeContainer(player, chest)); - this.type = type; - this.xSize = type.xSize; - this.ySize = type.ySize; - this.allowUserInput = false; - } - - /** - * Draws the screen and all the components in it. - */ - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - super.drawScreen(mouseX, mouseY, partialTicks); - this.renderHoveredToolTip(mouseX, mouseY); - } - - /** - * Draws the background layer of this container (behind the items). - */ - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - this.mc.getTextureManager().bindTexture(this.type.guiResourceList.location); - - int x = (this.width - this.xSize) / 2; - int y = (this.height - this.ySize) / 2; - - this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); - } -} diff --git a/src/main/java/cpw/mods/ironchest/client/gui/shulker/GUIShulkerChest.java b/src/main/java/cpw/mods/ironchest/client/gui/shulker/GUIShulkerChest.java deleted file mode 100644 index 041afe8b..00000000 --- a/src/main/java/cpw/mods/ironchest/client/gui/shulker/GUIShulkerChest.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.client.gui.shulker; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.gui.shulker.ContainerIronShulkerBox; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.util.ResourceLocation; - -public class GUIShulkerChest extends GuiContainer -{ - public enum ResourceList - { - //@formatter:off - IRON(new ResourceLocation("ironchest", "textures/gui/iron_container.png")), - COPPER(new ResourceLocation("ironchest", "textures/gui/copper_container.png")), - SILVER(new ResourceLocation("ironchest", "textures/gui/silver_container.png")), - GOLD(new ResourceLocation("ironchest", "textures/gui/gold_container.png")), - DIAMOND(new ResourceLocation("ironchest", "textures/gui/diamond_container.png")); - //@formatter:on - - public final ResourceLocation location; - - ResourceList(ResourceLocation loc) - { - this.location = loc; - } - } - - public enum GUI - { - //@formatter:off - IRON(184, 202, ResourceList.IRON, IronShulkerBoxType.IRON), - GOLD(184, 256, ResourceList.GOLD, IronShulkerBoxType.GOLD), - DIAMOND(238, 256, ResourceList.DIAMOND, IronShulkerBoxType.DIAMOND), - COPPER(184, 184, ResourceList.COPPER, IronShulkerBoxType.COPPER), - SILVER(184, 238, ResourceList.SILVER, IronShulkerBoxType.SILVER), - CRYSTAL(238, 256, ResourceList.DIAMOND, IronShulkerBoxType.CRYSTAL), - OBSIDIAN(238, 256, ResourceList.DIAMOND,IronShulkerBoxType.OBSIDIAN); - //@formatter:on - - private int xSize; - - private int ySize; - - private ResourceList guiResourceList; - - private IronShulkerBoxType mainType; - - GUI(int xSize, int ySize, ResourceList guiResourceList, IronShulkerBoxType mainType) - { - this.xSize = xSize; - this.ySize = ySize; - this.guiResourceList = guiResourceList; - this.mainType = mainType; - } - - protected Container makeContainer(IInventory player, IInventory shulker) - { - return new ContainerIronShulkerBox(player, shulker, this.mainType, this.xSize, this.ySize); - } - - public static GUIShulkerChest buildGUI(IronShulkerBoxType type, IInventory playerInventory, TileEntityIronShulkerBox shulkerInventory) - { - return new GUIShulkerChest(values()[shulkerInventory.getType().ordinal()], playerInventory, shulkerInventory); - } - } - - private GUI type; - - private GUIShulkerChest(GUI type, IInventory player, IInventory shulker) - { - super(type.makeContainer(player, shulker)); - - this.type = type; - this.xSize = type.xSize; - this.ySize = type.ySize; - this.allowUserInput = false; - } - - /** - * Draws the screen and all the components in it. - */ - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) - { - this.drawDefaultBackground(); - super.drawScreen(mouseX, mouseY, partialTicks); - this.renderHoveredToolTip(mouseX, mouseY); - } - - /** - * Draws the background layer of this container (behind the items). - */ - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - this.mc.getTextureManager().bindTexture(this.type.guiResourceList.location); - - int x = (this.width - this.xSize) / 2; - int y = (this.height - this.ySize) / 2; - - this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); - } -} diff --git a/src/main/java/cpw/mods/ironchest/client/renderer/chest/TileEntityIronChestRenderer.java b/src/main/java/cpw/mods/ironchest/client/renderer/chest/TileEntityIronChestRenderer.java deleted file mode 100755 index c466cabd..00000000 --- a/src/main/java/cpw/mods/ironchest/client/renderer/chest/TileEntityIronChestRenderer.java +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.client.renderer.chest; - -import java.util.Random; - -import com.google.common.primitives.SignedBytes; - -import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.core.IronChestBlocks; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelChest; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderEntityItem; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; - -public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer -{ - private Random random; - - private RenderEntityItem itemRenderer; - - private ModelChest model; - - //@formatter:off - private static float[][] shifts = { { 0.3F, 0.45F, 0.3F }, { 0.7F, 0.45F, 0.3F }, { 0.3F, 0.45F, 0.7F }, { 0.7F, 0.45F, 0.7F }, { 0.3F, 0.1F, 0.3F }, { 0.7F, 0.1F, 0.3F }, { 0.3F, 0.1F, 0.7F }, { 0.7F, 0.1F, 0.7F }, { 0.5F, 0.32F, 0.5F } }; - //@formatter:on - - private static EntityItem customitem = new EntityItem(null); - - private static float halfPI = (float) (Math.PI / 2D); - - public TileEntityIronChestRenderer() - { - this.model = new ModelChest(); - this.random = new Random(); - } - - @Override - public void render(TileEntityIronChest te, double x, double y, double z, float partialTicks, int destroyStage, float partial) - { - if (te == null || te.isInvalid()) - { - return; - } - - EnumFacing facing = EnumFacing.SOUTH; - IronChestType type = te.getType(); - - if (te.hasWorld() && te.getWorld().getBlockState(te.getPos()).getBlock() == IronChestBlocks.ironChestBlock) - { - facing = te.getFacing(); - IBlockState state = te.getWorld().getBlockState(te.getPos()); - type = state.getValue(BlockIronChest.VARIANT_PROP); - } - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - GlStateManager.matrixMode(5890); - GlStateManager.pushMatrix(); - GlStateManager.scale(4F, 4F, 1F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(5888); - } - else - { - this.bindTexture(type.modelTexture); - } - - GlStateManager.pushMatrix(); - - if (type == IronChestType.CRYSTAL) - { - GlStateManager.disableCull(); - } - - GlStateManager.color(1F, 1F, 1F, 1F); - GlStateManager.translate((float) x, (float) y + 1F, (float) z + 1F); - GlStateManager.scale(1F, -1F, -1F); - GlStateManager.translate(0.5F, 0.5F, 0.5F); - - switch (facing) - { - case NORTH: - { - GlStateManager.rotate(180F, 0F, 1F, 0F); - break; - } - case SOUTH: - { - GlStateManager.rotate(0F, 0F, 1F, 0F); - break; - } - case WEST: - { - GlStateManager.rotate(90F, 0F, 1F, 0F); - break; - } - case EAST: - { - GlStateManager.rotate(270F, 0F, 1F, 0F); - break; - } - default: - { - GlStateManager.rotate(0F, 0F, 1F, 0F); - break; - } - } - - GlStateManager.translate(-0.5F, -0.5F, -0.5F); - - float lidangle = te.prevLidAngle + (te.lidAngle - te.prevLidAngle) * partialTicks; - - lidangle = 1F - lidangle; - lidangle = 1F - lidangle * lidangle * lidangle; - - if (type.isTransparent()) - { - GlStateManager.scale(1F, 0.99F, 1F); - } - - this.model.chestLid.rotateAngleX = -lidangle * halfPI; - // Render the chest itself - this.model.renderAll(); - - if (destroyStage >= 0) - { - GlStateManager.matrixMode(5890); - GlStateManager.popMatrix(); - GlStateManager.matrixMode(5888); - } - - if (type == IronChestType.CRYSTAL) - { - GlStateManager.enableCull(); - } - - GlStateManager.popMatrix(); - GlStateManager.color(1F, 1F, 1F, 1F); - - if (type.isTransparent() && te.getDistanceSq(this.rendererDispatcher.entityX, this.rendererDispatcher.entityY, this.rendererDispatcher.entityZ) < 128d) - { - this.random.setSeed(254L); - - float shiftX; - float shiftY; - float shiftZ; - int shift = 0; - float blockScale = 0.70F; - float timeD = (float) (360D * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL) - partialTicks; - - if (te.getTopItems().get(1).isEmpty()) - { - shift = 8; - blockScale = 0.85F; - } - - GlStateManager.pushMatrix(); - GlStateManager.translate((float) x, (float) y, (float) z); - - customitem.setWorld(this.getWorld()); - customitem.hoverStart = 0F; - - for (ItemStack item : te.getTopItems()) - { - if (shift > shifts.length) - { - break; - } - - if (item.isEmpty()) - { - shift++; - continue; - } - - shiftX = shifts[shift][0]; - shiftY = shifts[shift][1]; - shiftZ = shifts[shift][2]; - shift++; - - GlStateManager.pushMatrix(); - GlStateManager.translate(shiftX, shiftY, shiftZ); - GlStateManager.rotate(timeD, 0F, 1F, 0F); - GlStateManager.scale(blockScale, blockScale, blockScale); - - customitem.setItem(item); - - if (this.itemRenderer == null) - { - this.itemRenderer = new RenderEntityItem(Minecraft.getMinecraft().getRenderManager(), Minecraft.getMinecraft().getRenderItem()) - { - @Override - public int getModelCount(ItemStack stack) - { - return SignedBytes.saturatedCast(Math.min(stack.getCount() / 32, 15) + 1); - } - - @Override - public boolean shouldBob() - { - return false; - } - - @Override - public boolean shouldSpreadItems() - { - return true; - } - }; - } - - this.itemRenderer.doRender(customitem, 0D, 0D, 0D, 0F, partialTicks); - - GlStateManager.popMatrix(); - } - - GlStateManager.popMatrix(); - } - - } -} diff --git a/src/main/java/cpw/mods/ironchest/client/renderer/shulker/TileEntityIronShulkerBoxRenderer.java b/src/main/java/cpw/mods/ironchest/client/renderer/shulker/TileEntityIronShulkerBoxRenderer.java deleted file mode 100644 index 9f406376..00000000 --- a/src/main/java/cpw/mods/ironchest/client/renderer/shulker/TileEntityIronShulkerBoxRenderer.java +++ /dev/null @@ -1,239 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.client.renderer.shulker; - -import java.util.Random; - -import com.google.common.primitives.SignedBytes; - -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelShulker; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderEntityItem; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; - -public class TileEntityIronShulkerBoxRenderer extends TileEntitySpecialRenderer -{ - private Random random; - - private RenderEntityItem itemRenderer; - - private final ModelShulker model; - - //@formatter:off - private static float[][] shifts = { { 0.3F, 0.45F, 0.3F }, { 0.7F, 0.45F, 0.3F }, { 0.3F, 0.45F, 0.7F }, { 0.7F, 0.45F, 0.7F }, { 0.3F, 0.1F, 0.3F }, { 0.7F, 0.1F, 0.3F }, { 0.3F, 0.1F, 0.7F }, { 0.7F, 0.1F, 0.7F }, { 0.5F, 0.32F, 0.5F } }; - //@formatter:on - - private static EntityItem customitem = new EntityItem(null); - - public TileEntityIronShulkerBoxRenderer() - { - this.model = new ModelShulker(); - this.random = new Random(); - } - - @Override - public void render(TileEntityIronShulkerBox te, double x, double y, double z, float partialTicks, int destroyStage, float partial) - { - if (te == null || te.isInvalid()) - { - return; - } - - EnumFacing facing = EnumFacing.UP; - IronShulkerBoxType type = te.getType(); - - if (te.hasWorld()) - { - IBlockState iblockstate = this.getWorld().getBlockState(te.getPos()); - - if (iblockstate.getBlock() instanceof BlockIronShulkerBox) - { - facing = te.getFacing(); - type = iblockstate.getValue(BlockIronShulkerBox.VARIANT_PROP); - } - } - - GlStateManager.enableDepth(); - GlStateManager.depthFunc(515); - GlStateManager.depthMask(true); - GlStateManager.disableCull(); - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - GlStateManager.matrixMode(5890); - GlStateManager.pushMatrix(); - GlStateManager.scale(4.0F, 4.0F, 1.0F); - GlStateManager.translate(0.0625F, 0.0625F, 0.0625F); - GlStateManager.matrixMode(5888); - } - else - { - //@formatter:off - ResourceLocation rs = new ResourceLocation("ironchest", "textures/model/shulker/" + te.getColor().getName() + "/shulker_" + te.getColor().getName() + type.modelTexture); - //@formatter:on - - this.bindTexture(rs); - } - - GlStateManager.pushMatrix(); - GlStateManager.enableRescaleNormal(); - - if (destroyStage < 0) - { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - } - - GlStateManager.translate((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GlStateManager.scale(1.0F, -1.0F, -1.0F); - GlStateManager.translate(0.0F, 1.0F, 0.0F); - GlStateManager.scale(0.9995F, 0.9995F, 0.9995F); - GlStateManager.translate(0.0F, -1.0F, 0.0F); - - switch (facing) - { - case DOWN: - GlStateManager.translate(0.0F, 2.0F, 0.0F); - GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F); - case UP: - default: - break; - case NORTH: - GlStateManager.translate(0.0F, 1.0F, 1.0F); - GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F); - break; - case SOUTH: - GlStateManager.translate(0.0F, 1.0F, -1.0F); - GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F); - break; - case WEST: - GlStateManager.translate(-1.0F, 1.0F, 0.0F); - GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate(-90.0F, 0.0F, 0.0F, 1.0F); - break; - case EAST: - GlStateManager.translate(1.0F, 1.0F, 0.0F); - GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F); - } - - this.model.base.render(0.0625F); - GlStateManager.translate(0.0F, -te.getProgress(partialTicks) * 0.5F, 0.0F); - GlStateManager.rotate(270.0F * te.getProgress(partialTicks), 0.0F, 1.0F, 0.0F); - this.model.lid.render(0.0625F); - GlStateManager.enableCull(); - GlStateManager.disableRescaleNormal(); - GlStateManager.popMatrix(); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - - if (destroyStage >= 0) - { - GlStateManager.matrixMode(5890); - GlStateManager.popMatrix(); - GlStateManager.matrixMode(5888); - } - - if (type == IronShulkerBoxType.CRYSTAL) - { - GlStateManager.enableCull(); - } - - if (type.isTransparent() && te.getDistanceSq(this.rendererDispatcher.entityX, this.rendererDispatcher.entityY, this.rendererDispatcher.entityZ) < 128d) - { - this.random.setSeed(254L); - - float shiftX; - float shiftY; - float shiftZ; - int shift = 0; - float blockScale = 0.70F; - float timeD = (float) (360D * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL) - partialTicks; - - if (te.getTopItems().get(1).isEmpty()) - { - shift = 8; - blockScale = 0.85F; - } - - GlStateManager.pushMatrix(); - GlStateManager.translate((float) x, (float) y, (float) z); - - customitem.setWorld(this.getWorld()); - customitem.hoverStart = 0F; - - for (ItemStack item : te.getTopItems()) - { - if (shift > shifts.length) - { - break; - } - - if (item.isEmpty()) - { - shift++; - continue; - } - - shiftX = shifts[shift][0]; - shiftY = shifts[shift][1]; - shiftZ = shifts[shift][2]; - shift++; - - GlStateManager.pushMatrix(); - GlStateManager.translate(shiftX, shiftY, shiftZ); - GlStateManager.rotate(timeD, 0F, 1F, 0F); - GlStateManager.scale(blockScale, blockScale, blockScale); - - customitem.setItem(item); - - if (this.itemRenderer == null) - { - this.itemRenderer = new RenderEntityItem(Minecraft.getMinecraft().getRenderManager(), Minecraft.getMinecraft().getRenderItem()) - { - @Override - public int getModelCount(ItemStack stack) - { - return SignedBytes.saturatedCast(Math.min(stack.getCount() / 32, 15) + 1); - } - - @Override - public boolean shouldBob() - { - return false; - } - - @Override - public boolean shouldSpreadItems() - { - return true; - } - }; - } - - this.itemRenderer.doRender(customitem, 0D, 0D, 0D, 0F, partialTicks); - - GlStateManager.popMatrix(); - } - - GlStateManager.popMatrix(); - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/CommonProxy.java b/src/main/java/cpw/mods/ironchest/common/CommonProxy.java deleted file mode 100755 index 909855ea..00000000 --- a/src/main/java/cpw/mods/ironchest/common/CommonProxy.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common; - -import cpw.mods.ironchest.common.gui.chest.ContainerIronChest; -import cpw.mods.ironchest.common.gui.shulker.ContainerIronShulkerBox; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.IGuiHandler; - -public class CommonProxy implements IGuiHandler -{ - public void preInit() - { - - } - - @Override - public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) - { - return null; - } - - @Override - public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) - { - TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); - - if (te != null && te instanceof TileEntityIronChest) - { - TileEntityIronChest icte = (TileEntityIronChest) te; - - return new ContainerIronChest(player.inventory, icte, icte.getType(), 0, 0); - } - else if (te != null && te instanceof TileEntityIronShulkerBox) - { - TileEntityIronShulkerBox icte = (TileEntityIronShulkerBox) te; - - return new ContainerIronShulkerBox(player.inventory, icte, icte.getType(), 0, 0); - } - else - { - return null; - } - } - - public World getClientWorld() - { - return null; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/ai/IronChestAIOcelotSit.java b/src/main/java/cpw/mods/ironchest/common/ai/IronChestAIOcelotSit.java deleted file mode 100755 index ee379100..00000000 --- a/src/main/java/cpw/mods/ironchest/common/ai/IronChestAIOcelotSit.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.ai; - -import cpw.mods.ironchest.common.core.IronChestBlocks; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.ai.EntityAIOcelotSit; -import net.minecraft.entity.passive.EntityOcelot; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class IronChestAIOcelotSit extends EntityAIOcelotSit -{ - public IronChestAIOcelotSit(EntityOcelot ocelotIn, float speedIn) - { - super(ocelotIn, speedIn); - } - - /** - * Return true to set given position as destination - */ - @Override - protected boolean shouldMoveTo(World worldIn, BlockPos pos) - { - if (!worldIn.isAirBlock(pos.up())) - { - return false; - } - else - { - IBlockState iblockstate = worldIn.getBlockState(pos); - Block block = iblockstate.getBlock(); - - if (block == IronChestBlocks.ironChestBlock) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityIronChest && ((TileEntityIronChest) tileentity).numPlayersUsing < 1) - { - return true; - } - } - - return super.shouldMoveTo(worldIn, pos); - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/chest/BlockIronChest.java b/src/main/java/cpw/mods/ironchest/common/blocks/chest/BlockIronChest.java deleted file mode 100755 index dde7a1da..00000000 --- a/src/main/java/cpw/mods/ironchest/common/blocks/chest/BlockIronChest.java +++ /dev/null @@ -1,285 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.blocks.chest; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.core.IronChestCreativeTabs; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import cpw.mods.ironchest.common.util.BlockNames; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.InventoryHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.Explosion; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.ILockableContainer; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlockIronChest extends Block -{ - public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", IronChestType.class); - - protected static final AxisAlignedBB IRON_CHEST_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.875D, 0.9375D); - - public BlockIronChest() - { - super(Material.IRON); - - this.setRegistryName(new ResourceLocation(BlockNames.IRON_CHEST)); - this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT_PROP, IronChestType.IRON)); - this.setHardness(3.0F); - this.setUnlocalizedName("IronChest"); - this.setCreativeTab(IronChestCreativeTabs.tabIronChests); - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - return IRON_CHEST_AABB; - } - - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; - } - - @Nullable - public ILockableContainer getLockableContainer(World worldIn, BlockPos pos) - { - return this.getContainer(worldIn, pos, false); - } - - @Nullable - public ILockableContainer getContainer(World worldIn, BlockPos pos, boolean allowBlocking) - { - return null; - } - - @Override - //@formatter:off - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing heldItem, float side, float hitX, float hitY) - //@formatter:on - { - TileEntity te = worldIn.getTileEntity(pos); - - if (te == null || !(te instanceof TileEntityIronChest)) - { - return true; - } - - if (worldIn.isSideSolid(pos.add(0, 1, 0), EnumFacing.DOWN)) - { - return true; - } - - if (worldIn.isRemote) - { - return true; - } - - playerIn.openGui(IronChest.instance, ((TileEntityIronChest) te).getType().ordinal(), worldIn, pos.getX(), pos.getY(), pos.getZ()); - - return true; - } - - @Override - public boolean hasTileEntity(IBlockState state) - { - return true; - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) - { - return state.getValue(VARIANT_PROP).makeEntity(); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(CreativeTabs tab, NonNullList list) - { - for (IronChestType type : IronChestType.VALUES) - { - if (type.isValidForCreativeMode()) - { - list.add(new ItemStack(this, 1, type.ordinal())); - } - } - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState().withProperty(VARIANT_PROP, IronChestType.VALUES[meta]); - } - - @Override - public int getMetaFromState(IBlockState blockState) - { - return blockState.getValue(VARIANT_PROP).ordinal(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, VARIANT_PROP); - } - - @Override - public void onBlockAdded(World world, BlockPos pos, IBlockState state) - { - super.onBlockAdded(world, pos, state); - world.notifyBlockUpdate(pos, state, state, 3); - } - - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - TileEntity te = worldIn.getTileEntity(pos); - - if (te != null && te instanceof TileEntityIronChest) - { - TileEntityIronChest teic = (TileEntityIronChest) te; - - teic.wasPlaced(placer, stack); - teic.setFacing(placer.getHorizontalFacing().getOpposite()); - - worldIn.notifyBlockUpdate(pos, state, state, 3); - } - } - - @Override - public int damageDropped(IBlockState state) - { - return state.getValue(VARIANT_PROP).ordinal(); - } - - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) - { - TileEntityIronChest tileentity = (TileEntityIronChest) worldIn.getTileEntity(pos); - - if (tileentity != null) - { - tileentity.removeAdornments(); - - InventoryHelper.dropInventoryItems(worldIn, pos, tileentity); - } - - super.breakBlock(worldIn, pos, state); - } - - @Override - public float getExplosionResistance(World world, BlockPos pos, Entity exploder, Explosion explosion) - { - TileEntity te = world.getTileEntity(pos); - - if (te instanceof TileEntityIronChest) - { - TileEntityIronChest teic = (TileEntityIronChest) te; - - if (teic.getType().isExplosionResistant()) - { - return 10000F; - } - } - - return super.getExplosionResistance(world, pos, exploder, explosion); - } - - @Override - public boolean hasComparatorInputOverride(IBlockState state) - { - return true; - } - - @Override - public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos) - { - return Container.calcRedstone(worldIn.getTileEntity(pos)); - } - - private static final EnumFacing[] validRotationAxes = new EnumFacing[] { EnumFacing.UP, EnumFacing.DOWN }; - - @Override - public EnumFacing[] getValidRotations(World worldObj, BlockPos pos) - { - return validRotationAxes; - } - - @Override - public boolean rotateBlock(World worldObj, BlockPos pos, EnumFacing axis) - { - if (worldObj.isRemote) - { - return false; - } - - if (axis == EnumFacing.UP || axis == EnumFacing.DOWN) - { - TileEntity tileEntity = worldObj.getTileEntity(pos); - - if (tileEntity instanceof TileEntityIronChest) - { - TileEntityIronChest icte = (TileEntityIronChest) tileEntity; - - icte.rotateAround(); - } - - return true; - } - return false; - } - - @Override - @Deprecated - public boolean eventReceived(IBlockState state, World worldIn, BlockPos pos, int id, int param) - { - super.eventReceived(state, worldIn, pos, id, param); - - TileEntity tileentity = worldIn.getTileEntity(pos); - - return tileentity != null && tileentity.receiveClientEvent(id, param); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/chest/IronChestType.java b/src/main/java/cpw/mods/ironchest/common/blocks/chest/IronChestType.java deleted file mode 100755 index 809d8d77..00000000 --- a/src/main/java/cpw/mods/ironchest/common/blocks/chest/IronChestType.java +++ /dev/null @@ -1,185 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.blocks.chest; - -import cpw.mods.ironchest.common.gui.chest.slot.ValidatingChestSlot; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityCopperChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityCrystalChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityDiamondChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityDirtChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityGoldChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityObsidianChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntitySilverChest; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagByte; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.ResourceLocation; - -public enum IronChestType implements IStringSerializable -{ - //@formatter:off - IRON(54, 9, true, "iron_chest.png", TileEntityIronChest.class, 184, 202), - GOLD(81, 9, true, "gold_chest.png", TileEntityGoldChest.class, 184, 256), - DIAMOND(108, 12, true, "diamond_chest.png", TileEntityDiamondChest.class, 184, 256), - COPPER(45, 9, false, "copper_chest.png", TileEntityCopperChest.class, 184, 184), - SILVER(72, 9, false, "silver_chest.png", TileEntitySilverChest.class, 184, 238), - CRYSTAL(108, 12, true, "crystal_chest.png", TileEntityCrystalChest.class, 238, 256), - OBSIDIAN(108, 12, false, "obsidian_chest.png", TileEntityObsidianChest.class, 238, 256), - DIRTCHEST9000(1, 1, false, "dirt_chest.png", TileEntityDirtChest.class, 184, 184), - WOOD(0, 0, false, "", null, 0, 0); - //@formatter:on - - public static final IronChestType VALUES[] = values(); - - public final String name; - - public final int size; - - public final int rowLength; - - public final boolean tieredChest; - - public final ResourceLocation modelTexture; - - private String breakTexture; - - public final Class clazz; - - public final int xSize; - - public final int ySize; - - //@formatter:off - IronChestType(int size, int rowLength, boolean tieredChest, String modelTexture, Class clazz, int xSize, int ySize) - //@formatter:on - { - this.name = this.name().toLowerCase(); - this.size = size; - this.rowLength = rowLength; - this.tieredChest = tieredChest; - this.modelTexture = new ResourceLocation("ironchest", "textures/model/chest/" + modelTexture); - this.clazz = clazz; - this.xSize = xSize; - this.ySize = ySize; - } - - public String getBreakTexture() - { - if (this.breakTexture == null) - { - switch (this) - { - case DIRTCHEST9000: - { - this.breakTexture = "minecraft:blocks/dirt"; - break; - } - case OBSIDIAN: - { - this.breakTexture = "minecraft:blocks/obsidian"; - break; - } - case WOOD: - { - this.breakTexture = "minecraft:blocks/planks_oak"; - break; - } - default: - { - this.breakTexture = "ironchest:blocks/" + this.getName() + "break"; - } - } - } - - return this.breakTexture; - } - - @Override - public String getName() - { - return this.name; - } - - public int getRowCount() - { - return this.size / this.rowLength; - } - - public boolean isTransparent() - { - return this == CRYSTAL; - } - - public boolean isValidForCreativeMode() - { - return this != WOOD; - } - - public boolean isExplosionResistant() - { - return this == OBSIDIAN; - } - - public Slot makeSlot(IInventory chestInventory, int index, int x, int y) - { - return new ValidatingChestSlot(chestInventory, index, x, y, this); - } - - private static final Item DIRT_ITEM = Item.getItemFromBlock(Blocks.DIRT); - - public boolean acceptsStack(ItemStack itemstack) - { - if (this == DIRTCHEST9000) - { - return itemstack.isEmpty() || itemstack.getItem() == DIRT_ITEM; - } - - return true; - } - - public void adornItemDrop(ItemStack item) - { - if (this == DIRTCHEST9000) - { - item.setTagInfo("dirtchest", new NBTTagByte((byte) 1)); - } - } - - public TileEntityIronChest makeEntity() - { - switch (this) - { - case IRON: - return new TileEntityIronChest(); - case GOLD: - return new TileEntityGoldChest(); - case DIAMOND: - return new TileEntityDiamondChest(); - case COPPER: - return new TileEntityCopperChest(); - case SILVER: - return new TileEntitySilverChest(); - case CRYSTAL: - return new TileEntityCrystalChest(); - case OBSIDIAN: - return new TileEntityObsidianChest(); - case DIRTCHEST9000: - return new TileEntityDirtChest(); - default: - return null; - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/BlockIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/blocks/shulker/BlockIronShulkerBox.java deleted file mode 100644 index 62bbd436..00000000 --- a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/BlockIronShulkerBox.java +++ /dev/null @@ -1,526 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.blocks.shulker; - -import java.util.List; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.core.IronChestBlocks; -import cpw.mods.ironchest.common.core.IronChestCreativeTabs; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import net.minecraft.block.Block; -import net.minecraft.block.material.EnumPushReaction; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.translation.I18n; -import net.minecraft.world.Explosion; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SuppressWarnings("deprecation") -public class BlockIronShulkerBox extends Block -{ - public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", IronShulkerBoxType.class); - - private final EnumDyeColor color; - - private EnumFacing facingDirection; - - public BlockIronShulkerBox(EnumDyeColor colorIn, String nameIn) - { - super(Material.IRON); - - this.color = colorIn; - this.setRegistryName(nameIn); - this.setUnlocalizedName("IronShulkerBox" + colorIn.getName()); - this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT_PROP, IronShulkerBoxType.IRON)); - this.setHardness(3.0F); - this.setCreativeTab(IronChestCreativeTabs.tabIronChests); - } - - /** - * Used to determine ambient occlusion and culling when rebuilding chunks for render - */ - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - - @Override - public boolean causesSuffocation(IBlockState state) - { - return true; - } - - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean hasCustomBreakingProgress(IBlockState state) - { - return true; - } - - /** - * The type of render function called. MODEL for mixed tesr and static model, MODELBLOCK_ANIMATED for TESR-only, LIQUID for vanilla liquids, INVISIBLE to skip all rendering - */ - @Override - public EnumBlockRenderType getRenderType(IBlockState state) - { - return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; - } - - @Override - //@formatter:off - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing heldItem, float side, float hitX, float hitY) - //@formatter:on - { - if (worldIn.isRemote) - { - return true; - } - else if (playerIn.isSpectator()) - { - return true; - } - else - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityIronShulkerBox) - { - EnumFacing enumfacing = ((TileEntityIronShulkerBox) tileentity).getFacing(); - boolean flag; - - if (((TileEntityIronShulkerBox) tileentity).getAnimationStatus() == TileEntityIronShulkerBox.AnimationStatus.CLOSED) - { - //@formatter:off - AxisAlignedBB axisalignedbb = FULL_BLOCK_AABB.expand(0.5F * enumfacing.getFrontOffsetX(), 0.5F * enumfacing.getFrontOffsetY(), 0.5F * enumfacing.getFrontOffsetZ()).contract(enumfacing.getFrontOffsetX(), enumfacing.getFrontOffsetY(), enumfacing.getFrontOffsetZ()); - //@formatter:on - - flag = !worldIn.collidesWithAnyBlock(axisalignedbb.offset(pos.offset(enumfacing))); - } - else - { - flag = true; - } - - if (flag) - { - //@formatter:off - playerIn.openGui(IronChest.instance, ((TileEntityIronShulkerBox) tileentity).getType().ordinal(), worldIn, pos.getX(), pos.getY(), pos.getZ()); - //@formatter:on - } - - return true; - } - else - { - return false; - } - } - } - - @Override - public boolean hasTileEntity(IBlockState state) - { - return true; - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) - { - return state.getValue(VARIANT_PROP).makeEntity(this.color); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(CreativeTabs tab, NonNullList list) - { - for (IronShulkerBoxType type : IronShulkerBoxType.VALUES) - { - if (type.isValidForCreativeMode()) - { - list.add(new ItemStack(this, 1, type.ordinal())); - } - } - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - return this.getDefaultState().withProperty(VARIANT_PROP, IronShulkerBoxType.VALUES[meta]); - } - - @Override - public int getMetaFromState(IBlockState blockState) - { - return blockState.getValue(VARIANT_PROP).ordinal(); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, VARIANT_PROP); - } - - @Override - //@formatter:off - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) - //@formatter:on - { - this.facingDirection = facing; - - return super.getStateForPlacement(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer); - } - - @Override - public void onBlockAdded(World world, BlockPos pos, IBlockState state) - { - super.onBlockAdded(world, pos, state); - - world.notifyBlockUpdate(pos, state, state, 3); - } - - /** - * Called by ItemBlocks after a block is set in the world, to allow post-place logic - */ - @Override - public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) - { - if (stack.hasDisplayName()) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityIronShulkerBox) - { - ((TileEntityIronShulkerBox) tileentity).setCustomName(stack.getDisplayName()); - - ((TileEntityIronShulkerBox) tileentity).setFacing(facingDirection); - - worldIn.notifyBlockUpdate(pos, state, state, 3); - } - } - else - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityIronShulkerBox) - { - TileEntityIronShulkerBox teic = (TileEntityIronShulkerBox) tileentity; - - teic.setFacing(facingDirection); - - worldIn.notifyBlockUpdate(pos, state, state, 3); - } - } - } - - @Override - public int damageDropped(IBlockState state) - { - return state.getValue(VARIANT_PROP).ordinal(); - } - - @Override - public void onBlockHarvested(World worldIn, BlockPos pos, IBlockState state, EntityPlayer player) - { - TileEntityIronShulkerBox tileentityironshulkerbox = (TileEntityIronShulkerBox) worldIn.getTileEntity(pos); - - tileentityironshulkerbox.setDestroyedByCreativePlayer(player.capabilities.isCreativeMode); - tileentityironshulkerbox.fillWithLoot(player); - } - - /** - * Spawns this Block's drops into the World as EntityItems. - */ - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - } - - /** - * Called serverside after this block is replaced with another in Chunk, but before the Tile Entity is updated - */ - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityIronShulkerBox) - { - TileEntityIronShulkerBox tileentityironshulkerbox = (TileEntityIronShulkerBox) tileentity; - - if (!tileentityironshulkerbox.isCleared() && tileentityironshulkerbox.shouldDrop()) - { - if (!tileentityironshulkerbox.beenUpgraded()) - { - ItemStack itemstack = new ItemStack(Item.getItemFromBlock(this), 1, state.getValue(VARIANT_PROP).ordinal()); - NBTTagCompound nbttagcompound = new NBTTagCompound(); - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - - nbttagcompound.setTag("BlockEntityTag", ((TileEntityIronShulkerBox) tileentity).saveToNbt(nbttagcompound1)); - itemstack.setTagCompound(nbttagcompound); - - if (tileentityironshulkerbox.hasCustomName()) - { - itemstack.setStackDisplayName(tileentityironshulkerbox.getName()); - - tileentityironshulkerbox.setCustomName(""); - } - - spawnAsEntity(worldIn, pos, itemstack); - } - } - - worldIn.updateComparatorOutputLevel(pos, state.getBlock()); - } - - super.breakBlock(worldIn, pos, state); - } - - @Override - public float getExplosionResistance(World world, BlockPos pos, Entity exploder, Explosion explosion) - { - TileEntity te = world.getTileEntity(pos); - - if (te instanceof TileEntityIronShulkerBox) - { - TileEntityIronShulkerBox teic = (TileEntityIronShulkerBox) te; - - if (teic.getType().isExplosionResistant()) - { - return 10000F; - } - } - - return super.getExplosionResistance(world, pos, exploder, explosion); - } - - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag advanced) - { - super.addInformation(stack, worldIn, tooltip, advanced); - - NBTTagCompound nbttagcompound = stack.getTagCompound(); - - if (nbttagcompound != null && nbttagcompound.hasKey("BlockEntityTag", 10)) - { - NBTTagCompound nbttagcompound1 = nbttagcompound.getCompoundTag("BlockEntityTag"); - - if (nbttagcompound1.hasKey("LootTable", 8)) - { - tooltip.add("???????"); - } - - if (nbttagcompound1.hasKey("Items", 9)) - { - if (nbttagcompound1.hasKey("ShulkerBoxSize", 3)) - { - NonNullList nonnulllist = NonNullList. withSize(nbttagcompound1.getInteger("ShulkerBoxSize"), ItemStack.EMPTY); - ItemStackHelper.loadAllItems(nbttagcompound1, nonnulllist); - int i = 0; - int j = 0; - - for (ItemStack itemstack : nonnulllist) - { - if (!itemstack.isEmpty()) - { - ++j; - - if (i <= 4) - { - ++i; - tooltip.add(String.format("%s x%d", new Object[] { itemstack.getDisplayName(), Integer.valueOf(itemstack.getCount()) })); - } - } - } - - if (j - i > 0) - { - //@formatter:off - tooltip.add(String.format(TextFormatting.ITALIC + I18n.translateToLocal("container.shulkerBox.more"), new Object[] { Integer.valueOf(j - i) })); - //@formatter:on - } - } - else - { - NonNullList nonnulllist = NonNullList. withSize(27, ItemStack.EMPTY); - ItemStackHelper.loadAllItems(nbttagcompound1, nonnulllist); - int i = 0; - int j = 0; - - for (ItemStack itemstack : nonnulllist) - { - if (!itemstack.isEmpty()) - { - ++j; - - if (i <= 4) - { - ++i; - tooltip.add(String.format("%s x%d", new Object[] { itemstack.getDisplayName(), Integer.valueOf(itemstack.getCount()) })); - } - } - } - - if (j - i > 0) - { - //@formatter:off - tooltip.add(String.format(TextFormatting.ITALIC + I18n.translateToLocal("container.shulkerBox.more"), new Object[] { Integer.valueOf(j - i) })); - //@formatter:on - } - } - } - } - } - - @Override - public EnumPushReaction getMobilityFlag(IBlockState state) - { - return EnumPushReaction.DESTROY; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - TileEntity tileentity = source.getTileEntity(pos); - - return tileentity instanceof TileEntityIronShulkerBox ? ((TileEntityIronShulkerBox) tileentity).getBoundingBox() : FULL_BLOCK_AABB; - } - - @Override - public boolean hasComparatorInputOverride(IBlockState state) - { - return true; - } - - @Override - public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos) - { - return Container.calcRedstoneFromInventory((IInventory) worldIn.getTileEntity(pos)); - } - - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) - { - ItemStack itemstack = super.getItem(worldIn, pos, state); - TileEntityIronShulkerBox tileentityironshulkerbox = (TileEntityIronShulkerBox) worldIn.getTileEntity(pos); - NBTTagCompound nbttagcompound = tileentityironshulkerbox.saveToNbt(new NBTTagCompound()); - - if (!nbttagcompound.hasNoTags()) - { - itemstack.setTagInfo("BlockEntityTag", nbttagcompound); - } - - return itemstack; - } - - public static Block getBlockByColor(EnumDyeColor colorIn) - { - switch (colorIn) - { - case WHITE: - return IronChestBlocks.ironShulkerBoxWhiteBlock; - case ORANGE: - return IronChestBlocks.ironShulkerBoxOrangeBlock; - case MAGENTA: - return IronChestBlocks.ironShulkerBoxMagentaBlock; - case LIGHT_BLUE: - return IronChestBlocks.ironShulkerBoxLightBlueBlock; - case YELLOW: - return IronChestBlocks.ironShulkerBoxYellowBlock; - case LIME: - return IronChestBlocks.ironShulkerBoxLimeBlock; - case PINK: - return IronChestBlocks.ironShulkerBoxPinkBlock; - case GRAY: - return IronChestBlocks.ironShulkerBoxGrayBlock; - case SILVER: - return IronChestBlocks.ironShulkerBoxSilverBlock; - case CYAN: - return IronChestBlocks.ironShulkerBoxCyanBlock; - case PURPLE: - default: - return IronChestBlocks.ironShulkerBoxPurpleBlock; - case BLUE: - return IronChestBlocks.ironShulkerBoxBlueBlock; - case BROWN: - return IronChestBlocks.ironShulkerBoxBrownBlock; - case GREEN: - return IronChestBlocks.ironShulkerBoxGreenBlock; - case RED: - return IronChestBlocks.ironShulkerBoxRedBlock; - case BLACK: - return IronChestBlocks.ironShulkerBoxBlackBlock; - } - } - - public static ItemStack getColoredItemStack(EnumDyeColor colorIn, int damageIn) - { - return new ItemStack(getBlockByColor(colorIn), 1, damageIn); - } - - @SideOnly(Side.CLIENT) - public static EnumDyeColor getColorFromBlock(Block blockIn) - { - return blockIn instanceof BlockIronShulkerBox ? ((BlockIronShulkerBox) blockIn).getColor() : EnumDyeColor.PURPLE; - } - - @SideOnly(Side.CLIENT) - public EnumDyeColor getColor() - { - return this.color; - } - - @Override - @Deprecated - public boolean eventReceived(IBlockState state, World worldIn, BlockPos pos, int id, int param) - { - super.eventReceived(state, worldIn, pos, id, param); - - TileEntity tileentity = worldIn.getTileEntity(pos); - - return tileentity != null && tileentity.receiveClientEvent(id, param); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/IronShulkerBoxType.java b/src/main/java/cpw/mods/ironchest/common/blocks/shulker/IronShulkerBoxType.java deleted file mode 100644 index af3383c8..00000000 --- a/src/main/java/cpw/mods/ironchest/common/blocks/shulker/IronShulkerBoxType.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.blocks.shulker; - -import cpw.mods.ironchest.common.gui.shulker.slot.ValidatingShulkerBoxSlot; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCopperShulkerBox; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCrystalShulkerBox; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityDiamondShulkerBox; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityGoldShulkerBox; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityObsidianShulkerBox; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntitySilverShulkerBox; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.util.IStringSerializable; - -public enum IronShulkerBoxType implements IStringSerializable -{ - //@formatter:off - IRON(54, 9, true, "_iron.png", TileEntityIronShulkerBox.class, 184, 202), - GOLD(81, 9, true, "_gold.png", TileEntityGoldShulkerBox.class, 184, 256), - DIAMOND(108, 12, true, "_diamond.png", TileEntityDiamondShulkerBox.class, 184, 256), - COPPER(45, 9, false, "_copper.png", TileEntityCopperShulkerBox.class, 184, 184), - SILVER(72, 9, false, "_silver.png", TileEntitySilverShulkerBox.class, 184, 238), - CRYSTAL(108, 12, true, "_crystal.png", TileEntityCrystalShulkerBox.class, 238, 256), - OBSIDIAN(108, 12, false, "_obsidian.png", TileEntityObsidianShulkerBox.class, 238, 256), - VANILLA(0, 0, false, "", null, 0, 0); - //@formatter:on - - public static final IronShulkerBoxType VALUES[] = values(); - - public final String name; - - public final int size; - - public final int rowLength; - - public final boolean tieredShulkerBox; - - public final String modelTexture; - - public final Class clazz; - - public final int xSize; - - public final int ySize; - - private String breakTexture; - - //@formatter:off - IronShulkerBoxType(int size, int rowLength, boolean tieredShulkerBox, String modelTexture, Class clazz, int xSize, int ySize) - //@formatter:on - { - this.name = this.name().toLowerCase(); - this.size = size; - this.rowLength = rowLength; - this.tieredShulkerBox = tieredShulkerBox; - this.modelTexture = modelTexture; - this.clazz = clazz; - this.xSize = xSize; - this.ySize = ySize; - } - - @Override - public String getName() - { - return this.name; - } - - public String getBreakTexture() - { - if (this.breakTexture == null) - { - switch (this) - { - case OBSIDIAN: - { - this.breakTexture = "minecraft:blocks/obsidian"; - break; - } - case VANILLA: - { - this.breakTexture = "minecraft:blocks/planks_oak"; - break; - } - default: - { - this.breakTexture = "ironchest:blocks/" + this.getName() + "break"; - } - } - } - - return this.breakTexture; - } - - public int getRowCount() - { - return this.size / this.rowLength; - } - - public boolean isTransparent() - { - return this == CRYSTAL; - } - - public boolean isValidForCreativeMode() - { - return this != VANILLA; - } - - public boolean isExplosionResistant() - { - return this == OBSIDIAN; - } - - public Slot makeSlot(IInventory chestInventory, int index, int x, int y) - { - return new ValidatingShulkerBoxSlot(chestInventory, index, x, y); - } - - public TileEntityIronShulkerBox makeEntity(EnumDyeColor colorIn) - { - switch (this) - { - case IRON: - return new TileEntityIronShulkerBox(colorIn); - case GOLD: - return new TileEntityGoldShulkerBox(colorIn); - case DIAMOND: - return new TileEntityDiamondShulkerBox(colorIn); - case COPPER: - return new TileEntityCopperShulkerBox(colorIn); - case SILVER: - return new TileEntitySilverShulkerBox(colorIn); - case CRYSTAL: - return new TileEntityCrystalShulkerBox(colorIn); - case OBSIDIAN: - return new TileEntityObsidianShulkerBox(colorIn); - default: - return null; - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java deleted file mode 100644 index 7a4d7aac..00000000 --- a/src/main/java/cpw/mods/ironchest/common/core/IronChestBlocks.java +++ /dev/null @@ -1,187 +0,0 @@ -package cpw.mods.ironchest.common.core; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.items.chest.ItemIronChest; -import cpw.mods.ironchest.common.items.shulker.ItemIronShulkerBox; -import cpw.mods.ironchest.common.lib.BlockLists; -import cpw.mods.ironchest.common.util.BlockNames; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.Item; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.event.RegistryEvent.Register; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; -import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; -import net.minecraftforge.registries.IForgeRegistry; - -public class IronChestBlocks -{ - @ObjectHolder(BlockNames.IRON_CHEST) - public static BlockIronChest ironChestBlock; - - @ObjectHolder(BlockNames.IRON_CHEST) - public static Item ironChestItemBlock; - - //@formatter:off - @ObjectHolder(BlockNames.WHITE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxWhiteBlock; - @ObjectHolder(BlockNames.ORANGE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxOrangeBlock; - @ObjectHolder(BlockNames.MAGENTA_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxMagentaBlock; - @ObjectHolder(BlockNames.LIGHT_BLUE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxLightBlueBlock; - @ObjectHolder(BlockNames.YELLOW_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxYellowBlock; - @ObjectHolder(BlockNames.LIME_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxLimeBlock; - @ObjectHolder(BlockNames.PINK_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxPinkBlock; - @ObjectHolder(BlockNames.GRAY_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxGrayBlock; - @ObjectHolder(BlockNames.SILVER_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxSilverBlock; - @ObjectHolder(BlockNames.CYAN_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxCyanBlock; - @ObjectHolder(BlockNames.PURPLE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxPurpleBlock; - @ObjectHolder(BlockNames.BLUE_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxBlueBlock; - @ObjectHolder(BlockNames.BROWN_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxBrownBlock; - @ObjectHolder(BlockNames.GREEN_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxGreenBlock; - @ObjectHolder(BlockNames.RED_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxRedBlock; - @ObjectHolder(BlockNames.BLACK_SHULKER) - public static BlockIronShulkerBox ironShulkerBoxBlackBlock; - - @ObjectHolder(BlockNames.WHITE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxWhiteItemBlock; - @ObjectHolder(BlockNames.ORANGE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxOrangeItemBlock; - @ObjectHolder(BlockNames.MAGENTA_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxMagentaItemBlock; - @ObjectHolder(BlockNames.LIGHT_BLUE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxLightBlueItemBlock; - @ObjectHolder(BlockNames.YELLOW_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxYellowItemBlock; - @ObjectHolder(BlockNames.LIME_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxLimeItemBlock; - @ObjectHolder(BlockNames.PINK_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxPinkItemBlock; - @ObjectHolder(BlockNames.GRAY_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxGrayItemBlock; - @ObjectHolder(BlockNames.SILVER_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxSilverItemBlock; - @ObjectHolder(BlockNames.CYAN_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxCyanItemBlock; - @ObjectHolder(BlockNames.PURPLE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxPurpleItemBlock; - @ObjectHolder(BlockNames.BLUE_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxBlueItemBlock; - @ObjectHolder(BlockNames.BROWN_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxBrownItemBlock; - @ObjectHolder(BlockNames.GREEN_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxGreenItemBlock; - @ObjectHolder(BlockNames.RED_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxRedItemBlock; - @ObjectHolder(BlockNames.BLACK_SHULKER) - public static ItemIronShulkerBox ironShulkerBoxBlackItemBlock; - //@formatter:on - - @EventBusSubscriber(modid = IronChest.MOD_ID) - public static class Registration - { - @SubscribeEvent - public static void registerBlocks(Register event) - { - IForgeRegistry blockRegistry = event.getRegistry(); - - // Chest Start - blockRegistry.register(new BlockIronChest()); - - for (IronChestType typ : IronChestType.VALUES) - { - if (typ.clazz != null) - { - GameRegistry.registerTileEntity(typ.clazz, "IronChest." + typ.name()); - } - } - // Chest End - - // Shulker Start - for (EnumDyeColor color : EnumDyeColor.values()) - { - blockRegistry.register(new BlockIronShulkerBox(color, BlockNames.SHULKER_NAMES[color.getMetadata()])); - } - - for (IronShulkerBoxType typ : IronShulkerBoxType.VALUES) - { - if (typ.clazz != null) - { - GameRegistry.registerTileEntity(typ.clazz, "IronShulkerBox." + typ.name()); - } - } - // Shulker End - } - - @SubscribeEvent - public static void registerItems(Register event) - { - BlockLists.createIronShulkerBlockList(); - - IForgeRegistry itemRegistry = event.getRegistry(); - - // Chest Start - itemRegistry.register(new ItemIronChest(IronChestBlocks.ironChestBlock)); - // Chest End - - // Shulker Start - for (EnumDyeColor color : EnumDyeColor.values()) - { - itemRegistry.register(new ItemIronShulkerBox(BlockLists.SHULKER_BLOCKS.get(color.getMetadata()), color)); - } - // Shulker End - } - - @SubscribeEvent - public static void registerModels(ModelRegistryEvent event) - { - // Chest Start - Item chestItem = Item.getItemFromBlock(IronChestBlocks.ironChestBlock); - - for (IronChestType type : IronChestType.values()) - { - if (type != IronChestType.WOOD) - { - ModelLoader.setCustomModelResourceLocation(chestItem, type.ordinal(), new ModelResourceLocation(chestItem.getRegistryName(), "variant=" + type.getName())); - } - } - // Chest End - - // Shulker Start - for (Block shulker : BlockLists.SHULKER_BLOCKS) - { - Item shulkerBoxItem = Item.getItemFromBlock(shulker); - - for (IronShulkerBoxType type : IronShulkerBoxType.values()) - { - if (type != IronShulkerBoxType.VANILLA) - { - ModelLoader.setCustomModelResourceLocation(shulkerBoxItem, type.ordinal(), new ModelResourceLocation(shulkerBoxItem.getRegistryName(), "variant=" + type.getName())); - } - } - } - // Shulker End - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java deleted file mode 100644 index ee3ca0d5..00000000 --- a/src/main/java/cpw/mods/ironchest/common/core/IronChestCreativeTabs.java +++ /dev/null @@ -1,37 +0,0 @@ -package cpw.mods.ironchest.common.core; - -import javax.annotation.Nonnull; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.util.CreativeTabItems; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public final class IronChestCreativeTabs -{ - private IronChestCreativeTabs() - { - } - - public static final CreativeTabs tabIronChests = new CreativeTabs("ironchest") - { - @Override - @Nonnull - @SideOnly(Side.CLIENT) - public ItemStack getTabIconItem() - { - return new ItemStack(Item.getItemFromBlock(IronChestBlocks.ironChestBlock), 1, IronChestType.IRON.ordinal()); - } - - @SideOnly(Side.CLIENT) - @Override - public void displayAllRelevantItems(NonNullList listIn) - { - CreativeTabItems.getSubItems(listIn); - } - }; -} diff --git a/src/main/java/cpw/mods/ironchest/common/core/IronChestItems.java b/src/main/java/cpw/mods/ironchest/common/core/IronChestItems.java deleted file mode 100644 index 2e41373d..00000000 --- a/src/main/java/cpw/mods/ironchest/common/core/IronChestItems.java +++ /dev/null @@ -1,53 +0,0 @@ -package cpw.mods.ironchest.common.core; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.items.ChestChangerType; -import cpw.mods.ironchest.common.items.ShulkerBoxChangerType; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.event.RegistryEvent.Register; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.registries.IForgeRegistry; - -public class IronChestItems -{ - @EventBusSubscriber(modid = IronChest.MOD_ID) - public static class Registration - { - @SubscribeEvent - public static void registerItems(Register event) - { - IForgeRegistry itemRegistry = event.getRegistry(); - - // Chest Start - ChestChangerType.buildItems(itemRegistry); - // Chest End - - // Shulker Start - ShulkerBoxChangerType.buildItems(itemRegistry); - // Shulker End - } - - @SubscribeEvent - public static void registerModels(ModelRegistryEvent event) - { - // Chest Start - for (ChestChangerType type : ChestChangerType.VALUES) - { - ModelLoader.setCustomModelResourceLocation(type.item, 0, new ModelResourceLocation(new ResourceLocation(IronChest.MOD_ID, "iron_chest_upgrades"), "variant=" + type.itemName.toLowerCase())); - } - // Chest End - - // Shulker Start - for (ShulkerBoxChangerType type : ShulkerBoxChangerType.VALUES) - { - ModelLoader.setCustomModelResourceLocation(type.item, 0, new ModelResourceLocation(new ResourceLocation(IronChest.MOD_ID, "iron_shulker_box_upgrades"), "variant=" + type.itemName.toLowerCase())); - } - // Shulker End - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/condition/OreDictEntryExistsConditionFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/condition/OreDictEntryExistsConditionFactory.java deleted file mode 100644 index 1d7f20fc..00000000 --- a/src/main/java/cpw/mods/ironchest/common/crafting/condition/OreDictEntryExistsConditionFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.crafting.condition; - -import java.util.function.BooleanSupplier; - -import com.google.gson.JsonObject; - -import net.minecraft.util.JsonUtils; -import net.minecraftforge.common.crafting.IConditionFactory; -import net.minecraftforge.common.crafting.JsonContext; -import net.minecraftforge.oredict.OreDictionary; - -public class OreDictEntryExistsConditionFactory implements IConditionFactory -{ - @Override - public BooleanSupplier parse(JsonContext context, JsonObject json) - { - String orename = JsonUtils.getString(json, "ore"); - - if (OreDictionary.getOres(orename).isEmpty()) - { - return () -> false; - } - else - { - return () -> true; - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java deleted file mode 100644 index 10a6b5a5..00000000 --- a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxColorRecipeFactory.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.crafting.recipe; - -import com.google.gson.JsonObject; - -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import net.minecraft.block.Block; -import net.minecraft.init.Items; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.NonNullList; -import net.minecraft.world.World; -import net.minecraftforge.common.crafting.IRecipeFactory; -import net.minecraftforge.common.crafting.JsonContext; -import net.minecraftforge.registries.IForgeRegistryEntry.Impl; - -public class ShulkerBoxColorRecipeFactory implements IRecipeFactory -{ - @Override - public IRecipe parse(JsonContext context, JsonObject json) - { - return new ShulkerBoxColorRecipe(); - } - - public static class ShulkerBoxColorRecipe extends Impl implements IRecipe - { - public ShulkerBoxColorRecipe() - { - } - - /** - * Used to check if a recipe matches current crafting inventory - */ - @Override - public boolean matches(InventoryCrafting inv, World worldIn) - { - int i = 0; - int j = 0; - - for (int k = 0; k < inv.getSizeInventory(); ++k) - { - ItemStack itemstack = inv.getStackInSlot(k); - - if (!itemstack.isEmpty()) - { - if (Block.getBlockFromItem(itemstack.getItem()) instanceof BlockIronShulkerBox) - { - ++i; - } - else - { - if (itemstack.getItem() != Items.DYE) - { - return false; - } - - ++j; - } - - if (j > 1 || i > 1) - { - return false; - } - } - } - - return i == 1 && j == 1; - } - - /** - * Returns an Item that is the result of this recipe - */ - @Override - public ItemStack getCraftingResult(InventoryCrafting inv) - { - ItemStack itemstack = ItemStack.EMPTY; - ItemStack itemstack1 = ItemStack.EMPTY; - - for (int i = 0; i < inv.getSizeInventory(); ++i) - { - ItemStack itemstack2 = inv.getStackInSlot(i); - - if (!itemstack2.isEmpty()) - { - if (Block.getBlockFromItem(itemstack2.getItem()) instanceof BlockIronShulkerBox) - { - itemstack = itemstack2; - } - else if (itemstack2.getItem() == Items.DYE) - { - itemstack1 = itemstack2; - } - } - } - - ItemStack itemstack3 = BlockIronShulkerBox.getColoredItemStack(EnumDyeColor.byDyeDamage(itemstack1.getMetadata()), itemstack.getMetadata()); - - if (itemstack.hasTagCompound()) - { - itemstack3.setTagCompound(itemstack.getTagCompound().copy()); - } - - return itemstack3; - } - - @Override - public ItemStack getRecipeOutput() - { - return ItemStack.EMPTY; - } - - @Override - public NonNullList getRemainingItems(InventoryCrafting inv) - { - NonNullList nonnulllist = NonNullList. withSize(inv.getSizeInventory(), ItemStack.EMPTY); - - for (int i = 0; i < nonnulllist.size(); ++i) - { - ItemStack itemstack = inv.getStackInSlot(i); - - if (itemstack.getItem().hasContainerItem(itemstack)) - { - nonnulllist.set(i, new ItemStack(itemstack.getItem().getContainerItem())); - } - } - - return nonnulllist; - } - - @Override - public boolean isDynamic() - { - return true; - } - - /** - * Used to determine if this recipe can fit in a grid of the given width/height - */ - @Override - public boolean canFit(int width, int height) - { - return width * height >= 2; - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java b/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java deleted file mode 100644 index 32e2daa7..00000000 --- a/src/main/java/cpw/mods/ironchest/common/crafting/recipe/ShulkerBoxRecipeFactory.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.crafting.recipe; - -import javax.annotation.Nonnull; - -import com.google.gson.JsonObject; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import net.minecraft.block.Block; -import net.minecraft.block.BlockShulkerBox; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.JsonUtils; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.crafting.CraftingHelper.ShapedPrimer; -import net.minecraftforge.common.crafting.IRecipeFactory; -import net.minecraftforge.common.crafting.JsonContext; -import net.minecraftforge.oredict.ShapedOreRecipe; - -public class ShulkerBoxRecipeFactory implements IRecipeFactory -{ - @Override - public IRecipe parse(JsonContext context, JsonObject json) - { - ShapedOreRecipe recipe = ShapedOreRecipe.factory(context, json); - - ShapedPrimer primer = new ShapedPrimer(); - primer.width = recipe.getRecipeWidth(); - primer.height = recipe.getRecipeHeight(); - primer.mirrored = JsonUtils.getBoolean(json, "mirrored", true); - primer.input = recipe.getIngredients(); - - return new ShulkerBoxRecipe(new ResourceLocation(IronChest.MOD_ID, "shulker_box_crafting"), recipe.getRecipeOutput(), primer); - } - - public static class ShulkerBoxRecipe extends ShapedOreRecipe - { - public ShulkerBoxRecipe(ResourceLocation group, ItemStack result, ShapedPrimer primer) - { - super(group, result, primer); - } - - @Override - @Nonnull - public ItemStack getCraftingResult(@Nonnull InventoryCrafting var1) - { - ItemStack newOutput = this.output.copy(); - - ItemStack itemstack = ItemStack.EMPTY; - - for (int i = 0; i < var1.getSizeInventory(); ++i) - { - ItemStack stack = var1.getStackInSlot(i); - - if (!stack.isEmpty()) - { - if (Block.getBlockFromItem(stack.getItem()) instanceof BlockIronShulkerBox || Block.getBlockFromItem(stack.getItem()) instanceof BlockShulkerBox) - { - itemstack = stack; - } - } - } - - if (itemstack.hasTagCompound()) - { - newOutput.setTagCompound(itemstack.getTagCompound().copy()); - } - - return newOutput; - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/gui/chest/ContainerIronChest.java b/src/main/java/cpw/mods/ironchest/common/gui/chest/ContainerIronChest.java deleted file mode 100755 index 019045fe..00000000 --- a/src/main/java/cpw/mods/ironchest/common/gui/chest/ContainerIronChest.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.gui.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import invtweaks.api.container.ChestContainer; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -@ChestContainer(isLargeChest = true) -public class ContainerIronChest extends Container -{ - private IronChestType type; - - private EntityPlayer player; - - private IInventory chest; - - public ContainerIronChest(IInventory playerInventory, IInventory chestInventory, IronChestType type, int xSize, int ySize) - { - this.chest = chestInventory; - this.player = ((InventoryPlayer) playerInventory).player; - this.type = type; - chestInventory.openInventory(this.player); - this.layoutContainer(playerInventory, chestInventory, type, xSize, ySize); - } - - @Override - public boolean canInteractWith(EntityPlayer playerIn) - { - return this.chest.isUsableByPlayer(playerIn); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) - { - ItemStack itemstack = ItemStack.EMPTY; - Slot slot = this.inventorySlots.get(index); - - if (slot != null && slot.getHasStack()) - { - ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); - - if (index < this.type.size) - { - if (!this.mergeItemStack(itemstack1, this.type.size, this.inventorySlots.size(), true)) - { - return ItemStack.EMPTY; - } - } - else if (!this.type.acceptsStack(itemstack1)) - { - return ItemStack.EMPTY; - } - else if (!this.mergeItemStack(itemstack1, 0, this.type.size, false)) - { - return ItemStack.EMPTY; - } - - if (itemstack1.isEmpty()) - { - slot.putStack(ItemStack.EMPTY); - } - else - { - slot.onSlotChanged(); - } - } - - return itemstack; - } - - @Override - public void onContainerClosed(EntityPlayer playerIn) - { - super.onContainerClosed(playerIn); - - this.chest.closeInventory(playerIn); - } - - protected void layoutContainer(IInventory playerInventory, IInventory chestInventory, IronChestType type, int xSize, int ySize) - { - if (type == IronChestType.DIRTCHEST9000) - { - this.addSlotToContainer(type.makeSlot(chestInventory, 0, 12 + 4 * 18, 8 + 2 * 18)); - } - else - { - for (int chestRow = 0; chestRow < type.getRowCount(); chestRow++) - { - for (int chestCol = 0; chestCol < type.rowLength; chestCol++) - { - this.addSlotToContainer(type.makeSlot(chestInventory, chestCol + chestRow * type.rowLength, 12 + chestCol * 18, 8 + chestRow * 18)); - } - } - } - - int leftCol = (xSize - 162) / 2 + 1; - - for (int playerInvRow = 0; playerInvRow < 3; playerInvRow++) - { - for (int playerInvCol = 0; playerInvCol < 9; playerInvCol++) - { - this.addSlotToContainer( - new Slot(playerInventory, playerInvCol + playerInvRow * 9 + 9, leftCol + playerInvCol * 18, ySize - (4 - playerInvRow) * 18 - 10)); - } - - } - - for (int hotbarSlot = 0; hotbarSlot < 9; hotbarSlot++) - { - this.addSlotToContainer(new Slot(playerInventory, hotbarSlot, leftCol + hotbarSlot * 18, ySize - 24)); - } - } - - public EntityPlayer getPlayer() - { - return this.player; - } - - @ChestContainer.RowSizeCallback - public int getNumColumns() - { - return this.type.rowLength; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/gui/chest/slot/ValidatingChestSlot.java b/src/main/java/cpw/mods/ironchest/common/gui/chest/slot/ValidatingChestSlot.java deleted file mode 100755 index 1985faa5..00000000 --- a/src/main/java/cpw/mods/ironchest/common/gui/chest/slot/ValidatingChestSlot.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.gui.chest.slot; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ValidatingChestSlot extends Slot -{ - private IronChestType type; - - public ValidatingChestSlot(IInventory inventoryIn, int slotIndex, int xPosition, int yPosition, IronChestType type) - { - super(inventoryIn, slotIndex, xPosition, yPosition); - this.type = type; - } - - @Override - public boolean isItemValid(ItemStack stack) - { - return this.type.acceptsStack(stack); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/gui/shulker/ContainerIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/gui/shulker/ContainerIronShulkerBox.java deleted file mode 100644 index 2d657e63..00000000 --- a/src/main/java/cpw/mods/ironchest/common/gui/shulker/ContainerIronShulkerBox.java +++ /dev/null @@ -1,138 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.gui.shulker; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import invtweaks.api.container.ChestContainer; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -@ChestContainer(isLargeChest = true) -public class ContainerIronShulkerBox extends Container -{ - private IronShulkerBoxType type; - - private EntityPlayer player; - - private IInventory inventory; - - public ContainerIronShulkerBox(IInventory playerInventory, IInventory shulkerBoxInventory, IronShulkerBoxType type, int xSize, int ySize) - { - this.inventory = shulkerBoxInventory; - this.player = ((InventoryPlayer) playerInventory).player; - this.type = type; - shulkerBoxInventory.openInventory(this.player); - this.layoutContainer(playerInventory, shulkerBoxInventory, type, xSize, ySize); - } - - protected void layoutContainer(IInventory playerInventory, IInventory shulkerBoxInventory, IronShulkerBoxType type, int xSize, int ySize) - { - for (int chestRow = 0; chestRow < type.getRowCount(); chestRow++) - { - for (int chestCol = 0; chestCol < type.rowLength; chestCol++) - { - this.addSlotToContainer(type.makeSlot(shulkerBoxInventory, chestCol + chestRow * type.rowLength, 12 + chestCol * 18, 8 + chestRow * 18)); - } - } - - int leftCol = (xSize - 162) / 2 + 1; - - for (int playerInvRow = 0; playerInvRow < 3; playerInvRow++) - { - for (int playerInvCol = 0; playerInvCol < 9; playerInvCol++) - { - //@formatter:off - this.addSlotToContainer(new Slot(playerInventory, playerInvCol + playerInvRow * 9 + 9, leftCol + playerInvCol * 18, ySize - (4 - playerInvRow) * 18 - 10)); - //@formatter:on - } - - } - - for (int hotbarSlot = 0; hotbarSlot < 9; hotbarSlot++) - { - this.addSlotToContainer(new Slot(playerInventory, hotbarSlot, leftCol + hotbarSlot * 18, ySize - 24)); - } - } - - public EntityPlayer getPlayer() - { - return this.player; - } - - /** - * Determines whether supplied player can use this container - */ - @Override - public boolean canInteractWith(EntityPlayer playerIn) - { - return this.inventory.isUsableByPlayer(playerIn); - } - - /** - * Take a stack from the specified inventory slot. - */ - @Override - public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) - { - ItemStack itemstack = ItemStack.EMPTY; - Slot slot = this.inventorySlots.get(index); - - if (slot != null && slot.getHasStack()) - { - ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); - - if (index < this.type.size) - { - if (!this.mergeItemStack(itemstack1, this.type.size, this.inventorySlots.size(), true)) - { - return ItemStack.EMPTY; - } - } - else if (!this.mergeItemStack(itemstack1, 0, this.type.size, false)) - { - return ItemStack.EMPTY; - } - - if (itemstack1.isEmpty()) - { - slot.putStack(ItemStack.EMPTY); - } - else - { - slot.onSlotChanged(); - } - } - - return itemstack; - } - - /** - * Called when the container is closed. - */ - @Override - public void onContainerClosed(EntityPlayer playerIn) - { - super.onContainerClosed(playerIn); - - this.inventory.closeInventory(playerIn); - } - - @ChestContainer.RowSizeCallback - public int getNumColumns() - { - return this.type.rowLength; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/gui/shulker/slot/ValidatingShulkerBoxSlot.java b/src/main/java/cpw/mods/ironchest/common/gui/shulker/slot/ValidatingShulkerBoxSlot.java deleted file mode 100644 index 9ce22118..00000000 --- a/src/main/java/cpw/mods/ironchest/common/gui/shulker/slot/ValidatingShulkerBoxSlot.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.gui.shulker.slot; - -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import net.minecraft.block.Block; -import net.minecraft.block.BlockShulkerBox; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ValidatingShulkerBoxSlot extends Slot -{ - public ValidatingShulkerBoxSlot(IInventory inventoryIn, int slotIndex, int xPosition, int yPosition) - { - super(inventoryIn, slotIndex, xPosition, yPosition); - } - - @Override - public boolean isItemValid(ItemStack stack) - { - //@formatter:off - return !(Block.getBlockFromItem(stack.getItem()) instanceof BlockIronShulkerBox) && !(Block.getBlockFromItem(stack.getItem()) instanceof BlockShulkerBox); - //@formatter:on - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java b/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java deleted file mode 100755 index de0fa602..00000000 --- a/src/main/java/cpw/mods/ironchest/common/items/ChestChangerType.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. All rights reserved. This program and the accompanying materials are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at http://www.gnu.org/licenses/gpl.html - *

- * Contributors: cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.items; - -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.COPPER; -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.CRYSTAL; -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.DIAMOND; -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.GOLD; -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.IRON; -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.OBSIDIAN; -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.SILVER; -import static cpw.mods.ironchest.common.blocks.chest.IronChestType.WOOD; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.items.chest.ItemChestChanger; -import net.minecraft.item.Item; -import net.minecraftforge.registries.IForgeRegistry; - -public enum ChestChangerType -{ - //@formatter:off - IRON_GOLD(IRON, GOLD, "iron_gold_chest_upgrade"), - GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_chest_upgrade"), - COPPER_SILVER(COPPER, SILVER, "copper_silver_chest_upgrade"), - SILVER_GOLD(SILVER, GOLD, "silver_gold_chest_upgrade"), - COPPER_IRON(COPPER, IRON, "copper_iron_chest_upgrade"), - DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_chest_upgrade"), - WOOD_IRON(WOOD, IRON, "wood_iron_chest_upgrade"), - WOOD_COPPER(WOOD, COPPER, "wood_copper_chest_upgrade"), - DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_chest_upgrade"); - //@formatter:on - - public static final ChestChangerType[] VALUES = values(); - - public final IronChestType source; - - public final IronChestType target; - - public final String itemName; - - public ItemChestChanger item; - - ChestChangerType(IronChestType source, IronChestType target, String itemName) - { - this.source = source; - this.target = target; - this.itemName = itemName; - } - - public boolean canUpgrade(IronChestType from) - { - return from == this.source; - } - - public ItemChestChanger buildItem(IForgeRegistry itemRegistry) - { - this.item = new ItemChestChanger(this); - - this.item.setRegistryName(this.itemName); - - itemRegistry.register(this.item); - - return this.item; - } - - public static void buildItems(IForgeRegistry itemRegistry) - { - for (ChestChangerType type : VALUES) - { - type.buildItem(itemRegistry); - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java b/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java deleted file mode 100644 index 9959d5de..00000000 --- a/src/main/java/cpw/mods/ironchest/common/items/ShulkerBoxChangerType.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. All rights reserved. This program and the accompanying materials are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at http://www.gnu.org/licenses/gpl.html - *

- * Contributors: cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.items; - -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.COPPER; -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.CRYSTAL; -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.DIAMOND; -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.GOLD; -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.IRON; -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.OBSIDIAN; -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.SILVER; -import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.VANILLA; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.items.shulker.ItemShulkerBoxChanger; -import net.minecraft.item.Item; -import net.minecraftforge.registries.IForgeRegistry; - -public enum ShulkerBoxChangerType -{ - //@formatter:off - IRON_GOLD(IRON, GOLD, "iron_gold_shulker_upgrade"), - GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_shulker_upgrade"), - COPPER_SILVER(COPPER, SILVER, "copper_silver_shulker_upgrade"), - SILVER_GOLD(SILVER, GOLD, "silver_gold_shulker_upgrade"), - COPPER_IRON(COPPER, IRON, "copper_iron_shulker_upgrade"), - DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_shulker_upgrade"), - VANILLA_IRON(VANILLA, IRON, "vanilla_iron_shulker_upgrade"), - VANILLA_COPPER(VANILLA, COPPER, "vanilla_copper_shulker_upgrade"), - DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_shulker_upgrade"); - //@formatter:on - - public static final ShulkerBoxChangerType[] VALUES = values(); - - public final IronShulkerBoxType source; - - public final IronShulkerBoxType target; - - public final String itemName; - - public ItemShulkerBoxChanger item; - - ShulkerBoxChangerType(IronShulkerBoxType source, IronShulkerBoxType target, String itemName) - { - this.source = source; - this.target = target; - this.itemName = itemName; - } - - public boolean canUpgrade(IronShulkerBoxType from) - { - return from == this.source; - } - - public ItemShulkerBoxChanger buildItem(IForgeRegistry itemRegistry) - { - this.item = new ItemShulkerBoxChanger(this); - - this.item.setRegistryName(this.itemName); - - itemRegistry.register(this.item); - - return this.item; - } - - public static void buildItems(IForgeRegistry itemRegistry) - { - for (ShulkerBoxChangerType type : VALUES) - { - type.buildItem(itemRegistry); - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemChestChanger.java b/src/main/java/cpw/mods/ironchest/common/items/chest/ItemChestChanger.java deleted file mode 100755 index 8402c8f5..00000000 --- a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemChestChanger.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.items.chest; - -import java.util.Locale; - -import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.core.IronChestBlocks; -import cpw.mods.ironchest.common.core.IronChestCreativeTabs; -import cpw.mods.ironchest.common.items.ChestChangerType; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import cpw.mods.ironchest.common.util.ItemTooltip; -import net.minecraft.block.BlockChest; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class ItemChestChanger extends ItemTooltip -{ - public final ChestChangerType type; - - public ItemChestChanger(ChestChangerType type) - { - this.type = type; - this.setMaxStackSize(1); - this.setUnlocalizedName("ironchest.chest." + type.name().toLowerCase(Locale.US)); - this.setCreativeTab(IronChestCreativeTabs.tabIronChests); - } - - /** - * Called when a Block is right-clicked with this Item - */ - @Override - //@formatter:off - public EnumActionResult onItemUseFirst(EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) - //@formatter:on - { - ItemStack itemstack = playerIn.getHeldItem(hand); - - if (worldIn.isRemote) - { - return EnumActionResult.PASS; - } - - if (this.type.canUpgrade(IronChestType.WOOD)) - { - if (!(worldIn.getBlockState(pos).getBlock() instanceof BlockChest)) - { - return EnumActionResult.PASS; - } - } - else - { - //@formatter:off - if (worldIn.getBlockState(pos) != IronChestBlocks.ironChestBlock.getStateFromMeta(IronChestType.valueOf(this.type.source.getName().toUpperCase()).ordinal())) - //@formatter:on - { - return EnumActionResult.PASS; - } - } - - TileEntity te = worldIn.getTileEntity(pos); - TileEntityIronChest newchest = new TileEntityIronChest(); - - NonNullList chestContents = NonNullList. withSize(27, ItemStack.EMPTY); - EnumFacing chestFacing = EnumFacing.DOWN; - - if (te != null) - { - if (te instanceof TileEntityIronChest) - { - chestContents = ((TileEntityIronChest) te).getItems(); - chestFacing = ((TileEntityIronChest) te).getFacing(); - newchest = this.type.target.makeEntity(); - - if (newchest == null) - { - return EnumActionResult.PASS; - } - } - else if (te instanceof TileEntityChest) - { - IBlockState chestState = worldIn.getBlockState(pos); - chestFacing = chestState.getValue(BlockChest.FACING); - TileEntityChest chest = (TileEntityChest) te; - - if (chest.numPlayersUsing > 0) - { - return EnumActionResult.PASS; - } - if (!this.type.canUpgrade(IronChestType.WOOD)) - { - return EnumActionResult.PASS; - } - - chestContents = NonNullList. withSize(chest.getSizeInventory(), ItemStack.EMPTY); - - for (int i = 0; i < chestContents.size(); i++) - { - chestContents.set(i, chest.getStackInSlot(i)); - } - - newchest = this.type.target.makeEntity(); - } - } - - te.updateContainingBlockInfo(); - - if (te instanceof TileEntityChest) - { - ((TileEntityChest) te).checkForAdjacentChests(); - } - - worldIn.removeTileEntity(pos); - worldIn.setBlockToAir(pos); - - IBlockState iblockstate = IronChestBlocks.ironChestBlock.getDefaultState().withProperty(BlockIronChest.VARIANT_PROP, this.type.target); - - worldIn.setTileEntity(pos, newchest); - worldIn.setBlockState(pos, iblockstate, 3); - - worldIn.notifyBlockUpdate(pos, iblockstate, iblockstate, 3); - - TileEntity te2 = worldIn.getTileEntity(pos); - - if (te2 instanceof TileEntityIronChest) - { - ((TileEntityIronChest) te2).setContents(chestContents); - ((TileEntityIronChest) te2).setFacing(chestFacing); - } - - if (!playerIn.capabilities.isCreativeMode) - { - itemstack.shrink(1); - } - - return EnumActionResult.SUCCESS; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemIronChest.java b/src/main/java/cpw/mods/ironchest/common/items/chest/ItemIronChest.java deleted file mode 100755 index 4d35ba85..00000000 --- a/src/main/java/cpw/mods/ironchest/common/items/chest/ItemIronChest.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.items.chest; - -import java.util.Locale; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemIronChest extends ItemBlock -{ - public ItemIronChest(Block block) - { - super(block); - - this.setRegistryName(block.getRegistryName()); - this.setMaxDamage(0); - this.setHasSubtypes(true); - } - - @Override - public int getMetadata(int meta) - { - return meta; - } - - @Override - public String getUnlocalizedName(ItemStack itemstack) - { - return "tile.ironchest.chest." + IronChestType.VALUES[itemstack.getMetadata()].name().toLowerCase(Locale.US); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemIronShulkerBox.java deleted file mode 100644 index c5a5351a..00000000 --- a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemIronShulkerBox.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.items.shulker; - -import java.util.Locale; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import net.minecraft.block.Block; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemIronShulkerBox extends ItemBlock -{ - private final String colorName; - - public ItemIronShulkerBox(Block block, EnumDyeColor colorIn) - { - super(block); - - this.setRegistryName(block.getRegistryName()); - this.setMaxDamage(0); - this.setHasSubtypes(true); - this.setMaxStackSize(1); - this.colorName = colorIn.getName(); - } - - @Override - public int getMetadata(int meta) - { - return meta; - } - - @Override - public String getUnlocalizedName(ItemStack itemstack) - { - return "tile.ironchest.shulker_box." + IronShulkerBoxType.VALUES[itemstack.getMetadata()].name().toLowerCase(Locale.US) + "." + this.colorName; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemShulkerBoxChanger.java b/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemShulkerBoxChanger.java deleted file mode 100644 index ce22c4ad..00000000 --- a/src/main/java/cpw/mods/ironchest/common/items/shulker/ItemShulkerBoxChanger.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.items.shulker; - -import java.util.Locale; - -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.core.IronChestCreativeTabs; -import cpw.mods.ironchest.common.items.ShulkerBoxChangerType; -import cpw.mods.ironchest.common.lib.BlockLists; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import cpw.mods.ironchest.common.util.ItemTooltip; -import net.minecraft.block.Block; -import net.minecraft.block.BlockShulkerBox; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityShulkerBox; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class ItemShulkerBoxChanger extends ItemTooltip -{ - public final ShulkerBoxChangerType type; - - public ItemShulkerBoxChanger(ShulkerBoxChangerType type) - { - this.type = type; - - this.setMaxStackSize(1); - this.setUnlocalizedName("ironchest.shulker_box." + type.name().toLowerCase(Locale.US)); - this.setCreativeTab(IronChestCreativeTabs.tabIronChests); - } - - public EnumDyeColor getColorFromTileEntity(TileEntity te, World worldIn) - { - if (te != null) - { - if (te instanceof TileEntityIronShulkerBox) - { - TileEntityIronShulkerBox ironShulkerBox = (TileEntityIronShulkerBox) te; - - Block ironShulkerBoxBlock = worldIn.getBlockState(ironShulkerBox.getPos()).getBlock(); - - for (int i = 0; i < BlockLists.SHULKER_BLOCKS.size(); i++) - { - if (BlockLists.SHULKER_BLOCKS.get(i) == ironShulkerBoxBlock) - { - return BlockLists.VANILLA_SHULKER_COLORS.get(i); - } - } - } - else if (te instanceof TileEntityShulkerBox) - { - TileEntityShulkerBox shulkerBox = (TileEntityShulkerBox) te; - - Block shulkerBoxBlock = worldIn.getBlockState(shulkerBox.getPos()).getBlock(); - - for (int i = 0; i < BlockLists.VANILLA_SHULKER_BLOCKS.size(); i++) - { - if (BlockLists.VANILLA_SHULKER_BLOCKS.get(i) == shulkerBoxBlock) - { - return BlockLists.VANILLA_SHULKER_COLORS.get(i); - } - } - } - } - - return EnumDyeColor.PURPLE; - } - - /** - * Called when a Block is right-clicked with this Item - */ - @Override - //@formatter:off - public EnumActionResult onItemUseFirst(EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) - //@formatter:on - { - ItemStack itemstack = playerIn.getHeldItem(hand); - - if (worldIn.isRemote) - { - return EnumActionResult.PASS; - } - - if (this.type.canUpgrade(IronShulkerBoxType.VANILLA)) - { - if (!(worldIn.getBlockState(pos).getBlock() instanceof BlockShulkerBox)) - { - return EnumActionResult.PASS; - } - } - else - { - if ((worldIn.getBlockState(pos).getBlock() instanceof BlockIronShulkerBox)) - { - //@formatter:off - if (worldIn.getBlockState(pos) != ((BlockIronShulkerBox) worldIn.getBlockState(pos).getBlock()).getStateFromMeta(IronShulkerBoxType.valueOf(this.type.source.getName().toUpperCase()).ordinal())) - //@formatter:on - { - return EnumActionResult.PASS; - } - } - else - { - return EnumActionResult.PASS; - } - } - - TileEntity te = worldIn.getTileEntity(pos); - - TileEntityIronShulkerBox newShulkerBox = new TileEntityIronShulkerBox(); - - NonNullList shulkerBoxContents = NonNullList. withSize(27, ItemStack.EMPTY); - EnumFacing shulkerBoxFacing = EnumFacing.UP; - EnumDyeColor shulkerBoxColor = EnumDyeColor.PURPLE; - - if (te != null) - { - if (te instanceof TileEntityIronShulkerBox) - { - shulkerBoxContents = ((TileEntityIronShulkerBox) te).getItems(); - shulkerBoxFacing = ((TileEntityIronShulkerBox) te).getFacing(); - shulkerBoxColor = getColorFromTileEntity(te, worldIn); - ((TileEntityIronShulkerBox) te).setHasBeenUpgraded(); - - newShulkerBox = this.type.target.makeEntity(shulkerBoxColor); - - if (newShulkerBox == null) - { - return EnumActionResult.PASS; - } - } - else if (te instanceof TileEntityShulkerBox) - { - IBlockState shulkerBoxState = worldIn.getBlockState(pos); - shulkerBoxFacing = shulkerBoxState.getValue(BlockShulkerBox.FACING); - TileEntityShulkerBox shulkerBox = (TileEntityShulkerBox) te; - - if (!this.type.canUpgrade(IronShulkerBoxType.VANILLA)) - { - return EnumActionResult.PASS; - } - - shulkerBoxContents = NonNullList. withSize(shulkerBox.getSizeInventory(), ItemStack.EMPTY); - - for (int i = 0; i < shulkerBoxContents.size(); i++) - { - shulkerBoxContents.set(i, shulkerBox.getStackInSlot(i)); - } - - shulkerBoxColor = getColorFromTileEntity(te, worldIn); - - shulkerBox.clear(); - shulkerBox.setDestroyedByCreativePlayer(true); - - newShulkerBox = this.type.target.makeEntity(shulkerBoxColor); - } - } - - te.updateContainingBlockInfo(); - - worldIn.setBlockToAir(pos); - - IBlockState iblockstate = null; - - if (BlockLists.SHULKER_BLOCKS.get(shulkerBoxColor.getMetadata()) != null) - { - Block block = BlockLists.SHULKER_BLOCKS.get(shulkerBoxColor.getMetadata()); - - iblockstate = block.getDefaultState().withProperty(BlockIronShulkerBox.VARIANT_PROP, this.type.target); - } - else - { - return EnumActionResult.PASS; - } - - worldIn.setTileEntity(pos, newShulkerBox); - worldIn.setBlockState(pos, iblockstate, 3); - - worldIn.notifyBlockUpdate(pos, iblockstate, iblockstate, 3); - - TileEntity te2 = worldIn.getTileEntity(pos); - - if (te2 instanceof TileEntityIronShulkerBox) - { - ((TileEntityIronShulkerBox) te2).setContents(shulkerBoxContents); - ((TileEntityIronShulkerBox) te2).setFacing(shulkerBoxFacing); - } - - if (!playerIn.capabilities.isCreativeMode) - { - itemstack.shrink(1); - } - - return EnumActionResult.SUCCESS; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java b/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java deleted file mode 100644 index 7b5cea8d..00000000 --- a/src/main/java/cpw/mods/ironchest/common/lib/BlockLists.java +++ /dev/null @@ -1,114 +0,0 @@ -package cpw.mods.ironchest.common.lib; - -import java.util.List; - -import com.google.common.collect.Lists; - -import cpw.mods.ironchest.common.core.IronChestBlocks; -import cpw.mods.ironchest.common.util.BehaviorDispenseIronShulkerBox; -import net.minecraft.block.Block; -import net.minecraft.block.BlockDispenser; -import net.minecraft.init.Blocks; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemBlock; - -public class BlockLists -{ - //@formatter:off - public static final List SHULKER_BLOCKS = Lists.newArrayList(); - public static final List SHULKER_ITEM_BLOCKS = Lists.newArrayList(); - - public static final List VANILLA_SHULKER_BLOCKS = Lists.newArrayList(); - public static final List VANILLA_SHULKER_COLORS = Lists.newArrayList(); - //@formatter:on - - public static void createVanillaShulkerBlockList() - { - VANILLA_SHULKER_BLOCKS.add(Blocks.WHITE_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.ORANGE_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.MAGENTA_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.LIGHT_BLUE_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.YELLOW_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.LIME_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.PINK_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.GRAY_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.SILVER_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.CYAN_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.PURPLE_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.BLUE_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.BROWN_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.GREEN_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.RED_SHULKER_BOX); - VANILLA_SHULKER_BLOCKS.add(Blocks.BLACK_SHULKER_BOX); - - VANILLA_SHULKER_COLORS.add(EnumDyeColor.WHITE); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.ORANGE); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.MAGENTA); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.LIGHT_BLUE); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.YELLOW); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.LIME); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.PINK); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.GRAY); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.SILVER); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.CYAN); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.PURPLE); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.BLUE); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.BROWN); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.GREEN); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.RED); - VANILLA_SHULKER_COLORS.add(EnumDyeColor.BLACK); - - } - - public static void createIronShulkerBlockList() - { - BlockLists.createVanillaShulkerBlockList(); - - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxWhiteBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxOrangeBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxMagentaBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxLightBlueBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxYellowBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxLimeBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxPinkBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxGrayBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxSilverBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxCyanBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxPurpleBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlueBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxBrownBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxGreenBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxRedBlock); - SHULKER_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlackBlock); - } - - public static void createShulkerItemList() - { - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxWhiteItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxOrangeItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxMagentaItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxLightBlueItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxYellowItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxLimeItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxPinkItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxGrayItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxSilverItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxCyanItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxPurpleItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlueItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxBrownItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxGreenItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxRedItemBlock); - SHULKER_ITEM_BLOCKS.add(IronChestBlocks.ironShulkerBoxBlackItemBlock); - - BlockLists.registerBlockBehavior(); - } - - public static void registerBlockBehavior() - { - for (ItemBlock block : SHULKER_ITEM_BLOCKS) - { - BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(block, new BehaviorDispenseIronShulkerBox()); - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalChestSync.java b/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalChestSync.java deleted file mode 100644 index 2772cea8..00000000 --- a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalChestSync.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.network; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.tileentity.chest.TileEntityIronChest; -import io.netty.buffer.ByteBuf; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; - -public class MessageCrystalChestSync implements IMessage -{ - int dimension; - BlockPos pos; - private NonNullList topStacks; - - public MessageCrystalChestSync(TileEntityIronChest tile, NonNullList stack) - { - this.dimension = tile.getWorld().provider.getDimension(); - this.pos = tile.getPos(); - this.topStacks = stack; - } - - public MessageCrystalChestSync() - { - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.dimension = buf.readInt(); - this.pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt()); - - int size = buf.readInt(); - this.topStacks = NonNullList. withSize(size, ItemStack.EMPTY); - - for (int i = 0; i < size; i++) - { - ItemStack itemstack = ByteBufUtils.readItemStack(buf); - - this.topStacks.set(i, itemstack); - } - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeInt(this.dimension); - buf.writeInt(this.pos.getX()); - buf.writeInt(this.pos.getY()); - buf.writeInt(this.pos.getZ()); - buf.writeInt(this.topStacks.size()); - - for (ItemStack stack : this.topStacks) - { - ByteBufUtils.writeItemStack(buf, stack); - } - } - - public static class Handler implements IMessageHandler - { - @Override - public IMessage onMessage(MessageCrystalChestSync message, MessageContext ctx) - { - World world = IronChest.proxy.getClientWorld(); - - if (world != null) - { - TileEntity tile = world.getTileEntity(message.pos); - - if (tile instanceof TileEntityIronChest) - ((TileEntityIronChest) tile).receiveMessageFromServer(message.topStacks); - } - - return null; - } - } -} \ No newline at end of file diff --git a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalShulkerSync.java b/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalShulkerSync.java deleted file mode 100644 index bae53acd..00000000 --- a/src/main/java/cpw/mods/ironchest/common/network/MessageCrystalShulkerSync.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.network; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import io.netty.buffer.ByteBuf; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; - -public class MessageCrystalShulkerSync implements IMessage -{ - int dimension; - BlockPos pos; - private NonNullList topStacks; - - public MessageCrystalShulkerSync(TileEntityIronShulkerBox tile, NonNullList stack) - { - this.dimension = tile.getWorld().provider.getDimension(); - this.pos = tile.getPos(); - this.topStacks = stack; - } - - public MessageCrystalShulkerSync() - { - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.dimension = buf.readInt(); - this.pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt()); - - int size = buf.readInt(); - this.topStacks = NonNullList. withSize(size, ItemStack.EMPTY); - - for (int i = 0; i < size; i++) - { - ItemStack itemstack = ByteBufUtils.readItemStack(buf); - - this.topStacks.set(i, itemstack); - } - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeInt(this.dimension); - buf.writeInt(this.pos.getX()); - buf.writeInt(this.pos.getY()); - buf.writeInt(this.pos.getZ()); - buf.writeInt(this.topStacks.size()); - - for (ItemStack stack : this.topStacks) - { - ByteBufUtils.writeItemStack(buf, stack); - } - } - - public static class Handler implements IMessageHandler - { - @Override - public IMessage onMessage(MessageCrystalShulkerSync message, MessageContext ctx) - { - World world = IronChest.proxy.getClientWorld(); - - if (world != null) - { - TileEntity tile = world.getTileEntity(message.pos); - - if (tile instanceof TileEntityIronShulkerBox) - ((TileEntityIronShulkerBox) tile).receiveMessageFromServer(message.topStacks); - } - - return null; - } - } -} \ No newline at end of file diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCopperChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCopperChest.java deleted file mode 100755 index 59e30f51..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCopperChest.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; - -public class TileEntityCopperChest extends TileEntityIronChest -{ - public TileEntityCopperChest() - { - super(IronChestType.COPPER); - } -} \ No newline at end of file diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCrystalChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCrystalChest.java deleted file mode 100755 index e0f333c4..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityCrystalChest.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; - -public class TileEntityCrystalChest extends TileEntityIronChest -{ - public TileEntityCrystalChest() - { - super(IronChestType.CRYSTAL); - } -} \ No newline at end of file diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityDiamondChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityDiamondChest.java deleted file mode 100755 index 3adf7edd..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityDiamondChest.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; - -public class TileEntityDiamondChest extends TileEntityIronChest -{ - public TileEntityDiamondChest() - { - super(IronChestType.DIAMOND); - } -} \ No newline at end of file diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityDirtChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityDirtChest.java deleted file mode 100755 index dd802c0d..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityDirtChest.java +++ /dev/null @@ -1,51 +0,0 @@ -package cpw.mods.ironchest.common.tileentity.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.nbt.NBTTagString; -import net.minecraft.util.text.translation.I18n; - -@SuppressWarnings("deprecation") -public class TileEntityDirtChest extends TileEntityIronChest -{ - private static ItemStack dirtChest9000GuideBook = new ItemStack(Items.WRITTEN_BOOK); - - static - { - dirtChest9000GuideBook.setTagInfo("author", new NBTTagString("cpw")); - dirtChest9000GuideBook.setTagInfo("title", new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.title"))); - NBTTagList pages = new NBTTagList(); - pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page1"))); - pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page2"))); - pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page3"))); - pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page4"))); - pages.appendTag(new NBTTagString(I18n.translateToLocal("book.ironchest.dirtchest9000.page5"))); - dirtChest9000GuideBook.setTagInfo("pages", pages); - } - - public TileEntityDirtChest() - { - super(IronChestType.DIRTCHEST9000); - } - - @Override - public void wasPlaced(EntityLivingBase entityliving, ItemStack itemStack) - { - if (!(itemStack.hasTagCompound() && itemStack.getTagCompound().getBoolean("dirtchest"))) - { - this.setInventorySlotContents(0, dirtChest9000GuideBook.copy()); - } - } - - @Override - public void removeAdornments() - { - if (!this.getItems().get(0).isEmpty() && this.getItems().get(0).isItemEqual(dirtChest9000GuideBook)) - { - this.getItems().set(0, ItemStack.EMPTY); - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityGoldChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityGoldChest.java deleted file mode 100755 index d6f0e792..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityGoldChest.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; - -public class TileEntityGoldChest extends TileEntityIronChest -{ - public TileEntityGoldChest() - { - super(IronChestType.GOLD); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityIronChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityIronChest.java deleted file mode 100755 index 82484179..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityIronChest.java +++ /dev/null @@ -1,633 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.chest; - -import java.util.Collections; -import java.util.Comparator; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.blocks.chest.BlockIronChest; -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.core.IronChestBlocks; -import cpw.mods.ironchest.common.gui.chest.ContainerIronChest; -import cpw.mods.ironchest.common.network.MessageCrystalChestSync; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntityLockableLoot; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraftforge.common.util.Constants; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; - -public class TileEntityIronChest extends TileEntityLockableLoot implements ITickable -{ - /** Chest Contents */ - public NonNullList chestContents; - - /** Crystal Chest top stacks */ - private NonNullList topStacks; - - /** The current angle of the lid (between 0 and 1) */ - public float lidAngle; - - /** The angle of the lid last tick */ - public float prevLidAngle; - - /** The number of players currently using this chest */ - public int numPlayersUsing; - - /** Server sync counter (once per 20 ticks) */ - private int ticksSinceSync; - - /** Direction chest is facing */ - private EnumFacing facing; - - /** If the inventory got touched */ - private boolean inventoryTouched; - - /** If the inventory had items */ - private boolean hadStuff; - - private String customName; - - private IronChestType chestType; - - public TileEntityIronChest() - { - this(IronChestType.IRON); - } - - protected TileEntityIronChest(IronChestType type) - { - super(); - this.chestType = type; - this.chestContents = NonNullList. withSize(type.size, ItemStack.EMPTY); - this.topStacks = NonNullList. withSize(8, ItemStack.EMPTY); - this.facing = EnumFacing.NORTH; - } - - public void setContents(NonNullList contents) - { - this.chestContents = NonNullList. withSize(this.getType().size, ItemStack.EMPTY); - - for (int i = 0; i < contents.size(); i++) - { - if (i < this.chestContents.size()) - { - this.getItems().set(i, contents.get(i)); - } - } - - this.inventoryTouched = true; - } - - @Override - public int getSizeInventory() - { - return this.getItems().size(); - } - - public EnumFacing getFacing() - { - return this.facing; - } - - public IronChestType getType() - { - IronChestType type = IronChestType.IRON; - - if (this.hasWorld()) - { - IBlockState state = this.world.getBlockState(this.pos); - - if (state.getBlock() == IronChestBlocks.ironChestBlock) - { - type = state.getValue(BlockIronChest.VARIANT_PROP); - } - } - - return type; - } - - @Override - public ItemStack getStackInSlot(int index) - { - this.fillWithLoot((EntityPlayer) null); - - this.inventoryTouched = true; - - return this.getItems().get(index); - } - - @Override - public void markDirty() - { - super.markDirty(); - - this.sortTopStacks(); - } - - protected void sortTopStacks() - { - if (!this.getType().isTransparent() || (this.world != null && this.world.isRemote)) - { - return; - } - - NonNullList tempCopy = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); - - boolean hasStuff = false; - - int compressedIdx = 0; - - mainLoop: - for (int i = 0; i < this.getSizeInventory(); i++) - { - ItemStack itemStack = this.getItems().get(i); - - if (!itemStack.isEmpty()) - { - for (int j = 0; j < compressedIdx; j++) - { - ItemStack tempCopyStack = tempCopy.get(j); - - if (ItemStack.areItemsEqualIgnoreDurability(tempCopyStack, itemStack)) - { - if (itemStack.getCount() != tempCopyStack.getCount()) - { - tempCopyStack.grow(itemStack.getCount()); - } - - continue mainLoop; - } - } - - tempCopy.set(compressedIdx, itemStack.copy()); - - compressedIdx++; - - hasStuff = true; - } - } - - if (!hasStuff && this.hadStuff) - { - this.hadStuff = false; - - for (int i = 0; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - if (this.world != null) - { - IBlockState iblockstate = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, iblockstate, iblockstate, 3); - } - - return; - } - - this.hadStuff = true; - - Collections.sort(tempCopy, new Comparator() - { - @Override - public int compare(ItemStack stack1, ItemStack stack2) - { - if (stack1.isEmpty()) - { - return 1; - } - else if (stack2.isEmpty()) - { - return -1; - } - else - { - return stack2.getCount() - stack1.getCount(); - } - } - }); - - int p = 0; - - for (ItemStack element : tempCopy) - { - if (!element.isEmpty() && element.getCount() > 0) - { - if (p == this.getTopItems().size()) - { - break; - } - - this.getTopItems().set(p, element); - - p++; - } - } - - for (int i = p; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - if (this.world != null) - { - IBlockState iblockstate = this.world.getBlockState(this.pos); - - this.world.notifyBlockUpdate(this.pos, iblockstate, iblockstate, 3); - } - - sendTopStacksPacket(); - } - - @Override - public String getName() - { - return this.hasCustomName() ? this.customName : this.getType().name(); - } - - @Override - public boolean hasCustomName() - { - return this.customName != null && this.customName.length() > 0; - } - - @Override - public void setCustomName(String name) - { - this.customName = name; - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - this.chestContents = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); - - if (compound.hasKey("CustomName", Constants.NBT.TAG_STRING)) - { - this.customName = compound.getString("CustomName"); - } - - if (!this.checkLootAndRead(compound)) - { - ItemStackHelper.loadAllItems(compound, this.chestContents); - } - - this.facing = EnumFacing.VALUES[compound.getByte("facing")]; - - this.sortTopStacks(); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - - if (!this.checkLootAndWrite(compound)) - { - ItemStackHelper.saveAllItems(compound, this.chestContents); - } - - compound.setByte("facing", (byte) this.facing.ordinal()); - - if (this.hasCustomName()) - { - compound.setString("CustomName", this.customName); - } - - return compound; - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUsableByPlayer(EntityPlayer player) - { - if (this.world == null) - { - return true; - } - - if (this.world.getTileEntity(this.pos) != this) - { - return false; - } - - return player.getDistanceSq(this.pos.getX() + 0.5D, this.pos.getY() + 0.5D, this.pos.getZ() + 0.5D) <= 64D; - } - - @Override - public void update() - { - // Resynchronizes clients with the server state - //@formatter:off - if (this.world != null && !this.world.isRemote && this.numPlayersUsing != 0 && (this.ticksSinceSync + this.pos.getX() + this.pos.getY() + this.pos.getZ()) % 200 == 0) - //@formatter:on - { - this.numPlayersUsing = 0; - - float f = 5.0F; - - //@formatter:off - for (EntityPlayer player : this.world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(this.pos.getX() - f, this.pos.getY() - f, this.pos.getZ() - f, this.pos.getX() + 1 + f, this.pos.getY() + 1 + f, this.pos.getZ() + 1 + f))) - //@formatter:on - { - if (player.openContainer instanceof ContainerIronChest) - { - ++this.numPlayersUsing; - } - } - } - - if (this.world != null && !this.world.isRemote && this.ticksSinceSync < 0) - { - this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 3, ((this.numPlayersUsing << 3) & 0xF8) | (this.facing.ordinal() & 0x7)); - } - - if (!this.world.isRemote && this.inventoryTouched) - { - this.inventoryTouched = false; - - this.sortTopStacks(); - } - - this.ticksSinceSync++; - - this.prevLidAngle = this.lidAngle; - - float angle = 0.1F; - - if (this.numPlayersUsing > 0 && this.lidAngle == 0.0F) - { - double x = this.pos.getX() + 0.5D; - double y = this.pos.getY() + 0.5D; - double z = this.pos.getZ() + 0.5D; - - this.world.playSound(null, x, y, z, SoundEvents.BLOCK_CHEST_OPEN, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); - } - - if (this.numPlayersUsing == 0 && this.lidAngle > 0.0F || this.numPlayersUsing > 0 && this.lidAngle < 1.0F) - { - float currentAngle = this.lidAngle; - - if (this.numPlayersUsing > 0) - { - this.lidAngle += angle; - } - else - { - this.lidAngle -= angle; - } - - if (this.lidAngle > 1.0F) - { - this.lidAngle = 1.0F; - } - - float maxAngle = 0.5F; - - if (this.lidAngle < maxAngle && currentAngle >= maxAngle) - { - double x = this.pos.getX() + 0.5D; - double y = this.pos.getY() + 0.5D; - double z = this.pos.getZ() + 0.5D; - - this.world.playSound(null, x, y, z, SoundEvents.BLOCK_CHEST_CLOSE, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); - } - - if (this.lidAngle < 0.0F) - { - this.lidAngle = 0.0F; - } - } - } - - @Override - public boolean receiveClientEvent(int id, int type) - { - if (id == 1) - { - this.numPlayersUsing = type; - } - else if (id == 2) - { - this.facing = EnumFacing.VALUES[type]; - } - else if (id == 3) - { - this.facing = EnumFacing.VALUES[type & 0x7]; - this.numPlayersUsing = (type & 0xF8) >> 3; - } - - return true; - } - - @Override - public void openInventory(EntityPlayer player) - { - if (!player.isSpectator()) - { - if (this.world == null) - { - return; - } - - if (this.numPlayersUsing < 0) - { - this.numPlayersUsing = 0; - } - - ++this.numPlayersUsing; - - this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 1, this.numPlayersUsing); - this.world.notifyNeighborsOfStateChange(this.pos, IronChestBlocks.ironChestBlock, false); - this.world.notifyNeighborsOfStateChange(this.pos.down(), IronChestBlocks.ironChestBlock, false); - } - } - - @Override - public void closeInventory(EntityPlayer player) - { - if (!player.isSpectator()) - { - if (this.world == null) - { - return; - } - - --this.numPlayersUsing; - - this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 1, this.numPlayersUsing); - this.world.notifyNeighborsOfStateChange(this.pos, IronChestBlocks.ironChestBlock, false); - this.world.notifyNeighborsOfStateChange(this.pos.down(), IronChestBlocks.ironChestBlock, false); - } - } - - public void setFacing(EnumFacing facing) - { - this.facing = facing; - } - - @Override - public SPacketUpdateTileEntity getUpdatePacket() - { - NBTTagCompound compound = new NBTTagCompound(); - - compound.setByte("facing", (byte) this.facing.ordinal()); - - return new SPacketUpdateTileEntity(this.pos, 0, compound); - } - - @Override - public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) - { - if (pkt.getTileEntityType() == 0) - { - NBTTagCompound compound = pkt.getNbtCompound(); - - this.facing = EnumFacing.VALUES[compound.getByte("facing")]; - } - } - - public NonNullList buildItemStackDataList() - { - if (this.getType().isTransparent()) - { - NonNullList sortList = NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - - int pos = 0; - - for (ItemStack is : this.topStacks) - { - if (!is.isEmpty()) - { - sortList.set(pos, is); - } - else - { - sortList.set(pos, ItemStack.EMPTY); - } - - pos++; - } - - return sortList; - } - - return NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - } - - @Override - public boolean isItemValidForSlot(int index, ItemStack stack) - { - return this.getType().acceptsStack(stack); - } - - public void rotateAround() - { - this.setFacing(this.facing.rotateY()); - - this.world.addBlockEvent(this.pos, IronChestBlocks.ironChestBlock, 2, this.facing.ordinal()); - } - - public void wasPlaced(EntityLivingBase entityliving, ItemStack stack) - { - } - - public void removeAdornments() - { - } - - @Override - public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) - { - this.fillWithLoot(playerIn); - - return new ContainerIronChest(playerInventory, this, this.chestType, this.chestType.xSize, this.chestType.ySize); - } - - @Override - public String getGuiID() - { - return "IronChest:" + this.getType().name() + "_chest"; - } - - @Override - public boolean canRenderBreaking() - { - return true; - } - - @Override - public NBTTagCompound getUpdateTag() - { - return this.writeToNBT(new NBTTagCompound()); - } - - @Override - public NonNullList getItems() - { - return this.chestContents; - } - - public NonNullList getTopItems() - { - return this.topStacks; - } - - @Override - public boolean isEmpty() - { - for (ItemStack itemstack : this.chestContents) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - - protected void sendTopStacksPacket() - { - NonNullList stacks = this.buildItemStackDataList(); - //@formatter:off - IronChest.packetHandler.sendToAllAround(new MessageCrystalChestSync(this, stacks), new TargetPoint(world.provider.getDimension(), getPos().getX(), getPos().getY(), getPos().getZ(), 128)); - //@formatter:on - } - - public void receiveMessageFromServer(NonNullList topStacks) - { - this.topStacks = topStacks; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityObsidianChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityObsidianChest.java deleted file mode 100755 index 0a878416..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntityObsidianChest.java +++ /dev/null @@ -1,11 +0,0 @@ -package cpw.mods.ironchest.common.tileentity.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; - -public class TileEntityObsidianChest extends TileEntityIronChest -{ - public TileEntityObsidianChest() - { - super(IronChestType.OBSIDIAN); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntitySilverChest.java b/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntitySilverChest.java deleted file mode 100755 index 9da06a60..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/chest/TileEntitySilverChest.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.chest; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; - -public class TileEntitySilverChest extends TileEntityIronChest -{ - public TileEntitySilverChest() - { - super(IronChestType.SILVER); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCopperShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCopperShulkerBox.java deleted file mode 100644 index a70e3a00..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCopperShulkerBox.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.shulker; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import net.minecraft.item.EnumDyeColor; - -public class TileEntityCopperShulkerBox extends TileEntityIronShulkerBox -{ - public TileEntityCopperShulkerBox() - { - this(null); - } - - public TileEntityCopperShulkerBox(@Nullable EnumDyeColor colorIn) - { - super(colorIn, IronShulkerBoxType.COPPER); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCrystalShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCrystalShulkerBox.java deleted file mode 100644 index 066b5717..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityCrystalShulkerBox.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.shulker; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import net.minecraft.item.EnumDyeColor; - -public class TileEntityCrystalShulkerBox extends TileEntityIronShulkerBox -{ - public TileEntityCrystalShulkerBox() - { - this(null); - } - - public TileEntityCrystalShulkerBox(@Nullable EnumDyeColor colorIn) - { - super(colorIn, IronShulkerBoxType.CRYSTAL); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityDiamondShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityDiamondShulkerBox.java deleted file mode 100644 index b8b5915a..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityDiamondShulkerBox.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.shulker; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import net.minecraft.item.EnumDyeColor; - -public class TileEntityDiamondShulkerBox extends TileEntityIronShulkerBox -{ - public TileEntityDiamondShulkerBox() - { - this(null); - } - - public TileEntityDiamondShulkerBox(@Nullable EnumDyeColor colorIn) - { - super(colorIn, IronShulkerBoxType.DIAMOND); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityGoldShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityGoldShulkerBox.java deleted file mode 100644 index 51c874ad..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityGoldShulkerBox.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.shulker; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import net.minecraft.item.EnumDyeColor; - -public class TileEntityGoldShulkerBox extends TileEntityIronShulkerBox -{ - public TileEntityGoldShulkerBox() - { - this(null); - } - - public TileEntityGoldShulkerBox(@Nullable EnumDyeColor colorIn) - { - super(colorIn, IronShulkerBoxType.GOLD); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityIronShulkerBox.java deleted file mode 100644 index e324664d..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityIronShulkerBox.java +++ /dev/null @@ -1,795 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.shulker; - -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.IronChest; -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.gui.shulker.ContainerIronShulkerBox; -import cpw.mods.ironchest.common.network.MessageCrystalShulkerSync; -import net.minecraft.block.Block; -import net.minecraft.block.BlockShulkerBox; -import net.minecraft.block.material.EnumPushReaction; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.MoverType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.inventory.ItemStackHelper; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.play.server.SPacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntityLockableLoot; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ITickable; -import net.minecraft.util.NonNullList; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements ITickable, ISidedInventory -{ - private final int[] SLOTS; - - /** Shulker Box Contents */ - private NonNullList items; - - /** Crystal Shulker Boxes top stacks */ - private NonNullList topStacks; - - /** Direction Shulker ox is facing */ - private EnumFacing facing; - - /** If the inventory got touched */ - private boolean inventoryTouched; - - /** Server sync counter (once per 20 ticks) */ - private int ticksSinceSync; - - /** If the inventory had items */ - private boolean hadStuff; - - private boolean hasBeenCleared; - private int openCount; - private AnimationStatus animationStatus; - private float progress; - private float progressOld; - private EnumDyeColor color; - private boolean destroyedByCreativePlayer; - private boolean hasBeenUpgraded; - - /** The Variant of the Shulker Box (Not Color) */ - private IronShulkerBoxType shulkerBoxType; - - public TileEntityIronShulkerBox() - { - this(null); - } - - public TileEntityIronShulkerBox(@Nullable EnumDyeColor colorIn) - { - this(colorIn, IronShulkerBoxType.IRON); - } - - public TileEntityIronShulkerBox(@Nullable EnumDyeColor colorIn, IronShulkerBoxType typeIn) - { - super(); - - this.shulkerBoxType = typeIn; - - this.SLOTS = new int[typeIn.size]; - - this.items = NonNullList. withSize(typeIn.size, ItemStack.EMPTY); - this.topStacks = NonNullList. withSize(8, ItemStack.EMPTY); - - this.animationStatus = AnimationStatus.CLOSED; - this.color = colorIn; - - this.facing = EnumFacing.UP; - - this.hasBeenUpgraded = false; - } - - public void setContents(NonNullList contents) - { - this.items = NonNullList. withSize(this.getType().size, ItemStack.EMPTY); - - for (int i = 0; i < contents.size(); i++) - { - if (i < this.items.size()) - { - this.getItems().set(i, contents.get(i)); - } - } - - this.inventoryTouched = true; - } - - @Override - public int getSizeInventory() - { - return this.getItems().size(); - } - - public EnumFacing getFacing() - { - return this.facing; - } - - public IronShulkerBoxType getType() - { - IronShulkerBoxType type = IronShulkerBoxType.IRON; - - if (this.hasWorld()) - { - IBlockState state = this.world.getBlockState(this.pos); - - if (state.getBlock() instanceof BlockIronShulkerBox) - { - type = state.getValue(BlockIronShulkerBox.VARIANT_PROP); - } - } - - return type; - } - - @Override - public ItemStack getStackInSlot(int index) - { - this.fillWithLoot((EntityPlayer) null); - - this.inventoryTouched = true; - - return this.getItems().get(index); - } - - @Override - public void markDirty() - { - super.markDirty(); - - this.sortTopStacks(); - } - - protected void sortTopStacks() - { - if (!this.getType().isTransparent() || (this.world != null && this.world.isRemote)) - { - return; - } - - NonNullList tempCopy = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); - - boolean hasStuff = false; - - int compressedIdx = 0; - - mainLoop: for (int i = 0; i < this.getSizeInventory(); i++) - { - ItemStack itemStack = this.getItems().get(i); - - if (!itemStack.isEmpty()) - { - for (int j = 0; j < compressedIdx; j++) - { - ItemStack tempCopyStack = tempCopy.get(j); - - if (ItemStack.areItemsEqualIgnoreDurability(tempCopyStack, itemStack)) - { - if (itemStack.getCount() != tempCopyStack.getCount()) - { - tempCopyStack.grow(itemStack.getCount()); - } - - continue mainLoop; - } - } - - tempCopy.set(compressedIdx, itemStack.copy()); - - compressedIdx++; - - hasStuff = true; - } - } - - if (!hasStuff && this.hadStuff) - { - this.hadStuff = false; - - for (int i = 0; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - return; - } - - this.hadStuff = true; - - Collections.sort(tempCopy, new Comparator() { - @Override - public int compare(ItemStack stack1, ItemStack stack2) - { - if (stack1.isEmpty()) - { - return 1; - } - else if (stack2.isEmpty()) - { - return -1; - } - else - { - return stack2.getCount() - stack1.getCount(); - } - } - }); - - int p = 0; - - for (ItemStack element : tempCopy) - { - if (!element.isEmpty() && element.getCount() > 0) - { - if (p == this.getTopItems().size()) - { - break; - } - - this.getTopItems().set(p, element); - - p++; - } - } - - for (int i = p; i < this.getTopItems().size(); i++) - { - this.getTopItems().set(i, ItemStack.EMPTY); - } - - sendTopStacksPacket(); - } - - /** - * Get the name of this object. For players this returns their username - */ - @Override - public String getName() - { - return this.hasCustomName() ? this.customName : this.getType().name(); - } - - @Override - public void readFromNBT(NBTTagCompound compound) - { - super.readFromNBT(compound); - - this.loadFromNbt(compound); - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) - { - super.writeToNBT(compound); - - return this.saveToNbt(compound); - } - - public void loadFromNbt(NBTTagCompound compound) - { - this.items = NonNullList. withSize(this.getSizeInventory(), ItemStack.EMPTY); - - if (!this.checkLootAndRead(compound) && compound.hasKey("Items", 9)) - { - ItemStackHelper.loadAllItems(compound, this.items); - } - - if (compound.hasKey("CustomName", 8)) - { - this.customName = compound.getString("CustomName"); - } - - this.facing = EnumFacing.VALUES[compound.getByte("facing")]; - - this.sortTopStacks(); - } - - public NBTTagCompound saveToNbt(NBTTagCompound compound) - { - if (!this.checkLootAndWrite(compound)) - { - ItemStackHelper.saveAllItems(compound, this.items, false); - } - - compound.setInteger("ShulkerBoxSize", this.getSizeInventory()); - - compound.setByte("facing", (byte) this.facing.ordinal()); - - if (this.hasCustomName()) - { - compound.setString("CustomName", this.customName); - } - - if (!compound.hasKey("Lock") && this.isLocked()) - { - this.getLockCode().toNBT(compound); - } - - return compound; - } - - /** - * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. - */ - @Override - public int getInventoryStackLimit() - { - return 64; - } - - /** - * Like the old updateEntity(), except more generic. - */ - @Override - public void update() - { - this.updateAnimation(); - - if (this.animationStatus == AnimationStatus.OPENING || this.animationStatus == AnimationStatus.CLOSING) - { - this.moveCollidedEntities(); - } - - if (this.world != null && !this.world.isRemote && this.ticksSinceSync < 0) - { - this.world.addBlockEvent(this.pos, this.getBlockType(), 3, ((this.openCount << 3) & 0xF8) | (this.facing.ordinal() & 0x7)); - } - - if (!this.world.isRemote && this.inventoryTouched) - { - this.inventoryTouched = false; - - this.sortTopStacks(); - } - - this.ticksSinceSync++; - } - - protected void updateAnimation() - { - this.progressOld = this.progress; - - switch (this.animationStatus) - { - case CLOSED: - this.progress = 0.0F; - break; - case OPENING: - this.progress += 0.1F; - - if (this.progress >= 1.0F) - { - this.moveCollidedEntities(); - this.animationStatus = AnimationStatus.OPENED; - this.progress = 1.0F; - } - - break; - case CLOSING: - this.progress -= 0.1F; - - if (this.progress <= 0.0F) - { - this.animationStatus = AnimationStatus.CLOSED; - this.progress = 0.0F; - } - - break; - case OPENED: - this.progress = 1.0F; - } - } - - public AnimationStatus getAnimationStatus() - { - return this.animationStatus; - } - - public AxisAlignedBB getBoundingBox() - { - return this.getBoundingBox(this.getFacing()); - } - - public AxisAlignedBB getBoundingBox(EnumFacing facing) - { - //@formatter:off - return Block.FULL_BLOCK_AABB.expand(0.5F * this.getProgress(1.0F) * facing.getFrontOffsetX(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetY(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetZ()); - //@formatter:on - } - - private AxisAlignedBB getTopBoundingBox(EnumFacing facing) - { - EnumFacing enumfacing = facing.getOpposite(); - - return this.getBoundingBox(facing).contract(enumfacing.getFrontOffsetX(), enumfacing.getFrontOffsetY(), enumfacing.getFrontOffsetZ()); - } - - private void moveCollidedEntities() - { - IBlockState iblockstate = this.world.getBlockState(this.getPos()); - - if (iblockstate.getBlock() instanceof BlockIronShulkerBox) - { - EnumFacing enumfacing = this.getFacing(); - AxisAlignedBB axisalignedbb = this.getTopBoundingBox(enumfacing).offset(this.pos); - List list = this.world.getEntitiesWithinAABBExcludingEntity((Entity) null, axisalignedbb); - - if (!list.isEmpty()) - { - for (int i = 0; i < list.size(); ++i) - { - Entity entity = list.get(i); - - if (entity.getPushReaction() != EnumPushReaction.IGNORE) - { - double d0 = 0.0D; - double d1 = 0.0D; - double d2 = 0.0D; - AxisAlignedBB axisalignedbb1 = entity.getEntityBoundingBox(); - - switch (enumfacing.getAxis()) - { - case X: - - if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) - { - d0 = axisalignedbb.maxX - axisalignedbb1.minX; - } - else - { - d0 = axisalignedbb1.maxX - axisalignedbb.minX; - } - - d0 = d0 + 0.01D; - break; - case Y: - - if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) - { - d1 = axisalignedbb.maxY - axisalignedbb1.minY; - } - else - { - d1 = axisalignedbb1.maxY - axisalignedbb.minY; - } - - d1 = d1 + 0.01D; - break; - case Z: - - if (enumfacing.getAxisDirection() == EnumFacing.AxisDirection.POSITIVE) - { - d2 = axisalignedbb.maxZ - axisalignedbb1.minZ; - } - else - { - d2 = axisalignedbb1.maxZ - axisalignedbb.minZ; - } - - d2 = d2 + 0.01D; - } - - //@formatter:off - entity.move(MoverType.SHULKER_BOX, d0 * enumfacing.getFrontOffsetX(), d1 * enumfacing.getFrontOffsetY(), d2 * enumfacing.getFrontOffsetZ()); - //@formatter:on - } - } - } - } - } - - @Override - public boolean receiveClientEvent(int id, int type) - { - if (id == 1) - { - this.openCount = type; - - if (type == 0) - { - this.animationStatus = AnimationStatus.CLOSING; - } - - if (type == 1) - { - this.animationStatus = AnimationStatus.OPENING; - } - - return true; - } - else if (id == 2) - { - this.facing = EnumFacing.VALUES[type]; - - return true; - } - else if (id == 3) - { - this.facing = EnumFacing.VALUES[type & 0x7]; - - this.openCount = (type & 0xF8) >> 3; - - return true; - } - else - { - return super.receiveClientEvent(id, type); - } - } - - @Override - public void openInventory(EntityPlayer player) - { - if (!player.isSpectator()) - { - if (this.openCount < 0) - { - this.openCount = 0; - } - - ++this.openCount; - - this.world.addBlockEvent(this.pos, this.getBlockType(), 1, this.openCount); - - if (this.openCount == 1) - { - //@formatter:off - this.world.playSound((EntityPlayer) null, this.pos, SoundEvents.BLOCK_SHULKER_BOX_OPEN, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); - //@formatter:on - } - } - } - - @Override - public void closeInventory(EntityPlayer player) - { - if (!player.isSpectator()) - { - --this.openCount; - - this.world.addBlockEvent(this.pos, this.getBlockType(), 1, this.openCount); - - if (this.openCount <= 0) - { - //@formatter:off - this.world.playSound((EntityPlayer) null, this.pos, SoundEvents.BLOCK_SHULKER_BOX_CLOSE, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); - //@formatter:on - } - } - } - - public void setFacing(EnumFacing facing) - { - this.facing = facing; - } - - @Override - @Nullable - public SPacketUpdateTileEntity getUpdatePacket() - { - NBTTagCompound compound = new NBTTagCompound(); - - compound.setByte("facing", (byte) this.facing.ordinal()); - - return new SPacketUpdateTileEntity(this.pos, 0, compound); - } - - @Override - public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) - { - if (pkt.getTileEntityType() == 0) - { - NBTTagCompound compound = pkt.getNbtCompound(); - - this.facing = EnumFacing.VALUES[compound.getByte("facing")]; - } - } - - public NonNullList buildItemStackDataList() - { - if (this.getType().isTransparent()) - { - NonNullList sortList = NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - - int pos = 0; - - for (ItemStack is : this.topStacks) - { - if (!is.isEmpty()) - { - sortList.set(pos, is); - } - else - { - sortList.set(pos, ItemStack.EMPTY); - } - - pos++; - } - - return sortList; - } - - return NonNullList. withSize(this.getTopItems().size(), ItemStack.EMPTY); - } - - @Override - public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) - { - this.fillWithLoot(playerIn); - - return new ContainerIronShulkerBox(playerInventory, this, this.shulkerBoxType, this.shulkerBoxType.xSize, this.shulkerBoxType.ySize); - } - - @Override - public String getGuiID() - { - return "IronChest:" + this.getType().name() + "_shulker_box"; - } - - @Override - public boolean canRenderBreaking() - { - return true; - } - - @Override - public NBTTagCompound getUpdateTag() - { - return this.writeToNBT(new NBTTagCompound()); - } - - @Override - public NonNullList getItems() - { - return this.items; - } - - public NonNullList getTopItems() - { - return this.topStacks; - } - - @Override - public boolean isEmpty() - { - for (ItemStack itemstack : this.items) - { - if (!itemstack.isEmpty()) - { - return false; - } - } - - return true; - } - - @Override - public int[] getSlotsForFace(EnumFacing side) - { - return SLOTS; - } - - /** - * Returns true if automation can insert the given item in the given slot from the given side. - */ - @Override - public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction) - { - //@formatter:off - return !(Block.getBlockFromItem(itemStackIn.getItem()) instanceof BlockIronShulkerBox) && !(Block.getBlockFromItem(itemStackIn.getItem()) instanceof BlockShulkerBox); - //@formatter:on - } - - /** - * Returns true if automation can extract the given item in the given slot from the given side. - */ - @Override - public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) - { - return true; - } - - @Override - public void clear() - { - this.hasBeenCleared = true; - super.clear(); - } - - public boolean isCleared() - { - return this.hasBeenCleared; - } - - public void setHasBeenUpgraded() - { - this.hasBeenUpgraded = true; - } - - public boolean beenUpgraded() - { - return this.hasBeenUpgraded; - } - - public float getProgress(float partialTicks) - { - return this.progressOld + (this.progress - this.progressOld) * partialTicks; - } - - @SideOnly(Side.CLIENT) - public EnumDyeColor getColor() - { - if (this.color == null) - { - this.color = BlockIronShulkerBox.getColorFromBlock(this.getBlockType()); - } - - return this.color; - } - - public boolean isDestroyedByCreativePlayer() - { - return this.destroyedByCreativePlayer; - } - - public void setDestroyedByCreativePlayer(boolean destoryedByCreativeUser) - { - this.destroyedByCreativePlayer = destoryedByCreativeUser; - } - - public boolean shouldDrop() - { - return !this.isDestroyedByCreativePlayer() || !this.isEmpty() || this.hasCustomName() || this.lootTable != null; - } - - protected void sendTopStacksPacket() - { - NonNullList stacks = this.buildItemStackDataList(); - //@formatter:off - IronChest.packetHandler.sendToAllAround(new MessageCrystalShulkerSync(this, stacks), new TargetPoint(world.provider.getDimension(), getPos().getX(), getPos().getY(), getPos().getZ(), 128)); - //@formatter:on - } - - public void receiveMessageFromServer(NonNullList topStacks) - { - this.topStacks = topStacks; - } - - public static enum AnimationStatus - { - CLOSED, OPENING, OPENED, CLOSING; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityObsidianShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityObsidianShulkerBox.java deleted file mode 100644 index daf3a2ff..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntityObsidianShulkerBox.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.shulker; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import net.minecraft.item.EnumDyeColor; - -public class TileEntityObsidianShulkerBox extends TileEntityIronShulkerBox -{ - public TileEntityObsidianShulkerBox() - { - this(null); - } - - public TileEntityObsidianShulkerBox(@Nullable EnumDyeColor colorIn) - { - super(colorIn, IronShulkerBoxType.OBSIDIAN); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntitySilverShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntitySilverShulkerBox.java deleted file mode 100644 index b116394c..00000000 --- a/src/main/java/cpw/mods/ironchest/common/tileentity/shulker/TileEntitySilverShulkerBox.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.tileentity.shulker; - -import javax.annotation.Nullable; - -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import net.minecraft.item.EnumDyeColor; - -public class TileEntitySilverShulkerBox extends TileEntityIronShulkerBox -{ - public TileEntitySilverShulkerBox() - { - this(null); - } - - public TileEntitySilverShulkerBox(@Nullable EnumDyeColor colorIn) - { - super(colorIn, IronShulkerBoxType.SILVER); - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/util/BehaviorDispenseIronShulkerBox.java b/src/main/java/cpw/mods/ironchest/common/util/BehaviorDispenseIronShulkerBox.java deleted file mode 100644 index 7a16110c..00000000 --- a/src/main/java/cpw/mods/ironchest/common/util/BehaviorDispenseIronShulkerBox.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.util; - -import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox; -import net.minecraft.block.Block; -import net.minecraft.block.BlockDispenser; -import net.minecraft.block.state.IBlockState; -import net.minecraft.dispenser.IBlockSource; -import net.minecraft.entity.Entity; -import net.minecraft.init.Bootstrap.BehaviorDispenseOptional; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BehaviorDispenseIronShulkerBox extends BehaviorDispenseOptional -{ - @Override - protected ItemStack dispenseStack(IBlockSource source, ItemStack stack) - { - Block block = Block.getBlockFromItem(stack.getItem()); - World world = source.getWorld(); - EnumFacing enumfacing = source.getBlockState().getValue(BlockDispenser.FACING); - BlockPos blockpos = source.getBlockPos().offset(enumfacing); - this.successful = world.mayPlace(block, blockpos, false, EnumFacing.DOWN, (Entity) null); - - if (this.successful) - { - EnumFacing enumfacing1 = world.isAirBlock(blockpos.down()) ? enumfacing : EnumFacing.UP; - IBlockState iblockstate = block.getDefaultState().withProperty(BlockIronShulkerBox.VARIANT_PROP, IronShulkerBoxType.VALUES[stack.getMetadata()]); - world.setBlockState(blockpos, iblockstate); - TileEntity tileentity = world.getTileEntity(blockpos); - ItemStack itemstack = stack.splitStack(1); - - ((TileEntityIronShulkerBox) tileentity).setFacing(enumfacing1); - - if (itemstack.hasTagCompound()) - { - ((TileEntityIronShulkerBox) tileentity).loadFromNbt(itemstack.getTagCompound().getCompoundTag("BlockEntityTag")); - } - - if (itemstack.hasDisplayName()) - { - ((TileEntityIronShulkerBox) tileentity).setCustomName(itemstack.getDisplayName()); - } - - world.updateComparatorOutputLevel(blockpos, iblockstate.getBlock()); - } - - return stack; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/util/BlockNames.java b/src/main/java/cpw/mods/ironchest/common/util/BlockNames.java deleted file mode 100644 index cf4123f3..00000000 --- a/src/main/java/cpw/mods/ironchest/common/util/BlockNames.java +++ /dev/null @@ -1,42 +0,0 @@ -package cpw.mods.ironchest.common.util; - -import cpw.mods.ironchest.IronChest; - -public class BlockNames -{ - public static final String IRON_CHEST = IronChest.MOD_ID + ":iron_chest"; - - public static final String WHITE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_white"; - - public static final String ORANGE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_orange"; - - public static final String MAGENTA_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_magenta"; - - public static final String LIGHT_BLUE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_light_blue"; - - public static final String YELLOW_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_yellow"; - - public static final String LIME_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_lime"; - - public static final String PINK_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_pink"; - - public static final String GRAY_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_gray"; - - public static final String SILVER_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_silver"; - - public static final String CYAN_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_cyan"; - - public static final String PURPLE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_purple"; - - public static final String BLUE_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_blue"; - - public static final String BROWN_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_brown"; - - public static final String GREEN_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_green"; - - public static final String RED_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_red"; - - public static final String BLACK_SHULKER = IronChest.MOD_ID + ":iron_shulker_box_black"; - - public static final String[] SHULKER_NAMES = { WHITE_SHULKER, ORANGE_SHULKER, MAGENTA_SHULKER, LIGHT_BLUE_SHULKER, YELLOW_SHULKER, LIME_SHULKER, PINK_SHULKER, GRAY_SHULKER, SILVER_SHULKER, CYAN_SHULKER, PURPLE_SHULKER, BLUE_SHULKER, BROWN_SHULKER, GREEN_SHULKER, RED_SHULKER, BLACK_SHULKER }; -} diff --git a/src/main/java/cpw/mods/ironchest/common/util/CreativeTabItems.java b/src/main/java/cpw/mods/ironchest/common/util/CreativeTabItems.java deleted file mode 100644 index ad3bb91c..00000000 --- a/src/main/java/cpw/mods/ironchest/common/util/CreativeTabItems.java +++ /dev/null @@ -1,49 +0,0 @@ -package cpw.mods.ironchest.common.util; - -import cpw.mods.ironchest.common.blocks.chest.IronChestType; -import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType; -import cpw.mods.ironchest.common.core.IronChestBlocks; -import cpw.mods.ironchest.common.items.ChestChangerType; -import cpw.mods.ironchest.common.items.ShulkerBoxChangerType; -import cpw.mods.ironchest.common.lib.BlockLists; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class CreativeTabItems -{ - @SideOnly(Side.CLIENT) - public static void getSubItems(NonNullList subItems) - { - for (ChestChangerType type : ChestChangerType.VALUES) - { - subItems.add(new ItemStack(type.item)); - } - - for (ShulkerBoxChangerType type : ShulkerBoxChangerType.VALUES) - { - subItems.add(new ItemStack(type.item)); - } - - for (IronChestType type : IronChestType.VALUES) - { - if (type.isValidForCreativeMode()) - { - subItems.add(new ItemStack(IronChestBlocks.ironChestBlock, 1, type.ordinal())); - } - } - - for (Block shulker : BlockLists.SHULKER_BLOCKS) - { - for (IronShulkerBoxType type : IronShulkerBoxType.VALUES) - { - if (type.isValidForCreativeMode()) - { - subItems.add(new ItemStack(shulker, 1, type.ordinal())); - } - } - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/util/ItemTooltip.java b/src/main/java/cpw/mods/ironchest/common/util/ItemTooltip.java deleted file mode 100644 index cff46e55..00000000 --- a/src/main/java/cpw/mods/ironchest/common/util/ItemTooltip.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.util; - -import java.util.List; - -import javax.annotation.Nullable; - -import com.google.common.collect.Lists; - -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.translation.I18n; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SuppressWarnings("deprecation") -public class ItemTooltip extends Item -{ - @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, @Nullable World playerIn, List tooltip, ITooltipFlag advanced) - { - addOptionalTooltip(stack, tooltip); - - super.addInformation(stack, playerIn, tooltip, advanced); - } - - public static void addOptionalTooltip(ItemStack stack, List tooltip) - { - if (I18n.canTranslate(stack.getUnlocalizedName() + ".tooltip")) - { - tooltip.addAll(getTooltips(TextFormatting.GRAY.toString() + translateRecursive(stack.getUnlocalizedName() + ".tooltip"))); - } - else if (I18n.canTranslate(stack.getUnlocalizedName() + ".tooltip")) - { - tooltip.addAll(getTooltips(TextFormatting.GRAY.toString() + translateRecursive(stack.getUnlocalizedName() + ".tooltip"))); - } - } - - public static String translateRecursive(String key, Object... params) - { - return I18n.translateToLocal(I18n.translateToLocalFormatted(key, params)); - } - - public static List getTooltips(String text) - { - List list = Lists.newLinkedList(); - if (text == null) - return list; - int j = 0; - int k; - while ((k = text.indexOf("\\n", j)) >= 0) - { - list.add(text.substring(j, k)); - j = k + 2; - } - - list.add(text.substring(j, text.length())); - - return list; - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/util/MissingMappingsHandler.java b/src/main/java/cpw/mods/ironchest/common/util/MissingMappingsHandler.java deleted file mode 100644 index 54bc69f5..00000000 --- a/src/main/java/cpw/mods/ironchest/common/util/MissingMappingsHandler.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.util; - -import javax.annotation.Nonnull; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.event.RegistryEvent.MissingMappings; -import net.minecraftforge.event.RegistryEvent.MissingMappings.Mapping; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.ForgeRegistries; - -public class MissingMappingsHandler -{ - @SubscribeEvent - public void missingBlockMappings(MissingMappings event) - { - for (Mapping entry : event.getAllMappings()) - { - @Nonnull - String path = entry.key.getResourcePath(); - - replaceOldChestBlock(path, entry); - } - } - - @SubscribeEvent - public void missingItemMappings(MissingMappings event) - { - for (Mapping entry : event.getAllMappings()) - { - @Nonnull - String path = entry.key.getResourcePath(); - - replaceOldChestItem(path, entry); - - replaceOldUpgrades(path, entry); - - replaceNewUpgrades(path, entry); - } - } - - private static void replaceOldChestBlock(String path, Mapping mapping) - { - if (path.endsWith("blockironchest")) - { - path = path.replace("blockironchest", "iron_chest"); - ResourceLocation newRes = new ResourceLocation(mapping.key.getResourceDomain(), path); - Block block = ForgeRegistries.BLOCKS.getValue(newRes); - - if (block != null) - { - mapping.remap(block); - } - } - } - - private static void replaceOldChestItem(String path, Mapping mapping) - { - if (path.endsWith("blockironchest")) - { - path = path.replace("blockironchest", "iron_chest"); - ResourceLocation newRes = new ResourceLocation(mapping.key.getResourceDomain(), path); - Item item = ForgeRegistries.ITEMS.getValue(newRes); - - if (item != null) - { - mapping.remap(item); - } - } - } - - private static void replaceOldUpgrades(String path, Mapping mapping) - { - if (path.endsWith("irongoldupgrade")) - { - path = path.replace("irongoldupgrade", "iron_gold_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("golddiamondupgrade")) - { - path = path.replace("golddiamondupgrade", "gold_diamond_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("coppersilverupgrade")) - { - path = path.replace("coppersilverupgrade", "copper_silver_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("silvergoldupgrade")) - { - path = path.replace("silvergoldupgrade", "silver_gold_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("copperironupgrade")) - { - path = path.replace("copperironupgrade", "copper_iron_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("diamondcrystalupgrade")) - { - path = path.replace("diamondcrystalupgrade", "diamond_crystal_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("woodironupgrade")) - { - path = path.replace("woodironupgrade", "wood_iron_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("woodcopperupgrade")) - { - path = path.replace("woodcopperupgrade", "wood_copper_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("diamondobsidianupgrade")) - { - path = path.replace("diamondobsidianupgrade", "diamond_obsidian_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - } - - private static void replaceNewUpgrades(String path, Mapping mapping) - { - if (path.endsWith("iron_gold_upgrade")) - { - path = path.replace("iron_gold_upgrade", "iron_gold_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("gold_diamond_upgrade")) - { - path = path.replace("gold_diamond_upgrade", "gold_diamond_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("copper_silver_upgrade")) - { - path = path.replace("copper_silver_upgrade", "copper_silver_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("silver_gold_upgrade")) - { - path = path.replace("silver_gold_upgrade", "silver_gold_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("copper_iron_upgrade")) - { - path = path.replace("copper_iron_upgrade", "copper_iron_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("diamond_crystal_upgrade")) - { - path = path.replace("diamond_crystal_upgrade", "diamond_crystal_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("wood_iron_upgrade")) - { - path = path.replace("wood_iron_upgrade", "wood_iron_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("wood_copper_upgrade")) - { - path = path.replace("wood_copper_upgrade", "wood_copper_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - - if (path.endsWith("diamond_obsidian_upgrade")) - { - path = path.replace("diamond_obsidian_upgrade", "diamond_obsidian_chest_upgrade"); - replaceUpgradeItem(path, mapping); - } - } - - private static void replaceUpgradeItem(String path, Mapping mapping) - { - ResourceLocation newRes = new ResourceLocation(mapping.key.getResourceDomain(), path); - Item item = ForgeRegistries.ITEMS.getValue(newRes); - - if (item != null) - { - mapping.remap(item); - } - } -} diff --git a/src/main/java/cpw/mods/ironchest/common/util/OcelotsSitOnChestsHandler.java b/src/main/java/cpw/mods/ironchest/common/util/OcelotsSitOnChestsHandler.java deleted file mode 100755 index 1f28813e..00000000 --- a/src/main/java/cpw/mods/ironchest/common/util/OcelotsSitOnChestsHandler.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 cpw. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - *

- * Contributors: - * cpw - initial API and implementation - ******************************************************************************/ -package cpw.mods.ironchest.common.util; - -import java.util.HashSet; - -import cpw.mods.ironchest.common.ai.IronChestAIOcelotSit; -import net.minecraft.entity.ai.EntityAIOcelotSit; -import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry; -import net.minecraft.entity.passive.EntityOcelot; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -public class OcelotsSitOnChestsHandler -{ - @SubscribeEvent - public void changeSittingTaskForOcelots(LivingUpdateEvent evt) - { - if (evt.getEntityLiving().ticksExisted < 5 && evt.getEntityLiving() instanceof EntityOcelot) - { - HashSet hashset = new HashSet(); - - EntityOcelot ocelot = (EntityOcelot) evt.getEntityLiving(); - - for (EntityAITaskEntry task : ocelot.tasks.taskEntries) - { - if (task.action.getClass() == EntityAIOcelotSit.class) - { - hashset.add(task); - } - } - - for (EntityAITaskEntry task : hashset) - { - ocelot.tasks.removeTask(task.action); - ocelot.tasks.addTask(task.priority, new IronChestAIOcelotSit(ocelot, 0.4F)); - } - } - } -} diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 00000000..49b33c79 --- /dev/null +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1 @@ +public net.minecraft.world.level.block.entity.BaseContainerBlockEntity name diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..c95c3201 --- /dev/null +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,27 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +issueTrackerURL="${mod_issue_tracker}" +license="${mod_license}" + +[[mods]] + modId="${mod_id}" + version="${mod_version}" + displayName="${mod_name}" + authors="${mod_authors}" + description='''${mod_description}''' + displayURL="${mod_display_url}" + displayTest="MATCH_VERSION" + +[[dependencies.${mod_id}]] + modId="neoforge" + type="required" + versionRange="${neo_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" diff --git a/src/main/resources/assets/ironchest/blockstates/copper_chest.json b/src/main/resources/assets/ironchest/blockstates/copper_chest.json new file mode 100644 index 00000000..64750416 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/copper_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/copper_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/crystal_chest.json b/src/main/resources/assets/ironchest/blockstates/crystal_chest.json new file mode 100644 index 00000000..e38cf453 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/crystal_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/crystal_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/diamond_chest.json b/src/main/resources/assets/ironchest/blockstates/diamond_chest.json new file mode 100644 index 00000000..1fe21345 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/diamond_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/diamond_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/dirt_chest.json b/src/main/resources/assets/ironchest/blockstates/dirt_chest.json new file mode 100644 index 00000000..7355063b --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/dirt_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/dirt_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/gold_chest.json b/src/main/resources/assets/ironchest/blockstates/gold_chest.json new file mode 100644 index 00000000..8b16b2e0 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/gold_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/gold_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/iron_chest.json b/src/main/resources/assets/ironchest/blockstates/iron_chest.json index aee9e352..b1f832da 100644 --- a/src/main/resources/assets/ironchest/blockstates/iron_chest.json +++ b/src/main/resources/assets/ironchest/blockstates/iron_chest.json @@ -1,65 +1,7 @@ { - "forge_marker": 1, - "defaults": { - "model": "ironchest:iron_chest", - "transform": "forge:default-block" - }, "variants": { - "variant": { - "iron": { - "textures": { - "particle": "ironchest:blocks/iron_break", - "texture": "ironchest:model/chest/iron_chest" - } - }, - "gold": { - "textures": { - "particle": "ironchest:blocks/gold_break", - "texture": "ironchest:model/chest/gold_chest" - } - }, - "diamond": { - "textures": { - "particle": "ironchest:blocks/diamond_break", - "texture": "ironchest:model/chest/diamond_chest" - } - }, - "copper": { - "textures": { - "particle": "ironchest:blocks/copper_break", - "texture": "ironchest:model/chest/copper_chest" - } - }, - "silver": { - "textures": { - "particle": "ironchest:blocks/silver_break", - "texture": "ironchest:model/chest/silver_chest" - } - }, - "crystal": { - "textures": { - "particle": "ironchest:blocks/crystal_break", - "texture": "ironchest:model/chest/crystal_chest" - } - }, - "obsidian": { - "textures": { - "particle": "minecraft:blocks/obsidian", - "texture": "ironchest:model/chest/obsidian_chest" - } - }, - "dirtchest9000": { - "textures": { - "particle": "minecraft:blocks/dirt", - "texture": "ironchest:model/chest/dirt_chest" - } - }, - "wood": { - "textures": { - "particle": "minecraft:blocks/planks_oak", - "texture": "minecraft:blocks/planks_oak" - } - } + "": { + "model": "ironchest:block/iron_chest" } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/ironchest/blockstates/iron_chest_upgrades.json b/src/main/resources/assets/ironchest/blockstates/iron_chest_upgrades.json deleted file mode 100644 index 02347a4d..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_chest_upgrades.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "model": "builtin/generated", - "transform": "forge:default-item" - }, - "variants": { - "variant": { - "copper_silver_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/copper_silver_upgrade" - } - }, - "diamond_crystal_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/diamond_crystal_upgrade" - } - }, - "diamond_obsidian_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/diamond_obsidian_upgrade" - } - }, - "gold_diamond_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/gold_diamond_upgrade" - } - }, - "iron_gold_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/iron_gold_upgrade" - } - }, - "silver_gold_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/silver_gold_upgrade" - } - }, - "wood_copper_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/wood_copper_upgrade" - } - }, - "wood_iron_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/wood_iron_upgrade" - } - }, - "copper_iron_chest_upgrade": { - "textures": { - "layer0": "ironchest:items/chest/copper_iron_upgrade" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_black.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_black.json deleted file mode 100644 index f931a736..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_black.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/black/shulker_black_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/black/shulker_black_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/black/shulker_black_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/black/shulker_black_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/black/shulker_black_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/black/shulker_black_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/black/shulker_black_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_black", - "texture":"minecraft:entity/shulker/shulker_black" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_blue.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_blue.json deleted file mode 100644 index 87b64063..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_blue.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/blue/shulker_blue_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/blue/shulker_blue_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/blue/shulker_blue_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/blue/shulker_blue_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/blue/shulker_blue_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/blue/shulker_blue_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/blue/shulker_blue_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_blue", - "texture":"minecraft:entity/shulker/shulker_blue" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_brown.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_brown.json deleted file mode 100644 index d4c9ac06..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_brown.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/brown/shulker_brown_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/brown/shulker_brown_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/brown/shulker_brown_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/brown/shulker_brown_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/brown/shulker_brown_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/brown/shulker_brown_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/brown/shulker_brown_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_brown", - "texture":"minecraft:entity/shulker/shulker_brown" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_cyan.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_cyan.json deleted file mode 100644 index 10b80a86..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_cyan.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/cyan/shulker_cyan_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/cyan/shulker_cyan_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/cyan/shulker_cyan_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/cyan/shulker_cyan_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/cyan/shulker_cyan_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/cyan/shulker_cyan_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/cyan/shulker_cyan_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_cyan", - "texture":"minecraft:entity/shulker/shulker_cyan" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_gray.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_gray.json deleted file mode 100644 index 67885e3c..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_gray.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/gray/shulker_gray_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/gray/shulker_gray_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/gray/shulker_gray_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/gray/shulker_gray_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/gray/shulker_gray_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/gray/shulker_gray_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/gray/shulker_gray_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_gray", - "texture":"minecraft:entity/shulker/shulker_gray" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_green.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_green.json deleted file mode 100644 index 15a14229..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_green.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/green/shulker_green_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/green/shulker_green_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/green/shulker_green_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/green/shulker_green_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/green/shulker_green_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/green/shulker_green_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/green/shulker_green_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_green", - "texture":"minecraft:entity/shulker/shulker_green" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_light_blue.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_light_blue.json deleted file mode 100644 index d7869917..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_light_blue.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/light_blue/shulker_light_blue_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/light_blue/shulker_light_blue_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/light_blue/shulker_light_blue_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/light_blue/shulker_light_blue_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/light_blue/shulker_light_blue_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/light_blue/shulker_light_blue_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/light_blue/shulker_light_blue_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_light_blue", - "texture":"minecraft:entity/shulker/shulker_light_blue" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_lime.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_lime.json deleted file mode 100644 index 30e4a884..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_lime.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/lime/shulker_lime_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/lime/shulker_lime_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/lime/shulker_lime_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/lime/shulker_lime_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/lime/shulker_lime_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/lime/shulker_lime_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/lime/shulker_lime_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_lime", - "texture":"minecraft:entity/shulker/shulker_lime" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_magenta.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_magenta.json deleted file mode 100644 index 4976efe1..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_magenta.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/magenta/shulker_magenta_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/magenta/shulker_magenta_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/magenta/shulker_magenta_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/magenta/shulker_magenta_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/magenta/shulker_magenta_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/magenta/shulker_magenta_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/magenta/shulker_magenta_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_magenta", - "texture":"minecraft:entity/shulker/shulker_magenta" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_orange.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_orange.json deleted file mode 100644 index ff4b7450..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_orange.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/orange/shulker_orange_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/orange/shulker_orange_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/orange/shulker_orange_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/orange/shulker_orange_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/orange/shulker_orange_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/orange/shulker_orange_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/orange/shulker_orange_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_orange", - "texture":"minecraft:entity/shulker/shulker_orange" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_pink.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_pink.json deleted file mode 100644 index 859e355a..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_pink.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/pink/shulker_pink_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/pink/shulker_pink_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/pink/shulker_pink_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/pink/shulker_pink_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/pink/shulker_pink_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/pink/shulker_pink_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/pink/shulker_pink_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_pink", - "texture":"minecraft:entity/shulker/shulker_pink" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_purple.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_purple.json deleted file mode 100644 index 7965a771..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_purple.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/purple/shulker_purple_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/purple/shulker_purple_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/purple/shulker_purple_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/purple/shulker_purple_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/purple/shulker_purple_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/purple/shulker_purple_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/purple/shulker_purple_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_purple", - "texture":"minecraft:entity/shulker/shulker_purple" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_red.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_red.json deleted file mode 100644 index b3f96446..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_red.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/red/shulker_red_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/red/shulker_red_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/red/shulker_red_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/red/shulker_red_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/red/shulker_red_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/red/shulker_red_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/red/shulker_red_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_red", - "texture":"minecraft:entity/shulker/shulker_red" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_silver.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_silver.json deleted file mode 100644 index 5a07481e..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_silver.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/silver/shulker_silver_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/silver/shulker_silver_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/silver/shulker_silver_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/silver/shulker_silver_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/silver/shulker_silver_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/silver/shulker_silver_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/silver/shulker_silver_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_silver", - "texture":"minecraft:entity/shulker/shulker_silver" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_upgrades.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_upgrades.json deleted file mode 100644 index 70b9b482..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_upgrades.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"builtin/generated", - "transform":"forge:default-item" - }, - "variants":{ - "variant":{ - "copper_silver_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/copper_silver_upgrade" - } - }, - "diamond_crystal_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/diamond_crystal_upgrade" - } - }, - "diamond_obsidian_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/diamond_obsidian_upgrade" - } - }, - "gold_diamond_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/gold_diamond_upgrade" - } - }, - "iron_gold_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/iron_gold_upgrade" - } - }, - "silver_gold_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/silver_gold_upgrade" - } - }, - "vanilla_copper_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/vanilla_copper_upgrade" - } - }, - "vanilla_iron_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/vanilla_iron_upgrade" - } - }, - "copper_iron_shulker_upgrade":{ - "textures":{ - "layer0":"ironchest:items/shulker/copper_iron_upgrade" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_white.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_white.json deleted file mode 100644 index 2bbd7d76..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_white.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/white/shulker_white_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/white/shulker_white_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/white/shulker_white_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/white/shulker_white_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/white/shulker_white_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/white/shulker_white_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/white/shulker_white_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_white", - "texture":"minecraft:entity/shulker/shulker_white" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_yellow.json b/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_yellow.json deleted file mode 100644 index 5da91c30..00000000 --- a/src/main/resources/assets/ironchest/blockstates/iron_shulker_box_yellow.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "forge_marker":1, - "defaults":{ - "model":"ironchest:iron_shulker_box", - "transform":"forge:default-block" - }, - "variants":{ - "variant":{ - "iron":{ - "textures":{ - "particle":"ironchest:blocks/iron_break", - "texture":"ironchest:model/shulker/yellow/shulker_yellow_iron" - } - }, - "gold":{ - "textures":{ - "particle":"ironchest:blocks/gold_break", - "texture":"ironchest:model/shulker/yellow/shulker_yellow_gold" - } - }, - "diamond":{ - "textures":{ - "particle":"ironchest:blocks/diamond_break", - "texture":"ironchest:model/shulker/yellow/shulker_yellow_diamond" - } - }, - "copper":{ - "textures":{ - "particle":"ironchest:blocks/copper_break", - "texture":"ironchest:model/shulker/yellow/shulker_yellow_copper" - } - }, - "silver":{ - "textures":{ - "particle":"ironchest:blocks/silver_break", - "texture":"ironchest:model/shulker/yellow/shulker_yellow_silver" - } - }, - "crystal":{ - "textures":{ - "particle":"ironchest:blocks/crystal_break", - "texture":"ironchest:model/shulker/yellow/shulker_yellow_crystal" - } - }, - "obsidian":{ - "textures":{ - "particle":"minecraft:blocks/obsidian", - "texture":"ironchest:model/shulker/yellow/shulker_yellow_obsidian" - } - }, - "vanilla":{ - "textures":{ - "particle":"minecraft:blocks/shulker_top_yellow", - "texture":"minecraft:entity/shulker/shulker_yellow" - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/blockstates/obsidian_chest.json b/src/main/resources/assets/ironchest/blockstates/obsidian_chest.json new file mode 100644 index 00000000..88a0baed --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/obsidian_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/obsidian_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/trapped_copper_chest.json b/src/main/resources/assets/ironchest/blockstates/trapped_copper_chest.json new file mode 100644 index 00000000..64750416 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/trapped_copper_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/copper_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/trapped_crystal_chest.json b/src/main/resources/assets/ironchest/blockstates/trapped_crystal_chest.json new file mode 100644 index 00000000..e38cf453 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/trapped_crystal_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/crystal_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/trapped_diamond_chest.json b/src/main/resources/assets/ironchest/blockstates/trapped_diamond_chest.json new file mode 100644 index 00000000..1fe21345 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/trapped_diamond_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/diamond_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/trapped_dirt_chest.json b/src/main/resources/assets/ironchest/blockstates/trapped_dirt_chest.json new file mode 100644 index 00000000..7355063b --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/trapped_dirt_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/dirt_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/trapped_gold_chest.json b/src/main/resources/assets/ironchest/blockstates/trapped_gold_chest.json new file mode 100644 index 00000000..8b16b2e0 --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/trapped_gold_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/gold_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/trapped_iron_chest.json b/src/main/resources/assets/ironchest/blockstates/trapped_iron_chest.json new file mode 100644 index 00000000..b1f832da --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/trapped_iron_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/iron_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/blockstates/trapped_obsidian_chest.json b/src/main/resources/assets/ironchest/blockstates/trapped_obsidian_chest.json new file mode 100644 index 00000000..88a0baed --- /dev/null +++ b/src/main/resources/assets/ironchest/blockstates/trapped_obsidian_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ironchest:block/obsidian_chest" + } + } +} diff --git a/src/main/resources/assets/ironchest/lang/cs_CZ.lang b/src/main/resources/assets/ironchest/lang/cs_CZ.lang deleted file mode 100755 index 76000eb4..00000000 --- a/src/main/resources/assets/ironchest/lang/cs_CZ.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Železná truhla -tile.ironchest.chest.gold.name=Zlatá truhla -tile.ironchest.chest.diamond.name=Diamantová truhla -tile.ironchest.chest.copper.name=Měděná truhla -tile.ironchest.chest.silver.name=Stříbrná truhla -tile.ironchest.chest.crystal.name=Krystalová truhla -tile.ironchest.chest.obsidian.name=Obsidiánová truhla - -item.ironchest.chest.iron_gold.name=Vylepšení železné truhly na zlatou -item.ironchest.chest.gold_diamond.name=Vylepšení zlaté truhly na diamantovou -item.ironchest.chest.copper_silver.name=Vylepšení měděné truhly na stříbrnou -item.ironchest.chest.silver_gold.name=Vylepšení stříbrné truhly na zlatou -item.ironchest.chest.copper_iron.name=Vylepšení měděné truhly na železnou -item.ironchest.chest.diamond_crystal.name=Vylepšení diamantové truhly na krystalovou -item.ironchest.chest.wood_iron.name=Vylepšení dřevěné truhly na železnou -item.ironchest.chest.wood_copper.name=Vylepšení dřevěné truhly na měděnou -item.ironchest.chest.diamond_obsidian.name=Vylepšení diamantové truhly na obsidiánovou diff --git a/src/main/resources/assets/ironchest/lang/da_DK.lang b/src/main/resources/assets/ironchest/lang/da_DK.lang deleted file mode 100755 index 7dfe72ae..00000000 --- a/src/main/resources/assets/ironchest/lang/da_DK.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Jern Kiste -tile.ironchest.chest.gold.name=Guld Kiste -tile.ironchest.chest.diamond.name=Diamant Kiste -tile.ironchest.chest.copper.name=Kobber Kiste -tile.ironchest.chest.silver.name=Sølv Kiste -tile.ironchest.chest.crystal.name=Krystal Kiste -tile.ironchest.chest.obsidian.name=Obsidian Kiste - -item.ironchest.chest.iron_gold.name=Jern til Guld Kiste Opgradering -item.ironchest.chest.gold_diamond.name=Guld til Diamant Kiste Opgradering -item.ironchest.chest.copper_silver.name=Kobber til Sølv Kiste Opgradering -item.ironchest.chest.silver_gold.name=Sølv til Guld Kiste Opgradering -item.ironchest.chest.copper_iron.name=Kobber til Jern Kiste Opgradering -item.ironchest.chest.diamond_crystal.name=Diamant til Krystal Kiste Opgradering -item.ironchest.chest.wood_iron.name=Træ til Jern Kiste Opgradering -item.ironchest.chest.wood_copper.name=Træ til Kobber Kiste Opgradering -item.ironchest.chest.diamond_obsidian.name=Diamant til Obsidian Kiste Opgradering diff --git a/src/main/resources/assets/ironchest/lang/de_DE.lang b/src/main/resources/assets/ironchest/lang/de_DE.lang deleted file mode 100755 index 87e1956a..00000000 --- a/src/main/resources/assets/ironchest/lang/de_DE.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Eisentruhe -tile.ironchest.chest.gold.name=Goldtruhe -tile.ironchest.chest.diamond.name=Diamanttruhe -tile.ironchest.chest.copper.name=Kupfertruhe -tile.ironchest.chest.silver.name=Silbertruhe -tile.ironchest.chest.crystal.name=Kristalltruhe -tile.ironchest.chest.obsidian.name=Obsidiantruhe -tile.ironchest.chest.dirtchest9000.name=DirtChest 9000! - -item.ironchest.chest.iron_gold.name=Eisen-zu-Goldtruhen-Upgrade -item.ironchest.chest.gold_diamond.name=Gold-zu-Diamanttruhen-Upgrade -item.ironchest.chest.copper_silver.name=Kupfer-zu-Silbertruhen-Upgrade -item.ironchest.chest.silver_gold.name=Silber-zu-Goldtruhen-Upgrade -item.ironchest.chest.copper_iron.name=Kupfer-zu-Eisentruhen-Upgrade -item.ironchest.chest.diamond_crystal.name=Diamant-zu-Kristalltruhen-Upgrade -item.ironchest.chest.wood_iron.name=Holz-zu-Eisentruhen-Upgrade -item.ironchest.chest.wood_copper.name=Holz-zu-Kupfertruhen-Upgrade -item.ironchest.chest.diamond_obsidian.name=Diamant-zu-Obsidiantruhen-Upgrade - -book.ironchest.dirtchest9000.title=Wie du deine neue DirtChest 9000 nutzt! -book.ironchest.dirtchest9000.page1=Willkommen zu Ihrer neuen DirtChest 9000! Wir hoffen, dass Sie viele freudige Jahre genießen werden, wenn Sie Ihre Erd-Stacks in unserem nützlichen Speichergerät lagern. -book.ironchest.dirtchest9000.page2=Nutzung: Werfen Sie einfach den Erd-Stack Ihrer Wahl in den äußerst rezeptiven Slot und genießen Sie die Annehmlichkeit, diese Erde für Sie verfügbar zu haben, jedes mal, wenn Sie diese Truhe passieren! -book.ironchest.dirtchest9000.page3=Wir hoffen, Sie haben das Durchgehen dieser Bedienungsanleitung genossen, und hoffen, dass sie sich weiterhin entscheiden werden, in Zukunft unsere Produkte zu nutzen! Mit freundlichen Grüßen, Die DirtChest 9000 manual writers incorporated. -book.ironchest.dirtchest9000.page4=Garantie: Dieses Produkt hat keine Garantie jeglicher Sorte. Ihre Erde könnte nicht gespeichert werden, er könnte langsam in die Umwelt gesaugt werden, oder stattdessen könnte das Produkt gar nichts machen. -book.ironchest.dirtchest9000.page5=DirtChest 9000 ist freundlich zur Umwelt. Bitte entsorgen Sie diesen Guide verantwortungsbewusst, und tun sie nicht, was Sie immer tun und schmeißen ihn in irgendwelche Lava. Wir würden sehr traurig sein. diff --git a/src/main/resources/assets/ironchest/lang/de_de.json b/src/main/resources/assets/ironchest/lang/de_de.json new file mode 100644 index 00000000..1222dd3b --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/de_de.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Eisentruhe", + "block.ironchest.gold_chest": "Goldtruhe", + "block.ironchest.diamond_chest": "Diamanttruhe", + "block.ironchest.copper_chest": "Kupfertruhe", + "block.ironchest.silver_chest": "Silbertruhe", + "block.ironchest.crystal_chest": "Kristalltruhe", + "block.ironchest.obsidian_chest": "Obsidiantruhe", + "block.ironchest.dirt_chest": "ErdTruhe 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Upgrade: Eisen zu Goldtruhe", + "item.ironchest.gold_to_diamond_chest_upgrade": "Upgrade: Gold zu Diamanttruhe", + "item.ironchest.copper_to_silver_chest_upgrade": "Upgrade: Kupfer zu Silbertruhe", + "item.ironchest.silver_to_gold_chest_upgrade": "Upgrade: Silber zu Goldtruhe", + "item.ironchest.copper_to_iron_chest_upgrade": "Upgrade: Kupfer zu Eisentruhe", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Upgrade: Diamant zu Kristalltruhe", + "item.ironchest.wood_to_iron_chest_upgrade": "Upgrade: Holz zu Eisentruhe", + "item.ironchest.wood_to_copper_chest_upgrade": "Upgrade: Holz zu Kupfertruhe", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Upgrade: Diamant zu Obsidiantruhe", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "Bedienungsanleitung für ihre ErdTruhe 9000!", + "ironchest.book.dirtchest9000.1": "Vielen Dank, dass sie sich für eine neue ErdTruhe 9000 entschieden haben. Wir hoffen, dass sie für Jahre Freude daran haben werden, ihre Erde in dieser Truhe zu lagern.", + "ironchest.book.dirtchest9000.2": "Benutzung: füllen sie einfach einen Stack Erde nach Wahl in den äußerst aufnahmefähigen Slot ein und erfreuen sie sich jedes Mal, wenn sie an dieser Truhe vorbeilaufen, an der Bequemlichkeit, diese Erde jederzeit verfügbar zu haben.", + "ironchest.book.dirtchest9000.3": "Wir hoffen, dass ihnen diese Bedienungsanleitung gefallen hat und dass sie sich auch in Zukunft für unsere Produkte entscheiden werden! Mit freundlichen Grüßen, ihre ErdTruhe 9000 GmbH & Co. KG", + "ironchest.book.dirtchest9000.4": "Garantiebestimmungen: Wir übernehmen keine Gewährleistung für dieses Produkt. Ihre Erde könnte zufällig verschwinden, langsam auf den Boden rieseln oder auch überhaupt nicht gespeichert werden.", + "ironchest.book.dirtchest9000.5": "DirtChest 9000 achtet die Umwelt. Bitte entsorgen sie diese Bedienungsanleitung fachgerecht und werfen sie sie nicht einfach in Lava. Wir wären sehr traurig.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Eisentruhe", + "ironchest.container.gold_chest": "Goldtruhe", + "ironchest.container.diamond_chest": "Diamanttruhe", + "ironchest.container.copper_chest": "Kupfertruhe", + "ironchest.container.silver_chest": "Silbertruhe", + "ironchest.container.crystal_chest": "Kristalltruhe", + "ironchest.container.obsidian_chest": "Obsidiantruhe", + "ironchest.container.dirt_chest": "ErdTruhe 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Eisentruhen" +} diff --git a/src/main/resources/assets/ironchest/lang/el_GR.lang b/src/main/resources/assets/ironchest/lang/el_GR.lang deleted file mode 100755 index 53fbd942..00000000 --- a/src/main/resources/assets/ironchest/lang/el_GR.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Σιδερένιο Σεντούκι -tile.ironchest.chest.gold.name=Χρυσό Σεντούκι -tile.ironchest.chest.diamond.name=Διαμαντένιο Σεντούκι -tile.ironchest.chest.copper.name=Χάλκινο Σεντούκι -tile.ironchest.chest.silver.name=Ασημένιο Σεντούκι -tile.ironchest.chest.crystal.name=Κρυστάλλινο Σεντούκι -tile.ironchest.chest.obsidian.name=Σεντούκι Οψιδιανού - -item.ironchest.chest.iron_gold.name=Αναβάθμιση από Σιδερένιο σε Χρυσό Σεντούκι -item.ironchest.chest.gold_diamond.name=Αναβάθμιση από Χρυσό σε Διαμαντένιο Σεντούκι -item.ironchest.chest.copper_silver.name=Αναβάθμιση από Χάλκινο σε Ασημένιο Σεντούκι -item.ironchest.chest.silver_gold.name=Αναβάθμιση από Ασημένιο σε Χρυσό Σεντούκι -item.ironchest.chest.copper_iron.name=Αναβάθμιση από Χάλκινο σε Σιδερένιο Σεντούκι -item.ironchest.chest.diamond_crystal.name=Αναβάθμιση από Διαμαντένιο σε Κρυστάλλινο Σεντούκι -item.ironchest.chest.wood_iron.name=Αναβάθμιση από Ξύλινο σε Σιδερένιο Σεντούκι -item.ironchest.chest.wood_copper.name=Αναβάθμιση από Ξύλινο σε Χάλκινο Σεντούκι -item.ironchest.chest.diamond_obsidian.name=Αναβάθμιση από Διαμαντένιο σε Σεντούκι Οψιδιανού diff --git a/src/main/resources/assets/ironchest/lang/en_PT.lang b/src/main/resources/assets/ironchest/lang/en_PT.lang deleted file mode 100755 index 15955812..00000000 --- a/src/main/resources/assets/ironchest/lang/en_PT.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Steel Coffer -tile.ironchest.chest.gold.name=Gold Coffer -tile.ironchest.chest.diamond.name=Diamond Coffer -tile.ironchest.chest.copper.name=Copper Coffer -tile.ironchest.chest.silver.name=Silver Coffer -tile.ironchest.chest.crystal.name=Shinin' Coffer -tile.ironchest.chest.obsidian.name=Coffer o' tears -tile.ironchest.chest.dirtchest9000.name=FilthCoffer 9000! - -item.ironchest.chest.iron_gold.name=Steel to Gold Coffer Upgradin' -item.ironchest.chest.gold_diamond.name=Gold to Diamond Coffer Upgradin' -item.ironchest.chest.copper_silver.name=Copper to Silver Coffer Upgradin' -item.ironchest.chest.silver_gold.name=Silver to Gold Coffer Upgradin' -item.ironchest.chest.copper_iron.name=Copper to Steel Coffer Upgradin' -item.ironchest.chest.diamond_crystal.name=Diamond to Shinin' Coffer Upgradin' -item.ironchest.chest.wood_iron.name=Timber to Steel Coffer Upgradin' -item.ironchest.chest.wood_copper.name=Wood to Copper Coffer Upgradin' -item.ironchest.chest.diamond_obsidian.name=Diamond to Coffer o' Tears Upgradin' - -book.ironchest.dirtchest9000.title=How to use yer FilthCoffer 9000! -book.ironchest.dirtchest9000.page1=Welcome to yer new FilthCoffer 9000! We hope ye will enjoy many happy years of storing yer filth wit yer coffer . -book.ironchest.dirtchest9000.page2=Usage: simply put yer filth in yer slot and yer got yerself some filth any time ye need it! -book.ironchest.dirtchest9000.page3=We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated. -book.ironchest.dirtchest9000.page4=Warranty: We can't keep yer filth from pirates. Yer filth may not be stored, it may slowly return to yer world, or it may stay in yer coffer. -book.ironchest.dirtchest9000.page5=FilthCoffer 9000 is kind to yer voyage. Throw yer paper in a coffer near by wit yer booty, and don't just chuck it into some molten rock. We wouldn't be the happiest o' pirates. diff --git a/src/main/resources/assets/ironchest/lang/en_US.lang b/src/main/resources/assets/ironchest/lang/en_US.lang deleted file mode 100755 index cd57d908..00000000 --- a/src/main/resources/assets/ironchest/lang/en_US.lang +++ /dev/null @@ -1,177 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Iron Chest -tile.ironchest.chest.gold.name=Gold Chest -tile.ironchest.chest.diamond.name=Diamond Chest -tile.ironchest.chest.copper.name=Copper Chest -tile.ironchest.chest.silver.name=Silver Chest -tile.ironchest.chest.crystal.name=Crystal Chest -tile.ironchest.chest.obsidian.name=Obsidian Chest -tile.ironchest.chest.dirtchest9000.name=DirtChest 9000! - -item.ironchest.chest.iron_gold.name=Iron to Gold Chest Upgrade -item.ironchest.chest.gold_diamond.name=Gold to Diamond Chest Upgrade -item.ironchest.chest.copper_silver.name=Copper to Silver Chest Upgrade -item.ironchest.chest.silver_gold.name=Silver to Gold Chest Upgrade -item.ironchest.chest.copper_iron.name=Copper to Iron Chest Upgrade -item.ironchest.chest.diamond_crystal.name=Diamond to Crystal Chest Upgrade -item.ironchest.chest.wood_iron.name=Wood to Iron Chest Upgrade -item.ironchest.chest.wood_copper.name=Wood to Copper Chest Upgrade -item.ironchest.chest.diamond_obsidian.name=Diamond to Obsidian Chest Upgrade - -book.ironchest.dirtchest9000.title=How to use your DirtChest 9000! -book.ironchest.dirtchest9000.page1="Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility." -book.ironchest.dirtchest9000.page2="Usage: simply insert the stack of dirt of your choice into the highly receptive slot and enjoy the great convenience of having that dirt available to you, any time you pass by this chest!" -book.ironchest.dirtchest9000.page3="We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated." -book.ironchest.dirtchest9000.page4="Warranty: This product has no warranty of any kind. Your dirt may not be stored, it may slowly leech into the environment, or alternatively, it may not do anything at all." -book.ironchest.dirtchest9000.page5="DirtChest 9000 is kind to the environment. Please dispose of this guide book responsibly, and do not whatever you do just chuck it into some lava. We would be very sad." - -####################### -# Shulker Boxes # -####################### - -tile.ironchest.shulker_box.iron.white.name=White Iron Shulker Box -tile.ironchest.shulker_box.iron.orange.name=Orange Iron Shulker Box -tile.ironchest.shulker_box.iron.magenta.name=Magenta Iron Shulker Box -tile.ironchest.shulker_box.iron.light_blue.name=Light Blue Iron Shulker Box -tile.ironchest.shulker_box.iron.yellow.name=Yellow Iron Shulker Box -tile.ironchest.shulker_box.iron.lime.name=Lime Iron Shulker Box -tile.ironchest.shulker_box.iron.pink.name=Pink Iron Shulker Box -tile.ironchest.shulker_box.iron.gray.name=Gray Iron Shulker Box -tile.ironchest.shulker_box.iron.silver.name=Silver Iron Shulker Box -tile.ironchest.shulker_box.iron.cyan.name=Cyan Iron Shulker Box -tile.ironchest.shulker_box.iron.purple.name=Purple Iron Shulker Box -tile.ironchest.shulker_box.iron.blue.name=Blue Iron Shulker Box -tile.ironchest.shulker_box.iron.brown.name=Brown Iron Shulker Box -tile.ironchest.shulker_box.iron.green.name=Green Iron Shulker Box -tile.ironchest.shulker_box.iron.red.name=Red Iron Shulker Box -tile.ironchest.shulker_box.iron.black.name=Black Iron Shulker Box - -tile.ironchest.shulker_box.gold.white.name=White Gold Shulker Box -tile.ironchest.shulker_box.gold.orange.name=Orange Gold Shulker Box -tile.ironchest.shulker_box.gold.magenta.name=Magenta Gold Shulker Box -tile.ironchest.shulker_box.gold.light_blue.name=Light Blue Gold Shulker Box -tile.ironchest.shulker_box.gold.yellow.name=Yellow Gold Shulker Box -tile.ironchest.shulker_box.gold.lime.name=Lime Gold Shulker Box -tile.ironchest.shulker_box.gold.pink.name=Pink Gold Shulker Box -tile.ironchest.shulker_box.gold.gray.name=Gray Gold Shulker Box -tile.ironchest.shulker_box.gold.silver.name=Silver Gold Shulker Box -tile.ironchest.shulker_box.gold.cyan.name=Cyan Gold Shulker Box -tile.ironchest.shulker_box.gold.purple.name=Purple Gold Shulker Box -tile.ironchest.shulker_box.gold.blue.name=Blue Gold Shulker Box -tile.ironchest.shulker_box.gold.brown.name=Brown Gold Shulker Box -tile.ironchest.shulker_box.gold.green.name=Green Gold Shulker Box -tile.ironchest.shulker_box.gold.red.name=Red Gold Shulker Box -tile.ironchest.shulker_box.gold.black.name=Black Gold Shulker Box - -tile.ironchest.shulker_box.diamond.white.name=White Diamond Shulker Box -tile.ironchest.shulker_box.diamond.orange.name=Orange Diamond Shulker Box -tile.ironchest.shulker_box.diamond.magenta.name=Magenta Diamond Shulker Box -tile.ironchest.shulker_box.diamond.light_blue.name=Light Blue Diamond Shulker Box -tile.ironchest.shulker_box.diamond.yellow.name=Yellow Diamond Shulker Box -tile.ironchest.shulker_box.diamond.lime.name=Lime Diamond Shulker Box -tile.ironchest.shulker_box.diamond.pink.name=Pink Diamond Shulker Box -tile.ironchest.shulker_box.diamond.gray.name=Gray Diamond Shulker Box -tile.ironchest.shulker_box.diamond.silver.name=Silver Diamond Shulker Box -tile.ironchest.shulker_box.diamond.cyan.name=Cyan Diamond Shulker Box -tile.ironchest.shulker_box.diamond.purple.name=Purple Diamond Shulker Box -tile.ironchest.shulker_box.diamond.blue.name=Blue Diamond Shulker Box -tile.ironchest.shulker_box.diamond.brown.name=Brown Diamond Shulker Box -tile.ironchest.shulker_box.diamond.green.name=Green Diamond Shulker Box -tile.ironchest.shulker_box.diamond.red.name=Red Diamond Shulker Box -tile.ironchest.shulker_box.diamond.black.name=Black Diamond Shulker Box - -tile.ironchest.shulker_box.copper.white.name=White Copper Shulker Box -tile.ironchest.shulker_box.copper.orange.name=Orange Copper Shulker Box -tile.ironchest.shulker_box.copper.magenta.name=Magenta Copper Shulker Box -tile.ironchest.shulker_box.copper.light_blue.name=Light Blue Copper Shulker Box -tile.ironchest.shulker_box.copper.yellow.name=Yellow Copper Shulker Box -tile.ironchest.shulker_box.copper.lime.name=Lime Copper Shulker Box -tile.ironchest.shulker_box.copper.pink.name=Pink Copper Shulker Box -tile.ironchest.shulker_box.copper.gray.name=Gray Copper Shulker Box -tile.ironchest.shulker_box.copper.silver.name=Silver Copper Shulker Box -tile.ironchest.shulker_box.copper.cyan.name=Cyan Copper Shulker Box -tile.ironchest.shulker_box.copper.purple.name=Purple Copper Shulker Box -tile.ironchest.shulker_box.copper.blue.name=Blue Copper Shulker Box -tile.ironchest.shulker_box.copper.brown.name=Brown Copper Shulker Box -tile.ironchest.shulker_box.copper.green.name=Green Copper Shulker Box -tile.ironchest.shulker_box.copper.red.name=Red Copper Shulker Box -tile.ironchest.shulker_box.copper.black.name=Black Copper Shulker Box - -tile.ironchest.shulker_box.silver.white.name=White Silver Shulker Box -tile.ironchest.shulker_box.silver.orange.name=Orange Silver Shulker Box -tile.ironchest.shulker_box.silver.magenta.name=Magenta Silver Shulker Box -tile.ironchest.shulker_box.silver.light_blue.name=Light Blue Silver Shulker Box -tile.ironchest.shulker_box.silver.yellow.name=Yellow Silver Shulker Box -tile.ironchest.shulker_box.silver.lime.name=Lime Silver Shulker Box -tile.ironchest.shulker_box.silver.pink.name=Pink Silver Shulker Box -tile.ironchest.shulker_box.silver.gray.name=Gray Silver Shulker Box -tile.ironchest.shulker_box.silver.silver.name=Silver Silver Shulker Box -tile.ironchest.shulker_box.silver.cyan.name=Cyan Silver Shulker Box -tile.ironchest.shulker_box.silver.purple.name=Purple Silver Shulker Box -tile.ironchest.shulker_box.silver.blue.name=Blue Silver Shulker Box -tile.ironchest.shulker_box.silver.brown.name=Brown Silver Shulker Box -tile.ironchest.shulker_box.silver.green.name=Green Silver Shulker Box -tile.ironchest.shulker_box.silver.red.name=Red Silver Shulker Box -tile.ironchest.shulker_box.silver.black.name=Black Silver Shulker Box - -tile.ironchest.shulker_box.crystal.white.name=White Crystal Shulker Box -tile.ironchest.shulker_box.crystal.orange.name=Orange Crystal Shulker Box -tile.ironchest.shulker_box.crystal.magenta.name=Magenta Crystal Shulker Box -tile.ironchest.shulker_box.crystal.light_blue.name=Light Blue Crystal Shulker Box -tile.ironchest.shulker_box.crystal.yellow.name=Yellow Crystal Shulker Box -tile.ironchest.shulker_box.crystal.lime.name=Lime Crystal Shulker Box -tile.ironchest.shulker_box.crystal.pink.name=Pink Crystal Shulker Box -tile.ironchest.shulker_box.crystal.gray.name=Gray Crystal Shulker Box -tile.ironchest.shulker_box.crystal.silver.name=Silver Crystal Shulker Box -tile.ironchest.shulker_box.crystal.cyan.name=Cyan Crystal Shulker Box -tile.ironchest.shulker_box.crystal.purple.name=Purple Crystal Shulker Box -tile.ironchest.shulker_box.crystal.blue.name=Blue Crystal Shulker Box -tile.ironchest.shulker_box.crystal.brown.name=Brown Crystal Shulker Box -tile.ironchest.shulker_box.crystal.green.name=Green Crystal Shulker Box -tile.ironchest.shulker_box.crystal.red.name=Red Crystal Shulker Box -tile.ironchest.shulker_box.crystal.black.name=Black Crystal Shulker Box - -tile.ironchest.shulker_box.obsidian.white.name=White Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.orange.name=Orange Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.magenta.name=Magenta Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.light_blue.name=Light Blue Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.yellow.name=Yellow Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.lime.name=Lime Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.pink.name=Pink Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.gray.name=Gray Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.silver.name=Silver Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.cyan.name=Cyan Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.purple.name=Purple Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.blue.name=Blue Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.brown.name=Brown Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.green.name=Green Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.red.name=Red Obsidian Shulker Box -tile.ironchest.shulker_box.obsidian.black.name=Black Obsidian Shulker Box - -item.ironchest.shulker_box.iron_gold.name=Iron to Gold Shulker Box Upgrade -item.ironchest.shulker_box.iron_gold.tooltip=Used to upgrade a Iron Shulker Box to a Gold Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.gold_diamond.name=Gold to Diamond Shulker Box Upgrade -item.ironchest.shulker_box.gold_diamond.tooltip=Used to upgrade a Gold Shulker Box to a Diamond Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.copper_silver.name=Copper to Silver Shulker Box Upgrade -item.ironchest.shulker_box.copper_silver.tooltip=Used to upgrade a Copper Shulker Box to a Silver Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.silver_gold.name=Silver to Gold Shulker Box Upgrade -item.ironchest.shulker_box.silver_gold.tooltip=Used to upgrade a Silver Shulker Box to a Gold Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.copper_iron.name=Copper to Iron Shulker Box Upgrade -item.ironchest.shulker_box.copper_iron.tooltip=Used to upgrade a Copper Shulker Box to a Iron Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.diamond_crystal.name=Diamond to Crystal Shulker Box Upgrade -item.ironchest.shulker_box.diamond_crystal.tooltip=Used to upgrade a Diamond Shulker Box to a Crystal Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.vanilla_iron.name=Vanilla to Iron Shulker Box Upgrade -item.ironchest.shulker_box.vanilla_iron.tooltip=Used to upgrade a Vanilla Shulker Box to a Iron Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.vanilla_copper.name=Vanilla to Copper Shulker Box Upgrade -item.ironchest.shulker_box.vanilla_copper.tooltip=Used to upgrade a Vanilla Shulker Box to a Copper Shulker Box\nThe color of the Shulker Box will stay the same. -item.ironchest.shulker_box.diamond_obsidian.name=Diamond to Obsidian Shulker Box Upgrade -item.ironchest.shulker_box.diamond_obsidian.tooltip=Used to upgrade a Diamond Shulker Box to a Obsidian Shulker Box\nThe color of the Shulker Box will stay the same. - -############## -# GUIs # -############## - -itemGroup.ironchest=Iron Chests diff --git a/src/main/resources/assets/ironchest/lang/en_ud.json b/src/main/resources/assets/ironchest/lang/en_ud.json new file mode 100644 index 00000000..7c3377e7 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/en_ud.json @@ -0,0 +1,45 @@ +{ + "_comment": "Blocks", + + "block.ironchest.iron_chest": "\u0287s\u01DD\u0265\u0186 uo\u0279I", + "block.ironchest.gold_chest": "\u0287s\u01DD\u0265\u0186 p\u05DFo\u2141", + + "block.ironchest.diamond_chest": "\u0287s\u01DD\u0265\u0186 puo\u026F\u0250\u0131\u15E1", + "block.ironchest.copper_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DDddo\u0186", + "block.ironchest.silver_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DD\u028C\u05DF\u0131S", + "block.ironchest.crystal_chest": "\u0287s\u01DD\u0265\u0186 \u05DF\u0250\u0287s\u028E\u0279\u0186", + "block.ironchest.obsidian_chest": "\u0287s\u01DD\u0265\u0186 u\u0250\u0131p\u0131sqO", + "block.ironchest.dirt_chest": "\u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 p\u05DFo\u2141 o\u27D8 uo\u0279I", + "item.ironchest.gold_to_diamond_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 puo\u026F\u0250\u0131\u15E1 o\u27D8 p\u05DFo\u2141", + "item.ironchest.copper_to_silver_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 \u0279\u01DD\u028C\u05DF\u0131S o\u27D8 \u0279\u01DDddo\u0186", + "item.ironchest.silver_to_gold_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 p\u05DFo\u2141 o\u27D8 \u0279\u01DD\u028C\u05DF\u0131S", + "item.ironchest.copper_to_iron_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 uo\u0279I o\u27D8 \u0279\u01DDddo\u0186", + "item.ironchest.diamond_to_crystal_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 \u05DF\u0250\u0287s\u028E\u0279\u0186 o\u27D8 puo\u026F\u0250\u0131\u15E1", + "item.ironchest.wood_to_iron_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 uo\u0279I o\u27D8 pooM", + "item.ironchest.wood_to_copper_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 \u0279\u01DDddo\u0186 o\u27D8 pooM", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "\u01DDp\u0250\u0279bd\u2229 \u0287s\u01DD\u0265\u0186 u\u0250\u0131p\u0131sqO o\u27D8 puo\u026F\u0250\u0131\u15E1", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "\u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1 \u0279no\u028E \u01DDsn o\u0287 \u028DoH", + "ironchest.book.dirtchest9000.1": "\u02D9\u028E\u0287\u0131\u05DF\u0131\u0287n \u01DDb\u0250\u0279o\u0287s \u0279no u\u0131 \u0287\u0279\u0131p \u025Fo \u029E\u0254\u0250\u0287s \u0279no\u028E bu\u0131\u0279o\u0287s \u025Fo s\u0279\u0250\u01DD\u028E \u028Edd\u0250\u0265 \u028Eu\u0250\u026F \u028Eo\u0638u\u01DD \u05DF\u05DF\u0131\u028D no\u028E \u01DDdo\u0265 \u01DDM \u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1 \u028D\u01DDu \u0279no\u028E o\u0287 \u01DD\u026Fo\u0254\u05DF\u01DDM", + "ironchest.book.dirtchest9000.2": "\u00A1\u0287s\u01DD\u0265\u0254 s\u0131\u0265\u0287 \u028Eq ss\u0250d no\u028E \u01DD\u026F\u0131\u0287 \u028Eu\u0250 'no\u028E o\u0287 \u01DD\u05DFq\u0250\u05DF\u0131\u0250\u028C\u0250 \u0287\u0279\u0131p \u0287\u0250\u0265\u0287 bu\u0131\u028C\u0250\u0265 \u025Fo \u01DD\u0254u\u01DD\u0131u\u01DD\u028Cuo\u0254 \u0287\u0250\u01DD\u0279b \u01DD\u0265\u0287 \u028Eo\u0638u\u01DD pu\u0250 \u0287o\u05DFs \u01DD\u028C\u0131\u0287d\u01DD\u0254\u01DD\u0279 \u028E\u05DF\u0265b\u0131\u0265 \u01DD\u0265\u0287 o\u0287u\u0131 \u01DD\u0254\u0131o\u0265\u0254 \u0279no\u028E \u025Fo \u0287\u0279\u0131p \u025Fo \u029E\u0254\u0250\u0287s \u01DD\u0265\u0287 \u0287\u0279\u01DDsu\u0131 \u028E\u05DFd\u026F\u0131s :\u01DDb\u0250s\u2229", + "ironchest.book.dirtchest9000.3": "\u02D9p\u01DD\u0287\u0250\u0279od\u0279o\u0254u\u0131 s\u0279\u01DD\u0287\u0131\u0279\u028D \u05DF\u0250nu\u0250\u026F 0006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1 \u01DD\u0265\u27D8 'sp\u0279\u0250b\u01DD\u0279 pu\u0131\u029E \u00A1\u01DD\u0279n\u0287n\u025F u\u0131 s\u0287\u0254npo\u0279d \u0279no bu\u0131sn \u0279\u01DDp\u0131suo\u0254 \u05DF\u05DF\u0131\u028D no\u028E \u01DDdo\u0265 pu\u0250 '\u05DF\u0250nu\u0250\u026F uo\u0131\u0287\u0254n\u0279\u0287su\u0131 s\u0131\u0265\u0287 bu\u0131\u028D\u01DD\u0131\u028C\u01DD\u0279 p\u01DD\u028Eo\u0638u\u01DD \u01DD\u028C\u0250\u0265 no\u028E \u01DDdo\u0265 \u01DDM", + "ironchest.book.dirtchest9000.4": "\u02D9\u05DF\u05DF\u0250 \u0287\u0250 bu\u0131\u0265\u0287\u028Eu\u0250 op \u0287ou \u028E\u0250\u026F \u0287\u0131 '\u028E\u05DF\u01DD\u028C\u0131\u0287\u0250u\u0279\u01DD\u0287\u05DF\u0250 \u0279o '\u0287u\u01DD\u026Fuo\u0279\u0131\u028Cu\u01DD \u01DD\u0265\u0287 o\u0287u\u0131 \u0265\u0254\u01DD\u01DD\u05DF \u028E\u05DF\u028Do\u05DFs \u028E\u0250\u026F \u0287\u0131 'p\u01DD\u0279o\u0287s \u01DDq \u0287ou \u028E\u0250\u026F \u0287\u0279\u0131p \u0279no\u028E \u02D9pu\u0131\u029E \u028Eu\u0250 \u025Fo \u028E\u0287u\u0250\u0279\u0279\u0250\u028D ou s\u0250\u0265 \u0287\u0254npo\u0279d s\u0131\u0265\u27D8 :\u028E\u0287u\u0250\u0279\u0279\u0250M", + "ironchest.book.dirtchest9000.5": "\u02D9p\u0250s \u028E\u0279\u01DD\u028C \u01DDq p\u05DFno\u028D \u01DDM \u02D9\u0250\u028C\u0250\u05DF \u01DD\u026Fos o\u0287u\u0131 \u0287\u0131 \u029E\u0254n\u0265\u0254 \u0287sn\u0638 op no\u028E \u0279\u01DD\u028C\u01DD\u0287\u0250\u0265\u028D \u0287ou op pu\u0250 '\u028E\u05DFq\u0131suods\u01DD\u0279 \u029Eooq \u01DDp\u0131nb s\u0131\u0265\u0287 \u025Fo \u01DDsods\u0131p \u01DDs\u0250\u01DD\u05DF\u0500 \u02D9\u0287u\u01DD\u026Fuo\u0279\u0131\u028Cu\u01DD \u01DD\u0265\u0287 o\u0287 pu\u0131\u029E s\u0131 0006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1", + + "_comment": "Containers", + "ironchest.container.iron_chest": "\u0287s\u01DD\u0265\u0186 uo\u0279I", + "ironchest.container.gold_chest": "\u0287s\u01DD\u0265\u0186 p\u05DFo\u2141", + "ironchest.container.diamond_chest": "\u0287s\u01DD\u0265\u0186 puo\u026F\u0250\u0131\u15E1", + "ironchest.container.copper_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DDddo\u0186", + "ironchest.container.silver_chest": "\u0287s\u01DD\u0265\u0186 \u0279\u01DD\u028C\u05DF\u0131S", + "ironchest.container.crystal_chest": "\u0287s\u01DD\u0265\u0186 \u05DF\u0250\u0287s\u028E\u0279\u0186", + "ironchest.container.obsidian_chest": "\u0287s\u01DD\u0265\u0186 u\u0250\u0131p\u0131sqO", + "ironchest.container.dirt_chest": "\u00A10006 \u0287s\u01DD\u0265\u0186\u0287\u0279\u0131\u15E1", + + "_comment": "Item Groups", + "itemGroup.ironchest": "s\u0287s\u01DD\u0265\u0186 uo\u0279I" +} diff --git a/src/main/resources/assets/ironchest/lang/es_ES.lang b/src/main/resources/assets/ironchest/lang/es_ES.lang deleted file mode 100755 index e96ac0e6..00000000 --- a/src/main/resources/assets/ironchest/lang/es_ES.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Cofre de Hierro -tile.ironchest.chest.gold.name=Cofre de Oro -tile.ironchest.chest.diamond.name=Cofre de Diamante -tile.ironchest.chest.copper.name=Cofre de Cobre -tile.ironchest.chest.silver.name=Cofre de Plata -tile.ironchest.chest.crystal.name=Cofre de Cristal -tile.ironchest.chest.obsidian.name=Cofre de Obsidiana - -item.ironchest.chest.iron_gold.name=Mejora de Cofre de Hierro a Oro -item.ironchest.chest.gold_diamond.name=Mejora de Cofre de Oro a Diamante -item.ironchest.chest.copper_silver.name=Mejora de Cofre de Cobre a Plata -item.ironchest.chest.silver_gold.name=Mejora de Cofre de Plata a Oro -item.ironchest.chest.copper_iron.name=Mejora de Cofre de Cobre a Hierro -item.ironchest.chest.diamond_crystal.name=Mejora de Cofre de Diamante a Cristal -item.ironchest.chest.wood_iron.name=Mejora de Cofre de Madera a Hierro -item.ironchest.chest.wood_copper.name=Mejora de Cofre de Madera a Cobre -item.ironchest.chest.diamond_obsidian.name=Mejora de Cofre de Diamante a Obsidiana diff --git a/src/main/resources/assets/ironchest/lang/es_ar.json b/src/main/resources/assets/ironchest/lang/es_ar.json new file mode 100644 index 00000000..853f1ee4 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/es_ar.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Cofre de hierro", + "block.ironchest.gold_chest": "Cofre de oro", + "block.ironchest.diamond_chest": "Cofre de diamante", + "block.ironchest.copper_chest": "Cofre de cobre", + "block.ironchest.silver_chest": "Cofre de plata", + "block.ironchest.crystal_chest": "Cofre de cristal", + "block.ironchest.obsidian_chest": "Cofre de obsidiana", + "block.ironchest.dirt_chest": "¡CofreTierra 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Mejora de cofre de hierro a oro", + "item.ironchest.gold_to_diamond_chest_upgrade": "Mejora de cofre de oro a diamante", + "item.ironchest.copper_to_silver_chest_upgrade": "Mejora de cofre de cobre a plata", + "item.ironchest.silver_to_gold_chest_upgrade": "Mejora de cofre de plata a oro", + "item.ironchest.copper_to_iron_chest_upgrade": "Mejora de cofre de cobre a hierro", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Mejora de cofre de diamante a cristal", + "item.ironchest.wood_to_iron_chest_upgrade": "Mejora de cofre de madera a hierro", + "item.ironchest.wood_to_copper_chest_upgrade": "Mejora de cofre de madera a cobre", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Mejora de cofre de diamante a obsidiana", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "¡Cómo usar su CofreTierra 9000!", + "ironchest.book.dirtchest9000.1": "¡Le damos la bienvenida a su nuevo CofreTierra 9000! Esperamos que disfrute de muchos años preservando sus montones de tierra en nuestra gran utilidad de almacenamiento.", + "ironchest.book.dirtchest9000.2": "Modo de uso: simplemente introduzca el stack de tierra a su elección en el espacio altamente receptivo, y disfrute de la maravillosa comodidad de tener tierra disponible siempre que pase cerca del cofre", + "ironchest.book.dirtchest9000.3": "¡Esperamos que haya disfrutado de la lectura de este manual de instrucciones, y que considere usar nuestros productos en el futuro! Saludos cordiales, los escritores del manual del CofreTierra 9000 y asociados.", + "ironchest.book.dirtchest9000.4": "Garantía: Este producto no tiene ningún tipo de garantía. Es posible que su tierra no se preserve o que se fitre lentamente en el entorno. Alternativamente, puede que no pase nada en lo absoluto.", + "ironchest.book.dirtchest9000.5": "CofreTierra 9000 es amigable con el ambiente. Por favor deshagase de esta guía de forma responsable y, ante todo, no lo tire en la lava. Nos pondría muy trsites.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Cofre de hierro", + "ironchest.container.gold_chest": "Cofre de oro", + "ironchest.container.diamond_chest": "Cofre de diamante", + "ironchest.container.copper_chest": "Cofre de cobre", + "ironchest.container.silver_chest": "Cofre de plata", + "ironchest.container.crystal_chest": "Cofre de cristal", + "ironchest.container.obsidian_chest": "Cofre de obsidiana", + "ironchest.container.dirt_chest": "¡CofreTierra 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/es_es.json b/src/main/resources/assets/ironchest/lang/es_es.json new file mode 100644 index 00000000..33d64034 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/es_es.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Cofre de hierro", + "block.ironchest.gold_chest": "Cofre de oro", + "block.ironchest.diamond_chest": "Cofre de diamante", + "block.ironchest.copper_chest": "Cofre de cobre", + "block.ironchest.silver_chest": "Cofre de plata", + "block.ironchest.crystal_chest": "Cofre de cristal", + "block.ironchest.obsidian_chest": "Cofre de obsidiana", + "block.ironchest.dirt_chest": "¡CofreTierra 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Mejora de cofre de hierro a oro", + "item.ironchest.gold_to_diamond_chest_upgrade": "Mejora de cofre de oro a diamante", + "item.ironchest.copper_to_silver_chest_upgrade": "Mejora de cofre de cobre a plata", + "item.ironchest.silver_to_gold_chest_upgrade": "Mejora de cofre de plata a oro", + "item.ironchest.copper_to_iron_chest_upgrade": "Mejora de cofre de cobre a hierro", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Mejora de cofre de diamante a cristal", + "item.ironchest.wood_to_iron_chest_upgrade": "Mejora de cofre de madera a hierro", + "item.ironchest.wood_to_copper_chest_upgrade": "Mejora de cofre de madera a cobre", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Mejora de cofre de diamante a obsidiana", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "¡Cómo usar su CofreTierra 9000!", + "ironchest.book.dirtchest9000.1": "¡Le damos la bienvenida a su nuevo CofreTierra 9000! Esperamos que disfrute de muchos años preservando sus montones de tierra en nuestra gran utilidad de almacenamiento.", + "ironchest.book.dirtchest9000.2": "Modo de uso: simplemente introduzca el stack de tierra a su elección en el espacio altamente receptivo, y disfrute de la maravillosa comodidad de tener tierra disponible siempre que pase cerca del cofre", + "ironchest.book.dirtchest9000.3": "¡Esperamos que haya disfrutado de la lectura de este manual de instrucciones, y que considere usar nuestros productos en el futuro! Saludos cordiales, los escritores del manual del CofreTierra 9000 y asociados.", + "ironchest.book.dirtchest9000.4": "Garantía: Este producto no tiene ningún tipo de garantía. Es posible que su tierra no se preserve o se filtre lentamente en el entorno. Alternativamente, puede que no pase nada en lo absoluto.", + "ironchest.book.dirtchest9000.5": "CofreTierra 9000 es amigable con el ambiente. Por favor deshagase de esta guía de forma responsable y, ante todo, no lo tire en la lava. Nos pondría muy trsites.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Cofre de hierro", + "ironchest.container.gold_chest": "Cofre de oro", + "ironchest.container.diamond_chest": "Cofre de diamante", + "ironchest.container.copper_chest": "Cofre de cobre", + "ironchest.container.silver_chest": "Cofre de plata", + "ironchest.container.crystal_chest": "Cofre de cristal", + "ironchest.container.obsidian_chest": "Cofre de obsidiana", + "ironchest.container.dirt_chest": "¡CofreTierra 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/es_mx.json b/src/main/resources/assets/ironchest/lang/es_mx.json new file mode 100644 index 00000000..33d64034 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/es_mx.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Cofre de hierro", + "block.ironchest.gold_chest": "Cofre de oro", + "block.ironchest.diamond_chest": "Cofre de diamante", + "block.ironchest.copper_chest": "Cofre de cobre", + "block.ironchest.silver_chest": "Cofre de plata", + "block.ironchest.crystal_chest": "Cofre de cristal", + "block.ironchest.obsidian_chest": "Cofre de obsidiana", + "block.ironchest.dirt_chest": "¡CofreTierra 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Mejora de cofre de hierro a oro", + "item.ironchest.gold_to_diamond_chest_upgrade": "Mejora de cofre de oro a diamante", + "item.ironchest.copper_to_silver_chest_upgrade": "Mejora de cofre de cobre a plata", + "item.ironchest.silver_to_gold_chest_upgrade": "Mejora de cofre de plata a oro", + "item.ironchest.copper_to_iron_chest_upgrade": "Mejora de cofre de cobre a hierro", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Mejora de cofre de diamante a cristal", + "item.ironchest.wood_to_iron_chest_upgrade": "Mejora de cofre de madera a hierro", + "item.ironchest.wood_to_copper_chest_upgrade": "Mejora de cofre de madera a cobre", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Mejora de cofre de diamante a obsidiana", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "¡Cómo usar su CofreTierra 9000!", + "ironchest.book.dirtchest9000.1": "¡Le damos la bienvenida a su nuevo CofreTierra 9000! Esperamos que disfrute de muchos años preservando sus montones de tierra en nuestra gran utilidad de almacenamiento.", + "ironchest.book.dirtchest9000.2": "Modo de uso: simplemente introduzca el stack de tierra a su elección en el espacio altamente receptivo, y disfrute de la maravillosa comodidad de tener tierra disponible siempre que pase cerca del cofre", + "ironchest.book.dirtchest9000.3": "¡Esperamos que haya disfrutado de la lectura de este manual de instrucciones, y que considere usar nuestros productos en el futuro! Saludos cordiales, los escritores del manual del CofreTierra 9000 y asociados.", + "ironchest.book.dirtchest9000.4": "Garantía: Este producto no tiene ningún tipo de garantía. Es posible que su tierra no se preserve o se filtre lentamente en el entorno. Alternativamente, puede que no pase nada en lo absoluto.", + "ironchest.book.dirtchest9000.5": "CofreTierra 9000 es amigable con el ambiente. Por favor deshagase de esta guía de forma responsable y, ante todo, no lo tire en la lava. Nos pondría muy trsites.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Cofre de hierro", + "ironchest.container.gold_chest": "Cofre de oro", + "ironchest.container.diamond_chest": "Cofre de diamante", + "ironchest.container.copper_chest": "Cofre de cobre", + "ironchest.container.silver_chest": "Cofre de plata", + "ironchest.container.crystal_chest": "Cofre de cristal", + "ironchest.container.obsidian_chest": "Cofre de obsidiana", + "ironchest.container.dirt_chest": "¡CofreTierra 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/et_EE.lang b/src/main/resources/assets/ironchest/lang/et_EE.lang deleted file mode 100755 index a52d0919..00000000 --- a/src/main/resources/assets/ironchest/lang/et_EE.lang +++ /dev/null @@ -1,22 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Raudkirst -tile.ironchest.chest.gold.name=Kuldkirst -tile.ironchest.chest.diamond.name=Teemantkirst -tile.ironchest.chest.copper.name=Vaskkirst -tile.ironchest.chest.silver.name=Hõbekirst -tile.ironchest.chest.crystal.name=Kristallkirst -tile.ironchest.chest.obsidian.name=Obsidiaankirst -tile.ironchest.chest.dirtchest9000.name=Muldkirst 9000! - -item.ironchest.chest.iron_gold.name=Raudkirst kuld kirstuks -item.ironchest.chest.gold_diamond.name=Kuldkirst teemandist kirstuks -item.ironchest.chest.copper_silver.name=Vaskkirst hõbedast kirstuks -item.ironchest.chest.silver_gold.name=Hõbekirst kullast kirstuks -item.ironchest.chest.copper_iron.name=Vaskkirst rauast kirstuks -item.ironchest.chest.diamond_crystal.name=Teemantkirst kristallist kirstuks -item.ironchest.chest.wood_iron.name=Puukirst rauast kirstuks -item.ironchest.chest.wood_copper.name=Puukirst vasest kirstuks -item.ironchest.chest.diamond_obsidian.name=Teemantkirst obsidiaanist kirstuks diff --git a/src/main/resources/assets/ironchest/lang/fr_CA.lang b/src/main/resources/assets/ironchest/lang/fr_CA.lang deleted file mode 100644 index 12233206..00000000 --- a/src/main/resources/assets/ironchest/lang/fr_CA.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Coffre en fer -tile.ironchest.chest.gold.name=Coffre en or -tile.ironchest.chest.diamond.name=Coffre en diamant -tile.ironchest.chest.copper.name=Coffre en cuivre -tile.ironchest.chest.silver.name=Coffre en argent -tile.ironchest.chest.crystal.name=Coffre en cristal -tile.ironchest.chest.obsidian.name=Coffre en obsidienne -tile.ironchest.chest.dirtchest9000.name=DirtChest 9000 ! - -item.ironchest.chest.iron_gold.name=Upgrade de coffre en fer à l'or -item.ironchest.chest.gold_diamond.name=Upgrade de coffre en or au diamant -item.ironchest.chest.copper_silver.name=Upgrade de coffre en cuivre à l'argent -item.ironchest.chest.silver_gold.name=Upgrade de coffre en argent à l'or -item.ironchest.chest.copper_iron.name=Upgrade de coffre en cuivre au fer -item.ironchest.chest.diamond_crystal.name=Upgrade de coffre en diamant au cristal -item.ironchest.chest.wood_iron.name=Upgrade de coffre en bois au fer -item.ironchest.chest.wood_copper.name=Upgrade de coffre en bois au cuivre -item.ironchest.chest.diamond_obsidian.name=Upgrade de coffre en diamant à l'obsidienne - -book.ironchest.dirtchest9000.title=Comment utiliser votre DirtChest 9000 ! -book.ironchest.dirtchest9000.page1=Bienvenue à votre nouveau DirtChest 9000 ! Nous espérons que vous apprécierez les innombrables années heureuses à emmagasiner votre stack de terre dans notre utilitaire de stockage. -book.ironchest.dirtchest9000.page2=Utilisation : insérez tout simplement le stack de terre de votre choix dans la case hautement réceptive et appréciez l'immense commodité d'avoir cette terre disponible à portée de la main, à tout moment où vous passez devant ce coffre ! -book.ironchest.dirtchest9000.page3=Nous espérons que vous avez apprécié faire la critique de ce manuel d'instruction, et espérons que vous allez considérer utiliser nos produits dans le futur ! Nos meilleures salutations, les rédacteurs du manuel DirtChest 9000 inc. -book.ironchest.dirtchest9000.page4=Garantie : ce produit n'a aucune garantie quelconque. Votre terre peut ne pas être stockée, elle peut se fondre lentement dans l'environnement, ou encore, elle peut ne rien faire du tout. -book.ironchest.dirtchest9000.page5=DirtChest 9000 respecte l'environnement. Veuillez disposer de ce guide de manière responsable, et quoique vous fassiez, ne le balancez juste pas dans de la lave. Nous en serions attristés. diff --git a/src/main/resources/assets/ironchest/lang/fr_FR.lang b/src/main/resources/assets/ironchest/lang/fr_FR.lang deleted file mode 100755 index 5e66670a..00000000 --- a/src/main/resources/assets/ironchest/lang/fr_FR.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Coffre en Fer -tile.ironchest.chest.gold.name=Coffre en Or -tile.ironchest.chest.diamond.name=Coffre en Diamant -tile.ironchest.chest.copper.name=Coffre en Cuivre -tile.ironchest.chest.silver.name=Coffre en Argent -tile.ironchest.chest.crystal.name=Coffre en Cristal -tile.ironchest.chest.obsidian.name=Coffre en Obsidienne - -item.ironchest.chest.iron_gold.name=Amélioration de coffre en fer à or -item.ironchest.chest.gold_diamond.name=Amélioration de coffre en or à diamant -item.ironchest.chest.copper_silver.name=Amélioration de coffre en cuivre à argent -item.ironchest.chest.silver_gold.name=Amélioration de coffre en argent à or -item.ironchest.chest.copper_iron.name=Amélioration de coffre en cuivre à fer -item.ironchest.chest.diamond_crystal.name=Amélioration de coffre en diamant à crital -item.ironchest.chest.wood_iron.name=Amélioration de coffre en bois à fer -item.ironchest.chest.wood_copper.name=Amélioration de coffre en bois à cuivre -item.ironchest.chest.diamond_obsidian.name=Amélioration de coffre en diamant à obsidienne diff --git a/src/main/resources/assets/ironchest/lang/fr_fr.json b/src/main/resources/assets/ironchest/lang/fr_fr.json new file mode 100644 index 00000000..118d4c4b --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/fr_fr.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Coffre en fer", + "block.ironchest.gold_chest": "Coffre en or", + "block.ironchest.diamond_chest": "Coffre en diamant", + "block.ironchest.copper_chest": "Coffre en cuivre", + "block.ironchest.silver_chest": "Coffre en argent", + "block.ironchest.crystal_chest": "Coffre de cristal", + "block.ironchest.obsidian_chest": "Coffre en obsidienne", + "block.ironchest.dirt_chest": "DirtChest 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Amélioration Fer à Or", + "item.ironchest.gold_to_diamond_chest_upgrade": "Amélioration Or à Diamant", + "item.ironchest.copper_to_silver_chest_upgrade": "Amélioration Cuivre à Argent", + "item.ironchest.silver_to_gold_chest_upgrade": "Amélioration Argent à Or", + "item.ironchest.copper_to_iron_chest_upgrade": "Amélioration Cuivre à Fer", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Amélioration Diamant à Cristal", + "item.ironchest.wood_to_iron_chest_upgrade": "Amélioration Bois à Fer", + "item.ironchest.wood_to_copper_chest_upgrade": "Amélioration Bois à Cuivre", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Amélioration Diamant à Obsidienne", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "Comment utiliser votre DirtChest 9000!", + "ironchest.book.dirtchest9000.1": "Découvrez votre nouveau DirtChest 9000! Nous espérons que vous allez aprécier de nombreuse années de stockage de terre dans notre coffre", + "ironchest.book.dirtchest9000.2": "Utilisation: Inserrez simplement votre terre dans le slot prévu à cet effet et profitez de la simplicité de l'avoir à portée de main dés que vous passez près du coffre!", + "ironchest.book.dirtchest9000.3": "Nous espérons que ce guide vous aura été utile et que vous continuerez d'utilisez nos produits à l'avenir! Cordialement, la rédaction des manuels DirtChest 9000.", + "ironchest.book.dirtchest9000.4": "Garantie: Ce produit n'est sous aucune garantie d'aucune sorte. Votre terre ne rentrera peut être pas, elle s'infiltrera peut être lentement dans l'environement ou il ne se passera peut être rien du tout.", + "ironchest.book.dirtchest9000.5": "Le DirtChest 9000 est bon pour la planette. Merci de vous débarasser de ce guide responsablement et de ne pas le jeter dans la lave, ça nous rendrait triste.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Coffre en fer", + "ironchest.container.gold_chest": "Coffre en or", + "ironchest.container.diamond_chest": "Coffre en diamant", + "ironchest.container.copper_chest": "Coffre en cuivre", + "ironchest.container.silver_chest": "Coffre en argent", + "ironchest.container.crystal_chest": "Coffre de cristal", + "ironchest.container.obsidian_chest": "Coffre en obsidienne", + "ironchest.container.dirt_chest": "DirtChest 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/hu_HU.lang b/src/main/resources/assets/ironchest/lang/hu_HU.lang deleted file mode 100644 index df8f0854..00000000 --- a/src/main/resources/assets/ironchest/lang/hu_HU.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Vas láda -tile.ironchest.chest.gold.name=Arany láda -tile.ironchest.chest.diamond.name=Gyémánt láda -tile.ironchest.chest.copper.name=Réz láda -tile.ironchest.chest.silver.name=Ezüst láda -tile.ironchest.chest.crystal.name=Kristály láda -tile.ironchest.chest.obsidian.name=Obszidián láda -tile.ironchest.chest.dirtchest9000.name=DirtChest 9000! - -item.ironchest.chest.iron_gold.name=Vasról arany ládára bővítő -item.ironchest.chest.gold_diamond.name=Aranyról gyémánt ládára bővítő -item.ironchest.chest.copper_silver.name=Rézről ezüst ládára bővítő -item.ironchest.chest.silver_gold.name=Ezüstről arany ládára bővítő -item.ironchest.chest.copper_iron.name=Részről vas ládára bővítő -item.ironchest.chest.diamond_crystal.name=Gyémántról kristály ládára bővítő -item.ironchest.chest.wood_iron.name=Normálról (fa) vas ládára bővítő -item.ironchest.chest.wood_copper.name=Normálról (fa) réz ládára bővítő -item.ironchest.chest.diamond_obsidian.name=Gyémántról obszidián ládára bővítő - -book.ironchest.dirtchest9000.title=Hogyan használd a DirtChest 9000-et! -book.ironchest.dirtchest9000.page1=Üdvözöl az új DirtChest 9000! Reméljük sok boldog évig élvezni fogod egy halom föld tárólásának eme vadiúj módját. -book.ironchest.dirtchest9000.page2=Használat: egyszerűen pakolj bele egy halom földet eme különlegesen érzékeny tárolóegységbe és élvezd a kényelmet, hogy egy halom föld mindig rendelkezésedre fog állni, bármikor nyitod is ki ezt a ládát. -book.ironchest.dirtchest9000.page3=Reméljük, hogy élvezted eme kézikönyv olvasgatását, és megfontolod más termékünk használatát is a jövöben. Üdvözlettel: A DirtChest 9000 kézikönyv írói. -book.ironchest.dirtchest9000.page4=Garancia: Ez a termék nem rendelkezik semmiféle garanciával. A belepakolt föld lehet, hogy nem is kerül tárolásra, elszivárog a környezetbe, vagy az is lehetséges hogy nem történik vele semmi. -book.ironchest.dirtchest9000.page5=A DirtChest 9000 környezetbarát termék. Kérjül fokozottan ügyelj erre a kézikönyv megsemmisitésekor, és semmiképpen se dobd lávába. Akkor ugyanis nagyon szomorúak leszünk. \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/lang/hy_am.json b/src/main/resources/assets/ironchest/lang/hy_am.json new file mode 100644 index 00000000..34217076 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/hy_am.json @@ -0,0 +1,52 @@ +{ + "_translators_comment": "Translated by Harutyun Soghomonyan", + + "_comment": "Blocks", + "block.ironchest.iron_chest": "Երկաթյա Գանձարկղ", + "block.ironchest.gold_chest": "Ոսկե Գանձարկղ", + "block.ironchest.diamond_chest": "Ադամանդե Գանձարկղ", + "block.ironchest.copper_chest": "Պղնձե Գանձարկղ", + "block.ironchest.crystal_chest": "Բյուրեղյա Գանձարկղ", + "block.ironchest.obsidian_chest": "Օբսիդիանե Գանձարկղ", + "block.ironchest.dirt_chest": "ԿեղտԱրկղ 9000!", + + "block.ironchest.trapped_iron_chest": "Թակարդված Երկաթյա Գանձարկղ", + "block.ironchest.trapped_gold_chest": "Թակարդված Ոսկե Գանձարկղ", + "block.ironchest.trapped_diamond_chest": "Թակարդված Ադամանդե Գանձարկղ", + "block.ironchest.trapped_copper_chest": "Թակարդված Պղնձե Գանձարկղ", + "block.ironchest.trapped_crystal_chest": "Թակարդված Բյուրեղյա Գանձարկղ", + "block.ironchest.trapped_obsidian_chest": "Թակարդված Օբսիդիանե Գանձարկղ", + "block.ironchest.trapped_dirt_chest": "Թակարդված ԿեղտԱրկղ 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Բարելավում Երկաթյա Գանձարկղից դեպի Ոսկե", + "item.ironchest.gold_to_diamond_chest_upgrade": "Բարելավում Ոսկե Գանձարկղից դեպի Ադամանդե", + "item.ironchest.copper_to_silver_chest_upgrade": "Բարելավում Պղնձե Գանձարկղից դեպի Արծաթյա", + "item.ironchest.silver_to_gold_chest_upgrade": "Բարելավում Արծաթյա Գանձարկղից դեպի Ոսկե", + "item.ironchest.copper_to_iron_chest_upgrade": "Բարելավում Պղնձե Գանձարկղից դեպի Երկաթյա", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Բարելավում Ադամանդե Գանձարկղից դեպի Բյուրեղյա", + "item.ironchest.wood_to_iron_chest_upgrade": "Բարելավում Փայտե Գանձարկղից դեպի Երկաթյա", + "item.ironchest.wood_to_copper_chest_upgrade": "Բարելավում Պղնձե Գանձարկղից դեպի Պղնձե", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Բարելավում Ադամանդե Գանձարկղից դեպի Օբսիդիանե", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "Ինչպե՞ս օգտագործել ԿեղտԱրկղ 9000-ը։", + "ironchest.book.dirtchest9000.1": "Բարի գալուստ Ձեր նոր ԿեղտԱրկղ 9000! Մենք հուսով ենք, որ դուք երկար և երջանիկ տարիներ կպահեք Ձեր կեղտի ստակը մեր պահպանման սարքի մեջ։", + "ironchest.book.dirtchest9000.2": "Օգտագործում. Պարզապես տեղադրեք Ձեր ընտրած կեղտի ստակը բարձր ընկալունակ բնիկի մեջ և վայելեք այդ կեղտը ամեն անգամ գանձարկղի կողքով անցնելիս:", + "ironchest.book.dirtchest9000.3": "Հուսով ենք, որ Ձեզ դուր եկավ այս ձեռնարկի ընթերցումը, և հուսով ենք, որ կմտածեք ապագայում մեր արտադրանքի օգտագործման մասին: Հարգանքներով, ԿեղտԱրկղ 9000-ի ձեռնարկը գրող ընկերություն:", + "ironchest.book.dirtchest9000.4": "Երաշխիք․ Այս ապրանքը չունի որևէ երաշխիք: Ձեր կեղտը կարող է չպահպանվել, այն կարող է կամաց-կամաց քայքայվել շրջակա միջավայր, կամ, որպես այլընտրանք, իր հետ կարող է ոչինչ չկատարվել:", + "ironchest.book.dirtchest9000.5": "ԿեղտԱրկղ 9000-ը էկոլոգիապես մաքուր է շրջակա միջավայրի համար։ Խնդրում ենք պատասխանատու կերպով տնօրինվեք այս ձեռնարկով և նույնիսկ չփորձեք այն նետել առաջին պատահած լավայի մեջ։ Մենք շատ կտխրենք։", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Երկաթյա Գանձարկղ", + "ironchest.container.gold_chest": "Ոսկե Գանձարկղ", + "ironchest.container.diamond_chest": "Ադամանդե Գանձարկղ", + "ironchest.container.copper_chest": "Պղնձե Գանձարկղ", + "ironchest.container.silver_chest": "Արծաթյա Գանձարկղ", + "ironchest.container.crystal_chest": "Բյուրեղյա Գանձարկղ", + "ironchest.container.obsidian_chest": "Օբսիդիանե Գանձարկղ", + "ironchest.container.dirt_chest": "ԿեղտԱրկղ 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Մետաղյա Գանձարկղեր" +} diff --git a/src/main/resources/assets/ironchest/lang/it_IT.lang b/src/main/resources/assets/ironchest/lang/it_IT.lang deleted file mode 100755 index 610d317e..00000000 --- a/src/main/resources/assets/ironchest/lang/it_IT.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Baule di ferro -tile.ironchest.chest.gold.name=Baule d'oro -tile.ironchest.chest.diamond.name=Baule di diamante -tile.ironchest.chest.copper.name=Baule di rame -tile.ironchest.chest.silver.name=Baule d'argento -tile.ironchest.chest.crystal.name=Baule di cristallo -tile.ironchest.chest.obsidian.name=Baule di ossidiana -tile.ironchest.chest.dirtchest9000.name=DirtChest 9000! - -item.ironchest.chest.iron_gold.name=Potenziamento da ferro a oro -item.ironchest.chest.gold_diamond.name=Potenziamento da oro a diamante -item.ironchest.chest.copper_silver.name=Potenziamento da rame a argento -item.ironchest.chest.silver_gold.name=Potenziamento da argento a oro -item.ironchest.chest.copper_iron.name=Potenziamento da rame a ferro -item.ironchest.chest.diamond_crystal.name=Potenziamento da diamante a cristallo -item.ironchest.chest.wood_iron.name=Potenziamento da legno a ferro -item.ironchest.chest.wood_copper.name=Potenziamento da legno a rame -item.ironchest.chest.diamond_obsidian.name=Potenziamento da diamante a ossidiana - -book.ironchest.dirtchest9000.title=Come usare la tua DirtChest 9000! -book.ironchest.dirtchest9000.page1=Benvenuto alla tua nuova DirtChest 9000! Speriamo che possiate godere di molti anni felici in cui imagazzinate grandi quantità di terra nei nostri contenitori. -book.ironchest.dirtchest9000.page2=Uso: inserisci uno stack di terra nello slot e goditi la grande convenienza di avere della terra a tua disposizione ogni volta che passi vicino alla cassa! -book.ironchest.dirtchest9000.page3=Speriamo che questo manuale vi sia stato utile, e speriamo che prenderete in considerazione usare i nostri prodotti in futuro ! I migliori saluti, i scrittori del manuale per la DirtChest 9000. -book.ironchest.dirtchest9000.page4=Garanzia: Questo prodotto non ha nessuna garanzia di alcun tipo. La tua terra potrebbe non essere imagazzinata, potrebbe lentamente fuoriuscire nell'ambiente, oppure, non farà niente. -book.ironchest.dirtchest9000.page5=La DirtChest 9000 è amico dell'ambiente. Per favore conservate questo libro in un modo responsabile, e non buttatelo nella lava come un oggetto qualsiasi. Saremmo veramente tristi. diff --git a/src/main/resources/assets/ironchest/lang/it_it.json b/src/main/resources/assets/ironchest/lang/it_it.json new file mode 100644 index 00000000..c7dd5ea7 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/it_it.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocchi", + "block.ironchest.iron_chest": "Baule di Ferro", + "block.ironchest.gold_chest": "Baule d'Oro", + "block.ironchest.diamond_chest": "Baule di Diamante", + "block.ironchest.copper_chest": "Baule di Rame", + "block.ironchest.silver_chest": "Baule d'Argento", + "block.ironchest.crystal_chest": "Baule di Cristallo", + "block.ironchest.obsidian_chest": "Baule di Ossidiana", + "block.ironchest.dirt_chest": "Baulediterra 9000!", + + "_comment": "Miglioramenti", + "item.ironchest.iron_to_gold_chest_upgrade": "Miglioramento da Baule di Ferro a Baule d'Oro", + "item.ironchest.gold_to_diamond_chest_upgrade": "Miglioramento da Baule d'Oro a Baule di Diamante", + "item.ironchest.copper_to_silver_chest_upgrade": "Miglioramento da Baule di Rame a Baule d'Argento", + "item.ironchest.silver_to_gold_chest_upgrade": "Miglioramento da Baule d'Argento a Baule d'Oro", + "item.ironchest.copper_to_iron_chest_upgrade": "Miglioramento da Baule di Rame a Baule di Ferro", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Miglioramento da Baule di Diamante a Baule di Cristallo", + "item.ironchest.wood_to_iron_chest_upgrade": "Miglioramento da Baule di Legno a Baule di Ferro", + "item.ironchest.wood_to_copper_chest_upgrade": "Miglioramento da Baule di Legno a Baule di Rame", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Miglioramento da Baule di Diamante a Baule di Ossidiana", + + "_comment": "Libri", + "ironchest.book.dirtchest9000": "Come usare il tuo Baulediterra 9000!", + "ironchest.book.dirtchest9000.1": "Benvenuto al tuo nuovo Baulediterra 9000! Ci auguriamo che ti godrai molti anni felici immagazzinando la tua pila di terra nella nostra utilità di archiviazione.", + "ironchest.book.dirtchest9000.2": "Utilizzo: inserisci semplicemente la pila di terra a tua scelta nello slot altamente ricettivo e goditi la grande comodità di avere quella terra a tua disposizione, ogni volta che passi davanti a questa cassa!", + "ironchest.book.dirtchest9000.3": "Ci auguriamo che abbiate apprezzato la lettura di questo manuale di istruzioni e speriamo che prendiate in considerazione l'utilizzo dei nostri prodotti in futuro! Cordiali saluti, gli scrittori del manuale del Baulediterra 9000 inc. .", + "ironchest.book.dirtchest9000.4": "Garanzia: Questo prodotto non ha garanzie di alcun tipo. La tua terra potrebbe non essere immagazzinata, potrebbe lentamente riversarsi nell'ambiente o, in alternativa, potrebbe non fare nulla.", + "ironchest.book.dirtchest9000.5": "Baulediterra 9000 rispetta l'ambiente. Per favore, smaltisci questa guida in modo responsabile, e non fare ciò che faresti, ossia buttala nella lava. Saremmo molto tristi.", + + "_comment": "Recipienti", + "ironchest.container.iron_chest": "Baule di Ferro", + "ironchest.container.gold_chest": "Baule d'Oro", + "ironchest.container.diamond_chest": "Baule di Diamante", + "ironchest.container.copper_chest": "Baule di Rame", + "ironchest.container.silver_chest": "Baule d'Argento", + "ironchest.container.crystal_chest": "Baule di Cristallo", + "ironchest.container.obsidian_chest": "Baule di Ossidiana", + "ironchest.container.dirt_chest": "Baulediterra 9000!", + + "_comment": "Gruppi di oggetti", + "itemGroup.ironchest": "Bauli di Ferro" +} diff --git a/src/main/resources/assets/ironchest/lang/ja_jp.json b/src/main/resources/assets/ironchest/lang/ja_jp.json new file mode 100644 index 00000000..3ad56822 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/ja_jp.json @@ -0,0 +1,50 @@ +{ + "_comment": "ブロック", + "block.ironchest.iron_chest": "鉄のチェスト", + "block.ironchest.gold_chest": "金のチェスト", + "block.ironchest.diamond_chest": "ダイアモンドのチェスト", + "block.ironchest.copper_chest": "銅のチェスト", + "block.ironchest.crystal_chest": "クリスタルチェスト", + "block.ironchest.obsidian_chest": "黒曜石のチェスト", + "block.ironchest.dirt_chest": "ダートチェスト9000!", + + "block.ironchest.trapped_iron_chest": "鉄のトラップチェスト", + "block.ironchest.trapped_gold_chest": "金のトラップチェスト", + "block.ironchest.trapped_diamond_chest": "ダイアモンドのトラップチェスト", + "block.ironchest.trapped_copper_chest": "銅のトラップチェスト", + "block.ironchest.trapped_crystal_chest": "クリスタルトラップチェスト", + "block.ironchest.trapped_obsidian_chest": "黒曜石のトラップチェスト", + "block.ironchest.trapped_dirt_chest": "ダートチェスト9000!のトラップチェスト", + + "_comment": "アップグレード", + "item.ironchest.iron_to_gold_chest_upgrade": "鉄のチェストから金のチェストにアップグレード", + "item.ironchest.gold_to_diamond_chest_upgrade": "金のチェストからダイアモンドのチェストにアップグレード", + "item.ironchest.copper_to_silver_chest_upgrade": "銅のチェストから銀のチェストにアップグレード", + "item.ironchest.silver_to_gold_chest_upgrade": "銀のチェストから金のチェストにアップグレード", + "item.ironchest.copper_to_iron_chest_upgrade": "銅のチェストから金のチェストにアップグレード", + "item.ironchest.diamond_to_crystal_chest_upgrade": "ダイアモンドチェストからクリスタルチェストにアップグレード", + "item.ironchest.wood_to_iron_chest_upgrade": "チェストから鉄のチェストにアップグレード", + "item.ironchest.wood_to_copper_chest_upgrade": "チェストから銅のチェストにアップグレード", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "ダイアモンドのチェストから黒曜石のチェストにアップグレード", + + "_comment": "Books", + "book.ironchest.dirtchest9000.title": "ダートチェスト9000!の使い方", + "book.ironchest.dirtchest9000.page1": "新しくなった「ダートチェスト9000!」へようこそ! 当社の非常に優れたストレージユーティリティで土の山を保管して、長期ににわたって楽しくお過ごしいただけることを願っています。", + "book.ironchest.dirtchest9000.page2": "使い方:お好きな土を格納して下さい。これでこのチェストのそばを通るといつでも土の温もりを感じることができます。", + "book.ironchest.dirtchest9000.page3": "この取扱説明書を読んで楽しんでくれると幸いです。将来的にはこのチェストが正式に採用されることを期待しています。敬具。 ダートチェスト9000! 取扱説明書著者より", + "book.ironchest.dirtchest9000.page4": "保証について: 本製品はいかなる保証も致しません。土は正しく保管されないかもしれませんし、少しずつ自然に帰っていくかもしれません。逆に、何も起こらないかもしれません。", + "book.ironchest.dirtchest9000.page5": "ダートチェスト9000! は環境に配慮しています。責任を持ってこの取扱説明書を廃棄して下さい。溶岩の中に投げ込むなんてことはお止め下さい。とても悲しくなってしまいます。", + + "_comment": "Containers", + "ironchest.container.iron_chest": "鉄のチェスト", + "ironchest.container.gold_chest": "金のチェスト", + "ironchest.container.diamond_chest": "ダイアモンドのチェスト", + "ironchest.container.copper_chest": "銅のチェスト", + "ironchest.container.silver_chest": "銀のチェスト", + "ironchest.container.crystal_chest": "クリスタルチェスト", + "ironchest.container.obsidian_chest": "黒曜石のチェスト", + "ironchest.container.dirt_chest": "ダートチェスト9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/kk_kz.json b/src/main/resources/assets/ironchest/lang/kk_kz.json new file mode 100644 index 00000000..fca93621 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/kk_kz.json @@ -0,0 +1,50 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Темір сандық", + "block.ironchest.gold_chest": "Алтын сандық", + "block.ironchest.diamond_chest": "Алмас сандық", + "block.ironchest.copper_chest": "Мыс сандық", + "block.ironchest.crystal_chest": "Кристалл сандық", + "block.ironchest.obsidian_chest": "Обсидиан сандық", + "block.ironchest.dirt_chest": "ТопырақСандық 9000!", + + "block.ironchest.trapped_iron_chest": "Темір тұзақ сандық", + "block.ironchest.trapped_gold_chest": "Алтын тұзақ сандық", + "block.ironchest.trapped_diamond_chest": "Алмас тұзақ сандық", + "block.ironchest.trapped_copper_chest": "Мыс тұзақ сандық", + "block.ironchest.trapped_crystal_chest": "Кристалл тұзақ сандық", + "block.ironchest.trapped_obsidian_chest": "Обсидиан тұзақ сандық", + "block.ironchest.trapped_dirt_chest": "Тұзақ ТопырақСандық 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Темірден алтынға сандық жетілдіру", + "item.ironchest.gold_to_diamond_chest_upgrade": "Алтыннан алмасқа сандық жетілдіру", + "item.ironchest.copper_to_silver_chest_upgrade": "Мыстан күміске сандық жетілдіру", + "item.ironchest.silver_to_gold_chest_upgrade": "Күмістен алтынға сандық жетілдіру", + "item.ironchest.copper_to_iron_chest_upgrade": "Мыстан темірге сандық жетілдіру", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Алмастан кристалға сандық жетілдіру", + "item.ironchest.wood_to_iron_chest_upgrade": "Ағаштан темірге сандық жетілдіру", + "item.ironchest.wood_to_copper_chest_upgrade": "Ағаштан мысқа сандық жетілдіру", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Алмастан обсидианға сандық жетілдіру", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "ТопырақСандық 9000-ды қалай қолданады!", + "ironchest.book.dirtchest9000.1": "Жаңа ТопырақСандық 9000-ыңыз құтты болсын! Біздің қоймамызда бір стак топырағыңызды қуана сақтайсыз деп үміттенеміз.", + "ironchest.book.dirtchest9000.2": "Қолдану жолы: қалаған бір стак топырағыңызды аса алғыр ұяшыққа салып, бұл сандықтың қасында жүргенде, топырақтың сізге әрқашан қолжетімді болғанын тамашалаңыз!", + "ironchest.book.dirtchest9000.3": "Бұл нұсқаулықтың пайдасы тигеніне сенімді болып, болашақта өнімдерімізді қолданасыз деп үміттенеміз! Рақмет, ТопырақСандық 9000 нұсқаулығын жазғандар incorporated.", + "ironchest.book.dirtchest9000.4": "Кепілдік: бұл өнімнің еш кепілдігі жоқ. Топырағыңыз сақталмауы мүмкін, бірте-бірте сарқылуы мүмкін немесе, керісінше, түк істемеуі мүмкін.", + "ironchest.book.dirtchest9000.5": "ТопырақСандық 9000 қоршаған ортаға қауіпсіз. Бұл нұсқаулықты дұрыс жолда жойғаныңызды өтінеміз, не болса да, жай ғана лаваға лақтыра салмаңыз. Әйтпесе қатты ренжиміз.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Темір сандық", + "ironchest.container.gold_chest": "Алтын сандық", + "ironchest.container.diamond_chest": "Алмас сандық", + "ironchest.container.copper_chest": "Мыс сандық", + "ironchest.container.silver_chest": "Күміс сандық", + "ironchest.container.crystal_chest": "Кристалл сандық", + "ironchest.container.obsidian_chest": "Обсидиан сандық", + "ironchest.container.dirt_chest": "ТопырақСандық 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/ko_KR.lang b/src/main/resources/assets/ironchest/lang/ko_KR.lang deleted file mode 100755 index 7f475e7a..00000000 --- a/src/main/resources/assets/ironchest/lang/ko_KR.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=철 상자 -tile.ironchest.chest.gold.name=금 상자 -tile.ironchest.chest.diamond.name=다이아몬드 상자 -tile.ironchest.chest.copper.name=구리 상자 -tile.ironchest.chest.silver.name=은 상자 -tile.ironchest.chest.crystal.name=수정 상자 -tile.ironchest.chest.obsidian.name=흑요석 상자 -tile.ironchest.chest.dirtchest9000.name=흙 상자 9000! - -item.ironchest.chest.iron_gold.name=철 상자를 금 상자로 업그레이드 -item.ironchest.chest.gold_diamond.name=금 상자를 다이아몬드 상자로 업그레이드 -item.ironchest.chest.copper_silver.name=구리 상자를 은 상자로 업그레이드 -item.ironchest.chest.silver_gold.name=은 상자를 금 상자로 업그레이드 -item.ironchest.chest.copper_iron.name=구리 상자를 철 상자로 업그레이드 -item.ironchest.chest.diamond_crystal.name=다이아몬드 상자를 수정 상자로 업그레이드 -item.ironchest.chest.wood_iron.name=나무 상자를 철 상자로 업그레이드 -item.ironchest.chest.wood_copper.name=나무 상자를 구리 상자로 업그레이드 -item.ironchest.chest.diamond_obsidian.name=다이아몬드 상자를 흑요석 상자로 업그레이드 - -book.ironchest.dirtchest9000.title=흙 상자 9000을 사용하는 방법! -book.ironchest.dirtchest9000.page1=새로운 흙 상자 9000을 사용하게 되신 것을 환영합니다! 우리는 당신이 이 저장 도구에서 흙들을 많은 해 동안 행복하게 저장하기를 기원합니다. -사용법: 단순히 흙 뭉치들을 아이템 슬롯에 넣고 이 상자를 지나갈 때마다 언제나 당신에게 제공되어지는 흙들의 편리함을 누리세요! -book.ironchest.dirtchest9000.page3=우리는 당신이 이 사용설명서를 즐겁게 읽었고, 나중에 이 제품을 사용하기를 바랍니다! 흙 상자 9000 매뉴얼 -book.ironchest.dirtchest9000.page4=주의: 이 제품에는 어떤 종류의 보증도 하지 않습니다 당신의 흙들은 저장되지 않을 수도 있습니다. 그러면 이 흙 상자는 천천히 환경 속으로 돌아가거나, 혹은 아무것도 하지 않을 것입니다. -book.ironchest.dirtchest9000.page5=흙 상자 9000은 환경 친화적입니다. 가이드북의 처분에는 책임이 따릅니다, 그러니 어떠한 경우라도 용암에 버리지 마세요. 우리는 매우 슬플 것입니다. diff --git a/src/main/resources/assets/ironchest/lang/ko_kr.json b/src/main/resources/assets/ironchest/lang/ko_kr.json new file mode 100644 index 00000000..0deb2d08 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/ko_kr.json @@ -0,0 +1,33 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "철 상자", + "block.ironchest.gold_chest": "금 상자", + "block.ironchest.diamond_chest": "다이아몬드 상자", + "block.ironchest.copper_chest": "구리 상자", + "block.ironchest.silver_chest": "은 상자", + "block.ironchest.crystal_chest": "수정 상자", + "block.ironchest.obsidian_chest": "흑요석 상자", + "block.ironchest.dirt_chest": "흙 상자 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "철 상자를 금 상자로 업그레이드", + "item.ironchest.gold_to_diamond_chest_upgrade": "금 상자를 다이아몬드 상자로 업그레이드", + "item.ironchest.copper_to_silver_chest_upgrade": "구리 상자를 은 상자로 업그레이드", + "item.ironchest.silver_to_gold_chest_upgrade": "은 상자를 금 상자로 업그레이드", + "item.ironchest.copper_to_iron_chest_upgrade": "구리 상자를 철 상자로 업그레이드", + "item.ironchest.diamond_to_crystal_chest_upgrade": "다이아몬드 상자를 수정 상자로 업그레이드", + "item.ironchest.wood_to_iron_chest_upgrade": "나무 상자를 철 상자로 업그레이드", + "item.ironchest.wood_to_copper_chest_upgrade": "나무 상자를 구리 상자로 업그레이드", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "다이아몬드 상자를 흑요석 상자로 업그레이드", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "흙 상자 9000을 사용하는 방법!", + "ironchest.book.dirtchest9000.1": "새로운 흙 상자 9000을 사용하게 되신 것을 환영합니다! 우리는 당신이 이 저장 도구에서 흙들을 많은 해 동안 행복하게 저장하기를 기원합니다.", + "ironchest.book.dirtchest9000.2": "사용법: 단순히 흙 뭉치들을 아이템 슬롯에 넣고 이 상자를 지나갈 때마다 언제나 당신에게 제공되어지는 흙들의 편리함을 누리세요!", + "ironchest.book.dirtchest9000.3": "우리는 당신이 이 사용설명서를 즐겁게 읽었고, 나중에 이 제품을 사용하기를 바랍니다! 흙 상자 9000 매뉴얼", + "ironchest.book.dirtchest9000.4": "주의: 이 제품에는 어떤 종류의 보증도 하지 않습니다 당신의 흙들은 저장되지 않을 수도 있습니다. 그러면 이 흙 상자는 천천히 환경 속으로 돌아가거나, 혹은 아무것도 하지 않을 것입니다.", + "ironchest.book.dirtchest9000.5": "흙 상자 9000은 환경 친화적입니다. 가이드북의 처분에는 책임이 따릅니다, 그러니 어떠한 경우라도 용암에 버리지 마세요. 우리는 매우 슬플 것입니다.", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/nb_NO.lang b/src/main/resources/assets/ironchest/lang/nb_NO.lang deleted file mode 100755 index 5c823e6c..00000000 --- a/src/main/resources/assets/ironchest/lang/nb_NO.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Jernkiste -tile.ironchest.chest.gold.name=Gullkiste -tile.ironchest.chest.diamond.name=Diamantkiste -tile.ironchest.chest.copper.name=Kobberkiste -tile.ironchest.chest.silver.name=Sølvkiste -tile.ironchest.chest.crystal.name=Krystallkiste -tile.ironchest.chest.obsidian.name=Obsidiankiste -tile.ironchest.chest.dirtchest9000.name=JordKiste 9000! - -item.ironchest.chest.iron_gold.name=Jern til Gull Kisteoppgradering -item.ironchest.chest.gold_diamond.name=Gull til Diamant Kisteoppgradering -item.ironchest.chest.copper_silver.name=Kobber til Sølv Kisteoppgradering -item.ironchest.chest.silver_gold.name=Sølv til Gull Kisteoppgradering -item.ironchest.chest.copper_iron.name=Kobber til Jern Kisteoppgradering -item.ironchest.chest.diamond_crystal.name=Diamant til Krystall Kisteoppgradering -item.ironchest.chest.wood_iron.name=Tre til Jern Kisteoppgradering -item.ironchest.chest.wood_copper.name=Tre til Kobber Kisteoppgradering -item.ironchest.chest.diamond_obsidian.name=Diamant til Obsidian Kisteoppgradering - -book.ironchest.dirtchest9000.title=Hvordan bruker din JordKiste 9000! -book.ironchest.dirtchest9000.page1=Velkommen til din nye JordKiste9000! Vi håper du vil nyte mange lykkelige år med lagring av din stabel av jord i vå lager verktøy. -book.ironchest.dirtchest9000.page2=Bruk: bare å sette bunken med jord av ditt valg i den svært mottakelige sporet og nyte den store fordelen med åa den jorden tilgjengelig for deg, nådu passerer denne kisten! -book.ironchest.dirtchest9000.page3=Vi håper du har hatt en god fornøyelse gjennom denne bruksanvisningen, og hår du vil vurdere å bruke vå produkter i fremtiden! Vennlig hilsen, JordKiste9000 manual forfattere innarbeidet. -book.ironchest.dirtchest9000.page4=Garanti: Dette produktet har ingen garantier av noe slag. Din jord kan ikke lagres, det kan sakte lekke ut i miljøet, eller alternativt, kan det ikke gjøre noe i det hele tatt. -book.ironchest.dirtchest9000.page5=JordKiste 9000 er snill mot miljøet. Vennligst ta hånd om denne veileder boken ansvarlig, og hva du enn gjør ikke kast den inn i noe lav. Vi ville bli veldig trist. diff --git a/src/main/resources/assets/ironchest/lang/nl_NL.lang b/src/main/resources/assets/ironchest/lang/nl_NL.lang deleted file mode 100755 index 343148f3..00000000 --- a/src/main/resources/assets/ironchest/lang/nl_NL.lang +++ /dev/null @@ -1,25 +0,0 @@ -tile.ironchest.chest.iron.name=Ijzeren Kist -tile.ironchest.chest.gold.name=Gouden Kist -tile.ironchest.chest.diamond.name=Diamanten Kist -tile.ironchest.chest.copper.name=Koperen Kist -tile.ironchest.chest.silver.name=Zilveren Kist -tile.ironchest.chest.crystal.name=Kristallen Kist -tile.ironchest.chest.obsidian.name=Obsidiaanen Kist -tile.ironchest.chest.dirtchest9000.name=Aarden Kist 9000! - -item.ironchest.chest.iron_gold.name=Ijzeren naar Gouden Kist Transformatie -item.ironchest.chest.gold_diamond.name=Gouden naar Diamanten Kist Transformatie -item.ironchest.chest.copper_silver.name=Koperen naar Zilveren Kist Transformatie -item.ironchest.chest.silver_gold.name=Zilveren naar Gouden Kist Transformatie -item.ironchest.chest.copper_iron.name=Koperen naar Ijzeren Kist Transformatie -item.ironchest.chest.diamond_crystal.name=Diamanten naar Kristallen Kist Transformatie -item.ironchest.chest.wood_iron.name=Houten naar Ijzeren Kist Transformatie -item.ironchest.chest.wood_copper.name=Houten naar Koperen Kist Transformatie -item.ironchest.chest.diamond_obsidian.name=Diamanten naar Obsidiaanen Kist Transformatie - -book.ironchest.dirtchest9000.title=Hoe gebruik je uw Aarden Kist 9000! -book.ironchest.dirtchest9000.page1=Welkom voor uw nieuwe Aarden Kist 9000! We hopen dat je veel geluk zal beleven om uw hoop aarde te bewaren in onze stokeer faciliteit. -book.ironchest.dirtchest9000.page2=Gebruik: Plaats simpelweg uw hoop aarde naar uw keuze in de zeer ontvankelijke gleuf en geniet van de geriefelijkheid om dat hoop aarde altijd beschikbaar tot u te hebben, wanneer dan ook! -book.ironchest.dirtchest9000.page3=We hopen dat u heeft genoten om deze handleiding te lezen en we hopen dat u overweegt om onze producten in de toekomst te gebruiken! Met vriendelijke groeten, De Aarden Kist 9000 Handleiding Auteurs. -book.ironchest.dirtchest9000.page4=Garantie: Deze product biedt geen enkele garantie. Uw aarde kan mogenlijk niet gestockeerd worden, het kan langzaam verdampen of het kan ook helemaal niks doen. -book.ironchest.dirtchest9000.page5=Aarden Kist 9000 is mileuvriendelijk. Gelieve deze handleiding verantwoordlijk te ontdoen en gooi het niet zomaar in wat lava. We zouden zeer verdrietig zijn. diff --git a/src/main/resources/assets/ironchest/lang/nl_nl.json b/src/main/resources/assets/ironchest/lang/nl_nl.json new file mode 100644 index 00000000..de72b6f7 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/nl_nl.json @@ -0,0 +1,52 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "IJzeren kist", + "block.ironchest.gold_chest": "Gouden kist", + "block.ironchest.diamond_chest": "Diamenten kist", + "block.ironchest.copper_chest": "Koperen kist", + "block.ironchest.crystal_chest": "Glazen kist", + "block.ironchest.obsidian_chest": "Vuurvaste kist", + "block.ironchest.dirt_chest": "DirtChest 9000!", + "block.ironchest.silver_chest": "Zilveren kist", + + "block.ironchest.trapped_iron_chest": "IJzeren kist met valstrik", + "block.ironchest.trapped_gold_chest": "Gouden kist met valstrik", + "block.ironchest.trapped_diamond_chest": "Diamenten kist met valstrik", + "block.ironchest.trapped_copper_chest": "Koperen kist met valstrik", + "block.ironchest.trapped_crystal_chest": "Glazen kist met valstrik", + "block.ironchest.trapped_obsidian_chest": "Vuurvaste kist met valstrik", + "block.ironchest.trapped_dirt_chest": "DirtChest 9000 met valstrik", + "block.ironchest.trapped_silver_chest": "Zilveren kist met valstrik", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Kistverbeteraar (ijzer naar goud)", + "item.ironchest.gold_to_diamond_chest_upgrade": "Kistverbeteraar (goud naar diamant)", + "item.ironchest.copper_to_silver_chest_upgrade": "Kistverbeteraar (koper naar zilver)", + "item.ironchest.silver_to_gold_chest_upgrade": "Kistverbeteraar (zilver naar goud)", + "item.ironchest.copper_to_iron_chest_upgrade": "Kistverbeteraar (koper naar ijzer)", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Kistverbeteraar (diamant naar glas)", + "item.ironchest.wood_to_iron_chest_upgrade": "Kistverbeteraar (hout naar ijzer)", + "item.ironchest.wood_to_copper_chest_upgrade": "Kistverbeteraar (hout naar koper)", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Kistverbeteraar (diamant naar obsidiaan)", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "Zo gebruikt u uw DirtChest 9000!", + "ironchest.book.dirtchest9000.1": "Welkom bij uw nieuwe DirtChest 9000! Wij hopen dat u jarenlang plezier zult hebben bij het opslaan van uw stapel aarde.", + "ironchest.book.dirtchest9000.2": "Gebruiksaanwijzing: Leg gewoon een stapel aarde naar keuze in het zeer receptieve vakje en ervaar elke keer dat u langs deze kist loopt het gemak van direct bij uw aarde kunnen.", + "ironchest.book.dirtchest9000.3": "We hopen dat deze gebruiksaanwijzing u een prettige leeservaring heeft geboden, en dat u in de toekomst nogmaals onze producten zult overwegen! Met vriendelijke groet, De DirtChest 9000 Gebruiksaanwijzingsschrijvers B.V.", + "ironchest.book.dirtchest9000.4": "Garantie: Wij kunnen geen garantie bieden voor dit product. Het kan zijn dat het product uw aarde niet opslaat, dat de aarde langzaam uit het product sijpelt, of dat het product helemaal niet functioneert.", + "ironchest.book.dirtchest9000.5": "DirtChest 9000 is ontworpen voor milieuvriendelijkheid. Ga op een verantwoordelijke manier om met de handleiding als deze niet meer gelezen wordt, en gooi hem niet gewoon in de lava. Dan worden we heel verdrietig.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "IJzeren kist", + "ironchest.container.gold_chest": "Gouden kist", + "ironchest.container.diamond_chest": "Diamanten kist", + "ironchest.container.copper_chest": "Koperen kist", + "ironchest.container.silver_chest": "Zilveren kist", + "ironchest.container.crystal_chest": "Glazen kist", + "ironchest.container.obsidian_chest": "Vuurvaste kist", + "ironchest.container.dirt_chest": "DirtChest 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/pl_PL.lang b/src/main/resources/assets/ironchest/lang/pl_PL.lang deleted file mode 100755 index 45d20273..00000000 --- a/src/main/resources/assets/ironchest/lang/pl_PL.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Żelazna skrzynia -tile.ironchest.chest.gold.name=Złota skrzynia -tile.ironchest.chest.diamond.name=Diamentowa skrzynia -tile.ironchest.chest.copper.name=Miedziana skrzynia -tile.ironchest.chest.silver.name=Srebrna skrzynia -tile.ironchest.chest.crystal.name=Kryształowa skrzynia -tile.ironchest.chest.obsidian.name=Obsydianowa skrzynia - -item.ironchest.chest.iron_gold.name=Ulepszenie żelaznej skrzyni na złotą -item.ironchest.chest.gold_diamond.name=Ulepszenie złotej skrzyni na diamentową -item.ironchest.chest.copper_silver.name=Ulepszenie miedzianej skrzyni na srebrną -item.ironchest.chest.silver_gold.name=Ulepszenie srebrnej skrzyni na złotą -item.ironchest.chest.copper_iron.name=Ulepszenie miedzianej skrzyni na żelazną -item.ironchest.chest.diamond_crystal.name=Ulepszenie diamentowej skrzyni na kryształową -item.ironchest.chest.wood_iron.name=Ulepszenie drewnianej skrzyni na żelazną -item.ironchest.chest.wood_copper.name=Ulepszenie drewnianej skrzyni na miedzianą -item.ironchest.chest.diamond_obsidian.name=Ulepszenie diamentowej skrzyni na obsydianową diff --git a/src/main/resources/assets/ironchest/lang/pl_pl.json b/src/main/resources/assets/ironchest/lang/pl_pl.json new file mode 100644 index 00000000..e6ccb3c4 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/pl_pl.json @@ -0,0 +1,33 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Żelazna skrzynia", + "block.ironchest.gold_chest": "Złota skrzynia", + "block.ironchest.diamond_chest": "Diamentowa skrzynia", + "block.ironchest.copper_chest": "Miedziana skrzynia", + "block.ironchest.silver_chest": "Srebrna skrzynia", + "block.ironchest.crystal_chest": "Kryształowa skrzynia", + "block.ironchest.obsidian_chest": "Obsydianowa skrzynia", + "block.ironchest.dirt_chest": "DirtChest 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Ulepszenie żelaznej skrzyni na złotą", + "item.ironchest.gold_to_diamond_chest_upgrade": "Ulepszenie złotej skrzyni na diamentową", + "item.ironchest.copper_to_silver_chest_upgrade": "Ulepszenie miedzianej skrzyni na srebrną", + "item.ironchest.silver_to_gold_chest_upgrade": "Ulepszenie srebrnej skrzyni na złotą", + "item.ironchest.copper_to_iron_chest_upgrade": "Ulepszenie miedzianej skrzyni na żelazną", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Ulepszenie diamentowej skrzyni na kryształową", + "item.ironchest.wood_to_iron_chest_upgrade": "Ulepszenie drewnianej skrzyni na żelazną", + "item.ironchest.wood_to_copper_chest_upgrade": "Ulepszenie drewnianej skrzyni na miedzianą", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Ulepszenie diamentowej skrzyni na obsydianową", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "How to use your DirtChest 9000!", + "ironchest.book.dirtchest9000.1": "Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility.", + "ironchest.book.dirtchest9000.2": "Usage: simply insert the stack of dirt of your choice into the highly receptive slot and enjoy the great convenience of having that dirt available to you, any time you pass by this chest!", + "ironchest.book.dirtchest9000.3": "We hope you have enjoyed reviewing this instruction manual, and hope you will consider using our products in future! Kind regards, The DirtChest 9000 manual writers incorporated.", + "ironchest.book.dirtchest9000.4": "Warranty: This product has no warranty of any kind. Your dirt may not be stored, it may slowly leech into the environment, or alternatively, it may not do anything at all.", + "ironchest.book.dirtchest9000.5": "DirtChest 9000 is kind to the environment. Please dispose of this guide book responsibly, and do not whatever you do just chuck it into some lava. We would be very sad.", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/pt_BR.lang b/src/main/resources/assets/ironchest/lang/pt_BR.lang deleted file mode 100755 index aefa3575..00000000 --- a/src/main/resources/assets/ironchest/lang/pt_BR.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Baú de Ferro -tile.ironchest.chest.gold.name=Baú de Ouro -tile.ironchest.chest.diamond.name=Baú de Diamante -tile.ironchest.chest.copper.name=Baú de Cobre -tile.ironchest.chest.silver.name=Baú de Prata -tile.ironchest.chest.crystal.name=Baú de Cristal -tile.ironchest.chest.obsidian.name=Baú de Obsidiana -tile.ironchest.chest.dirtchest9000.name=BaúDeSujeira 9000! - -item.ironchest.chest.iron_gold.name=Aprimoramento de Baú de Ferro para Ouro -item.ironchest.chest.gold_diamond.name=Aprimoramento de Baú de Ouro para Diamante -item.ironchest.chest.copper_silver.name=Aprimoramento de Baú de Cobre para Prata -item.ironchest.chest.silver_gold.name=Aprimoramento de Baú de Prata para Ouro -item.ironchest.chest.copper_iron.name=Aprimoramento de Baú de Cobre para Ferro -item.ironchest.chest.diamond_crystal.name=Aprimoramento de Baú de Diamante para Cristal -item.ironchest.chest.wood_iron.name=Aprimoramento de Baú de Madeira para Ferro -item.ironchest.chest.wood_copper.name=Aprimoramento de Baú de Madeira para Cobre -item.ironchest.chest.diamond_obsidian.name=Aprimoramento de Baú de Diamante para Obsidiana - -book.ironchest.dirtchest9000.title=Como utilizar seu BaúDeSujeira 9000! -book.ironchest.dirtchest9000.page1=Bem-vindo ao seu novo BaúDeSujeira 9000! Esperamos que desfrute de muitos anos felizes de armazenagem de sua pilha de sujeira em nosso utilitário de armazenamento. -book.ironchest.dirtchest9000.page2=Uso: basta inserir o monte de sujeira de sua escolha no slot altamente receptivo e apreciar a grande conveniência de ter essa sujeira disponíveis para você, a qualquer momento que você passar pelo baú! -book.ironchest.dirtchest9000.page3=Esperamos que tenham gostado de rever este manual de instruções, e espero que você considere o uso de nossos produtos no futuro! Atenciosamente, manual do BaúDeSujeira 9000 escritores incorporados. -book.ironchest.dirtchest9000.page4=Garantia: Este produto não tem qualquer tipo de garantia. Sua sujeira pode não ser armazenada, pode vazar lentamente para o ambiente, ou alternativamente, pode não fazer absolutamente nada. -book.ironchest.dirtchest9000.page5=BaúDeSujeira 9000 é bom para o meio ambiente. Elimine este guia de forma responsável, e não o que você faz apenas lançando-o em alguma lava. Ficaríamos muito triste. diff --git a/src/main/resources/assets/ironchest/lang/pt_PT.lang b/src/main/resources/assets/ironchest/lang/pt_PT.lang deleted file mode 100755 index d84b696f..00000000 --- a/src/main/resources/assets/ironchest/lang/pt_PT.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Baú de Ferro -tile.ironchest.chest.gold.name=Baú de Ouro -tile.ironchest.chest.diamond.name=Baú de Diamante -tile.ironchest.chest.copper.name=Baú de Cobre -tile.ironchest.chest.silver.name=Baú de Prata -tile.ironchest.chest.crystal.name=Baú de Cristal -tile.ironchest.chest.obsidian.name=Baú de Obsidiana - -item.ironchest.chest.iron_gold.name=Melhoria de Baú de Ferro para Ouro -item.ironchest.chest.gold_diamond.name=Melhoria de Baú de Ouro para Diamante -item.ironchest.chest.copper_silver.name=Melhoria de Baú de Cobre para Prata -item.ironchest.chest.silver_gold.name=Melhoria de Baú de Prata para Ouro -item.ironchest.chest.copper_iron.name=Melhoria de Baú de Cobre para Ferro -item.ironchest.chest.diamond_crystal.name=Melhoria de Baú de Diamante para Cristal -item.ironchest.chest.wood_iron.name=Melhoria de Baú de Madeira para Ferro -item.ironchest.chest.wood_copper.name=Melhoria de Baú de Madeira para Cobre -item.ironchest.chest.diamond_obsidian.name=Melhoria de Baú de Diamante para Obsidiana diff --git a/src/main/resources/assets/ironchest/lang/pt_br.json b/src/main/resources/assets/ironchest/lang/pt_br.json new file mode 100644 index 00000000..5958db4a --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/pt_br.json @@ -0,0 +1,50 @@ +{ + "_comment": "Blocos", + "block.ironchest.iron_chest": "Baú de Ferro", + "block.ironchest.gold_chest": "Baú de Ouro", + "block.ironchest.diamond_chest": "Baú de Diamante", + "block.ironchest.copper_chest": "Baú de Cobre", + "block.ironchest.crystal_chest": "Baú de Cristal", + "block.ironchest.obsidian_chest": "Baú de Obsidiana", + "block.ironchest.dirt_chest": "BaúDeTerra 9000!", + + "block.ironchest.trapped_iron_chest": "Baú de Ferro com Armadilha", + "block.ironchest.trapped_gold_chest": "Baú de Ouro com Armadilha", + "block.ironchest.trapped_diamond_chest": "Baú de Diamante com Armadilha", + "block.ironchest.trapped_copper_chest": "Baú de Cobre com Armadilha", + "block.ironchest.trapped_crystal_chest": "Baú de Cristal com Armadilha", + "block.ironchest.trapped_obsidian_chest": "Baú de Obsidiana com Armadilha", + "block.ironchest.trapped_dirt_chest": "BaúDeTerra 9000 com Armadilha!", + + "_comment": "Melhorias", + "item.ironchest.iron_to_gold_chest_upgrade": "Melhoria de Baú de Ferro para Ouro", + "item.ironchest.gold_to_diamond_chest_upgrade": "Melhoria de Baú de Ouro para Diamante", + "item.ironchest.copper_to_silver_chest_upgrade": "Melhoria de Baú de Cobre para Prata", + "item.ironchest.silver_to_gold_chest_upgrade": "Melhoria de Baú de Prata para Ouro", + "item.ironchest.copper_to_iron_chest_upgrade": "Melhoria de Baú de Cobre para Ferro", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Melhoria de Baú de Diamante para Cristal", + "item.ironchest.wood_to_iron_chest_upgrade": "Melhoria de Baú de Madeira para Ferro", + "item.ironchest.wood_to_copper_chest_upgrade": "Melhoria de Baú de Madeira para Cobre", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Melhoria de Baú de Diamante para Obsidiana", + + "_comment": "Livros", + "ironchest.book.dirtchest9000": "Como usar seu BaúDeTerra 9000!", + "ironchest.book.dirtchest9000.1": "Bem-vindo ao seu novo BaúDeTerra 9000! Esperamos que você aproveite muitos anos felizes guardando sua pilha de sujeira em nosso utilitário de armazenamento.", + "ironchest.book.dirtchest9000.2": "Uso: basta inserir a pilha de sujeira de sua escolha no slot altamente receptivo e aproveitar a grande comodidade de ter essa sujeira disponível para você, a qualquer momento que você passar por este baú!", + "ironchest.book.dirtchest9000.3": "Esperamos que tenha gostado de ler este manual de instruções e que considere a possibilidade de usar nossos produtos no futuro! Atenciosamente, Os escritores do manual BaúDeTerra 9000 incorporados.", + "ironchest.book.dirtchest9000.4": "Garantia: Este produto não tem qualquer tipo de garantia. Sua sujeira pode não ser armazenada, pode se infiltrar lentamente no ambiente ou, alternativamente, pode não fazer nada.", + "ironchest.book.dirtchest9000.5": "O BaúDeTerra 9000 é amigo do ambiente. Por favor, descarte este guia com responsabilidade e não faça o que fizer, apenas jogue-o na lava. Ficaríamos muito tristes.", + + "_comment": "Inventários", + "ironchest.container.iron_chest": "Baú de Ferro", + "ironchest.container.gold_chest": "Baú de Ouro", + "ironchest.container.diamond_chest": "Baú de Diamante", + "ironchest.container.copper_chest": "Baú de Cobre", + "ironchest.container.silver_chest": "Silver Chest", + "ironchest.container.crystal_chest": "Baú de Cristal", + "ironchest.container.obsidian_chest": "Baú de Obsidiana", + "ironchest.container.dirt_chest": "BaúDeTerra 9000!", + + "_comment": "Grupo de Itens", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/ru_RU.lang b/src/main/resources/assets/ironchest/lang/ru_RU.lang deleted file mode 100755 index 709ddcfe..00000000 --- a/src/main/resources/assets/ironchest/lang/ru_RU.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Железный сундук -tile.ironchest.chest.gold.name=Золотой сундук -tile.ironchest.chest.diamond.name=Алмазный сундук -tile.ironchest.chest.copper.name=Медный сундук -tile.ironchest.chest.silver.name=Серебряный сундук -tile.ironchest.chest.crystal.name=Кристальный сундук -tile.ironchest.chest.obsidian.name=Обсидиановый сундук - -item.ironchest.chest.iron_gold.name=Улучшение из железного в золотой сундук -item.ironchest.chest.gold_diamond.name=Улучшение из золотого в алмазный сундук -item.ironchest.chest.copper_silver.name=Улучшение из медного в серебряный сундук -item.ironchest.chest.silver_gold.name=Улучшение из серебряного в золотой сундук -item.ironchest.chest.copper_iron.name=Улучшение из медного в железный сундук -item.ironchest.chest.diamond_crystal.name=Улучшение из алмазного в кристальный сундук -item.ironchest.chest.wood_iron.name=Улучшение из деревянного в железный сундук -item.ironchest.chest.wood_copper.name=Улучшение из деревянного в медный сундук -item.ironchest.chest.diamond_obsidian.name=Улучшение из алмазного в обсидиановый сундук diff --git a/src/main/resources/assets/ironchest/lang/ru_ru.json b/src/main/resources/assets/ironchest/lang/ru_ru.json new file mode 100644 index 00000000..3588167c --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/ru_ru.json @@ -0,0 +1,51 @@ +{ + "_comment": "Блоки", + "block.ironchest.iron_chest": "Железный сундук", + "block.ironchest.gold_chest": "Золотой сундук", + "block.ironchest.diamond_chest": "Алмазный сундук", + "block.ironchest.copper_chest": "Медный сундук", + "block.ironchest.silver_chest": "Серебряный сундук", + "block.ironchest.crystal_chest": "Хрустальный сундук", + "block.ironchest.obsidian_chest": "Обсидиановый сундук", + "block.ironchest.dirt_chest": "Грязевой сундук 9000!", + + "block.ironchest.trapped_iron_chest": "Железный сундук-ловушка", + "block.ironchest.trapped_gold_chest": "Золотой сундук-ловушка", + "block.ironchest.trapped_diamond_chest": "Алмазный сундук-ловушка", + "block.ironchest.trapped_copper_chest": "Медный сундук-ловушка", + "block.ironchest.trapped_crystal_chest": "Хрустальный сундук-ловушка", + "block.ironchest.trapped_obsidian_chest": "Обсидиановый сундук-ловушка", + "block.ironchest.trapped_dirt_chest": "Грязевой сундук-ловушка 9000!", + + "_comment": "Улучшения", + "item.ironchest.iron_to_gold_chest_upgrade": "Улучшение сундука: С железного до золотого", + "item.ironchest.gold_to_diamond_chest_upgrade": "Улучшение сундука: С золотого до алмазного", + "item.ironchest.copper_to_silver_chest_upgrade": "Улучшение сундука: С медного до серебряного", + "item.ironchest.silver_to_gold_chest_upgrade": "Улучшение сундука: С серебряного до золотого", + "item.ironchest.copper_to_iron_chest_upgrade": "Улучшение сундука: С медного до железного", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Улучшение сундука: С алмазного до хрустального", + "item.ironchest.wood_to_iron_chest_upgrade": "Улучшение сундука: С деревянного до железного", + "item.ironchest.wood_to_copper_chest_upgrade": "Улучшение сундука: С деревянного до медного", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Улучшение сундука: С алмазного до обсидианового", + + "_comment": "Книги", + "ironchest.book.dirtchest9000": "Как пользоваться своим Грязевым сундуком 9000!", + "ironchest.book.dirtchest9000.1": "Добро пожаловать к своему новому Грязевому сундуку 9000! Мы надеемся, что ты насладишься не одним годом хранить свой стэк грязи в нашей Утилите хранения.", + "ironchest.book.dirtchest9000.2": "Использование: просто вставь выбранный тобой стэк грязи в высоковосприимчивый слот и наслаждайся большим удобством иметь доступную грязь каждый раз, проходя мимо этого сундука!", + "ironchest.book.dirtchest9000.3": "Мы надеемся, что ты насладился просмотром руководства, и надеемся, что ты в будущем примешь во внимание использовать наши продукты! С искренними пожеланиями, писатели руководства Земляного Сундука 9000.", + "ironchest.book.dirtchest9000.4": "Гарантия: Этот продукт не имеет какого-либо рода гарантии. Твоя грязь, возможно, не сохранится, она может медленно просочиться в окружающую среду или, как вариант, она может совсем ничего не делать.", + "ironchest.book.dirtchest9000.5": "Грязевой сундук 9000 является родом из окружающей среды. Пожалуйста, избавься от этого руководство со всей ответственностью, а не так, как ты делаешь, просто бросив её во что-то вроде лавы. Нам было бы очень грустно.", + + "_comment": "Контейнеры", + "ironchest.container.iron_chest": "Железный сундук", + "ironchest.container.gold_chest": "Золотой сундук", + "ironchest.container.diamond_chest": "Алмазный сундук", + "ironchest.container.copper_chest": "Медный сундук", + "ironchest.container.silver_chest": "Серебряный сундук", + "ironchest.container.crystal_chest": "Хрустальный сундук", + "ironchest.container.obsidian_chest": "Обсидиановый сундук", + "ironchest.container.dirt_chest": "Грязевой сундук 9000!", + + "_comment": "Вкладки предметов", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/sv_SE.lang b/src/main/resources/assets/ironchest/lang/sv_SE.lang deleted file mode 100755 index 1f25185f..00000000 --- a/src/main/resources/assets/ironchest/lang/sv_SE.lang +++ /dev/null @@ -1,21 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Järnkista -tile.ironchest.chest.gold.name=Guldkista -tile.ironchest.chest.diamond.name=Diamantkista -tile.ironchest.chest.copper.name=Kopparkista -tile.ironchest.chest.silver.name=Silverkista -tile.ironchest.chest.crystal.name=Kristallkista -tile.ironchest.chest.obsidian.name=Obsidiankista - -item.ironchest.chest.iron_gold.name=Järn till Guld Kistuppgradering -item.ironchest.chest.gold_diamond.name=Guld till Diamant Kistuppgradering -item.ironchest.chest.copper_silver.name=Koppar till Silver Kistuppgradering -item.ironchest.chest.silver_gold.name=Silver till Guld Kistuppgradering -item.ironchest.chest.copper_iron.name=Koppar till Järn Kistuppgradering -item.ironchest.chest.diamond_crystal.name=Diamant till Kristal Kistuppgradering -item.ironchest.chest.wood_iron.name=Trä till Järn Kistuppgradering -item.ironchest.chest.wood_copper.name=Trä till Koppar Kistuppgradering -item.ironchest.chest.diamond_obsidian.name=Diamant till Obsidian Kistuppgradering diff --git a/src/main/resources/assets/ironchest/lang/tr_TR.lang b/src/main/resources/assets/ironchest/lang/tr_TR.lang deleted file mode 100755 index 43436515..00000000 --- a/src/main/resources/assets/ironchest/lang/tr_TR.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=Demir Sandık -tile.ironchest.chest.gold.name=Altın Sandık -tile.ironchest.chest.diamond.name=Elmas Sandık -tile.ironchest.chest.copper.name=Bakır Sandık -tile.ironchest.chest.silver.name=Gümüş Sandık -tile.ironchest.chest.crystal.name=Kristal Sandık -tile.ironchest.chest.obsidian.name=Obsidyen Sandık -tile.ironchest.chest.dirtchest9000.name=Toprak Sandık-9000! - -item.ironchest.chest.iron_gold.name=Demir Sandığı Altın Sandığa Yükselt -item.ironchest.chest.gold_diamond.name=Altın Sandığı Elmas Sandığa Yükselt -item.ironchest.chest.copper_silver.name=Bakır Sandığı Gümüş Sandığa Yükselt -item.ironchest.chest.silver_gold.name=Gümüş Sandığı Altın Sandığa Yükselt -item.ironchest.chest.copper_iron.name=Bakır Sandığı Demir Sandığa Yükselt -item.ironchest.chest.diamond_crystal.name=Elmas Sandığı Kristal Sandığa Yükselt -item.ironchest.chest.wood_iron.name=Tahta Sandığı Demir Sandığa Yükselt -item.ironchest.chest.wood_copper.name=Tahta Sandığı Bakır Sandığa Yükselt -item.ironchest.chest.diamond_obsidian.name=Elmas Sandığı Obsidyen Sandığa Yükselt - -book.ironchest.dirtchest9000.title=Toprak Sandık-9000 Kullanım Kılavuzu -book.ironchest.dirtchest9000.page1=Yeni sandık olan Toprak Sandık-9000 yaptığınız için teşekkürler.Bu sandık ile topraklarınızı depolayabilirsiniz. -book.ironchest.dirtchest9000.page2=Kullanımı: 64 adet toprak alarak içine koyunuz. Böylece sadece toprak depolanır. -book.ironchest.dirtchest9000.page3=Biz bu kılavuzu gözden keyif aldık umuyoruz, ve gelecekte ürünlerimizi kullanmayı düşünün umuyoruz! Saygılarımızla, dahil DirtChest 9000 manuel yazar. -book.ironchest.dirtchest9000.page4=Garanti: Bu ürün herhangi bir garanti vardır. Sizin kir depolanabilir değil, yavaş yavaş çevreye sülük olabilir, ya da alternatif olarak, hiç bir şey yapamazsınız. -book.ironchest.dirtchest9000.page5=Toprak Sandık-9000 çevreye türüdür. Sorumlu bu rehber kitap imha edin ve ne olursa olsun sadece bazı lav içine ayna yok yok. Bizim için çok üzücü olacaktır. diff --git a/src/main/resources/assets/ironchest/lang/uk_ua.json b/src/main/resources/assets/ironchest/lang/uk_ua.json new file mode 100644 index 00000000..1c53373c --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/uk_ua.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "Залізна скриня", + "block.ironchest.gold_chest": "Золота скриня", + "block.ironchest.diamond_chest": "Діамантова скриня", + "block.ironchest.copper_chest": "Мідна скриня", + "block.ironchest.silver_chest": "Срібна скриня", + "block.ironchest.crystal_chest": "Кришталева скриня", + "block.ironchest.obsidian_chest": "Обсидіанова скриня", + "block.ironchest.dirt_chest": "ЗемлянаСкриня 9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "Покращення скрині з залізної до золотої", + "item.ironchest.gold_to_diamond_chest_upgrade": "Покращення скрині з золотої до діамантової", + "item.ironchest.copper_to_silver_chest_upgrade": "Покращення скрині з мідної до срібної", + "item.ironchest.silver_to_gold_chest_upgrade": "Покращення скрині з срібної до золотої", + "item.ironchest.copper_to_iron_chest_upgrade": "Покращення скрині з мідної до залізної", + "item.ironchest.diamond_to_crystal_chest_upgrade": "Покращення скрині з діамантової до кришталевої", + "item.ironchest.wood_to_iron_chest_upgrade": "Покращення скрині з дерев'яної до залізної", + "item.ironchest.wood_to_copper_chest_upgrade": "Покращення скрині з дерев'яної до мідної", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "Покращення скрині з діамантової до обсидіанової", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "Як користуватися вашею ЗемляноюСкринею 9000!", + "ironchest.book.dirtchest9000.1": "Вітаємо у новій ЗемлянійСкрині 9000! Ми сподіваємось, що ви будете насолоджуватися довгими щасливими роками, зберігаючи стак ґрунту в нашій службі зберігання.", + "ironchest.book.dirtchest9000.2": "Використання: просто вставте стак ґрунту у будь-який високо сприйнятливий слот на ваш вибір і насолоджуйтесь зручним доступом до ґрунту у будь-який час, коли ви проходите повз цю скриню", + "ironchest.book.dirtchest9000.3": "Ми сподіваємось, що вам сподобалася інструкція, і сподіваємось, що ви надалі розглянете можливість використання нашої продукції! З повагою, автори посібника по ЗемляніїСкрині 9000.", + "ironchest.book.dirtchest9000.4": "Гарантія: Цей виріб не має жодних гарантій. Ваш ґрунт може повільно потрапляти у навколишнє середовище, або, взагалі, він може нічого не робити.", + "ironchest.book.dirtchest9000.5": "ЗемлянаСкриня 9000 не шкідливий для навколишнього середовища. Будь ласка, утилізуйте цей посібник правильно і не кидайте просто його в лаву. Нам буде дуже сумно.", + + "_comment": "Containers", + "ironchest.container.iron_chest": "Залізна скриня", + "ironchest.container.gold_chest": "Золота скриня", + "ironchest.container.diamond_chest": "Діамантова скриня", + "ironchest.container.copper_chest": "Мідна скриня", + "ironchest.container.silver_chest": "Срібна скриня", + "ironchest.container.crystal_chest": "Кришталева скриня", + "ironchest.container.obsidian_chest": "Обсидіанова скриня", + "ironchest.container.dirt_chest": "ЗемлянаСкриня 9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/zh_CN.lang b/src/main/resources/assets/ironchest/lang/zh_CN.lang deleted file mode 100755 index 91928c5b..00000000 --- a/src/main/resources/assets/ironchest/lang/zh_CN.lang +++ /dev/null @@ -1,177 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=铁箱子 -tile.ironchest.chest.gold.name=金箱子 -tile.ironchest.chest.diamond.name=钻石箱子 -tile.ironchest.chest.copper.name=铜箱子 -tile.ironchest.chest.silver.name=银箱子 -tile.ironchest.chest.crystal.name=水晶箱子 -tile.ironchest.chest.obsidian.name=黑曜石箱子 -tile.ironchest.chest.dirtchest9000.name=泥箱子9000! - -item.ironchest.chest.iron_gold.name=升级:铁>金 -item.ironchest.chest.gold_diamond.name=升级:金>钻石 -item.ironchest.chest.copper_silver.name=升级:铜>银 -item.ironchest.chest.silver_gold.name=升级:银>金 -item.ironchest.chest.copper_iron.name=升级:铜>铁 -item.ironchest.chest.diamond_crystal.name=升级:钻石>水晶 -item.ironchest.chest.wood_iron.name=升级:木>铁 -item.ironchest.chest.wood_copper.name=升级:木>铜 -item.ironchest.chest.diamond_obsidian.name=升级:钻石>黑曜石 - -book.ironchest.dirtchest9000.title=傻瓜也一定会用的泥箱子9000! -book.ironchest.dirtchest9000.page1=欢迎使用这台全新的泥箱子9000!希望你能愉快地常年使用我们的设备来储存(大量)泥土(大雾)。 -book.ironchest.dirtchest9000.page2=使用方法: 把一组泥土丢进去就行了。每次您经过的时候都可以打开它(很方便地)取出来用。 -book.ironchest.dirtchest9000.page3=希望您阅读本手册愉快,并选择使用我们的产品。作为泥箱子9000手册作者我谨向您致以诚挚问候。 -book.ironchest.dirtchest9000.page4=质量保障: 恕本产品不提供任何质量保障。您的泥土或者能安全存储其内,或者会逐渐流失到环境中,或者什么也不会发生。(读者:我了个去!) -book.ironchest.dirtchest9000.page5=泥箱子9000十分环保。请小心收藏好本手册,如果您随手丢进岩浆的话,我们可会伤心的。 - -####################### -# Shulker Boxes # -####################### - -tile.ironchest.shulker_box.iron.white.name=白色铁质潜影盒 -tile.ironchest.shulker_box.iron.orange.name=橙色铁质潜影盒 -tile.ironchest.shulker_box.iron.magenta.name=品红色铁质潜影盒 -tile.ironchest.shulker_box.iron.light_blue.name=淡蓝色铁质潜影盒 -tile.ironchest.shulker_box.iron.yellow.name=黄色铁质潜影盒 -tile.ironchest.shulker_box.iron.lime.name=黄绿色铁质潜影盒 -tile.ironchest.shulker_box.iron.pink.name=粉色铁质潜影盒 -tile.ironchest.shulker_box.iron.gray.name=灰色铁质潜影盒 -tile.ironchest.shulker_box.iron.silver.name=银色铁质潜影盒 -tile.ironchest.shulker_box.iron.cyan.name=青色铁质潜影盒 -tile.ironchest.shulker_box.iron.purple.name=紫色铁质潜影盒 -tile.ironchest.shulker_box.iron.blue.name=蓝色铁质潜影盒 -tile.ironchest.shulker_box.iron.brown.name=棕色铁质潜影盒 -tile.ironchest.shulker_box.iron.green.name=绿色铁质潜影盒 -tile.ironchest.shulker_box.iron.red.name=红色铁质潜影盒 -tile.ironchest.shulker_box.iron.black.name=黑色铁质潜影盒 - -tile.ironchest.shulker_box.gold.white.name=白色金质潜影盒 -tile.ironchest.shulker_box.gold.orange.name=橙色金质潜影盒 -tile.ironchest.shulker_box.gold.magenta.name=品红色金质潜影盒 -tile.ironchest.shulker_box.gold.light_blue.name=淡蓝色金质潜影盒 -tile.ironchest.shulker_box.gold.yellow.name=黄色金质潜影盒 -tile.ironchest.shulker_box.gold.lime.name=黄绿色金质潜影盒 -tile.ironchest.shulker_box.gold.pink.name=粉色金质潜影盒 -tile.ironchest.shulker_box.gold.gray.name=灰色金质潜影盒 -tile.ironchest.shulker_box.gold.silver.name=银色金质潜影盒 -tile.ironchest.shulker_box.gold.cyan.name=青色金质潜影盒 -tile.ironchest.shulker_box.gold.purple.name=紫色金质潜影盒 -tile.ironchest.shulker_box.gold.blue.name=蓝色金质潜影盒 -tile.ironchest.shulker_box.gold.brown.name=棕色金质潜影盒 -tile.ironchest.shulker_box.gold.green.name=绿色金质潜影盒 -tile.ironchest.shulker_box.gold.red.name=红色金质潜影盒 -tile.ironchest.shulker_box.gold.black.name=黑色金质潜影盒 - -tile.ironchest.shulker_box.diamond.white.name=白色钻石潜影盒 -tile.ironchest.shulker_box.diamond.orange.name=橙色钻石潜影盒 -tile.ironchest.shulker_box.diamond.magenta.name=品红色钻石潜影盒 -tile.ironchest.shulker_box.diamond.light_blue.name=淡蓝色钻石潜影盒 -tile.ironchest.shulker_box.diamond.yellow.name=黄色钻石潜影盒 -tile.ironchest.shulker_box.diamond.lime.name=黄绿色钻石潜影盒 -tile.ironchest.shulker_box.diamond.pink.name=粉色钻石潜影盒 -tile.ironchest.shulker_box.diamond.gray.name=灰色钻石潜影盒 -tile.ironchest.shulker_box.diamond.silver.name=银色钻石潜影盒 -tile.ironchest.shulker_box.diamond.cyan.name=青色钻石潜影盒 -tile.ironchest.shulker_box.diamond.purple.name=紫色钻石潜影盒 -tile.ironchest.shulker_box.diamond.blue.name=蓝色钻石潜影盒 -tile.ironchest.shulker_box.diamond.brown.name=棕色钻石潜影盒 -tile.ironchest.shulker_box.diamond.green.name=绿色钻石潜影盒 -tile.ironchest.shulker_box.diamond.red.name=红色钻石潜影盒 -tile.ironchest.shulker_box.diamond.black.name=黑色钻石潜影盒 - -tile.ironchest.shulker_box.copper.white.name=白色铜质潜影盒 -tile.ironchest.shulker_box.copper.orange.name=橙色铜质潜影盒 -tile.ironchest.shulker_box.copper.magenta.name=品红色铜质潜影盒 -tile.ironchest.shulker_box.copper.light_blue.name=淡蓝色铜质潜影盒 -tile.ironchest.shulker_box.copper.yellow.name=黄色铜质潜影盒 -tile.ironchest.shulker_box.copper.lime.name=黄绿色铜质潜影盒 -tile.ironchest.shulker_box.copper.pink.name=粉色铜质潜影盒 -tile.ironchest.shulker_box.copper.gray.name=灰色铜质潜影盒 -tile.ironchest.shulker_box.copper.silver.name=银色铜质潜影盒 -tile.ironchest.shulker_box.copper.cyan.name=青色铜质潜影盒 -tile.ironchest.shulker_box.copper.purple.name=紫色铜质潜影盒 -tile.ironchest.shulker_box.copper.blue.name=蓝色铜质潜影盒 -tile.ironchest.shulker_box.copper.brown.name=棕色铜质潜影盒 -tile.ironchest.shulker_box.copper.green.name=绿色铜质潜影盒 -tile.ironchest.shulker_box.copper.red.name=红色铜质潜影盒 -tile.ironchest.shulker_box.copper.black.name=黑色铜质潜影盒 - -tile.ironchest.shulker_box.silver.white.name=白色银质潜影盒 -tile.ironchest.shulker_box.silver.orange.name=橙色银质潜影盒 -tile.ironchest.shulker_box.silver.magenta.name=品红色银质潜影盒 -tile.ironchest.shulker_box.silver.light_blue.name=淡蓝色银质潜影盒 -tile.ironchest.shulker_box.silver.yellow.name=黄色银质潜影盒 -tile.ironchest.shulker_box.silver.lime.name=黄绿色银质潜影盒 -tile.ironchest.shulker_box.silver.pink.name=粉色银质潜影盒 -tile.ironchest.shulker_box.silver.gray.name=灰色银质潜影盒 -tile.ironchest.shulker_box.silver.silver.name=银色银质潜影盒 -tile.ironchest.shulker_box.silver.cyan.name=青色银质潜影盒 -tile.ironchest.shulker_box.silver.purple.name=紫色银质潜影盒 -tile.ironchest.shulker_box.silver.blue.name=蓝色银质潜影盒 -tile.ironchest.shulker_box.silver.brown.name=棕色银质潜影盒 -tile.ironchest.shulker_box.silver.green.name=绿色银质潜影盒 -tile.ironchest.shulker_box.silver.red.name=红色银质潜影盒 -tile.ironchest.shulker_box.silver.black.name=黑色银质潜影盒 - -tile.ironchest.shulker_box.crystal.white.name=白色水晶潜影盒 -tile.ironchest.shulker_box.crystal.orange.name=橙色水晶潜影盒 -tile.ironchest.shulker_box.crystal.magenta.name=品红色水晶潜影盒 -tile.ironchest.shulker_box.crystal.light_blue.name=淡蓝色水晶潜影盒 -tile.ironchest.shulker_box.crystal.yellow.name=黄色水晶潜影盒 -tile.ironchest.shulker_box.crystal.lime.name=黄绿色水晶潜影盒 -tile.ironchest.shulker_box.crystal.pink.name=粉色水晶潜影盒 -tile.ironchest.shulker_box.crystal.gray.name=灰色水晶潜影盒 -tile.ironchest.shulker_box.crystal.silver.name=银色水晶潜影盒 -tile.ironchest.shulker_box.crystal.cyan.name=青色水晶潜影盒 -tile.ironchest.shulker_box.crystal.purple.name=紫色水晶潜影盒 -tile.ironchest.shulker_box.crystal.blue.name=蓝色水晶潜影盒 -tile.ironchest.shulker_box.crystal.brown.name=棕色水晶潜影盒 -tile.ironchest.shulker_box.crystal.green.name=绿色水晶潜影盒 -tile.ironchest.shulker_box.crystal.red.name=红色水晶潜影盒 -tile.ironchest.shulker_box.crystal.black.name=黑色水晶潜影盒 - -tile.ironchest.shulker_box.obsidian.white.name=白色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.orange.name=橙色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.magenta.name=品红色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.light_blue.name=淡蓝色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.yellow.name=黄色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.lime.name=黄绿色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.pink.name=粉色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.gray.name=灰色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.silver.name=银色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.cyan.name=青色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.purple.name=紫色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.blue.name=蓝色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.brown.name=棕色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.green.name=绿色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.red.name=红色黑曜石潜影盒 -tile.ironchest.shulker_box.obsidian.black.name=黑色黑曜石潜影盒 - -item.ironchest.shulker_box.iron_gold.name=升级:铁质>金质潜影盒 -item.ironchest.shulker_box.iron_gold.tooltip=将铁质潜影盒升级成金质潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.gold_diamond.name=升级:金质>钻石潜影盒 -item.ironchest.shulker_box.gold_diamond.tooltip=将金质潜影盒升级成钻石潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.copper_silver.name=升级:铜质>银质潜影盒 -item.ironchest.shulker_box.copper_silver.tooltip=将铜质潜影盒升级成银质潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.silver_gold.name=升级:银质>金质潜影盒 -item.ironchest.shulker_box.silver_gold.tooltip=将银质潜影盒升级成金质潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.copper_iron.name=升级:铜质>铁质潜影盒 -item.ironchest.shulker_box.copper_iron.tooltip=将铜质潜影盒升级成铁质潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.diamond_crystal.name=升级:钻石>水晶潜影盒 -item.ironchest.shulker_box.diamond_crystal.tooltip=将钻石潜影盒升级成水晶潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.vanilla_iron.name=升级:原版>铁质潜影盒 -item.ironchest.shulker_box.vanilla_iron.tooltip=将原版潜影盒升级成铁质潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.vanilla_copper.name=升级:原版>铜质潜影盒 -item.ironchest.shulker_box.vanilla_copper.tooltip=将原版潜影盒升级成铜质潜影盒\n潜影盒的颜色将保持不变。 -item.ironchest.shulker_box.diamond_obsidian.name=升级:钻石>黑曜石潜影盒 -item.ironchest.shulker_box.diamond_obsidian.tooltip=将钻石潜影盒升级成黑曜石潜影盒\n潜影盒的颜色将保持不变。 - -############## -# GUIs # -############## - -itemGroup.ironchest=Iron Chests diff --git a/src/main/resources/assets/ironchest/lang/zh_TW.lang b/src/main/resources/assets/ironchest/lang/zh_TW.lang deleted file mode 100755 index 69c7cdc0..00000000 --- a/src/main/resources/assets/ironchest/lang/zh_TW.lang +++ /dev/null @@ -1,29 +0,0 @@ -################ -# Chests # -################ - -tile.ironchest.chest.iron.name=鐵箱 -tile.ironchest.chest.gold.name=黃金箱 -tile.ironchest.chest.diamond.name=鑽石箱 -tile.ironchest.chest.copper.name=銅箱 -tile.ironchest.chest.silver.name=銀箱 -tile.ironchest.chest.crystal.name=水晶箱 -tile.ironchest.chest.obsidian.name=黑曜石箱 -tile.ironchest.chest.dirtchest9000.name=泥土箱9000! - -item.ironchest.chest.iron_gold.name=鐵箱升級成金箱 -item.ironchest.chest.gold_diamond.name=金箱升級成鑽石箱 -item.ironchest.chest.copper_silver.name=銅箱升級成銀箱 -item.ironchest.chest.silver_gold.name=銀箱升級成金箱 -item.ironchest.chest.copper_iron.name=銅箱升級成鐵箱 -item.ironchest.chest.diamond_crystal.name=鑽石箱升級成水晶箱 -item.ironchest.chest.wood_iron.name=木箱升級成鐵箱 -item.ironchest.chest.wood_copper.name=木箱升級成銅箱 -item.ironchest.chest.diamond_obsidian.name=鑽石箱升級成黑曜石箱 - -book.ironchest.dirtchest9000.title=笨蛋也一定會用的泥土箱9000! -book.ironchest.dirtchest9000.page1=歡迎使用這台全新的泥土箱9000!希望你能愉快地常年使用我們的設備來儲存泥土。 -book.ironchest.dirtchest9000.page2=使用方法:把一組泥土丟進去就行了。每次您經過的時候都可以打開它很方便地取出來用。 -book.ironchest.dirtchest9000.page3=希望您閱讀本手冊愉快,並選擇使用我們的產品。作為泥土箱9000手冊作者我謹向您致以誠摯問候。 -book.ironchest.dirtchest9000.page4=質量保障:恕本產品不提供任何質量保障。您的泥土或許能安全存儲其內,或許會逐漸流失到環境中,或者什麼也不會發生。 -book.ironchest.dirtchest9000.page5=泥土箱9000十分環保。請小心收藏好本手冊,如果您隨手丟進岩漿的話,我們可會傷心的。 \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/lang/zh_cn.json b/src/main/resources/assets/ironchest/lang/zh_cn.json new file mode 100644 index 00000000..a9c9d30c --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/zh_cn.json @@ -0,0 +1,33 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "铁箱子", + "block.ironchest.gold_chest": "金箱子", + "block.ironchest.diamond_chest": "钻石箱子", + "block.ironchest.copper_chest": "铜箱子", + "block.ironchest.silver_chest": "银箱子", + "block.ironchest.crystal_chest": "水晶箱子", + "block.ironchest.obsidian_chest": "黑曜石箱子", + "block.ironchest.dirt_chest": "泥箱子9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "升级:铁>金", + "item.ironchest.gold_to_diamond_chest_upgrade": "升级:金>钻石", + "item.ironchest.copper_to_silver_chest_upgrade": "升级:铜>银", + "item.ironchest.silver_to_gold_chest_upgrade": "升级:银>金", + "item.ironchest.copper_to_iron_chest_upgrade": "升级:铜>铁", + "item.ironchest.diamond_to_crystal_chest_upgrade": "升级:钻石>水晶", + "item.ironchest.wood_to_iron_chest_upgrade": "升级:木>铁", + "item.ironchest.wood_to_copper_chest_upgrade": "升级:木>铜", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "升级:钻石>黑曜石", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "傻瓜也一定会用的泥箱子9000!", + "ironchest.book.dirtchest9000.1": "欢迎使用这台全新的泥箱子9000!希望你能愉快地常年使用我们的设备来储存(大量)泥土(大雾)。", + "ironchest.book.dirtchest9000.2": "使用方法: 把一组泥土丢进去就行了。每次您经过的时候都可以打开它(很方便地)取出来用。", + "ironchest.book.dirtchest9000.3": "希望您阅读本手册愉快,并选择使用我们的产品。作为泥箱子9000手册作者我谨向您致以诚挚问候。", + "ironchest.book.dirtchest9000.4": "质量保障: 恕本产品不提供任何质量保障。您的泥土或者能安全存储其内,或者会逐渐流失到环境中,或者什么也不会发生。(读者:我了个去!)", + "ironchest.book.dirtchest9000.5": "泥箱子9000十分环保。请小心收藏好本手册,如果您随手丢进岩浆的话,我们可会伤心的。", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/lang/zh_tw.json b/src/main/resources/assets/ironchest/lang/zh_tw.json new file mode 100644 index 00000000..e18643c2 --- /dev/null +++ b/src/main/resources/assets/ironchest/lang/zh_tw.json @@ -0,0 +1,43 @@ +{ + "_comment": "Blocks", + "block.ironchest.iron_chest": "鐵箱", + "block.ironchest.gold_chest": "金箱", + "block.ironchest.diamond_chest": "鑽石箱", + "block.ironchest.copper_chest": "銅箱", + "block.ironchest.silver_chest": "銀箱", + "block.ironchest.crystal_chest": "水晶箱", + "block.ironchest.obsidian_chest": "黑曜石箱", + "block.ironchest.dirt_chest": "泥箱子9000!", + + "_comment": "Upgrades", + "item.ironchest.iron_to_gold_chest_upgrade": "鐵箱升級成金箱", + "item.ironchest.gold_to_diamond_chest_upgrade": "金箱升級成鑽石箱", + "item.ironchest.copper_to_silver_chest_upgrade": "銅箱升級成銀箱", + "item.ironchest.silver_to_gold_chest_upgrade": "銀箱升級成金箱", + "item.ironchest.copper_to_iron_chest_upgrade": "銅箱升級成鐵箱", + "item.ironchest.diamond_to_crystal_chest_upgrade": "鑽石箱升級成水晶箱", + "item.ironchest.wood_to_iron_chest_upgrade": "木箱升級成鐵箱", + "item.ironchest.wood_to_copper_chest_upgrade": "木箱升級成銅箱", + "item.ironchest.diamond_to_obsidian_chest_upgrade": "鑽石箱升級成黑曜石箱", + + "_comment": "Books", + "ironchest.book.dirtchest9000": "笨蛋也一定會用的泥土箱9000!", + "ironchest.book.dirtchest9000.1": "歡迎使用全新的泥土箱9000!希望你能夠愉快地常年使用我們的設備來儲存泥土。", + "ironchest.book.dirtchest9000.2": "使用方法: 把一組泥土丟進去就行了。每次您經過的時候都可以打開它(很方便地)取出來用", + "ironchest.book.dirtchest9000.3": "我們希望您喜歡閱讀本說明手冊,並希望將來考慮使用我們的產品!作為泥箱子9000手冊作者我謹向您致以誠摯問候。", + "ironchest.book.dirtchest9000.4": "品質保障: 本產品不提供任何形式的保證。您的泥土可能不會被存儲,可能會慢慢滲入環境中,或者根本無法做任何事情。", + "ironchest.book.dirtchest9000.5": "泥箱子9000十分環保。請小心收藏好本手冊,如果你隨手丟進岩漿的話,我們會很傷心。", + + "_comment": "Containers", + "ironchest.container.iron_chest": "鐵箱", + "ironchest.container.gold_chest": "金箱", + "ironchest.container.diamond_chest": "鑽石箱", + "ironchest.container.copper_chest": "銅箱", + "ironchest.container.silver_chest": "銀箱", + "ironchest.container.crystal_chest": "水晶箱", + "ironchest.container.obsidian_chest": "黑曜石箱", + "ironchest.container.dirt_chest": "泥箱子9000!", + + "_comment": "Item Groups", + "itemGroup.ironchest": "Iron Chests" +} diff --git a/src/main/resources/assets/ironchest/models/block/copper_chest.json b/src/main/resources/assets/ironchest/models/block/copper_chest.json new file mode 100644 index 00000000..6608015f --- /dev/null +++ b/src/main/resources/assets/ironchest/models/block/copper_chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "ironchest:block/copper_break" + } +} diff --git a/src/main/resources/assets/ironchest/models/block/crystal_chest.json b/src/main/resources/assets/ironchest/models/block/crystal_chest.json new file mode 100644 index 00000000..d65367b9 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/block/crystal_chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "ironchest:block/crystal_break" + } +} diff --git a/src/main/resources/assets/ironchest/models/block/diamond_chest.json b/src/main/resources/assets/ironchest/models/block/diamond_chest.json new file mode 100644 index 00000000..ec93555c --- /dev/null +++ b/src/main/resources/assets/ironchest/models/block/diamond_chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "ironchest:block/diamond_break" + } +} diff --git a/src/main/resources/assets/ironchest/models/block/dirt_chest.json b/src/main/resources/assets/ironchest/models/block/dirt_chest.json new file mode 100644 index 00000000..dcd58cbb --- /dev/null +++ b/src/main/resources/assets/ironchest/models/block/dirt_chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/dirt" + } +} diff --git a/src/main/resources/assets/ironchest/models/block/gold_chest.json b/src/main/resources/assets/ironchest/models/block/gold_chest.json new file mode 100644 index 00000000..0582870c --- /dev/null +++ b/src/main/resources/assets/ironchest/models/block/gold_chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "ironchest:block/gold_break" + } +} diff --git a/src/main/resources/assets/ironchest/models/block/iron_chest.json b/src/main/resources/assets/ironchest/models/block/iron_chest.json index 16c0ca9a..fc16326d 100644 --- a/src/main/resources/assets/ironchest/models/block/iron_chest.json +++ b/src/main/resources/assets/ironchest/models/block/iron_chest.json @@ -1,41 +1,5 @@ { - "parent": "block/block", - "textures": { - "texture": "ironchest:model/chest/copper_chest" - }, - "elements": [ - { "from": [ 1, 0, 1 ], - "to": [ 15, 10, 15 ], - "faces": { - "down": { "uv": [ 7, 4.75, 10.5, 8.25 ], "texture": "#texture" }, - "up": { "uv": [ 3.5, 4.75, 7, 8.25 ], "texture": "#texture" }, - "north": { "uv": [ 3.5, 8.25, 7, 10.75 ], "texture": "#texture" }, - "south": { "uv": [ 10.5, 8.25, 14, 10.75 ], "texture": "#texture" }, - "west": { "uv": [ 7, 8.25, 10.5, 10.75 ], "texture": "#texture" }, - "east": { "uv": [ 0, 8.25, 3.5, 10.75 ], "texture": "#texture" } - } - }, - { "from": [ 1, 9, 1 ], - "to": [ 15, 14, 15 ], - "faces": { - "down": { "uv": [ 7, 0, 10.5, 3.5 ], "texture": "#texture" }, - "up": { "uv": [ 3.5, 0, 7, 3.5 ], "texture": "#texture" }, - "north": { "uv": [ 3.5, 3.5, 7, 4.75 ], "texture": "#texture" }, - "south": { "uv": [ 10.5, 3.5, 14, 4.75 ], "texture": "#texture" }, - "west": { "uv": [ 7, 3.5, 10.5, 4.75 ], "texture": "#texture" }, - "east": { "uv": [ 0, 3.5, 3.5, 4.75 ], "texture": "#texture" } - } - }, - { "from": [ 7, 7, 0 ], - "to": [ 9, 11, 1 ], - "faces": { - "down": { "uv": [ 0, 0.75, 1.25, 0.5 ], "texture": "#texture" }, - "up": { "uv": [ 0, 0.25, 0.75, 0.5 ], "texture": "#texture" }, - "north": { "uv": [ 0.25, 0.25, 0.75, 1.25 ], "texture": "#texture" }, - "south": { "uv": [ 1, 0.25, 1.5, 1.25 ], "texture": "#texture" }, - "west": { "uv": [ 0.75, 0.25, 1, 1.25 ], "texture": "#texture" }, - "east": { "uv": [ 0, 0.25, 0.25, 1.25 ], "texture": "#texture" } - } - } - ] + "textures": { + "particle": "ironchest:block/iron_break" + } } diff --git a/src/main/resources/assets/ironchest/models/block/iron_shulker_box.json b/src/main/resources/assets/ironchest/models/block/iron_shulker_box.json deleted file mode 100644 index 3886143c..00000000 --- a/src/main/resources/assets/ironchest/models/block/iron_shulker_box.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "texture": "ironchest:model/shulker/purple/shulker_purple_copper" - }, - "elements": [ - { "from": [ 1, 0, 0 ], - "to": [ 15, 4, 1 ], - "faces": { - "north": { "uv": [ 0.25, 12, 3.75, 13 ], "texture": "#texture" } - } - }, - { "from": [ 4, 4, 0 ], - "to": [ 12, 8, 1 ], - "faces": { - "north": { "uv": [ 1, 11, 3, 12 ], "texture": "#texture" } - } - }, - { "from": [ 1, 4, 0 ], - "to": [ 4, 8, 1 ], - "faces": { - "north": { "uv": [ 3, 6, 3.75, 7 ], "texture": "#texture" } - } - }, - { "from": [ 12, 4, 0 ], - "to": [ 15, 8, 1 ], - "faces": { - "north": { "uv": [ 0.25, 6, 1, 7 ], "texture": "#texture" } - } - }, - { "from": [ 1, 8, 0 ], - "to": [ 15, 16, 1 ], - "faces": { - "north": { "uv": [ 0.25, 4, 3.75, 6 ], "texture": "#texture" } - } - }, - { "from": [ 15, 0, 0 ], - "to": [ 16, 4, 16 ], - "faces": { - "north": { "uv": [ 0, 12, 0.25, 13 ], "texture": "#texture" }, - "east": { "uv": [ 4, 12, 8, 13 ], "texture": "#texture" }, - "south": { "uv": [ 11.75, 12, 12, 13 ], "texture": "#texture" } - } - }, - { "from": [ 15, 4, 4 ], - "to": [ 16, 8, 12 ], - "faces": { - "east": { "uv": [ 5, 11, 7, 12 ], "texture": "#texture" } - } - }, - { "from": [ 15, 4, 0 ], - "to": [ 16, 8, 4 ], - "faces": { - "north": { "uv": [ 0, 6, 0.25, 7 ], "texture": "#texture" }, - "east": { "uv": [ 7, 6, 8, 7 ], "texture": "#texture" } - } - }, - { "from": [ 15, 4, 12 ], - "to": [ 16, 8, 16 ], - "faces": { - "east": { "uv": [ 4, 6, 5, 7 ], "texture": "#texture" }, - "south": { "uv": [ 11.75, 6, 12, 7 ], "texture": "#texture" } - } - }, - { "from": [ 15, 8, 0 ], - "to": [ 16, 16, 16 ], - "faces": { - "north": { "uv": [ 0, 4, 0.25, 6 ], "texture": "#texture" }, - "east": { "uv": [ 4, 4, 8, 6 ], "texture": "#texture" }, - "south": { "uv": [ 11.75, 4, 12, 6 ], "texture": "#texture" } - } - }, - { "from": [ 1, 0, 15 ], - "to": [ 15, 4, 16 ], - "faces": { - "south": { "uv": [ 8.25, 12, 11.75, 13 ], "texture": "#texture" } - } - }, - { "from": [ 4, 4, 15 ], - "to": [ 12, 8, 16 ], - "faces": { - "south": { "uv": [ 9, 11, 11, 12 ], "texture": "#texture" } - } - }, - { "from": [ 12, 4, 15 ], - "to": [ 15, 8, 16 ], - "faces": { - "south": { "uv": [ 11, 6, 11.75, 7 ], "texture": "#texture" } - } - }, - { "from": [ 1, 4, 15 ], - "to": [ 4, 8, 16 ], - "faces": { - "south": { "uv": [ 8.25, 6, 9, 7 ], "texture": "#texture" } - } - }, - { "from": [ 1, 8, 15 ], - "to": [ 15, 16, 16 ], - "faces": { - "south": { "uv": [ 8.25, 4, 11.75, 6 ], "texture": "#texture" } - } - }, - { "from": [ 0, 0, 0 ], - "to": [ 1, 4, 16 ], - "faces": { - "north": { "uv": [ 3.75, 12, 4, 13 ], "texture": "#texture" }, - "south": { "uv": [ 8, 12, 8.25, 13 ], "texture": "#texture" }, - "west": { "uv": [ 12, 12, 16, 13 ], "texture": "#texture" } - } - }, - { "from": [ 0, 4, 4 ], - "to": [ 1, 8, 12 ], - "faces": { - "west": { "uv": [ 13, 11, 15, 12 ], "texture": "#texture" } - } - }, - { "from": [ 0, 4, 12 ], - "to": [ 1, 8, 16 ], - "faces": { - "south": { "uv": [ 8, 6, 8.25, 7 ], "texture": "#texture" }, - "west": { "uv": [ 15, 6, 16, 7 ], "texture": "#texture" } - } - }, - { "from": [ 0, 4, 0 ], - "to": [ 1, 8, 4 ], - "faces": { - "north": { "uv": [ 3.75, 6, 4, 7 ], "texture": "#texture" }, - "west": { "uv": [ 12, 6, 13, 7 ], "texture": "#texture" } - } - }, - { "from": [ 0, 8, 0 ], - "to": [ 1, 16, 16 ], - "faces": { - "north": { "uv": [ 3.75, 4, 4, 6 ], "texture": "#texture" }, - "south": { "uv": [ 8, 4, 8.25, 6 ], "texture": "#texture" }, - "west": { "uv": [ 12, 4, 16, 6 ], "texture": "#texture" } - } - }, - { "from": [ 0, 16, 0 ], - "to": [ 16, 16, 16 ], - "faces": { - "up": { "uv": [ 4, 0, 8, 4 ], "texture": "#texture" } - } - }, - { "from": [ 0, 0, 0 ], - "to": [ 16, 0, 16 ], - "faces": { - "down": { "uv": [ 8, 7, 12, 11 ], "texture": "#texture" } - } - } - ] -} diff --git a/src/main/resources/assets/ironchest/models/block/obsidian_chest.json b/src/main/resources/assets/ironchest/models/block/obsidian_chest.json new file mode 100644 index 00000000..9ae7bfa6 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/block/obsidian_chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/obsidian" + } +} diff --git a/src/main/resources/assets/ironchest/models/item/copper_chest.json b/src/main/resources/assets/ironchest/models/item/copper_chest.json new file mode 100644 index 00000000..33cc4a21 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/copper_chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "ironchest:block/copper_break" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/src/main/resources/assets/ironchest/models/item/copper_to_iron_chest_upgrade.json b/src/main/resources/assets/ironchest/models/item/copper_to_iron_chest_upgrade.json new file mode 100644 index 00000000..3926f7a4 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/copper_to_iron_chest_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ironchest:item/copper_iron_upgrade" + } +} diff --git a/src/main/resources/assets/ironchest/models/item/crystal_chest.json b/src/main/resources/assets/ironchest/models/item/crystal_chest.json new file mode 100644 index 00000000..33cc4a21 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/crystal_chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "ironchest:block/copper_break" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/src/main/resources/assets/ironchest/models/item/diamond_chest.json b/src/main/resources/assets/ironchest/models/item/diamond_chest.json new file mode 100644 index 00000000..61c54483 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/diamond_chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "ironchest:block/diamond_break" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/src/main/resources/assets/ironchest/models/item/diamond_to_crystal_chest_upgrade.json b/src/main/resources/assets/ironchest/models/item/diamond_to_crystal_chest_upgrade.json new file mode 100644 index 00000000..db18ca6a --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/diamond_to_crystal_chest_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ironchest:item/diamond_crystal_upgrade" + } +} diff --git a/src/main/resources/assets/ironchest/models/item/diamond_to_obsidian_chest_upgrade.json b/src/main/resources/assets/ironchest/models/item/diamond_to_obsidian_chest_upgrade.json new file mode 100644 index 00000000..bd507f42 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/diamond_to_obsidian_chest_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ironchest:item/diamond_obsidian_upgrade" + } +} diff --git a/src/main/resources/assets/ironchest/models/item/dirt_chest.json b/src/main/resources/assets/ironchest/models/item/dirt_chest.json new file mode 100644 index 00000000..df12078a --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/dirt_chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "minecraft:block/dirt" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/src/main/resources/assets/ironchest/models/item/gold_chest.json b/src/main/resources/assets/ironchest/models/item/gold_chest.json new file mode 100644 index 00000000..f8263ddc --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/gold_chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "ironchest:block/gold_break" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/src/main/resources/assets/ironchest/models/item/gold_to_diamond_chest_upgrade.json b/src/main/resources/assets/ironchest/models/item/gold_to_diamond_chest_upgrade.json new file mode 100644 index 00000000..62eec1fb --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/gold_to_diamond_chest_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ironchest:item/gold_diamond_upgrade" + } +} diff --git a/src/main/resources/assets/ironchest/models/item/iron_chest.json b/src/main/resources/assets/ironchest/models/item/iron_chest.json new file mode 100644 index 00000000..11c8d13c --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/iron_chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "ironchest:block/iron_break" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/src/main/resources/assets/ironchest/models/item/iron_to_gold_chest_upgrade.json b/src/main/resources/assets/ironchest/models/item/iron_to_gold_chest_upgrade.json new file mode 100644 index 00000000..7691286c --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/iron_to_gold_chest_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ironchest:item/iron_gold_upgrade" + } +} diff --git a/src/main/resources/assets/ironchest/models/item/obsidian_chest.json b/src/main/resources/assets/ironchest/models/item/obsidian_chest.json new file mode 100644 index 00000000..55906b38 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/obsidian_chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "minecraft:block/obsidian" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/src/main/resources/assets/ironchest/models/item/trapped_copper_chest.json b/src/main/resources/assets/ironchest/models/item/trapped_copper_chest.json new file mode 100644 index 00000000..f95206e1 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/trapped_copper_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "ironchest:item/copper_chest" +} diff --git a/src/main/resources/assets/ironchest/models/item/trapped_crystal_chest.json b/src/main/resources/assets/ironchest/models/item/trapped_crystal_chest.json new file mode 100644 index 00000000..43c9b061 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/trapped_crystal_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "ironchest:item/crystal_chest" +} diff --git a/src/main/resources/assets/ironchest/models/item/trapped_diamond_chest.json b/src/main/resources/assets/ironchest/models/item/trapped_diamond_chest.json new file mode 100644 index 00000000..e6fa2f24 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/trapped_diamond_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "ironchest:item/diamond_chest" +} diff --git a/src/main/resources/assets/ironchest/models/item/trapped_dirt_chest.json b/src/main/resources/assets/ironchest/models/item/trapped_dirt_chest.json new file mode 100644 index 00000000..ffce8a9e --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/trapped_dirt_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "ironchest:item/dirt_chest" +} diff --git a/src/main/resources/assets/ironchest/models/item/trapped_gold_chest.json b/src/main/resources/assets/ironchest/models/item/trapped_gold_chest.json new file mode 100644 index 00000000..4cd7d34d --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/trapped_gold_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "ironchest:item/gold_chest" +} diff --git a/src/main/resources/assets/ironchest/models/item/trapped_iron_chest.json b/src/main/resources/assets/ironchest/models/item/trapped_iron_chest.json new file mode 100644 index 00000000..deee3a69 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/trapped_iron_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "ironchest:item/iron_chest" +} diff --git a/src/main/resources/assets/ironchest/models/item/trapped_obsidian_chest.json b/src/main/resources/assets/ironchest/models/item/trapped_obsidian_chest.json new file mode 100644 index 00000000..5d2ad453 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/trapped_obsidian_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "ironchest:item/obsidian_chest" +} diff --git a/src/main/resources/assets/ironchest/models/item/wood_to_copper_chest_upgrade.json b/src/main/resources/assets/ironchest/models/item/wood_to_copper_chest_upgrade.json new file mode 100644 index 00000000..9195b8d5 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/wood_to_copper_chest_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ironchest:item/wood_copper_upgrade" + } +} diff --git a/src/main/resources/assets/ironchest/models/item/wood_to_iron_chest_upgrade.json b/src/main/resources/assets/ironchest/models/item/wood_to_iron_chest_upgrade.json new file mode 100644 index 00000000..91ed0269 --- /dev/null +++ b/src/main/resources/assets/ironchest/models/item/wood_to_iron_chest_upgrade.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "ironchest:item/wood_iron_upgrade" + } +} diff --git a/src/main/resources/assets/ironchest/recipes/_constants.json b/src/main/resources/assets/ironchest/recipes/_constants.json deleted file mode 100644 index c3e9640a..00000000 --- a/src/main/resources/assets/ironchest/recipes/_constants.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "name": "IRON", - "ingredient": [ - { - "type": "forge:ore_dict", - "ore": "ingotRefinedIron" - }, - { - "type": "forge:ore_dict", - "ore": "ingotIron" - } - ] - }, - { - "name": "GOLD", - "ingredient": { - "type": "forge:ore_dict", - "ore": "ingotGold" - } - }, - { - "name": "DIAMOND", - "ingredient": { - "type": "forge:ore_dict", - "ore": "gemDiamond" - } - }, - { - "name": "COPPER", - "ingredient": { - "type": "forge:ore_dict", - "ore": "ingotCopper" - } - }, - { - "name": "SILVER", - "ingredient": { - "type": "forge:ore_dict", - "ore": "ingotSilver" - } - }, - { - "name": "GLASS", - "ingredient": { - "type": "forge:ore_dict", - "ore": "blockGlass" - } - }, - { - "name": "OBSIDIAN", - "ingredient": { - "item": "minecraft:obsidian" - } - }, - { - "name": "DIRT", - "ingredient": [ - { - "item": "minecraft:dirt", - "data": 0 - }, - { - "item": "minecraft:dirt", - "data": 1 - }, - { - "item": "minecraft:dirt", - "data": 2 - } - ] - }, - { - "name": "SHULKER_SHELL", - "ingredient": { - "item": "minecraft:shulker_shell" - } - }, - { - "name": "PLANKS", - "ingredient": { - "type": "forge:ore_dict", - "ore": "plankWood" - } - }, - { - "name": "CHEST", - "ingredient": { - "type": "forge:ore_dict", - "ore": "chestWood" - } - } -] \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/_factories.json b/src/main/resources/assets/ironchest/recipes/_factories.json deleted file mode 100644 index c8ba6c31..00000000 --- a/src/main/resources/assets/ironchest/recipes/_factories.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "recipes": { - "shulker_box": "cpw.mods.ironchest.common.crafting.recipe.ShulkerBoxRecipeFactory", - "shulker_box_coloring": "cpw.mods.ironchest.common.crafting.recipe.ShulkerBoxColorRecipeFactory" - }, - "conditions": { - "ore_dict_entry_exists": "cpw.mods.ironchest.common.crafting.condition.OreDictEntryExistsConditionFactory" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/copper/vanilla_copper_chest.json b/src/main/resources/assets/ironchest/recipes/chest/copper/vanilla_copper_chest.json deleted file mode 100644 index 6ee8455c..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/copper/vanilla_copper_chest.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "#CHEST" - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/crystal/diamond_crystal_chest.json b/src/main/resources/assets/ironchest/recipes/chest/crystal/diamond_crystal_chest.json deleted file mode 100644 index d91e61a0..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/crystal/diamond_crystal_chest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/diamond/gold_diamond_chest.json b/src/main/resources/assets/ironchest/recipes/chest/diamond/gold_diamond_chest.json deleted file mode 100644 index 062a9915..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/diamond/gold_diamond_chest.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/diamond/silver_diamond_chest.json b/src/main/resources/assets/ironchest/recipes/chest/diamond/silver_diamond_chest.json deleted file mode 100644 index 61c3e23d..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/diamond/silver_diamond_chest.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/dirt/vanilla_dirt_chest.json b/src/main/resources/assets/ironchest/recipes/chest/dirt/vanilla_dirt_chest.json deleted file mode 100644 index 5550724c..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/dirt/vanilla_dirt_chest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#DIRT" - }, - "S": { - "item": "#CHEST" - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 7 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/gold/iron_gold_chest.json b/src/main/resources/assets/ironchest/recipes/chest/gold/iron_gold_chest.json deleted file mode 100644 index 2c958ff1..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/gold/iron_gold_chest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/gold/silver_gold_chest.json b/src/main/resources/assets/ironchest/recipes/chest/gold/silver_gold_chest.json deleted file mode 100644 index ac43d6f6..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/gold/silver_gold_chest.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/iron/copper_iron_chest.json b/src/main/resources/assets/ironchest/recipes/chest/iron/copper_iron_chest.json deleted file mode 100644 index cb8e0009..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/iron/copper_iron_chest.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/iron/vanilla_iron_chest.json b/src/main/resources/assets/ironchest/recipes/chest/iron/vanilla_iron_chest.json deleted file mode 100644 index 031e593f..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/iron/vanilla_iron_chest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "#CHEST" - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/obsidian/diamond_obsidian_chest.json b/src/main/resources/assets/ironchest/recipes/chest/obsidian/diamond_obsidian_chest.json deleted file mode 100644 index 59cd8685..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/obsidian/diamond_obsidian_chest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/silver/copper_silver_chest.json b/src/main/resources/assets/ironchest/recipes/chest/silver/copper_silver_chest.json deleted file mode 100644 index 6495de38..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/silver/copper_silver_chest.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/chest/silver/iron_silver_chest.json b/src/main/resources/assets/ironchest/recipes/chest/silver/iron_silver_chest.json deleted file mode 100644 index a97687cf..00000000 --- a/src/main/resources/assets/ironchest/recipes/chest/silver/iron_silver_chest.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_chest", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_chest", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 707ebb0a..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:black_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 49abf35f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index e415a150..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index ac1d6c8c..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/gold/iron_gold_shulker_box.json deleted file mode 100644 index 85415881..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/gold/silver_gold_shulker_box.json deleted file mode 100644 index c60e1642..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/iron/copper_iron_shulker_box.json deleted file mode 100644 index 95a2ef85..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 5a5de5ac..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:black_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 668d836d..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/silver/copper_silver_shulker_box.json deleted file mode 100644 index 0b6c17b5..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/black/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/black/silver/iron_silver_shulker_box.json deleted file mode 100644 index 4d1d1147..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/black/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_black", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_black", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 56aff0a2..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:blue_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index fac94b1c..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 36bedea3..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index bbb7b8c9..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/gold/iron_gold_shulker_box.json deleted file mode 100644 index 494c4adc..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/gold/silver_gold_shulker_box.json deleted file mode 100644 index d8c2b849..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/iron/copper_iron_shulker_box.json deleted file mode 100644 index 94f41d26..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index b7ca1ef5..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:blue_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 8b7799ac..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/silver/copper_silver_shulker_box.json deleted file mode 100644 index 45f75c5f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/blue/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/blue/silver/iron_silver_shulker_box.json deleted file mode 100644 index 93154c3e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/blue/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_blue", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_blue", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index afffa1fe..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:brown_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index c6c5de38..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 4399c169..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 900a5afe..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/gold/iron_gold_shulker_box.json deleted file mode 100644 index 36069443..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/gold/silver_gold_shulker_box.json deleted file mode 100644 index bfa00165..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/iron/copper_iron_shulker_box.json deleted file mode 100644 index 04f96aa3..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index e407be0b..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:brown_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index d4dafe5c..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/silver/copper_silver_shulker_box.json deleted file mode 100644 index 2fd1d37b..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/brown/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/brown/silver/iron_silver_shulker_box.json deleted file mode 100644 index 62f64195..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/brown/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_brown", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_brown", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index d4f8db85..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:cyan_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index b721bc32..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 0165c385..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index ccf6ad38..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/gold/iron_gold_shulker_box.json deleted file mode 100644 index bbdf2d41..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/gold/silver_gold_shulker_box.json deleted file mode 100644 index ad97fc47..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/iron/copper_iron_shulker_box.json deleted file mode 100644 index 7fc4171f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 5378c389..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:cyan_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 8877489e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/silver/copper_silver_shulker_box.json deleted file mode 100644 index ff70f0c7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/cyan/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/cyan/silver/iron_silver_shulker_box.json deleted file mode 100644 index a43f48eb..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/cyan/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_cyan", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 43d61b77..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:gray_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 71d76068..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 48df6b05..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 0365793e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/gold/iron_gold_shulker_box.json deleted file mode 100644 index e43a8c35..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/gold/silver_gold_shulker_box.json deleted file mode 100644 index 9c5a7b15..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/iron/copper_iron_shulker_box.json deleted file mode 100644 index 9792ad28..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 41bd283d..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:gray_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index b2e94884..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/silver/copper_silver_shulker_box.json deleted file mode 100644 index 0004fdc5..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/gray/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/gray/silver/iron_silver_shulker_box.json deleted file mode 100644 index b9449f83..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/gray/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 5f632d8c..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:green_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 17ab372e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 4eaa104f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 25e04103..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/gold/iron_gold_shulker_box.json deleted file mode 100644 index 40fdf1bf..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/gold/silver_gold_shulker_box.json deleted file mode 100644 index 010452c1..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/iron/copper_iron_shulker_box.json deleted file mode 100644 index 0c5fd5e3..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index e421a6f0..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:green_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index aa12654c..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/silver/copper_silver_shulker_box.json deleted file mode 100644 index 1d620e0e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/green/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/green/silver/iron_silver_shulker_box.json deleted file mode 100644 index aa269251..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/green/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_green", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_green", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 47b2da68..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:light_blue_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index e7931a9b..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 3ea1f467..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index f55e1082..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/gold/iron_gold_shulker_box.json deleted file mode 100644 index baf5b1de..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/gold/silver_gold_shulker_box.json deleted file mode 100644 index e5393095..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/iron/copper_iron_shulker_box.json deleted file mode 100644 index bfee83e0..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index d859e604..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:light_blue_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 4bdfb2f3..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/silver/copper_silver_shulker_box.json deleted file mode 100644 index 02d1bf95..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/light_blue/silver/iron_silver_shulker_box.json deleted file mode 100644 index fa96a26f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/light_blue/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_light_blue", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 65ed5f0f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:lime_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 629d71b7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 2ec75658..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index dbd37303..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/gold/iron_gold_shulker_box.json deleted file mode 100644 index 37b85376..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/gold/silver_gold_shulker_box.json deleted file mode 100644 index 479e0f52..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/iron/copper_iron_shulker_box.json deleted file mode 100644 index 2a19f0e8..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 43f26ccd..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:lime_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 30db6d3c..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/silver/copper_silver_shulker_box.json deleted file mode 100644 index 2508bbc3..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/lime/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/lime/silver/iron_silver_shulker_box.json deleted file mode 100644 index 4989ba7a..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/lime/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_lime", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_lime", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index e82cb4bc..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:magenta_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 5b4b4532..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 25cc874e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index d4932de9..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/gold/iron_gold_shulker_box.json deleted file mode 100644 index 9570c762..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/gold/silver_gold_shulker_box.json deleted file mode 100644 index 58ae2d2f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/iron/copper_iron_shulker_box.json deleted file mode 100644 index db98af00..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 13bd5131..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:magenta_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 772f5a78..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/silver/copper_silver_shulker_box.json deleted file mode 100644 index d5c3cba3..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/magenta/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/magenta/silver/iron_silver_shulker_box.json deleted file mode 100644 index 354a66b7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/magenta/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_magenta", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 58a846d7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:orange_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 02422469..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 09e10390..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 1a8e7bea..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/gold/iron_gold_shulker_box.json deleted file mode 100644 index 50b50aa7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/gold/silver_gold_shulker_box.json deleted file mode 100644 index bcdc47cf..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/iron/copper_iron_shulker_box.json deleted file mode 100644 index ff33cf30..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 5d7ad2fa..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:orange_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index ac571d0e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/silver/copper_silver_shulker_box.json deleted file mode 100644 index c138beb7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/orange/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/orange/silver/iron_silver_shulker_box.json deleted file mode 100644 index 4e15104a..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/orange/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_orange", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_orange", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 6767ac5b..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:pink_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 34e35428..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 92529e50..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 515eb831..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/gold/iron_gold_shulker_box.json deleted file mode 100644 index ddc1f75d..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/gold/silver_gold_shulker_box.json deleted file mode 100644 index 265bb594..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/iron/copper_iron_shulker_box.json deleted file mode 100644 index 43ed7390..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index e0f100d6..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:pink_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index afd68dc1..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/silver/copper_silver_shulker_box.json deleted file mode 100644 index 71e18f0f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/pink/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/pink/silver/iron_silver_shulker_box.json deleted file mode 100644 index fdd7049e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/pink/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_pink", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_pink", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index f0064042..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:purple_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 1657c0ca..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index acc4d27a..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 481e19de..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/gold/iron_gold_shulker_box.json deleted file mode 100644 index 2bf6a3a2..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/gold/silver_gold_shulker_box.json deleted file mode 100644 index 18562896..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/iron/copper_iron_shulker_box.json deleted file mode 100644 index 0f081ba3..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index cbba56a8..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:purple_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index f00d240b..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/silver/copper_silver_shulker_box.json deleted file mode 100644 index dceb2688..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/purple/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/purple/silver/iron_silver_shulker_box.json deleted file mode 100644 index 95c79e35..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/purple/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_purple", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_purple", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 50655131..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:red_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index cf93c41a..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 868b9bc7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 59ebb074..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/gold/iron_gold_shulker_box.json deleted file mode 100644 index 6ca074a7..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/gold/silver_gold_shulker_box.json deleted file mode 100644 index ebbf2524..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/iron/copper_iron_shulker_box.json deleted file mode 100644 index 6972698e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 7473e1fa..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:red_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 514237c1..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/silver/copper_silver_shulker_box.json deleted file mode 100644 index 995d69b5..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/red/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/red/silver/iron_silver_shulker_box.json deleted file mode 100644 index d2d86bca..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/red/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_red", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_red", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/shulker_box_coloring.json b/src/main/resources/assets/ironchest/recipes/shulker/shulker_box_coloring.json deleted file mode 100644 index 3dc7c41e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/shulker_box_coloring.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "ironchest:shulker_box_coloring" -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 43d61b77..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:gray_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 71d76068..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 48df6b05..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 0365793e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/gold/iron_gold_shulker_box.json deleted file mode 100644 index e43a8c35..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/gold/silver_gold_shulker_box.json deleted file mode 100644 index 9c5a7b15..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/iron/copper_iron_shulker_box.json deleted file mode 100644 index 9792ad28..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 41bd283d..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:gray_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index b2e94884..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/silver/copper_silver_shulker_box.json deleted file mode 100644 index 0004fdc5..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/silver/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/silver/silver/iron_silver_shulker_box.json deleted file mode 100644 index b9449f83..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/silver/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_gray", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_gray", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 6f3f870d..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:white_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index 017ec805..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 6ebfa03e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index 8898a585..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/gold/iron_gold_shulker_box.json deleted file mode 100644 index 2e06a206..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/gold/silver_gold_shulker_box.json deleted file mode 100644 index f0b38d0e..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/iron/copper_iron_shulker_box.json deleted file mode 100644 index a4a84f15..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 601a5ca8..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:white_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 5bd665a6..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/silver/copper_silver_shulker_box.json deleted file mode 100644 index 918282eb..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type" : "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/white/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/white/silver/iron_silver_shulker_box.json deleted file mode 100644 index 660a4eff..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/white/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_white", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_white", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/copper/vanilla_copper_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/copper/vanilla_copper_shulker_box.json deleted file mode 100644 index 4bd3c98c..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/copper/vanilla_copper_shulker_box.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "minecraft:yellow_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/crystal/diamond_crystal_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/crystal/diamond_crystal_shulker_box.json deleted file mode 100644 index d7eab1c5..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/crystal/diamond_crystal_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 5 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/diamond/gold_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/diamond/gold_diamond_shulker_box.json deleted file mode 100644 index 5a1115df..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/diamond/gold_diamond_shulker_box.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 1 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/diamond/silver_diamond_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/diamond/silver_diamond_shulker_box.json deleted file mode 100644 index e898f54a..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/diamond/silver_diamond_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "GGG", - "GSG", - "MMM" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/gold/iron_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/gold/iron_gold_shulker_box.json deleted file mode 100644 index 7d343bb5..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/gold/iron_gold_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/gold/silver_gold_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/gold/silver_gold_shulker_box.json deleted file mode 100644 index 65801f81..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/gold/silver_gold_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 4 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/iron/copper_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/iron/copper_iron_shulker_box.json deleted file mode 100644 index 5479d104..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/iron/copper_iron_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/iron/vanilla_iron_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/iron/vanilla_iron_shulker_box.json deleted file mode 100644 index 4d7ca117..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/iron/vanilla_iron_shulker_box.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "minecraft:yellow_shulker_box" - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/obsidian/diamond_obsidian_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/obsidian/diamond_obsidian_shulker_box.json deleted file mode 100644 index 3ec9f82f..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/obsidian/diamond_obsidian_shulker_box.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 2 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/silver/copper_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/silver/copper_silver_shulker_box.json deleted file mode 100644 index 9c52f1a1..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/silver/copper_silver_shulker_box.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 3 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/shulker/yellow/silver/iron_silver_shulker_box.json b/src/main/resources/assets/ironchest/recipes/shulker/yellow/silver/iron_silver_shulker_box.json deleted file mode 100644 index 23dfa7de..00000000 --- a/src/main/resources/assets/ironchest/recipes/shulker/yellow/silver/iron_silver_shulker_box.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "ironchest:shulker_box", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - }, - "S": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 0 - } - }, - "result": { - "item": "ironchest:iron_shulker_box_yellow", - "data": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/copper_iron_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/copper_iron_chest_upgrade.json deleted file mode 100644 index a2e8c739..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/copper_iron_chest_upgrade.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "#COPPER" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:copper_iron_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/copper_silver_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/copper_silver_chest_upgrade.json deleted file mode 100644 index fde6fc66..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/copper_silver_chest_upgrade.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "#COPPER" - } - }, - "result": { - "item": "ironchest:copper_silver_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/diamond_crystal_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/diamond_crystal_chest_upgrade.json deleted file mode 100644 index c0c7fa7c..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/diamond_crystal_chest_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "#OBSIDIAN" - } - }, - "result": { - "item": "ironchest:diamond_crystal_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/diamond_obsidian_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/diamond_obsidian_chest_upgrade.json deleted file mode 100644 index be210b1c..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/diamond_obsidian_chest_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MGM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:diamond_obsidian_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/gold_diamond_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/gold_diamond_chest_upgrade.json deleted file mode 100644 index 5b7ed9d6..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/gold_diamond_chest_upgrade.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "S": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:gold_diamond_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/iron_gold_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/iron_gold_chest_upgrade.json deleted file mode 100644 index e9df27b3..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/iron_gold_chest_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "#IRON" - } - }, - "result": { - "item": "ironchest:iron_gold_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/silver_gold_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/silver_gold_chest_upgrade.json deleted file mode 100644 index 8d0b921a..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/silver_gold_chest_upgrade.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:silver_gold_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/wood_copper_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/wood_copper_chest_upgrade.json deleted file mode 100644 index 6d58cd56..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/wood_copper_chest_upgrade.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "#PLANKS" - } - }, - "result": { - "item": "ironchest:wood_copper_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/chest/wood_iron_chest_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/chest/wood_iron_chest_upgrade.json deleted file mode 100644 index 3b6238a8..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/chest/wood_iron_chest_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "#PLANKS" - } - }, - "result": { - "item": "ironchest:wood_iron_chest_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/copper_iron_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/copper_iron_shulker_upgrade.json deleted file mode 100644 index cfe9f79b..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/copper_iron_shulker_upgrade.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "#COPPER" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:copper_iron_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/copper_silver_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/copper_silver_shulker_upgrade.json deleted file mode 100644 index 44d59531..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/copper_silver_shulker_upgrade.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - }, - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#SILVER" - }, - "S": { - "item": "#COPPER" - } - }, - "result": { - "item": "ironchest:copper_silver_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/diamond_crystal_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/diamond_crystal_shulker_upgrade.json deleted file mode 100644 index efa5d33c..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/diamond_crystal_shulker_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "GGG", - "GSG", - "GGG" - ], - "key": { - "G": { - "item": "#GLASS" - }, - "S": { - "item": "#OBSIDIAN" - } - }, - "result": { - "item": "ironchest:diamond_crystal_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/diamond_obsidian_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/diamond_obsidian_shulker_upgrade.json deleted file mode 100644 index 5421bc9d..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/diamond_obsidian_shulker_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MGM", - "MMM" - ], - "key": { - "M": { - "item": "#OBSIDIAN" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:diamond_obsidian_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/gold_diamond_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/gold_diamond_shulker_upgrade.json deleted file mode 100644 index c4453f5b..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/gold_diamond_shulker_upgrade.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "GGG", - "MSM", - "GGG" - ], - "key": { - "M": { - "item": "#DIAMOND" - }, - "S": { - "item": "#GOLD" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:gold_diamond_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/iron_gold_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/iron_gold_shulker_upgrade.json deleted file mode 100644 index f2922b6d..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/iron_gold_shulker_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "#IRON" - } - }, - "result": { - "item": "ironchest:iron_gold_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/silver_gold_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/silver_gold_shulker_upgrade.json deleted file mode 100644 index bd415620..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/silver_gold_shulker_upgrade.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotSilver" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MGM", - "GSG", - "MGM" - ], - "key": { - "M": { - "item": "#GOLD" - }, - "S": { - "item": "#SILVER" - }, - "G": { - "item": "#GLASS" - } - }, - "result": { - "item": "ironchest:silver_gold_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/vanilla_copper_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/vanilla_copper_shulker_upgrade.json deleted file mode 100644 index 9c57d172..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/vanilla_copper_shulker_upgrade.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "conditions": [ - { - "type": "ironchest:ore_dict_entry_exists", - "ore": "ingotCopper" - } - ], - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#COPPER" - }, - "S": { - "item": "#SHULKER_SHELL" - } - }, - "result": { - "item": "ironchest:vanilla_copper_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/vanilla_iron_shulker_upgrade.json b/src/main/resources/assets/ironchest/recipes/upgrade/shulker/vanilla_iron_shulker_upgrade.json deleted file mode 100644 index 746a5e0c..00000000 --- a/src/main/resources/assets/ironchest/recipes/upgrade/shulker/vanilla_iron_shulker_upgrade.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "MMM", - "MSM", - "MMM" - ], - "key": { - "M": { - "item": "#IRON" - }, - "S": { - "item": "#SHULKER_SHELL" - } - }, - "result": { - "item": "ironchest:vanilla_iron_shulker_upgrade" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ironchest/textures/blocks/copper_break.png b/src/main/resources/assets/ironchest/textures/block/copper_break.png similarity index 100% rename from src/main/resources/assets/ironchest/textures/blocks/copper_break.png rename to src/main/resources/assets/ironchest/textures/block/copper_break.png diff --git a/src/main/resources/assets/ironchest/textures/blocks/crystal_break.png b/src/main/resources/assets/ironchest/textures/block/crystal_break.png similarity index 100% rename from src/main/resources/assets/ironchest/textures/blocks/crystal_break.png rename to src/main/resources/assets/ironchest/textures/block/crystal_break.png diff --git a/src/main/resources/assets/ironchest/textures/blocks/diamond_break.png b/src/main/resources/assets/ironchest/textures/block/diamond_break.png similarity index 100% rename from src/main/resources/assets/ironchest/textures/blocks/diamond_break.png rename to src/main/resources/assets/ironchest/textures/block/diamond_break.png diff --git a/src/main/resources/assets/ironchest/textures/blocks/gold_break.png b/src/main/resources/assets/ironchest/textures/block/gold_break.png similarity index 100% rename from src/main/resources/assets/ironchest/textures/blocks/gold_break.png rename to src/main/resources/assets/ironchest/textures/block/gold_break.png diff --git a/src/main/resources/assets/ironchest/textures/blocks/iron_break.png b/src/main/resources/assets/ironchest/textures/block/iron_break.png similarity index 100% rename from src/main/resources/assets/ironchest/textures/blocks/iron_break.png rename to src/main/resources/assets/ironchest/textures/block/iron_break.png diff --git a/src/main/resources/assets/ironchest/textures/blocks/silver_break.png b/src/main/resources/assets/ironchest/textures/block/silver_break.png similarity index 100% rename from src/main/resources/assets/ironchest/textures/blocks/silver_break.png rename to src/main/resources/assets/ironchest/textures/block/silver_break.png diff --git a/src/main/resources/assets/ironchest/textures/gui/copper_container.png b/src/main/resources/assets/ironchest/textures/gui/copper_container.png index 2fdb824e..41197b8d 100644 Binary files a/src/main/resources/assets/ironchest/textures/gui/copper_container.png and b/src/main/resources/assets/ironchest/textures/gui/copper_container.png differ diff --git a/src/main/resources/assets/ironchest/textures/gui/diamond_container.png b/src/main/resources/assets/ironchest/textures/gui/diamond_container.png index b53f4729..cdcafc91 100644 Binary files a/src/main/resources/assets/ironchest/textures/gui/diamond_container.png and b/src/main/resources/assets/ironchest/textures/gui/diamond_container.png differ diff --git a/src/main/resources/assets/ironchest/textures/gui/gold_container.png b/src/main/resources/assets/ironchest/textures/gui/gold_container.png index 27f506fa..37c35b40 100644 Binary files a/src/main/resources/assets/ironchest/textures/gui/gold_container.png and b/src/main/resources/assets/ironchest/textures/gui/gold_container.png differ diff --git a/src/main/resources/assets/ironchest/textures/gui/iron_container.png b/src/main/resources/assets/ironchest/textures/gui/iron_container.png index 1c48eed8..d95c78a3 100644 Binary files a/src/main/resources/assets/ironchest/textures/gui/iron_container.png and b/src/main/resources/assets/ironchest/textures/gui/iron_container.png differ diff --git a/src/main/resources/assets/ironchest/textures/gui/silver_container.png b/src/main/resources/assets/ironchest/textures/gui/silver_container.png index 65179f2a..b182f90d 100644 Binary files a/src/main/resources/assets/ironchest/textures/gui/silver_container.png and b/src/main/resources/assets/ironchest/textures/gui/silver_container.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/copper_iron_upgrade.png b/src/main/resources/assets/ironchest/textures/item/copper_iron_upgrade.png new file mode 100644 index 00000000..594fb736 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/copper_iron_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/diamond_crystal_upgrade.png b/src/main/resources/assets/ironchest/textures/item/diamond_crystal_upgrade.png new file mode 100644 index 00000000..169e6834 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/diamond_crystal_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/diamond_netherite_upgrade.png b/src/main/resources/assets/ironchest/textures/item/diamond_netherite_upgrade.png new file mode 100644 index 00000000..c46b98b8 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/diamond_netherite_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/diamond_obsidian_upgrade.png b/src/main/resources/assets/ironchest/textures/item/diamond_obsidian_upgrade.png new file mode 100644 index 00000000..afcb9ba5 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/diamond_obsidian_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/gold_diamond_upgrade.png b/src/main/resources/assets/ironchest/textures/item/gold_diamond_upgrade.png new file mode 100644 index 00000000..baef4dab Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/gold_diamond_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/iron_gold_upgrade.png b/src/main/resources/assets/ironchest/textures/item/iron_gold_upgrade.png new file mode 100644 index 00000000..9d9d6d8b Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/iron_gold_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/wood_copper_upgrade.png b/src/main/resources/assets/ironchest/textures/item/wood_copper_upgrade.png new file mode 100644 index 00000000..9bc86105 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/wood_copper_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/item/wood_iron_upgrade.png b/src/main/resources/assets/ironchest/textures/item/wood_iron_upgrade.png new file mode 100644 index 00000000..930cb5e1 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/item/wood_iron_upgrade.png differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/copper_iron_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/copper_iron_upgrade.png deleted file mode 100644 index 7bb21593..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/copper_iron_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/copper_silver_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/copper_silver_upgrade.png deleted file mode 100644 index de87597d..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/copper_silver_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/diamond_crystal_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/diamond_crystal_upgrade.png deleted file mode 100644 index 68caa0c5..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/diamond_crystal_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/diamond_obsidian_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/diamond_obsidian_upgrade.png deleted file mode 100644 index dd1a36d1..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/diamond_obsidian_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/gold_diamond_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/gold_diamond_upgrade.png deleted file mode 100644 index 028e2d8b..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/gold_diamond_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/iron_gold_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/iron_gold_upgrade.png deleted file mode 100644 index 65cf6aee..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/iron_gold_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/silver_gold_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/silver_gold_upgrade.png deleted file mode 100644 index d3cad2e2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/silver_gold_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/wood_copper_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/wood_copper_upgrade.png deleted file mode 100644 index 4273a546..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/wood_copper_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/chest/wood_iron_upgrade.png b/src/main/resources/assets/ironchest/textures/items/chest/wood_iron_upgrade.png deleted file mode 100644 index e6e62bb9..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/chest/wood_iron_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/copper_iron_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/copper_iron_upgrade.png deleted file mode 100644 index 0af1e53f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/copper_iron_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/copper_silver_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/copper_silver_upgrade.png deleted file mode 100644 index 1adaafbf..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/copper_silver_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/diamond_crystal_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/diamond_crystal_upgrade.png deleted file mode 100644 index 6af17cf5..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/diamond_crystal_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/diamond_obsidian_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/diamond_obsidian_upgrade.png deleted file mode 100644 index 5b8a863a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/diamond_obsidian_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/gold_diamond_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/gold_diamond_upgrade.png deleted file mode 100644 index 2830e6f5..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/gold_diamond_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/iron_gold_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/iron_gold_upgrade.png deleted file mode 100644 index e5a49856..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/iron_gold_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/silver_gold_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/silver_gold_upgrade.png deleted file mode 100644 index 4cf4ebf2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/silver_gold_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/vanilla_copper_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/vanilla_copper_upgrade.png deleted file mode 100644 index c675fdc3..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/vanilla_copper_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/items/shulker/vanilla_iron_upgrade.png b/src/main/resources/assets/ironchest/textures/items/shulker/vanilla_iron_upgrade.png deleted file mode 100644 index 6569f1cf..00000000 Binary files a/src/main/resources/assets/ironchest/textures/items/shulker/vanilla_iron_upgrade.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/copper_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/copper_chest.png deleted file mode 100644 index a008864f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/copper_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/crystal_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/crystal_chest.png deleted file mode 100644 index a455ce86..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/crystal_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/diamond_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/diamond_chest.png deleted file mode 100644 index 64020b57..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/diamond_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/dirt_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/dirt_chest.png deleted file mode 100644 index 168e1799..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/dirt_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/gold_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/gold_chest.png deleted file mode 100644 index 7f184689..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/gold_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/iron_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/iron_chest.png deleted file mode 100644 index df883fff..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/iron_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/obsidian_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/obsidian_chest.png deleted file mode 100644 index 4f0657ab..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/obsidian_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/chest/silver_chest.png b/src/main/resources/assets/ironchest/textures/model/chest/silver_chest.png deleted file mode 100644 index 780becd8..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/chest/silver_chest.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/copper_chest.png b/src/main/resources/assets/ironchest/textures/model/copper_chest.png new file mode 100644 index 00000000..9e773a9a Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/copper_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/crystal_chest.png b/src/main/resources/assets/ironchest/textures/model/crystal_chest.png new file mode 100644 index 00000000..7a29df11 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/crystal_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/diamond_chest.png b/src/main/resources/assets/ironchest/textures/model/diamond_chest.png new file mode 100644 index 00000000..6841b472 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/diamond_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/dirt_chest.png b/src/main/resources/assets/ironchest/textures/model/dirt_chest.png new file mode 100644 index 00000000..0feb4ee5 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/dirt_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/gold_chest.png b/src/main/resources/assets/ironchest/textures/model/gold_chest.png new file mode 100644 index 00000000..29f37a36 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/gold_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/iron_chest.png b/src/main/resources/assets/ironchest/textures/model/iron_chest.png new file mode 100644 index 00000000..0ac16fec Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/iron_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/netherite_chest.png b/src/main/resources/assets/ironchest/textures/model/netherite_chest.png new file mode 100644 index 00000000..f301a243 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/netherite_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/obsidian_chest.png b/src/main/resources/assets/ironchest/textures/model/obsidian_chest.png new file mode 100644 index 00000000..5e27b575 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/obsidian_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_copper.png deleted file mode 100644 index c0634811..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_crystal.png deleted file mode 100644 index bf1a0dfa..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_diamond.png deleted file mode 100644 index a62e1420..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_gold.png deleted file mode 100644 index 69fe3d18..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_iron.png deleted file mode 100644 index b143affb..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_obsidian.png deleted file mode 100644 index 79bc61f2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_silver.png deleted file mode 100644 index 521fa4af..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/black/shulker_black_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_copper.png deleted file mode 100644 index 758b6211..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_crystal.png deleted file mode 100644 index a31d58ad..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_diamond.png deleted file mode 100644 index ec58ab56..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_gold.png deleted file mode 100644 index daf8900d..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_iron.png deleted file mode 100644 index 4bc3bd60..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_obsidian.png deleted file mode 100644 index 344b0746..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_silver.png deleted file mode 100644 index 0436fd4d..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/blue/shulker_blue_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_copper.png deleted file mode 100644 index 41e99d7a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_crystal.png deleted file mode 100644 index 45158d9f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_diamond.png deleted file mode 100644 index d5e4520b..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_gold.png deleted file mode 100644 index 6bdcf69f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_iron.png deleted file mode 100644 index e4fe618a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_obsidian.png deleted file mode 100644 index cdbf1e6e..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_silver.png deleted file mode 100644 index b35a2f78..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/brown/shulker_brown_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_copper.png deleted file mode 100644 index 68b95fd4..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_crystal.png deleted file mode 100644 index 75386290..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_diamond.png deleted file mode 100644 index 49d83f5f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_gold.png deleted file mode 100644 index 0de0966f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_iron.png deleted file mode 100644 index b58fece7..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_obsidian.png deleted file mode 100644 index 5653b2b8..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_silver.png deleted file mode 100644 index 0948fbf2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/cyan/shulker_cyan_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_copper.png deleted file mode 100644 index c38d3150..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_crystal.png deleted file mode 100644 index b01a7051..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_diamond.png deleted file mode 100644 index a203a53f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_gold.png deleted file mode 100644 index ac4121dd..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_iron.png deleted file mode 100644 index efbf42b2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_obsidian.png deleted file mode 100644 index 2fc737ce..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_silver.png deleted file mode 100644 index f73e3cc7..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/gray/shulker_gray_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_copper.png deleted file mode 100644 index dc9b5540..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_crystal.png deleted file mode 100644 index b1086f5b..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_diamond.png deleted file mode 100644 index 56031cfd..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_gold.png deleted file mode 100644 index 4c3a0122..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_iron.png deleted file mode 100644 index 03ba66fd..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_obsidian.png deleted file mode 100644 index 5b5bac2d..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_silver.png deleted file mode 100644 index 8a24ba17..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/green/shulker_green_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_copper.png deleted file mode 100644 index 8ac1c8b1..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_crystal.png deleted file mode 100644 index 769ba59e..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_diamond.png deleted file mode 100644 index e5777c0b..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_gold.png deleted file mode 100644 index 129230f2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_iron.png deleted file mode 100644 index 88e7040a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_obsidian.png deleted file mode 100644 index 3ce56043..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_silver.png deleted file mode 100644 index 6106ce1a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/light_blue/shulker_light_blue_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_copper.png deleted file mode 100644 index 685fa1bc..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_crystal.png deleted file mode 100644 index ae5730c3..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_diamond.png deleted file mode 100644 index f25e06b9..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_gold.png deleted file mode 100644 index 74eac847..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_iron.png deleted file mode 100644 index 96282378..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_obsidian.png deleted file mode 100644 index e105a8e6..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_silver.png deleted file mode 100644 index b0e4aec9..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/lime/shulker_lime_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_copper.png deleted file mode 100644 index a75e99c7..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_crystal.png deleted file mode 100644 index 90f3b43a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_diamond.png deleted file mode 100644 index a5c3b132..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_gold.png deleted file mode 100644 index 97790610..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_iron.png deleted file mode 100644 index 1fd56d1f..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_obsidian.png deleted file mode 100644 index 2d02c34e..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_silver.png deleted file mode 100644 index 6aa40c24..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/magenta/shulker_magenta_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_copper.png deleted file mode 100644 index 4e4538c2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_crystal.png deleted file mode 100644 index 2f7c58c6..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_diamond.png deleted file mode 100644 index 7eea8f83..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_gold.png deleted file mode 100644 index 03c738d4..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_iron.png deleted file mode 100644 index a58329df..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_obsidian.png deleted file mode 100644 index bdce3fc1..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_silver.png deleted file mode 100644 index 3343cf22..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/orange/shulker_orange_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_copper.png deleted file mode 100644 index cd5eac0b..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_crystal.png deleted file mode 100644 index 9e14424b..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_diamond.png deleted file mode 100644 index e9bd16f9..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_gold.png deleted file mode 100644 index ee7b20ce..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_iron.png deleted file mode 100644 index 68f7fa8a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_obsidian.png deleted file mode 100644 index 94e2b701..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_silver.png deleted file mode 100644 index 3e75c465..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/pink/shulker_pink_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_copper.png deleted file mode 100644 index f4d329d2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_crystal.png deleted file mode 100644 index 77258064..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_diamond.png deleted file mode 100644 index 62b29cd5..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_gold.png deleted file mode 100644 index eba9229a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_iron.png deleted file mode 100644 index 1eec057c..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_obsidian.png deleted file mode 100644 index 9c5e91ae..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_silver.png deleted file mode 100644 index 9696f108..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/purple/shulker_purple_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_copper.png deleted file mode 100644 index d8c0ae81..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_crystal.png deleted file mode 100644 index df51f749..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_diamond.png deleted file mode 100644 index 246d020c..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_gold.png deleted file mode 100644 index b2414d94..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_iron.png deleted file mode 100644 index debb62c2..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_obsidian.png deleted file mode 100644 index 52c08aa3..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_silver.png deleted file mode 100644 index 660269bc..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/red/shulker_red_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_copper.png deleted file mode 100644 index ac0e5d2c..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_crystal.png deleted file mode 100644 index 05d20bb9..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_diamond.png deleted file mode 100644 index 5415c21a..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_gold.png deleted file mode 100644 index 0bce8d31..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_iron.png deleted file mode 100644 index cd024b08..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_obsidian.png deleted file mode 100644 index 45bd9258..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_silver.png deleted file mode 100644 index 7f548f16..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/silver/shulker_silver_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_copper.png deleted file mode 100644 index f15c6846..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_crystal.png deleted file mode 100644 index 417ed2f7..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_diamond.png deleted file mode 100644 index 6e76b1f9..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_gold.png deleted file mode 100644 index cabc5fb5..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_iron.png deleted file mode 100644 index 883ddd32..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_obsidian.png deleted file mode 100644 index 299ff863..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_silver.png deleted file mode 100644 index 5eaa7736..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/white/shulker_white_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_copper.png b/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_copper.png deleted file mode 100644 index 3552d948..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_copper.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_crystal.png b/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_crystal.png deleted file mode 100644 index f44fa938..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_diamond.png b/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_diamond.png deleted file mode 100644 index 0434c5c0..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_gold.png b/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_gold.png deleted file mode 100644 index a7a9cfd7..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_gold.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_iron.png b/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_iron.png deleted file mode 100644 index 65b5759d..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_iron.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_obsidian.png b/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_obsidian.png deleted file mode 100644 index 252a5a73..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_obsidian.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_silver.png b/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_silver.png deleted file mode 100644 index 19d4850e..00000000 Binary files a/src/main/resources/assets/ironchest/textures/model/shulker/yellow/shulker_yellow_silver.png and /dev/null differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_copper_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_copper_chest.png new file mode 100644 index 00000000..ae239a98 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_copper_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_crystal_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_crystal_chest.png new file mode 100644 index 00000000..e078608c Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_crystal_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_diamond_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_diamond_chest.png new file mode 100644 index 00000000..7fb3e981 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_diamond_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_dirt_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_dirt_chest.png new file mode 100644 index 00000000..f77e4a60 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_dirt_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_gold_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_gold_chest.png new file mode 100644 index 00000000..b638149b Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_gold_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_iron_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_iron_chest.png new file mode 100644 index 00000000..bed34f13 Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_iron_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_netherite_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_netherite_chest.png new file mode 100644 index 00000000..d93b61de Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_netherite_chest.png differ diff --git a/src/main/resources/assets/ironchest/textures/model/trapped_obsidian_chest.png b/src/main/resources/assets/ironchest/textures/model/trapped_obsidian_chest.png new file mode 100644 index 00000000..d79a21ee Binary files /dev/null and b/src/main/resources/assets/ironchest/textures/model/trapped_obsidian_chest.png differ diff --git a/src/main/resources/itemsheet.xcf b/src/main/resources/itemsheet.xcf deleted file mode 100755 index 47073b83..00000000 Binary files a/src/main/resources/itemsheet.xcf and /dev/null differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info deleted file mode 100755 index 3ecbefcd..00000000 --- a/src/main/resources/mcmod.info +++ /dev/null @@ -1,17 +0,0 @@ -[ -{ - "modid": "ironchest", - "name": "Iron Chest", - "description": "New chests with larger sizes, with in-place upgrade items.\nThe feature chest is the crystal chest, which is transparent - some inventory contents are visible without opening the chest", - "version": "${version}", - "mcversion": "${mcversion}", - "url": "http://www.minecraftforum.net/topic/981855-", - "updateUrl": "", - "authorList": ["cpw"], - "credits": "By cpw, based on an original idea by Lishid", - "logoFile": "", - "screenshots": [], - "parent":"", - "dependencies": [] -} -] diff --git a/src/main/resources/texturesheet.xcf b/src/main/resources/texturesheet.xcf deleted file mode 100755 index a0730b0b..00000000 Binary files a/src/main/resources/texturesheet.xcf and /dev/null differ