Compare commits
10 Commits
cf03714df0
...
e8df722ae7
| Author | SHA1 | Date | |
|---|---|---|---|
|
e8df722ae7
|
|||
|
11f3d68031
|
|||
| 9beb9ef1e5 | |||
| f3302684f8 | |||
| 277d3f68a8 | |||
| 8eca7686c7 | |||
| 236d5be823 | |||
| 7602fb947c | |||
| 35c86a1fd2 | |||
| 73a0a33f1e |
22
CHANGELOG.MD
22
CHANGELOG.MD
@@ -1,22 +0,0 @@
|
||||
# Changelog
|
||||
|
||||
|
||||
## 1.1.1
|
||||
|
||||
|
||||
## 1.10
|
||||
- added tools, and sword
|
||||
- datagen for no more json files*
|
||||
- new textures for the tools
|
||||
- adds horse armor, and player armor
|
||||
|
||||
* kinda
|
||||
|
||||
## 1.02
|
||||
adds ores both deepslate and regular and it drops you can smelt the raw nugget it drops into nuggets and makes it so you can create raw nugget blocks and nugget block
|
||||
## 1.01
|
||||
add two new blocks
|
||||
- raw nugget block
|
||||
- nugget block
|
||||
## 1.00
|
||||
version 1 adds the nugget item
|
||||
544
LICENSE.txt
544
LICENSE.txt
@@ -1,523 +1,21 @@
|
||||
Unless noted below, Minecraft Forge, Forge Mod Loader, and all
|
||||
parts herein are licensed under the terms of the LGPL 2.1 found
|
||||
here http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt and
|
||||
copied below.
|
||||
|
||||
Homepage: http://minecraftforge.net/
|
||||
https://github.com/MinecraftForge/MinecraftForge
|
||||
|
||||
|
||||
A note on authorship:
|
||||
All source artifacts are property of their original author, with
|
||||
the exclusion of the contents of the patches directory and others
|
||||
copied from it from time to time. Authorship of the contents of
|
||||
the patches directory is retained by the Minecraft Forge project.
|
||||
This is because the patches are partially machine generated
|
||||
artifacts, and are changed heavily due to the way forge works.
|
||||
Individual attribution within them is impossible.
|
||||
|
||||
Consent:
|
||||
All contributions to Forge must consent to the release of any
|
||||
patch content to the Forge project.
|
||||
|
||||
A note on infectivity:
|
||||
The LGPL is chosen specifically so that projects may depend on Forge
|
||||
features without being infected with its license. That is the
|
||||
purpose of the LGPL. Mods and others using this code via ordinary
|
||||
Java mechanics for referencing libraries are specifically not bound
|
||||
by Forge's license for the Mod code.
|
||||
|
||||
|
||||
=== MCP Data ===
|
||||
This software includes data from the Minecraft Coder Pack (MCP), with kind permission
|
||||
from them. The license to MCP data is not transitive - distribution of this data by
|
||||
third parties requires independent licensing from the MCP team. This data is not
|
||||
redistributable without permission from the MCP team.
|
||||
|
||||
=== Sharing ===
|
||||
I grant permission for some parts of FML to be redistributed outside the terms of the LGPL, for the benefit of
|
||||
the minecraft modding community. All contributions to these parts should be licensed under the same additional grant.
|
||||
|
||||
-- Runtime patcher --
|
||||
License is granted to redistribute the runtime patcher code (src/main/java/net/minecraftforge/fml/common/patcher
|
||||
and subdirectories) under any alternative open source license as classified by the OSI (http://opensource.org/licenses)
|
||||
|
||||
-- ASM transformers --
|
||||
License is granted to redistribute the ASM transformer code (src/main/java/net/minecraftforge/common/asm/ and subdirectories)
|
||||
under any alternative open source license as classified by the OSI (http://opensource.org/licenses)
|
||||
|
||||
=========================================================================
|
||||
This software includes portions from the Apache Maven project at
|
||||
http://maven.apache.org/ specifically the ComparableVersion.java code. It is
|
||||
included based on guidelines at
|
||||
http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html
|
||||
with notices intact. The only change is a non-functional change of package name.
|
||||
|
||||
This software contains a partial repackaging of javaxdelta, a BSD licensed program for generating
|
||||
binary differences and applying them, sourced from the subversion at http://sourceforge.net/projects/javaxdelta/
|
||||
authored by genman, heikok, pivot.
|
||||
The only changes are to replace some Trove collection types with standard Java collections, and repackaged.
|
||||
|
||||
This software includes the Monocraft font from https://github.com/IdreesInc/Monocraft/ for use in the early loading
|
||||
display.
|
||||
=========================================================================
|
||||
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 sillyangel
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||

|
||||
# Nugget Mod (Forge)
|
||||
> [Fabric](https://github.com/sillyangel/nuggetfabric) | [NeoForge](https://github.com/sillyangel/nuggetforge)
|
||||
> [Fabric](https://github.com/sillyangel/nuggetfabric) | [NeoForge](https://github.com/sillyangel/nuggetneoforge)
|
||||
|
||||
Nugget Mod is a Minecraft mod that adds "gegagedigedagedago" to the game, the Nugget. The Nugget is a powerful item that can be used to craft new tools, weapons, and armor. The mod also adds new ores to the game, including Nugget Ore, which can be mined to obtain Nuggets. The mod is still in development, but you can download the latest version from the releases page.
|
||||
|
||||
|
||||
78
build.gradle
78
build.gradle
@@ -2,7 +2,7 @@ plugins {
|
||||
id 'eclipse'
|
||||
id 'idea'
|
||||
id 'maven-publish'
|
||||
id 'net.minecraftforge.gradle' version '[6.0.24,6.2)'
|
||||
id 'net.minecraftforge.gradle' version '[6.0.46,6.2)'
|
||||
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
|
||||
}
|
||||
|
||||
@@ -23,17 +23,13 @@ minecraft {
|
||||
// official MCVersion Official field/method names from Mojang mapping files
|
||||
// parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official
|
||||
//
|
||||
// You must be aware of the Mojang license when using the 'official' or 'parchment' mappings.
|
||||
// See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md
|
||||
//
|
||||
// Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge
|
||||
// Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started
|
||||
//
|
||||
// Use non-default mappings at your own risk. They may not always work.
|
||||
// Simply re-run your setup task after changing the mappings to update your workspace.
|
||||
mappings channel: mapping_channel, version: mapping_version
|
||||
|
||||
// Tell FG to not automtically create the reobf tasks, as we now use Official mappings at runtime, If you don't use them at dev time then you'll have to fix your reobf yourself.
|
||||
|
||||
// Forge 1.20.6 and newer use official mappings at runtime, so we shouldn't reobf from official to SRG
|
||||
reobf = false
|
||||
|
||||
// When true, this property will have all Eclipse/IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game.
|
||||
@@ -51,8 +47,7 @@ minecraft {
|
||||
// By default, the folder name of a run configuration is the name of the Gradle project containing it.
|
||||
// generateRunFolders = true
|
||||
|
||||
// This property enables access transformers for use in development.
|
||||
// They will be applied to the Minecraft artifact.
|
||||
// This property enables access transformers for use in development, applied to the Minecraft artifact.
|
||||
// The access transformer file can be anywhere in the project.
|
||||
// However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge.
|
||||
// This default location is a best practice to automatically put the file in the right place in the final jar.
|
||||
@@ -66,17 +61,18 @@ minecraft {
|
||||
configureEach {
|
||||
workingDirectory project.file('run')
|
||||
|
||||
// Recommended logging data for a userdev environment
|
||||
// The markers can be added/remove as needed separated by commas.
|
||||
// Optional additional logging. 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.
|
||||
property 'forge.logging.markers', 'REGISTRIES'
|
||||
// property 'forge.logging.markers', 'REGISTRIES'
|
||||
|
||||
// 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
|
||||
property 'forge.logging.console.level', 'debug'
|
||||
|
||||
// Recommended for development - enables more descriptive errors at the cost of slower startup and registration.
|
||||
property 'eventbus.api.strictRuntimeChecks', 'true'
|
||||
|
||||
// arg "-mixin.config=${mod_id}.mixins.json"
|
||||
}
|
||||
|
||||
client {
|
||||
@@ -111,7 +107,26 @@ sourceSets.main.resources { srcDir 'src/generated/resources' }
|
||||
|
||||
repositories {
|
||||
// Put repositories for dependencies here
|
||||
// ForgeGradle automatically adds the Forge maven and Maven Central for you
|
||||
mavenCentral()
|
||||
maven {
|
||||
name = 'Forge'
|
||||
url = 'https://maven.minecraftforge.net'
|
||||
}
|
||||
maven {
|
||||
name = 'Minecraft libraries'
|
||||
url = 'https://libraries.minecraft.net'
|
||||
}
|
||||
exclusiveContent {
|
||||
forRepository {
|
||||
maven {
|
||||
name = 'Sponge'
|
||||
url = 'https://repo.spongepowered.org/repository/maven-public'
|
||||
}
|
||||
}
|
||||
filter {
|
||||
includeGroupAndSubgroups('org.spongepowered')
|
||||
}
|
||||
}
|
||||
|
||||
// If you have mod jar dependencies in ./libs, you can declare them as a repository like so.
|
||||
// See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver
|
||||
@@ -128,6 +143,11 @@ dependencies {
|
||||
// then special handling is done to allow a setup of a vanilla dependency without the use of an external repository.
|
||||
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
||||
|
||||
// Forge 1.21.6+ uses EventBus 7, which shifts most of its runtime validation to compile-time via an annotation processor
|
||||
// to improve performance in production environments. This line is required to enable said compile-time validation
|
||||
// in your development environment, helping you catch issues early.
|
||||
annotationProcessor 'net.minecraftforge:eventbus-validator:7.0-beta.12'
|
||||
|
||||
// Example mod dependency with JEI
|
||||
// The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
|
||||
// compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}"
|
||||
@@ -142,16 +162,13 @@ dependencies {
|
||||
// For more info:
|
||||
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
|
||||
// http://www.gradle.org/docs/current/userguide/dependency_management.html
|
||||
|
||||
// Hack fix for now, force jopt-simple to be exactly 5.0.4 because Mojang ships that version, but some transitive dependencies request 6.0+
|
||||
implementation('net.sf.jopt-simple:jopt-simple:5.0.4') { version { strictly '5.0.4' } }
|
||||
}
|
||||
|
||||
// This block of code expands all declared replace properties in the specified resource targets.
|
||||
// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
|
||||
// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments.
|
||||
// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
|
||||
tasks.named('processResources', ProcessResources).configure {
|
||||
tasks.named('processResources', ProcessResources) {
|
||||
var replaceProperties = [
|
||||
minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range,
|
||||
forge_version: forge_version, forge_version_range: forge_version_range,
|
||||
@@ -167,16 +184,17 @@ tasks.named('processResources', ProcessResources).configure {
|
||||
}
|
||||
|
||||
// Example for how to get properties into the manifest for reading at runtime.
|
||||
tasks.named('jar', Jar).configure {
|
||||
tasks.named('jar', Jar) {
|
||||
manifest {
|
||||
attributes([
|
||||
'Specification-Title' : mod_id,
|
||||
'Specification-Vendor' : mod_authors,
|
||||
'Specification-Version' : '1', // We are version 1 of ourselves
|
||||
'Implementation-Title' : project.name,
|
||||
'Implementation-Version' : project.jar.archiveVersion,
|
||||
'Implementation-Vendor' : mod_authors
|
||||
'Specification-Title' : mod_id,
|
||||
'Specification-Vendor' : mod_authors,
|
||||
'Specification-Version' : '1', // We are version 1 of ourselves
|
||||
'Implementation-Title' : project.name,
|
||||
'Implementation-Version' : project.jar.archiveVersion,
|
||||
'Implementation-Vendor' : mod_authors
|
||||
])
|
||||
// attributes['MixinConfigs'] = "${mod_id}.mixins.json"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,6 +216,9 @@ tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
|
||||
}
|
||||
|
||||
// IntelliJ no longer downloads javadocs and sources by default, this tells Gradle to force IntelliJ to do it.
|
||||
idea.module { downloadJavadoc = downloadSources = true }
|
||||
|
||||
eclipse {
|
||||
// Run everytime eclipse builds the code
|
||||
//autoBuildTasks genEclipseRuns
|
||||
@@ -205,8 +226,7 @@ eclipse {
|
||||
synchronizationTasks 'genEclipseRuns'
|
||||
}
|
||||
|
||||
// Merge the resources and classes into the same directory.
|
||||
// This is done because java expects modules to be in a single directory.
|
||||
// Merge the resources and classes into the same directory, because Java expects modules to be in a single directory.
|
||||
// And if we have it in multiple we have to do performance intensive hacks like having the UnionFileSystem
|
||||
// This will eventually be migrated to ForgeGradle so modders don't need to manually do it. But that is later.
|
||||
sourceSets.each {
|
||||
|
||||
@@ -1,23 +1,30 @@
|
||||
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
|
||||
# Sets default memory used for Gradle commands. Can be overridden by user or command line properties.
|
||||
# This is required to provide enough memory for the Minecraft decompilation process.
|
||||
org.gradle.jvmargs=-Xmx3G
|
||||
org.gradle.daemon=false
|
||||
|
||||
# In the case that Gradle needs to fork to recompile, this will set the memory for that process.
|
||||
systemProp.net.minecraftforge.gradle.repo.recompile.fork=true
|
||||
systemProp.net.minecraftforge.gradle.repo.recompile.fork.args=-Xmx5G
|
||||
|
||||
# Opts-out of ForgeGradle automatically adding mavenCentral(), Forge's maven and MC libs maven to the repositories block
|
||||
systemProp.net.minecraftforge.gradle.repo.attach=false
|
||||
|
||||
|
||||
## Environment Properties
|
||||
|
||||
# The Minecraft version must agree with the Forge version to get a valid artifact
|
||||
minecraft_version=1.21.3
|
||||
minecraft_version=1.21.11
|
||||
# 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.22)
|
||||
minecraft_version_range=[1.21.11,1.22)
|
||||
# The Forge version must agree with the Minecraft version to get a valid artifact
|
||||
forge_version=53.0.25
|
||||
forge_version=61.0.3
|
||||
# The Forge version range can use any version of Forge as bounds or match the loader version range
|
||||
forge_version_range=[0,)
|
||||
forge_version_range=[61,)
|
||||
# The loader version range can only use the major version of Forge/FML as bounds
|
||||
loader_version_range=[0,)
|
||||
loader_version_range=[61,)
|
||||
# The mapping channel to use for mappings.
|
||||
# The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"].
|
||||
# Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin.
|
||||
@@ -35,7 +42,7 @@ loader_version_range=[0,)
|
||||
mapping_channel=parchment
|
||||
# The mapping version to query from the mapping channel.
|
||||
# This must match the format required by the mapping channel.
|
||||
mapping_version=1.21-2024.11.10-1.21.3
|
||||
mapping_version=2025.12.20-1.21.11
|
||||
|
||||
|
||||
## Mod Properties
|
||||
@@ -48,11 +55,11 @@ mod_name=Nugget Mod
|
||||
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
||||
mod_license=MIT
|
||||
# The mod version. See https://semver.org/
|
||||
mod_version=1.2.1
|
||||
mod_version=1.3.1
|
||||
# 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=xyz.sillyangel.nugget
|
||||
mod_group_id=dev.sillyangel.nuggetmod
|
||||
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
|
||||
mod_authors=sillyangel
|
||||
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.
|
||||
|
||||
3
gradle/wrapper/gradle-wrapper.properties
vendored
3
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
22
gradlew
vendored
22
gradlew
vendored
@@ -83,7 +83,8 @@ done
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
# 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
|
||||
@@ -130,10 +131,13 @@ 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.
|
||||
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.
|
||||
@@ -141,7 +145,7 @@ 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=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
@@ -149,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
@@ -198,11 +202,11 @@ fi
|
||||
# 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, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
# 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" \
|
||||
|
||||
20
gradlew.bat
vendored
20
gradlew.bat
vendored
@@ -43,11 +43,11 @@ set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
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.
|
||||
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
|
||||
|
||||
@@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
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.
|
||||
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
|
||||
|
||||
|
||||
@@ -307,8 +307,8 @@
|
||||
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for net.minecraftforge.common.ForgeMod
|
||||
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass net.minecraftforge.forge/net.minecraftforge.common.ForgeMod with TransformingClassLoader[TRANSFORMER]@155829656
|
||||
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader TransformingClassLoader[TRANSFORMER]@155829656 - got SecureModuleClassLoader[LAYER PLUGIN]@92941132
|
||||
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for xyz.sillyangel.nugget.NuggetMod
|
||||
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass nuggetmod/xyz.sillyangel.nugget.NuggetMod with TransformingClassLoader[TRANSFORMER]@155829656
|
||||
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for dev.sillyangel.nuggetmod.NuggetMod
|
||||
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass nuggetmod/dev.sillyangel.nuggetmod.NuggetMod with TransformingClassLoader[TRANSFORMER]@155829656
|
||||
[05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Forge Version package package net.minecraftforge.versions.forge, Forge, version 0.0 from TransformingClassLoader[TRANSFORMER]@155829656
|
||||
[05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge version 53.0.25
|
||||
[05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge spec 0.0
|
||||
@@ -320,10 +320,10 @@
|
||||
[05Jan2025 22:08:43.886] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v53.0.25 Initialized
|
||||
[05Jan2025 22:08:43.965] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file nuggetmod-common.toml for nuggetmod tracking
|
||||
[05Jan2025 22:08:43.998] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for nuggetmod
|
||||
[05Jan2025 22:08:43.998] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.Config to MOD
|
||||
[05Jan2025 22:08:43.998] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing dev.sillyangel.nuggetmod.Config to MOD
|
||||
[05Jan2025 22:08:44.013] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming
|
||||
[05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.datagen.DataGenerators to MOD
|
||||
[05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing xyz.sillyangel.nugget.NuggetMod$ClientModEvents to MOD
|
||||
[05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing datagen.dev.sillyangel.nuggetmod.DataGenerators to MOD
|
||||
[05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing dev.sillyangel.nuggetmod.NuggetMod$ClientModEvents to MOD
|
||||
[05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: -Dio.netty.noUnsafe: false
|
||||
[05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: Java version: 21
|
||||
[05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.theUnsafe: available
|
||||
|
||||
@@ -5,10 +5,13 @@ pluginManagement {
|
||||
name = 'MinecraftForge'
|
||||
url = 'https://maven.minecraftforge.net/'
|
||||
}
|
||||
maven { url = 'https://maven.parchmentmc.org' }
|
||||
maven {
|
||||
name = 'ParchmentMC'
|
||||
url = 'https://maven.parchmentmc.org'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0'
|
||||
}
|
||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.10.0'
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
// 1.21.3 2025-01-05T20:56:27.110625 Tags for minecraft:item mod id nuggetmod
|
||||
4dd3e16112d5950861571bb8b5212983e5192dfc data/minecraft/tags/item/trimmable_armor.json
|
||||
bb7be5aa0b582860d2d8dd7a0f2115ac4dc842a9 data/minecraft/tags/item/trim_materials.json
|
||||
ab6bd31a8063a99913c4a6fc41bde37ff0564389 data/minecraft/tags/item/trim_templates.json
|
||||
bb7be5aa0b582860d2d8dd7a0f2115ac4dc842a9 data/nuggetmod/tags/item/nugget_repairs.json
|
||||
562be55fb606ffa455100bd2a6942846dcd124cb data/nuggetmod/tags/item/transformable_items.json
|
||||
@@ -1,6 +0,0 @@
|
||||
// 1.21.3 2025-01-05T20:56:27.1418921 Registries
|
||||
53aea7bfe12c9e17903617fdc8946ce53057c9da data/nuggetmod/forge/biome_modifier/add_nugget_ore.json
|
||||
12edbe7dddaf2b8379bdf3bc1f3552c83a86e3b2 data/nuggetmod/trim_material/nugget.json
|
||||
c26c02f523d403aa4352b30b1a97a95a69a4d97c data/nuggetmod/trim_pattern/nugget.json
|
||||
8b0873c1ad86c61c7c0dfd0749909cc9982639de data/nuggetmod/worldgen/configured_feature/nugget_ore.json
|
||||
c86e299467433ed0c44ce94a9a75e4352f8ce6ca data/nuggetmod/worldgen/placed_feature/nugget_ore_placed.json
|
||||
@@ -1,5 +0,0 @@
|
||||
// 1.21.3 2025-01-05T20:56:27.127889 Tags for minecraft:block mod id nuggetmod
|
||||
265fffb09f55ddbd810e4aca08e95427b6f8abb8 data/minecraft/tags/block/mineable/pickaxe.json
|
||||
d3afbade112106a4f7dba97fc08964398669700a data/minecraft/tags/block/needs_stone_tool.json
|
||||
768d28c36c35fda7aa9d014ae9d9ce7ba23fdfb8 data/nuggetmod/tags/block/incorrect_for_nugget_tool.json
|
||||
9c48de48f12ecaae54ddd4a48ea1ac229e0bcaa4 data/nuggetmod/tags/block/needs_nugget_tool.json
|
||||
@@ -1,5 +0,0 @@
|
||||
// 1.21.3 2025-01-05T20:56:27.127889 Loot Tables
|
||||
74a43d938ccd280fff25bd66ec0f55a3e2c30ad0 data/nuggetmod/loot_table/blocks/nugget_block.json
|
||||
206de236ad19cf2d06cf21b0f282e5b64bd5918d data/nuggetmod/loot_table/blocks/nugget_deepslate_ore.json
|
||||
d65584c1286a06f15f88db5682372d78e8e0ebf7 data/nuggetmod/loot_table/blocks/nugget_ore.json
|
||||
2b4a937626ec0aa515a8a78663ce0f6142b843a6 data/nuggetmod/loot_table/blocks/raw_nugget_block.json
|
||||
@@ -1,55 +0,0 @@
|
||||
// 1.21.3 2025-01-05T20:56:27.110625 Item Models: nuggetmod
|
||||
90b22d61432e35fb68e2232a3eb76e15d2a77d89 assets/nuggetmod/models/item/nugget.json
|
||||
b8f9c1135f1af8d77201d51866966ba73f3dbbfc assets/nuggetmod/models/item/nugget_armor_trim_smithing_template.json
|
||||
cac221f8a7659366628c3b429c22ebd27f5adadd assets/nuggetmod/models/item/nugget_axe.json
|
||||
dbadf09a9e221788b2cef71600701e4400e7a5ac assets/nuggetmod/models/item/nugget_boots.json
|
||||
7dca863c633a328b682607342061c24fa359317c assets/nuggetmod/models/item/nugget_boots_amethyst_trim.json
|
||||
1dacd5f685c47004a55cbae6d955b2e710b3f07d assets/nuggetmod/models/item/nugget_boots_copper_trim.json
|
||||
d1de5dad49d95556fa2fab70a7890d878200beea assets/nuggetmod/models/item/nugget_boots_diamond_trim.json
|
||||
ae67748e68ad7bbcec748b6ee7f1f4791660ce8e assets/nuggetmod/models/item/nugget_boots_emerald_trim.json
|
||||
a52575c6328635ee70967a31244336ae5a5aa669 assets/nuggetmod/models/item/nugget_boots_gold_trim.json
|
||||
dcb69986d03a024a176d38dfcb495362ffeac193 assets/nuggetmod/models/item/nugget_boots_iron_trim.json
|
||||
0ff4a87f97bbaaa1c4124fc43df140d29082a383 assets/nuggetmod/models/item/nugget_boots_lapis_trim.json
|
||||
cba310d5939725d84f409fb6ea91432495da218b assets/nuggetmod/models/item/nugget_boots_netherite_trim.json
|
||||
6b56d9ec6ca6d379030db32774c9a725e76c7005 assets/nuggetmod/models/item/nugget_boots_quartz_trim.json
|
||||
af0f965c4b451cecbbc056ba5019bcc44ab9ec6f assets/nuggetmod/models/item/nugget_boots_redstone_trim.json
|
||||
277e491adbc77bbf30fb263b1c6b14951f6cd84a assets/nuggetmod/models/item/nugget_chestplate.json
|
||||
afa48d58bfe8a41e52947389eadacf1d54aa201e assets/nuggetmod/models/item/nugget_chestplate_amethyst_trim.json
|
||||
34db4371091135f3d8ea5f9bf60472ac120614d2 assets/nuggetmod/models/item/nugget_chestplate_copper_trim.json
|
||||
e0a4e96ecac9b8664d7b28332ad40b3a976d80d5 assets/nuggetmod/models/item/nugget_chestplate_diamond_trim.json
|
||||
99b4bbeb361c600e1d3136857084094a17e83f89 assets/nuggetmod/models/item/nugget_chestplate_emerald_trim.json
|
||||
1cd1064b3355e6da5b83cb569202962534cea5f1 assets/nuggetmod/models/item/nugget_chestplate_gold_trim.json
|
||||
01f17a408f386d0a9658d5efd184e187616dd40e assets/nuggetmod/models/item/nugget_chestplate_iron_trim.json
|
||||
01ee5bbd07e896aca474564bb64720a97a5f1146 assets/nuggetmod/models/item/nugget_chestplate_lapis_trim.json
|
||||
9fdc651171a846a9c2815002709a33f0919821b2 assets/nuggetmod/models/item/nugget_chestplate_netherite_trim.json
|
||||
2ab1f9773c249568d33a78622d39b9baf7eb193b assets/nuggetmod/models/item/nugget_chestplate_quartz_trim.json
|
||||
15620acb506fa42a1d914768a2d4fca28a1ad4c7 assets/nuggetmod/models/item/nugget_chestplate_redstone_trim.json
|
||||
55eac09e1c7132d02b0aac04c3a8ed8b1777833a assets/nuggetmod/models/item/nugget_helmet.json
|
||||
15d62a07a0a79876c483ed4e9c60f3e474cc8ad0 assets/nuggetmod/models/item/nugget_helmet_amethyst_trim.json
|
||||
000fb83913689a98c5973f78e51219cd9b646ceb assets/nuggetmod/models/item/nugget_helmet_copper_trim.json
|
||||
0d5e6916288fb5a4bca41d87e1f6f02c99300032 assets/nuggetmod/models/item/nugget_helmet_diamond_trim.json
|
||||
ee78e385f9e4ab937298a5e2ad81ebe75a81cb45 assets/nuggetmod/models/item/nugget_helmet_emerald_trim.json
|
||||
1283c96f9f373f7657a8188b69107430d658c51b assets/nuggetmod/models/item/nugget_helmet_gold_trim.json
|
||||
f9e9efc27bcaad6628e0f2bd73bfdb41ed8490d3 assets/nuggetmod/models/item/nugget_helmet_iron_trim.json
|
||||
7e6b4feb55d2e5ddf35ac9a47b2ad2dadba8a0aa assets/nuggetmod/models/item/nugget_helmet_lapis_trim.json
|
||||
032d8a3a745bf6b2931609f60073b527a9e304c7 assets/nuggetmod/models/item/nugget_helmet_netherite_trim.json
|
||||
82fc614cc45ec6d645b943a390d630102f332a59 assets/nuggetmod/models/item/nugget_helmet_quartz_trim.json
|
||||
62a7de8cca1d782c0f8071f66fe9adc90d637228 assets/nuggetmod/models/item/nugget_helmet_redstone_trim.json
|
||||
cc6e0d754901f7397916b947124acf6ba8467153 assets/nuggetmod/models/item/nugget_hoe.json
|
||||
585ab18ac9b18eff5dd487a2c30c3448915dd5cb assets/nuggetmod/models/item/nugget_horse_armor.json
|
||||
33af7bddeab67677dc62cd5e92d5b8973b24106b assets/nuggetmod/models/item/nugget_leggings.json
|
||||
3e5b37dd9163b929d93012d11d2ef7ec968606da assets/nuggetmod/models/item/nugget_leggings_amethyst_trim.json
|
||||
3a0993a40e57bfed0b2bd9818ea191b8a779b30b assets/nuggetmod/models/item/nugget_leggings_copper_trim.json
|
||||
3917c35fd1454de92ae457b1362f98f07a8b8721 assets/nuggetmod/models/item/nugget_leggings_diamond_trim.json
|
||||
93da5f00ac4604464454ca88d23634974f2a904a assets/nuggetmod/models/item/nugget_leggings_emerald_trim.json
|
||||
f2b8f7782a1248c2e8de7eeb981a0e7abcf5cc23 assets/nuggetmod/models/item/nugget_leggings_gold_trim.json
|
||||
c52faa339653807513edd9c61b99e9311df33e30 assets/nuggetmod/models/item/nugget_leggings_iron_trim.json
|
||||
6fe0d511015bb76193f85d598a2db9a73f15c5a6 assets/nuggetmod/models/item/nugget_leggings_lapis_trim.json
|
||||
597e2fb3857aeb6c2a7b4c464c0e2d91b13581a0 assets/nuggetmod/models/item/nugget_leggings_netherite_trim.json
|
||||
d3c9108105a1732366550c88e524fd2ae4a15c7a assets/nuggetmod/models/item/nugget_leggings_quartz_trim.json
|
||||
d5eb4a552e79ff6bfe770e092abfb48e88e58f06 assets/nuggetmod/models/item/nugget_leggings_redstone_trim.json
|
||||
ee757b7f51aa5703ac735ac748f433503c4f2596 assets/nuggetmod/models/item/nugget_music_disc.json
|
||||
1453d89f622ad5616505f248996b1715b196af76 assets/nuggetmod/models/item/nugget_pickaxe.json
|
||||
f67a964a8a74c61df4d090dc5b250ad03bb16d8f assets/nuggetmod/models/item/nugget_shovel.json
|
||||
dcc1dd8bb95c5c088212a9584d952a11ac2a840d assets/nuggetmod/models/item/nugget_sword.json
|
||||
762606d79e485c8a5e4447e8a1236bee89185245 assets/nuggetmod/models/item/raw_nugget.json
|
||||
@@ -1,13 +0,0 @@
|
||||
// 1.21.3 2025-01-05T20:56:27.127889 Block States: nuggetmod
|
||||
e458b67af79198beb28149bb003b81fd70269977 assets/nuggetmod/blockstates/nugget_block.json
|
||||
878193901a69171263432147c8d69dc3ad6a3329 assets/nuggetmod/blockstates/nugget_deepslate_ore.json
|
||||
97b7f829a5952c457a7bd71a23fd2e40c9e41afd assets/nuggetmod/blockstates/nugget_ore.json
|
||||
fc3b3199be08abb9ba378b6500ae96db0336a2ac assets/nuggetmod/blockstates/raw_nugget_block.json
|
||||
5cd8b360f3c316bc790a0a08cca2902f5494ecb1 assets/nuggetmod/models/block/nugget_block.json
|
||||
04a6c3905fc9bebb1701de7bf870efea11648a0e assets/nuggetmod/models/block/nugget_deepslate_ore.json
|
||||
d8685b96ce2399042e685f5a0d52cc6f93aa2f7c assets/nuggetmod/models/block/nugget_ore.json
|
||||
22ddcb7a66f04ae207af491a5e9264556726fec1 assets/nuggetmod/models/block/raw_nugget_block.json
|
||||
87d953ce0211f8d1ae9e2f0411c38e6a937db408 assets/nuggetmod/models/item/nugget_block.json
|
||||
1cbd017c90351ede4f571a9e6efd9b78640fed67 assets/nuggetmod/models/item/nugget_deepslate_ore.json
|
||||
e8d9aff343954c5f248feb0b5fda5d9719aff29e assets/nuggetmod/models/item/nugget_ore.json
|
||||
54f4c1e65c7687038adaf302a6471a1591ec2c2e assets/nuggetmod/models/item/raw_nugget_block.json
|
||||
@@ -1,41 +0,0 @@
|
||||
// 1.21.3 2025-01-05T20:56:27.127889 Recipes
|
||||
0fd5b77716dc45e332dc36b7f60aed900e725668 data/minecraft/advancement/recipes/misc/nugget_armor_trim_smithing_template_smithing_trim.json
|
||||
eee047ea671dd65353f1d8da201bc2436d4df8ce data/minecraft/recipe/nugget_armor_trim_smithing_template_smithing_trim.json
|
||||
1c4efbad060c0d91ce6e6c1cb6d1d1669bbcc6b4 data/nuggetmod/advancement/recipes/combat/nugget_boots.json
|
||||
588a665982f97f016a8945b507f6a03d310f4090 data/nuggetmod/advancement/recipes/combat/nugget_chestplate.json
|
||||
63d4a98bae280da5308f5011f4dce19970e727f9 data/nuggetmod/advancement/recipes/combat/nugget_helmet.json
|
||||
5fd0412d9575823d882ec6e844021f2bdf83dc7c data/nuggetmod/advancement/recipes/combat/nugget_leggings.json
|
||||
587bf7befb4b1be77e7002038b9faf0eb5bb4ce5 data/nuggetmod/advancement/recipes/combat/nugget_sword.json
|
||||
39a320d3e238f524a92dae1eaa1c60d0e45ba296 data/nuggetmod/advancement/recipes/misc/nugget.json
|
||||
8160ae7d8117c0cc293fcd40e22d1072c16ca478 data/nuggetmod/advancement/recipes/misc/nugget_block.json
|
||||
ebf761f6dad07dac9f3ac9f8732d291cf7930611 data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_nugget_deepslate_ore.json
|
||||
e10188670de3a7a815f73a66fc5f4e92a648b51e data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_nugget_ore.json
|
||||
6138abcf020eb5235f574a65048b88a03b8dc057 data/nuggetmod/advancement/recipes/misc/nugget_from_blasting_raw_nugget.json
|
||||
16fc56222bdb61afa3618038ee189f405fd20922 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_nugget_deepslate_ore.json
|
||||
7b9dcb92c1af9c1982292c1efd6b4fb27513b3f5 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_nugget_ore.json
|
||||
762af010e4f2c6dbf4b54f5f7c4575f28b47c524 data/nuggetmod/advancement/recipes/misc/nugget_from_smelting_raw_nugget.json
|
||||
59e41b4b30c51f225ccb673f401839ec7e77fe20 data/nuggetmod/advancement/recipes/misc/raw_nugget.json
|
||||
0eac4876a225ba434ebefcecb2d9a3d5b1af5cc3 data/nuggetmod/advancement/recipes/misc/raw_nugget_block.json
|
||||
a159ddd57f6c263d4862f5ee479f3df3595379d9 data/nuggetmod/advancement/recipes/tools/nugget_axe.json
|
||||
1889633531251f9d32df839f13041a7839569079 data/nuggetmod/advancement/recipes/tools/nugget_hoe.json
|
||||
e6dbb4576802c7009518fe2bc4dbe541f16b6687 data/nuggetmod/advancement/recipes/tools/nugget_pickaxe.json
|
||||
f63988753316f6848707a1bebb9004bff2f6d5e4 data/nuggetmod/advancement/recipes/tools/nugget_shovel.json
|
||||
f18984bdec26f4f333b5ec20dcd09fe9dac918d5 data/nuggetmod/recipe/nugget.json
|
||||
c7c3acba2cdae39001c97944e1a1eae52005bd21 data/nuggetmod/recipe/nugget_axe.json
|
||||
aa4ff76dcf9a17b5d90446ef62241e4c7361e4a9 data/nuggetmod/recipe/nugget_block.json
|
||||
4b405f3dad7ae6b25cf1d2eddfc27ddbe1ce19f6 data/nuggetmod/recipe/nugget_boots.json
|
||||
b3ce51675061ff49c9b94b9f8d15dc87dcf9d089 data/nuggetmod/recipe/nugget_chestplate.json
|
||||
be70886b617dbe8cdcb814a4d2f754fe3abbc659 data/nuggetmod/recipe/nugget_from_blasting_nugget_deepslate_ore.json
|
||||
45cac40fe007c51d5b6e1d197c395975d2655def data/nuggetmod/recipe/nugget_from_blasting_nugget_ore.json
|
||||
5c3110d1dd220a719fc151cc9067a4a53ee690c5 data/nuggetmod/recipe/nugget_from_blasting_raw_nugget.json
|
||||
c21c2f595a958d26505b7615307edc354d890505 data/nuggetmod/recipe/nugget_from_smelting_nugget_deepslate_ore.json
|
||||
33c1f170f1bb2e409858a4953b957abf9c3de9a1 data/nuggetmod/recipe/nugget_from_smelting_nugget_ore.json
|
||||
731c7b164832de8e43bf6e9f900026a43ce5ee1a data/nuggetmod/recipe/nugget_from_smelting_raw_nugget.json
|
||||
421bd212f8c4995d52f9818aa393a18003442ffc data/nuggetmod/recipe/nugget_helmet.json
|
||||
c833522c310026665d6aa35a7d356f977e08b500 data/nuggetmod/recipe/nugget_hoe.json
|
||||
10dbf3cb9b95e5bf98b10b7f2c68c24fb6fe0404 data/nuggetmod/recipe/nugget_leggings.json
|
||||
dc1605410ae247b2a5ee0f94c3914b3c8a6f01a2 data/nuggetmod/recipe/nugget_pickaxe.json
|
||||
9ef92db13ca907ab529a954bf53fe21e2fdd65c3 data/nuggetmod/recipe/nugget_shovel.json
|
||||
9a9aa6724cc4ccc22c3cf0f7fb52b59e91e47215 data/nuggetmod/recipe/nugget_sword.json
|
||||
4788404672bb103c1ac8572be4e1d17db06c31c1 data/nuggetmod/recipe/raw_nugget.json
|
||||
73fcf373c40d2d9c3e8e5d6ccacbac0f4a2efa55 data/nuggetmod/recipe/raw_nugget_block.json
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"parent": "nuggetmod:block/nugget_block"
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"overrides": [
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_quartz_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.1
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_iron_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.2
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_netherite_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_redstone_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.4
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_copper_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_gold_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.6
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_emerald_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_diamond_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.8
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_lapis_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.9
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_boots_amethyst_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"textures": {
|
||||
"layer0": "nuggetmod:item/nugget_boots"
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"overrides": [
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_quartz_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.1
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_iron_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.2
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_netherite_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_redstone_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.4
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_copper_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_gold_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.6
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_emerald_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_diamond_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.8
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_lapis_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.9
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_chestplate_amethyst_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"textures": {
|
||||
"layer0": "nuggetmod:item/nugget_chestplate"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"parent": "nuggetmod:block/nugget_deepslate_ore"
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"overrides": [
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_quartz_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.1
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_iron_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.2
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_netherite_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_redstone_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.4
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_copper_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_gold_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.6
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_emerald_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_diamond_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.8
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_lapis_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.9
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_helmet_amethyst_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"textures": {
|
||||
"layer0": "nuggetmod:item/nugget_helmet"
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"overrides": [
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_quartz_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.1
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_iron_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.2
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_netherite_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_redstone_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.4
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_copper_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_gold_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.6
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_emerald_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_diamond_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.8
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_lapis_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 0.9
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "nuggetmod:item/nugget_leggings_amethyst_trim",
|
||||
"predicate": {
|
||||
"minecraft:trim_type": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"textures": {
|
||||
"layer0": "nuggetmod:item/nugget_leggings"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"parent": "nuggetmod:block/nugget_ore"
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"parent": "nuggetmod:block/raw_nugget_block"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"values": [
|
||||
"nuggetmod:nugget_block",
|
||||
"nuggetmod:raw_nugget_block",
|
||||
"nuggetmod:nugget_ore",
|
||||
"nuggetmod:nugget_deepslate_ore"
|
||||
]
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"values": [
|
||||
"nuggetmod:nugget_deepslate_ore",
|
||||
"nuggetmod:raw_nugget_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"values": [
|
||||
"nuggetmod:nugget_armor_trim_smithing_template"
|
||||
]
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"values": [
|
||||
"nuggetmod:nugget_helmet",
|
||||
"nuggetmod:nugget_chestplate",
|
||||
"nuggetmod:nugget_leggings",
|
||||
"nuggetmod:nugget_boots"
|
||||
]
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"type": "forge:add_features",
|
||||
"biomes": "#minecraft:is_overworld",
|
||||
"features": "nuggetmod:nugget_ore_placed",
|
||||
"step": "underground_ores"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"values": [
|
||||
"nuggetmod:raw_nugget_block",
|
||||
"#minecraft:needs_diamond_tool"
|
||||
]
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"values": [
|
||||
"nuggetmod:nugget",
|
||||
"nuggetmod:raw_nugget",
|
||||
"minecraft:coal",
|
||||
"minecraft:stick",
|
||||
"minecraft:compass"
|
||||
]
|
||||
}
|
||||
32
src/main/java/dev/sillyangel/nuggetmod/Config.java
Normal file
32
src/main/java/dev/sillyangel/nuggetmod/Config.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package dev.sillyangel.nuggetmod;
|
||||
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.common.ForgeConfigSpec;
|
||||
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.event.config.ModConfigEvent;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class Config
|
||||
{
|
||||
private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
|
||||
|
||||
static final ForgeConfigSpec SPEC = BUILDER.build();
|
||||
|
||||
public static Set<Item> items;
|
||||
|
||||
private static boolean validateItemName(final Object obj)
|
||||
{
|
||||
return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(Identifier.tryParse(itemName));
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
static void onLoad(final ModConfigEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,73 +1,68 @@
|
||||
package xyz.sillyangel.nugget;
|
||||
|
||||
import com.mojang.logging.LogUtils;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
|
||||
import net.minecraftforge.event.server.ServerStartingEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.ModLoadingContext;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.config.ModConfig;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import org.slf4j.Logger;
|
||||
import xyz.sillyangel.nugget.item.ModCreativeModeTabs;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import xyz.sillyangel.nugget.block.ModBlocks;
|
||||
import xyz.sillyangel.nugget.sound.ModSounds;
|
||||
|
||||
// Very important Comment
|
||||
// The value here should match an entry in the META-INF/mods.toml file
|
||||
@Mod(NuggetMod.MOD_ID)
|
||||
public class NuggetMod {
|
||||
// Define mod id in a common place for everything to reference
|
||||
public static final String MOD_ID = "nuggetmod";
|
||||
// Directly reference a slf4j logger
|
||||
public static final Logger LOGGER = LogUtils.getLogger();
|
||||
|
||||
public NuggetMod() {
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
modEventBus.addListener(this::commonSetup);
|
||||
// Register ourselves for server and other game events we are interested in
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
|
||||
ModCreativeModeTabs.register(modEventBus);
|
||||
|
||||
ModItems.register(modEventBus);
|
||||
ModBlocks.register(modEventBus);
|
||||
|
||||
ModSounds.register(modEventBus);
|
||||
|
||||
// Register the item to a creative tab
|
||||
modEventBus.addListener(this::addCreative);
|
||||
// Register our mod's ForgeConfigSpec so that Forge can create and load the config file for us
|
||||
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC);
|
||||
}
|
||||
|
||||
private void commonSetup(final FMLCommonSetupEvent event) {
|
||||
|
||||
}
|
||||
|
||||
// Add the example block item to the building blocks tab
|
||||
private void addCreative(BuildCreativeModeTabContentsEvent event) {
|
||||
|
||||
}
|
||||
|
||||
// You can use SubscribeEvent and let the Event Bus discover methods to call
|
||||
@SubscribeEvent
|
||||
public void onServerStarting(ServerStartingEvent event) {
|
||||
|
||||
}
|
||||
|
||||
// You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent
|
||||
@Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
|
||||
public static class ClientModEvents {
|
||||
@SubscribeEvent
|
||||
public static void onClientSetup(FMLClientSetupEvent event) {
|
||||
|
||||
}
|
||||
}
|
||||
package dev.sillyangel.nuggetmod;
|
||||
|
||||
import com.mojang.logging.LogUtils;
|
||||
import dev.sillyangel.nuggetmod.villager.ModVillagers;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
|
||||
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.config.ModConfig;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import org.slf4j.Logger;
|
||||
import dev.sillyangel.nuggetmod.item.ModCreativeModeTabs;
|
||||
import dev.sillyangel.nuggetmod.item.ModItems;
|
||||
import dev.sillyangel.nuggetmod.block.ModBlocks;
|
||||
import dev.sillyangel.nuggetmod.sound.ModSounds;
|
||||
|
||||
// Very important Comment
|
||||
// The value here should match an entry in the META-INF/mods.toml file
|
||||
@Mod(NuggetMod.MOD_ID)
|
||||
public class NuggetMod {
|
||||
// Define mod id in a common place for everything to reference
|
||||
public static final String MOD_ID = "nuggetmod";
|
||||
// Directly reference a slf4j logger
|
||||
public static final Logger LOGGER = LogUtils.getLogger();
|
||||
|
||||
public NuggetMod(FMLJavaModLoadingContext context) {
|
||||
var modBusGroup = context.getModBusGroup();
|
||||
|
||||
// Register the commonSetup method for modloading
|
||||
FMLCommonSetupEvent.getBus(modBusGroup).addListener(this::commonSetup);
|
||||
|
||||
// Register the Deferred Register to the mod event bus so blocks get registered
|
||||
ModBlocks.register(modBusGroup);
|
||||
// Register the Deferred Register to the mod event bus so items get registered
|
||||
ModItems.register(modBusGroup);
|
||||
// Register the Deferred Register to the mod event bus so tabs get registered
|
||||
ModCreativeModeTabs.register(modBusGroup);
|
||||
// Register the Deferred Register to the mod event bus so sounds get registered
|
||||
ModSounds.register(modBusGroup);
|
||||
//
|
||||
ModVillagers.register(modBusGroup);
|
||||
// Register the item to a creative tab
|
||||
BuildCreativeModeTabContentsEvent.BUS.addListener(this::addCreative);
|
||||
|
||||
// Register our mod's ForgeConfigSpec so that Forge can create and load the config file for us
|
||||
context.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
|
||||
}
|
||||
|
||||
private void commonSetup(final FMLCommonSetupEvent event) {
|
||||
|
||||
}
|
||||
|
||||
// Add the example block item to the building blocks tab
|
||||
private void addCreative(BuildCreativeModeTabContentsEvent event) {
|
||||
|
||||
}
|
||||
|
||||
// You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent
|
||||
@Mod.EventBusSubscriber(modid = MOD_ID, value = Dist.CLIENT)
|
||||
public static class ClientModEvents {
|
||||
@SubscribeEvent
|
||||
public static void onClientSetup(FMLClientSetupEvent event) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,60 +1,60 @@
|
||||
package xyz.sillyangel.nugget.block;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import net.minecraft.util.valueproviders.UniformInt;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.DropExperienceBlock;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ModBlocks {
|
||||
public static final DeferredRegister<Block> BLOCKS =
|
||||
DeferredRegister.create(ForgeRegistries.BLOCKS, NuggetMod.MOD_ID);
|
||||
|
||||
public static final RegistryObject<Block> NUGGET_BLOCK = registerBlock("nugget_block",
|
||||
() -> new Block(BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_block")))
|
||||
.strength(4f).requiresCorrectToolForDrops().sound(SoundType.AMETHYST)));
|
||||
|
||||
public static final RegistryObject<Block> RAW_NUGGET_BLOCK = registerBlock("raw_nugget_block",
|
||||
() -> new Block(BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "raw_nugget_block")))
|
||||
.strength(3f).requiresCorrectToolForDrops()));
|
||||
// ores
|
||||
public static final RegistryObject<Block> NUGGET_ORE = registerBlock("nugget_ore",
|
||||
() -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_ore")))
|
||||
.strength(4f).requiresCorrectToolForDrops()));
|
||||
|
||||
public static final RegistryObject<Block> NUGGET_DEEPSLATE_ORE = registerBlock("nugget_deepslate_ore",
|
||||
() -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_deepslate_ore")))
|
||||
.strength(5f).requiresCorrectToolForDrops().sound(SoundType.DEEPSLATE)));
|
||||
|
||||
private static <T extends Block> RegistryObject<T> registerBlock(String name, Supplier<T> block) {
|
||||
RegistryObject<T> toReturn = BLOCKS.register(name, block);
|
||||
registerBlockItem(name, toReturn);
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
private static <T extends Block> void registerBlockItem(String name, RegistryObject<T> block) {
|
||||
ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)))));
|
||||
}
|
||||
|
||||
public static void register(IEventBus eventBus) {
|
||||
BLOCKS.register(eventBus);
|
||||
}
|
||||
package dev.sillyangel.nuggetmod.block;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.item.ModItems;
|
||||
import net.minecraft.util.valueproviders.UniformInt;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.DropExperienceBlock;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraftforge.eventbus.api.bus.BusGroup;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ModBlocks {
|
||||
public static final DeferredRegister<Block> BLOCKS =
|
||||
DeferredRegister.create(ForgeRegistries.BLOCKS, NuggetMod.MOD_ID);
|
||||
|
||||
public static final RegistryObject<Block> NUGGET_BLOCK = registerBlock("nugget_block",
|
||||
() -> new Block(BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_block")))
|
||||
.strength(4f).requiresCorrectToolForDrops().sound(SoundType.AMETHYST)));
|
||||
|
||||
public static final RegistryObject<Block> RAW_NUGGET_BLOCK = registerBlock("raw_nugget_block",
|
||||
() -> new Block(BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "raw_nugget_block")))
|
||||
.strength(3f).requiresCorrectToolForDrops()));
|
||||
// ores
|
||||
public static final RegistryObject<Block> NUGGET_ORE = registerBlock("nugget_ore",
|
||||
() -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_ore")))
|
||||
.strength(4f).requiresCorrectToolForDrops()));
|
||||
|
||||
public static final RegistryObject<Block> NUGGET_DEEPSLATE_ORE = registerBlock("nugget_deepslate_ore",
|
||||
() -> new DropExperienceBlock(UniformInt.of(2, 4), BlockBehaviour.Properties.of()
|
||||
.setId(ResourceKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_deepslate_ore")))
|
||||
.strength(5f).requiresCorrectToolForDrops().sound(SoundType.DEEPSLATE)));
|
||||
|
||||
private static <T extends Block> RegistryObject<T> registerBlock(String name, Supplier<T> block) {
|
||||
RegistryObject<T> toReturn = BLOCKS.register(name, block);
|
||||
registerBlockItem(name, toReturn);
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
private static <T extends Block> void registerBlockItem(String name, RegistryObject<T> block) {
|
||||
ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name)))));
|
||||
}
|
||||
|
||||
public static void register(BusGroup busGroup) {
|
||||
BLOCKS.register(busGroup);
|
||||
}
|
||||
}
|
||||
109
src/main/java/dev/sillyangel/nuggetmod/event/ModEvents.java
Normal file
109
src/main/java/dev/sillyangel/nuggetmod/event/ModEvents.java
Normal file
@@ -0,0 +1,109 @@
|
||||
package dev.sillyangel.nuggetmod.event;
|
||||
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.item.ModItems;
|
||||
import dev.sillyangel.nuggetmod.villager.ModVillagers;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import net.minecraft.world.entity.npc.villager.VillagerProfession;
|
||||
import net.minecraft.world.entity.npc.villager.VillagerTrades;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.trading.ItemCost;
|
||||
import net.minecraft.world.item.trading.MerchantOffer;
|
||||
import net.minecraftforge.event.village.VillagerTradesEvent;
|
||||
import net.minecraftforge.event.village.WandererTradesEvent;
|
||||
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID)
|
||||
public class ModEvents {
|
||||
|
||||
@SubscribeEvent
|
||||
public static void addCustomTrades(VillagerTradesEvent event) {
|
||||
// Add trades to vanilla FARMER profession
|
||||
if(event.getType() == VillagerProfession.FARMER) {
|
||||
Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades();
|
||||
|
||||
trades.get(1).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 3),
|
||||
new ItemStack(ModItems.NUGGET.get(), 8), 7, 2, 0.04f));
|
||||
}
|
||||
|
||||
// Add trades to custom NUGGETER profession
|
||||
if(event.getType().equals(ModVillagers.NUGGETER_KEY)) {
|
||||
Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades();
|
||||
|
||||
// Level 1 trades
|
||||
trades.get(1).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 5),
|
||||
new ItemStack(ModItems.NUGGET.get(), 20), 4, 7, 0.04f));
|
||||
|
||||
trades.get(1).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.DIAMOND, 2),
|
||||
new ItemStack(ModItems.RAW_NUGGET.get(), 12), 6, 5, 0.05f));
|
||||
|
||||
// Level 2 trades
|
||||
trades.get(2).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.GOLD_INGOT, 8),
|
||||
new ItemStack(ModItems.NUGGET_SWORD.get(), 1), 3, 10, 0.05f));
|
||||
|
||||
trades.get(2).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 10),
|
||||
new ItemStack(ModItems.NUGGET_PICKAXE.get(), 1), 3, 10, 0.05f));
|
||||
|
||||
// Level 3 trades
|
||||
trades.get(3).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 15),
|
||||
new ItemStack(ModItems.NUGGET_HELMET.get(), 1), 2, 15, 0.05f));
|
||||
|
||||
trades.get(3).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 20),
|
||||
new ItemStack(ModItems.NUGGET_CHESTPLATE.get(), 1), 2, 15, 0.05f));
|
||||
|
||||
// Level 4 trades
|
||||
trades.get(4).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.DIAMOND, 5),
|
||||
new ItemStack(ModItems.NUGGET_LEGGINGS.get(), 1), 2, 20, 0.05f));
|
||||
|
||||
trades.get(4).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 12),
|
||||
new ItemStack(ModItems.NUGGET_BOOTS.get(), 1), 2, 20, 0.05f));
|
||||
|
||||
// Level 5 trades (Master)
|
||||
trades.get(5).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 30),
|
||||
new ItemStack(ModItems.NUGGET_HORSE_ARMOR.get(), 1), 1, 30, 0.1f));
|
||||
|
||||
trades.get(5).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.DIAMOND, 10),
|
||||
new ItemStack(ModItems.NUGGET_SMITHING_TEMPLATE.get(), 1), 1, 30, 0.1f));
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void addWanderingTrades(WandererTradesEvent event) {
|
||||
List<WandererTradesEvent.Pool> pools = event.getPools();
|
||||
|
||||
if (pools.size() >= 1) {
|
||||
// Add generic wandering trader trades (first pool)
|
||||
List<VillagerTrades.ItemListing> genericTrades = pools.get(0).getEntries();
|
||||
genericTrades.add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 12),
|
||||
new ItemStack(ModItems.NUGGET.get(), 3), 2, 8, 0.2f));
|
||||
}
|
||||
|
||||
if (pools.size() >= 2) {
|
||||
// Add rare wandering trader trades (second pool)
|
||||
List<VillagerTrades.ItemListing> rareTrades = pools.get(1).getEntries();
|
||||
rareTrades.add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.DIAMOND, 8),
|
||||
new ItemStack(ModItems.NUGGET_MUSIC_DISC.get(), 1), 1, 12, 0.2f));
|
||||
|
||||
rareTrades.add((pTrader, pRandom, pLevel) -> new MerchantOffer(
|
||||
new ItemCost(Items.EMERALD, 25),
|
||||
new ItemStack(ModItems.NUGGET_SMITHING_TEMPLATE.get(), 1), 1, 12, 0.2f));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package dev.sillyangel.nuggetmod.item;
|
||||
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.util.ModTags;
|
||||
import net.minecraft.util.Util;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.world.item.equipment.ArmorMaterial;
|
||||
import net.minecraft.world.item.equipment.ArmorType;
|
||||
import net.minecraft.world.item.equipment.EquipmentAsset;
|
||||
|
||||
import java.util.EnumMap;
|
||||
|
||||
public class ModArmorMaterials {
|
||||
public static final ResourceKey<EquipmentAsset> NUGGET_EQUIPMENT_ASSET =
|
||||
ResourceKey.create(ResourceKey.createRegistryKey(Identifier.withDefaultNamespace("equipment_asset")),
|
||||
Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"));
|
||||
|
||||
public static final ArmorMaterial NUGGET_ARMOR_MATERIAL = new ArmorMaterial(1200, Util.make(new EnumMap<>(ArmorType.class),
|
||||
attribute -> {
|
||||
attribute.put(ArmorType.BOOTS, 5);
|
||||
attribute.put(ArmorType.LEGGINGS, 7);
|
||||
attribute.put(ArmorType.CHESTPLATE, 9);
|
||||
attribute.put(ArmorType.HELMET, 5);
|
||||
attribute.put(ArmorType.BODY, 11);
|
||||
}), 20, SoundEvents.ARMOR_EQUIP_NETHERITE,
|
||||
4f, 0.1f, ModTags.Items.NUGGET_REPAIRS, NUGGET_EQUIPMENT_ASSET);
|
||||
}
|
||||
|
||||
@@ -1,59 +1,60 @@
|
||||
package xyz.sillyangel.nugget.item;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.block.ModBlocks;
|
||||
|
||||
public class ModCreativeModeTabs {
|
||||
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS =
|
||||
DeferredRegister.create(Registries.CREATIVE_MODE_TAB, NuggetMod.MOD_ID);
|
||||
|
||||
public static final RegistryObject<CreativeModeTab> NUGGET_ITEMS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_items_tab",
|
||||
() -> CreativeModeTab.builder().icon(() -> new ItemStack(ModItems.NUGGET.get()))
|
||||
.title(Component.translatable("creativetab.nuggetmod.nugget_items"))
|
||||
.displayItems((itemDisplayParameters, output) -> {
|
||||
output.accept(ModItems.NUGGET.get());
|
||||
output.accept(ModItems.RAW_NUGGET.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_SWORD.get());
|
||||
output.accept(ModItems.NUGGET_PICKAXE.get());
|
||||
output.accept(ModItems.NUGGET_SHOVEL.get());
|
||||
output.accept(ModItems.NUGGET_AXE.get());
|
||||
output.accept(ModItems.NUGGET_HOE.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_HELMET.get());
|
||||
output.accept(ModItems.NUGGET_CHESTPLATE.get());
|
||||
output.accept(ModItems.NUGGET_LEGGINGS.get());
|
||||
output.accept(ModItems.NUGGET_BOOTS.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_HORSE_ARMOR.get());
|
||||
output.accept(ModItems.NUGGET_SMITHING_TEMPLATE.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_MUSIC_DISC.get());
|
||||
|
||||
}).build());
|
||||
|
||||
public static final RegistryObject<CreativeModeTab> NUGGET_BLOCKS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_blocks_tab",
|
||||
() -> CreativeModeTab.builder().icon(() -> new ItemStack(ModBlocks.NUGGET_BLOCK.get()))
|
||||
.withTabsBefore(NUGGET_ITEMS_TAB.getId())
|
||||
.title(Component.translatable("creativetab.nuggetmod.nugget_blocks"))
|
||||
.displayItems((itemDisplayParameters, output) -> {
|
||||
output.accept(ModBlocks.NUGGET_BLOCK.get());
|
||||
output.accept(ModBlocks.RAW_NUGGET_BLOCK.get());
|
||||
output.accept(ModBlocks.NUGGET_ORE.get());
|
||||
output.accept(ModBlocks.NUGGET_DEEPSLATE_ORE.get());
|
||||
}).build());
|
||||
|
||||
|
||||
|
||||
|
||||
public static void register(IEventBus eventBus) {
|
||||
CREATIVE_MODE_TABS.register(eventBus);
|
||||
}
|
||||
}
|
||||
package dev.sillyangel.nuggetmod.item;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.eventbus.api.bus.BusGroup;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.block.ModBlocks;
|
||||
|
||||
public class ModCreativeModeTabs {
|
||||
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS =
|
||||
DeferredRegister.create(Registries.CREATIVE_MODE_TAB, NuggetMod.MOD_ID);
|
||||
|
||||
public static final RegistryObject<CreativeModeTab> NUGGET_ITEMS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_items_tab",
|
||||
() -> CreativeModeTab.builder().icon(() -> new ItemStack(ModItems.NUGGET.get()))
|
||||
.title(Component.translatable("creativetab.nuggetmod.nugget_items"))
|
||||
.displayItems((itemDisplayParameters, output) -> {
|
||||
output.accept(ModItems.NUGGET.get());
|
||||
output.accept(ModItems.RAW_NUGGET.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_SWORD.get());
|
||||
output.accept(ModItems.NUGGET_PICKAXE.get());
|
||||
output.accept(ModItems.NUGGET_SHOVEL.get());
|
||||
output.accept(ModItems.NUGGET_AXE.get());
|
||||
output.accept(ModItems.NUGGET_HOE.get());
|
||||
output.accept(ModBlocks.NUGGET_BLOCK.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_HELMET.get());
|
||||
output.accept(ModItems.NUGGET_CHESTPLATE.get());
|
||||
output.accept(ModItems.NUGGET_LEGGINGS.get());
|
||||
output.accept(ModItems.NUGGET_BOOTS.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_HORSE_ARMOR.get());
|
||||
output.accept(ModItems.NUGGET_SMITHING_TEMPLATE.get());
|
||||
|
||||
output.accept(ModItems.NUGGET_MUSIC_DISC.get());
|
||||
|
||||
}).build());
|
||||
|
||||
public static final RegistryObject<CreativeModeTab> NUGGET_BLOCKS_TAB = CREATIVE_MODE_TABS.register("nuggetmod_blocks_tab",
|
||||
() -> CreativeModeTab.builder().icon(() -> new ItemStack(ModBlocks.NUGGET_BLOCK.get()))
|
||||
.withTabsBefore(NUGGET_ITEMS_TAB.getId())
|
||||
.title(Component.translatable("creativetab.nuggetmod.nugget_blocks"))
|
||||
.displayItems((itemDisplayParameters, output) -> {
|
||||
output.accept(ModBlocks.NUGGET_BLOCK.get());
|
||||
output.accept(ModBlocks.RAW_NUGGET_BLOCK.get());
|
||||
output.accept(ModBlocks.NUGGET_ORE.get());
|
||||
output.accept(ModBlocks.NUGGET_DEEPSLATE_ORE.get());
|
||||
}).build());
|
||||
|
||||
|
||||
|
||||
|
||||
public static void register(BusGroup busGroup) {
|
||||
CREATIVE_MODE_TABS.register(busGroup);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package xyz.sillyangel.nugget.item;
|
||||
|
||||
import net.minecraft.world.food.FoodProperties;
|
||||
|
||||
public class ModFoodProperties {
|
||||
public static final FoodProperties Nugget = new FoodProperties.Builder().nutrition(5).saturationModifier(0.5f)
|
||||
.build();
|
||||
}
|
||||
package dev.sillyangel.nuggetmod.item;
|
||||
|
||||
import net.minecraft.world.food.FoodProperties;
|
||||
|
||||
public class ModFoodProperties {
|
||||
public static final FoodProperties Nugget = new FoodProperties.Builder().nutrition(5).saturationModifier(0.5f)
|
||||
.build();
|
||||
}
|
||||
101
src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java
Normal file
101
src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java
Normal file
@@ -0,0 +1,101 @@
|
||||
package dev.sillyangel.nuggetmod.item;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.item.equipment.ArmorType;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import net.minecraftforge.eventbus.api.bus.BusGroup;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ShovelItem;
|
||||
import net.minecraft.world.item.AxeItem;
|
||||
import net.minecraft.world.item.HoeItem;
|
||||
import net.minecraft.world.item.SmithingTemplateItem;
|
||||
import dev.sillyangel.nuggetmod.sound.ModSounds;
|
||||
|
||||
|
||||
public class ModItems {
|
||||
public static final DeferredRegister<Item> ITEMS =
|
||||
DeferredRegister.create(ForgeRegistries.ITEMS, NuggetMod.MOD_ID);
|
||||
|
||||
public static final RegistryObject<Item> NUGGET = ITEMS.register("nugget",
|
||||
() -> new Item(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget")))
|
||||
.food(ModFoodProperties.Nugget)));
|
||||
|
||||
public static final RegistryObject<Item> RAW_NUGGET = ITEMS.register("raw_nugget",
|
||||
() -> new Item(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "raw_nugget")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_SWORD = ITEMS.register("nugget_sword",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_sword")))
|
||||
.sword(ModToolTiers.NUGGET, 3.0F, -2.4F)));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_PICKAXE = ITEMS.register("nugget_pickaxe",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_pickaxe")))
|
||||
.pickaxe(ModToolTiers.NUGGET, 1.0F, -2.8F)));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_SHOVEL = ITEMS.register("nugget_shovel",
|
||||
() -> new ShovelItem(ModToolTiers.NUGGET, 1.5f, -3.0f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_shovel")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_AXE = ITEMS.register("nugget_axe",
|
||||
() -> new AxeItem(ModToolTiers.NUGGET, 6, -3.2f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_axe")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_HOE = ITEMS.register("nugget_hoe",
|
||||
() -> new HoeItem(ModToolTiers.NUGGET, 0, -3.0f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_hoe")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_SPEAR = ITEMS.register("nugget_sword",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_sword")))
|
||||
.sword(ModToolTiers.NUGGET, 3.0F, -1F)));
|
||||
|
||||
// armor things
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_HELMET = ITEMS.register("nugget_helmet",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_helmet")))
|
||||
.humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.HELMET)));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_CHESTPLATE = ITEMS.register("nugget_chestplate",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_chestplate")))
|
||||
.humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.CHESTPLATE)));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_LEGGINGS = ITEMS.register("nugget_leggings",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_leggings")))
|
||||
.humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.LEGGINGS)));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_BOOTS = ITEMS.register("nugget_boots",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_boots")))
|
||||
.humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.BOOTS)));
|
||||
|
||||
// horse armor
|
||||
public static final RegistryObject<Item> NUGGET_HORSE_ARMOR = ITEMS.register("nugget_horse_armor",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_horse_armor")))
|
||||
.horseArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL)
|
||||
.stacksTo(1)));
|
||||
// smithing temp
|
||||
public static final RegistryObject<Item> NUGGET_SMITHING_TEMPLATE = ITEMS.register("nugget_armor_trim_smithing_template",
|
||||
() -> SmithingTemplateItem.createArmorTrimTemplate(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_armor_trim_smithing_template")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_MUSIC_DISC = ITEMS.register("nugget_music_disc",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_music_disc")))
|
||||
.jukeboxPlayable(ModSounds.NUGGET_THEME_KEY).stacksTo(1)));
|
||||
|
||||
|
||||
public static void register(BusGroup busGroup) {
|
||||
ITEMS.register(busGroup);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package xyz.sillyangel.nugget.item;
|
||||
|
||||
import net.minecraft.world.item.ToolMaterial;
|
||||
import xyz.sillyangel.nugget.util.ModTags;
|
||||
|
||||
public class ModToolTiers {
|
||||
public static final ToolMaterial NUGGET = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL,
|
||||
1500, 4.5f, 3.5f, 22, ModTags.Items.NUGGET_REPAIRS);
|
||||
}
|
||||
package dev.sillyangel.nuggetmod.item;
|
||||
|
||||
import net.minecraft.world.item.ToolMaterial;
|
||||
import dev.sillyangel.nuggetmod.util.ModTags;
|
||||
|
||||
public class ModToolTiers {
|
||||
public static final ToolMaterial NUGGET = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL,
|
||||
1500, 8f, 3.5f, 22, ModTags.Items.NUGGET_REPAIRS);
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
package xyz.sillyangel.nugget.sound;
|
||||
package dev.sillyangel.nuggetmod.sound;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.item.JukeboxSong;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.bus.BusGroup;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
@@ -18,14 +18,14 @@ public class ModSounds {
|
||||
|
||||
public static final RegistryObject<SoundEvent> NUGGET_THEME = registerSoundEvent("nugget_theme");
|
||||
public static final ResourceKey<JukeboxSong> NUGGET_THEME_KEY = ResourceKey.create(Registries.JUKEBOX_SONG,
|
||||
ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_theme"));
|
||||
Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_theme"));
|
||||
|
||||
|
||||
|
||||
private static RegistryObject<SoundEvent> registerSoundEvent(String name) {
|
||||
return SOUND_EVENT.register(name, () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)));
|
||||
return SOUND_EVENT.register(name, () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name)));
|
||||
}
|
||||
public static void register(IEventBus eventBus) {
|
||||
SOUND_EVENT.register(eventBus);
|
||||
public static void register(BusGroup busGroup) {
|
||||
SOUND_EVENT.register(busGroup);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package dev.sillyangel.nuggetmod.trim;
|
||||
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.item.ModArmorMaterials;
|
||||
import net.minecraft.util.Util;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.worldgen.BootstrapContext;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.network.chat.TextColor;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.item.equipment.trim.MaterialAssetGroup;
|
||||
import net.minecraft.world.item.equipment.trim.TrimMaterial;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class ModTrimMaterials {
|
||||
private static final Identifier NUGGET_LOCATION = Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget");
|
||||
|
||||
public static final ResourceKey<TrimMaterial> NUGGET =
|
||||
ResourceKey.create(Registries.TRIM_MATERIAL, NUGGET_LOCATION);
|
||||
|
||||
public static void bootstrap(BootstrapContext<TrimMaterial> context) {
|
||||
register(context, NUGGET, NUGGET_LOCATION, Style.EMPTY.withColor(TextColor.parseColor("#f9b042").getOrThrow()));
|
||||
}
|
||||
|
||||
private static void register(BootstrapContext<TrimMaterial> context, ResourceKey<TrimMaterial> trimKey,
|
||||
Identifier assetId, Style style) {
|
||||
MaterialAssetGroup.AssetInfo assetInfo = new MaterialAssetGroup.AssetInfo(assetId.getPath());
|
||||
TrimMaterial trimmaterial = new TrimMaterial(
|
||||
new MaterialAssetGroup(assetInfo, Map.of(ModArmorMaterials.NUGGET_EQUIPMENT_ASSET, assetInfo)),
|
||||
Component.translatable(Util.makeDescriptionId("trim_material", assetId)).withStyle(style));
|
||||
context.register(trimKey, trimmaterial);
|
||||
}
|
||||
}
|
||||
@@ -1,28 +1,28 @@
|
||||
package xyz.sillyangel.nugget.trim;
|
||||
package dev.sillyangel.nuggetmod.trim;
|
||||
|
||||
import net.minecraft.world.item.equipment.trim.TrimPattern;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import net.minecraft.Util;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.item.ModItems;
|
||||
import net.minecraft.util.Util;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.worldgen.BootstrapContext;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public class ModTrimPatterns {
|
||||
public static final ResourceKey<TrimPattern> NUGGET = ResourceKey.create(Registries.TRIM_PATTERN,
|
||||
ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"));
|
||||
private static final Identifier NUGGET_LOCATION = Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget");
|
||||
|
||||
public static final ResourceKey<TrimPattern> NUGGET = ResourceKey.create(Registries.TRIM_PATTERN, NUGGET_LOCATION);
|
||||
|
||||
public static void bootstrap(BootstrapContext<TrimPattern> context) {
|
||||
register(context, ModItems.NUGGET_SMITHING_TEMPLATE.get(), NUGGET);
|
||||
register(context, ModItems.NUGGET_SMITHING_TEMPLATE.get(), NUGGET, NUGGET_LOCATION);
|
||||
}
|
||||
|
||||
private static void register(BootstrapContext<TrimPattern> context, Item item, ResourceKey<TrimPattern> key) {
|
||||
TrimPattern trimPattern = new TrimPattern(key.location(), ForgeRegistries.ITEMS.getHolder(item).get(),
|
||||
Component.translatable(Util.makeDescriptionId("trim_pattern", key.location())), false);
|
||||
private static void register(BootstrapContext<TrimPattern> context, Item item, ResourceKey<TrimPattern> key, Identifier assetId) {
|
||||
TrimPattern trimPattern = new TrimPattern(assetId,
|
||||
Component.translatable(Util.makeDescriptionId("trim_pattern", assetId)), false);
|
||||
context.register(key, trimPattern);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package xyz.sillyangel.nugget.util;
|
||||
package dev.sillyangel.nuggetmod.util;
|
||||
|
||||
public class ModItemProperites {
|
||||
// i dont know what to put here?!
|
||||
@@ -1,29 +1,29 @@
|
||||
package xyz.sillyangel.nugget.util;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
public class ModTags {
|
||||
public static class Blocks {
|
||||
public static final TagKey<Block> NEEDS_NUGGET_TOOL = createTag("needs_nugget_tool");
|
||||
public static final TagKey<Block> INCORRECT_FOR_NUGGET_TOOL = createTag("incorrect_for_nugget_tool");
|
||||
|
||||
private static TagKey<Block> createTag(String name) {
|
||||
return BlockTags.create(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
}
|
||||
}
|
||||
|
||||
public static class Items {
|
||||
public static final TagKey<Item> TRANSFORMABLE_ITEMS = createTag("transformable_items");
|
||||
public static final TagKey<Item> NUGGET_REPAIRS = createTag("nugget_repairs");
|
||||
|
||||
private static TagKey<Item> createTag(String name) {
|
||||
return ItemTags.create(ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
}
|
||||
}
|
||||
package dev.sillyangel.nuggetmod.util;
|
||||
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
public class ModTags {
|
||||
public static class Blocks {
|
||||
public static final TagKey<Block> NEEDS_NUGGET_TOOL = createTag("needs_nugget_tool");
|
||||
public static final TagKey<Block> INCORRECT_FOR_NUGGET_TOOL = createTag("incorrect_for_nugget_tool");
|
||||
|
||||
private static TagKey<Block> createTag(String name) {
|
||||
return BlockTags.create(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
}
|
||||
}
|
||||
|
||||
public static class Items {
|
||||
public static final TagKey<Item> TRANSFORMABLE_ITEMS = createTag("transformable_items");
|
||||
public static final TagKey<Item> NUGGET_REPAIRS = createTag("nugget_repairs");
|
||||
|
||||
private static TagKey<Item> createTag(String name) {
|
||||
return ItemTags.create(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package dev.sillyangel.nuggetmod.villager;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.block.ModBlocks;
|
||||
import dev.sillyangel.nuggetmod.sound.ModSounds;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.entity.ai.village.poi.PoiType;
|
||||
import net.minecraft.world.entity.npc.villager.VillagerProfession;
|
||||
import net.minecraftforge.eventbus.api.bus.BusGroup;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class ModVillagers {
|
||||
public static final DeferredRegister<PoiType> POI_TYPES =
|
||||
DeferredRegister.create(ForgeRegistries.POI_TYPES, NuggetMod.MOD_ID);
|
||||
public static final DeferredRegister<VillagerProfession> VILLAGER_PROFESSIONS =
|
||||
DeferredRegister.create(ForgeRegistries.VILLAGER_PROFESSIONS, NuggetMod.MOD_ID);
|
||||
|
||||
public static final ResourceKey<VillagerProfession> NUGGETER_KEY =
|
||||
ResourceKey.create(Registries.VILLAGER_PROFESSION, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nuggeter"));
|
||||
|
||||
public static final RegistryObject<PoiType> NUGGETER_POI = POI_TYPES.register("nuggeter_poi",
|
||||
() -> new PoiType(ImmutableSet.copyOf(ModBlocks.NUGGET_BLOCK.get().getStateDefinition().getPossibleStates()),
|
||||
1, 1));
|
||||
|
||||
public static final RegistryObject<VillagerProfession> NUGGETER = VILLAGER_PROFESSIONS.register("nuggeter",
|
||||
() -> new VillagerProfession(Component.literal("Nuggeter"), holder -> holder.value() == NUGGETER_POI.get(),
|
||||
holder -> holder.value() == NUGGETER_POI.get(), ImmutableSet.of(), ImmutableSet.of(),
|
||||
ModSounds.NUGGET_THEME.get()));
|
||||
|
||||
|
||||
|
||||
public static void register(BusGroup eventBus) {
|
||||
POI_TYPES.register(eventBus);
|
||||
VILLAGER_PROFESSIONS.register(eventBus);
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
package xyz.sillyangel.nugget.worldgen;
|
||||
package dev.sillyangel.nuggetmod.worldgen;
|
||||
|
||||
import net.minecraft.core.HolderSet;
|
||||
import net.minecraft.tags.BiomeTags;
|
||||
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||
import net.minecraftforge.common.world.ForgeBiomeModifiers;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.worldgen.BootstrapContext;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraftforge.common.world.BiomeModifier;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
@@ -29,6 +29,6 @@ public class ModBiomeModifiers {
|
||||
}
|
||||
|
||||
private static ResourceKey<BiomeModifier> registerKey(String name) {
|
||||
return ResourceKey.create(ForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
return ResourceKey.create(ForgeRegistries.Keys.BIOME_MODIFIERS, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
package xyz.sillyangel.nugget.worldgen;
|
||||
package dev.sillyangel.nuggetmod.worldgen;
|
||||
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.RuleTest;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.TagMatchTest;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.worldgen.BootstrapContext;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
|
||||
import xyz.sillyangel.nugget.block.ModBlocks;
|
||||
import dev.sillyangel.nuggetmod.block.ModBlocks;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -34,7 +34,7 @@ public class ModConfiguredFeatures {
|
||||
}
|
||||
|
||||
public static ResourceKey<ConfiguredFeature<?, ?>> registerKey(String name) {
|
||||
return ResourceKey.create(Registries.CONFIGURED_FEATURE, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
return ResourceKey.create(Registries.CONFIGURED_FEATURE, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
}
|
||||
|
||||
private static <FC extends FeatureConfiguration, F extends Feature<FC>> void register(BootstrapContext<ConfiguredFeature<?, ?>> context,
|
||||
@@ -1,4 +1,4 @@
|
||||
package xyz.sillyangel.nugget.worldgen;
|
||||
package dev.sillyangel.nuggetmod.worldgen;
|
||||
|
||||
import net.minecraft.world.level.levelgen.placement.*;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package xyz.sillyangel.nugget.worldgen;
|
||||
package dev.sillyangel.nuggetmod.worldgen;
|
||||
|
||||
import net.minecraft.world.level.levelgen.VerticalAnchor;
|
||||
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import dev.sillyangel.nuggetmod.NuggetMod;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.worldgen.BootstrapContext;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||
import net.minecraft.world.level.levelgen.placement.PlacementModifier;
|
||||
@@ -28,7 +28,7 @@ public class ModPlacedFeatures {
|
||||
}
|
||||
|
||||
private static ResourceKey<PlacedFeature> registerKey(String name) {
|
||||
return ResourceKey.create(Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
return ResourceKey.create(Registries.PLACED_FEATURE, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name));
|
||||
}
|
||||
|
||||
private static void register(BootstrapContext<PlacedFeature> context, ResourceKey<PlacedFeature> key, Holder<ConfiguredFeature<?, ?>> configuration,
|
||||
@@ -1,63 +0,0 @@
|
||||
package xyz.sillyangel.nugget;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.common.ForgeConfigSpec;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.event.config.ModConfigEvent;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
// An example config class. This is not required, but it's a good idea to have one to keep your config organized.
|
||||
// Demonstrates how to use Forge's config APIs
|
||||
@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class Config
|
||||
{
|
||||
private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
|
||||
|
||||
private static final ForgeConfigSpec.BooleanValue LOG_DIRT_BLOCK = BUILDER
|
||||
.comment("Whether to log the dirt block on common setup")
|
||||
.define("logDirtBlock", true);
|
||||
|
||||
private static final ForgeConfigSpec.IntValue MAGIC_NUMBER = BUILDER
|
||||
.comment("A magic number")
|
||||
.defineInRange("magicNumber", 42, 0, Integer.MAX_VALUE);
|
||||
|
||||
public static final ForgeConfigSpec.ConfigValue<String> MAGIC_NUMBER_INTRODUCTION = BUILDER
|
||||
.comment("What you want the introduction message to be for the magic number")
|
||||
.define("magicNumberIntroduction", "The magic number is... ");
|
||||
|
||||
// a list of strings that are treated as resource locations for items
|
||||
private static final ForgeConfigSpec.ConfigValue<List<? extends String>> ITEM_STRINGS = BUILDER
|
||||
.comment("A list of items to log on common setup.")
|
||||
.defineListAllowEmpty("items", List.of("minecraft:iron_ingot"), Config::validateItemName);
|
||||
|
||||
static final ForgeConfigSpec SPEC = BUILDER.build();
|
||||
|
||||
public static boolean logDirtBlock;
|
||||
public static int magicNumber;
|
||||
public static String magicNumberIntroduction;
|
||||
public static Set<Item> items;
|
||||
|
||||
private static boolean validateItemName(final Object obj)
|
||||
{
|
||||
return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(ResourceLocation.tryParse(itemName));
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
static void onLoad(final ModConfigEvent event)
|
||||
{
|
||||
logDirtBlock = LOG_DIRT_BLOCK.get();
|
||||
magicNumber = MAGIC_NUMBER.get();
|
||||
magicNumberIntroduction = MAGIC_NUMBER_INTRODUCTION.get();
|
||||
|
||||
// convert the list of strings into a set of items
|
||||
items = ITEM_STRINGS.get().stream()
|
||||
.map(itemName -> ForgeRegistries.ITEMS.getValue(ResourceLocation.tryParse(itemName)))
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.loot.LootTableProvider;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||
import net.minecraftforge.common.data.BlockTagsProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.data.event.GatherDataEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class DataGenerators {
|
||||
@SubscribeEvent
|
||||
public static void gatherData(GatherDataEvent event) {
|
||||
DataGenerator generator = event.getGenerator();
|
||||
PackOutput packOutput = generator.getPackOutput();
|
||||
ExistingFileHelper existingFileHelper = event.getExistingFileHelper();
|
||||
CompletableFuture<HolderLookup.Provider> lookupProvider = event.getLookupProvider();
|
||||
|
||||
generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(),
|
||||
List.of(new LootTableProvider.SubProviderEntry(ModBlockLootTableProvider::new, LootContextParamSets.BLOCK)), lookupProvider));
|
||||
generator.addProvider(event.includeServer(), new ModRecipeProvider.Runner(packOutput, lookupProvider));
|
||||
|
||||
BlockTagsProvider blockTagsProvider = new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper);
|
||||
generator.addProvider(event.includeServer(), blockTagsProvider);
|
||||
generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper));
|
||||
|
||||
generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper));
|
||||
generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper));
|
||||
|
||||
generator.addProvider(event.includeServer(), new ModDatapackEntries(packOutput, lookupProvider));
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import xyz.sillyangel.nugget.block.ModBlocks;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.loot.BlockLootSubProvider;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer;
|
||||
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class ModBlockLootTableProvider extends BlockLootSubProvider {
|
||||
protected ModBlockLootTableProvider(HolderLookup.Provider pRegistries) {
|
||||
super(Set.of(), FeatureFlags.REGISTRY.allFlags(), pRegistries);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void generate() {
|
||||
dropSelf(ModBlocks.NUGGET_BLOCK.get());
|
||||
dropSelf(ModBlocks.RAW_NUGGET_BLOCK.get());
|
||||
|
||||
this.add(ModBlocks.NUGGET_ORE.get(),
|
||||
block -> createOreDrop(ModBlocks.NUGGET_ORE.get(), ModItems.RAW_NUGGET.get()));
|
||||
this.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get(),
|
||||
block -> createMultipleOreDrops(ModBlocks.NUGGET_DEEPSLATE_ORE.get(), ModItems.RAW_NUGGET.get(), 2, 6));
|
||||
}
|
||||
|
||||
protected LootTable.Builder createMultipleOreDrops(Block pBlock, Item item, float minDrops, float maxDrops) {
|
||||
HolderLookup.RegistryLookup<Enchantment> registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT);
|
||||
return this.createSilkTouchDispatchTable(
|
||||
pBlock, this.applyExplosionDecay(
|
||||
pBlock, LootItem.lootTableItem(item)
|
||||
.apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops)))
|
||||
.apply(ApplyBonusCount.addOreBonusCount(registrylookup.getOrThrow(Enchantments.FORTUNE)))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<Block> getKnownBlocks() {
|
||||
return ModBlocks.BLOCKS.getEntries().stream().map(RegistryObject::get)::iterator;
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.block.ModBlocks;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.client.model.generators.BlockStateProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class ModBlockStateProvider extends BlockStateProvider {
|
||||
public ModBlockStateProvider(PackOutput output, ExistingFileHelper exFileHelper) {
|
||||
super(output, NuggetMod.MOD_ID, exFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerStatesAndModels() {
|
||||
blockWithItem(ModBlocks.NUGGET_BLOCK);
|
||||
blockWithItem(ModBlocks.RAW_NUGGET_BLOCK);
|
||||
|
||||
blockWithItem(ModBlocks.NUGGET_ORE);
|
||||
blockWithItem(ModBlocks.NUGGET_DEEPSLATE_ORE);
|
||||
|
||||
}
|
||||
|
||||
private void blockWithItem(RegistryObject<Block> blockRegistryObject) {
|
||||
simpleBlockWithItem(blockRegistryObject.get(), cubeAll(blockRegistryObject.get()));
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.block.ModBlocks;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraftforge.common.data.BlockTagsProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import xyz.sillyangel.nugget.util.ModTags;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class ModBlockTagProvider extends BlockTagsProvider {
|
||||
public ModBlockTagProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider, @Nullable ExistingFileHelper existingFileHelper) {
|
||||
super(output, lookupProvider, NuggetMod.MOD_ID, existingFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addTags(HolderLookup.Provider pProvider) {
|
||||
tag(BlockTags.MINEABLE_WITH_PICKAXE)
|
||||
.add(ModBlocks.NUGGET_BLOCK.get())
|
||||
.add(ModBlocks.RAW_NUGGET_BLOCK.get())
|
||||
.add(ModBlocks.NUGGET_ORE.get())
|
||||
.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get());
|
||||
|
||||
tag(BlockTags.NEEDS_STONE_TOOL)
|
||||
.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get())
|
||||
.add(ModBlocks.RAW_NUGGET_BLOCK.get());
|
||||
|
||||
// tag(BlockTags.NEEDS_STONE_TOOL)
|
||||
tag(ModTags.Blocks.NEEDS_NUGGET_TOOL)
|
||||
.add(ModBlocks.RAW_NUGGET_BLOCK.get())
|
||||
.addTag(BlockTags.NEEDS_DIAMOND_TOOL);
|
||||
|
||||
tag(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL)
|
||||
.addTag(BlockTags.INCORRECT_FOR_DIAMOND_TOOL)
|
||||
.remove(ModTags.Blocks.NEEDS_NUGGET_TOOL);
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.trim.ModTrimMaterials;
|
||||
import xyz.sillyangel.nugget.trim.ModTrimPatterns;
|
||||
import xyz.sillyangel.nugget.worldgen.ModBiomeModifiers;
|
||||
import xyz.sillyangel.nugget.worldgen.ModConfiguredFeatures;
|
||||
import xyz.sillyangel.nugget.worldgen.ModPlacedFeatures;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.RegistrySetBuilder;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class ModDatapackEntries extends DatapackBuiltinEntriesProvider {
|
||||
public static final RegistrySetBuilder BUILDER = new RegistrySetBuilder()
|
||||
.add(Registries.TRIM_MATERIAL, ModTrimMaterials::bootstrap)
|
||||
.add(Registries.TRIM_PATTERN, ModTrimPatterns::bootstrap)
|
||||
|
||||
.add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap)
|
||||
.add(Registries.PLACED_FEATURE, ModPlacedFeatures::bootstrap)
|
||||
.add(ForgeRegistries.Keys.BIOME_MODIFIERS, ModBiomeModifiers::bootstrap);
|
||||
|
||||
public ModDatapackEntries(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
|
||||
super(output, registries, BUILDER, Set.of(NuggetMod.MOD_ID));
|
||||
}
|
||||
}
|
||||
@@ -1,134 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import net.minecraft.world.item.equipment.trim.TrimMaterial;
|
||||
import net.minecraft.world.item.equipment.trim.TrimMaterials;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.client.model.generators.ItemModelBuilder;
|
||||
import net.minecraftforge.client.model.generators.ItemModelProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.server.packs.PackType;
|
||||
import net.minecraft.world.item.ArmorItem;
|
||||
import net.minecraftforge.client.model.generators.ModelFile;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
public class ModItemModelProvider extends ItemModelProvider {
|
||||
private static LinkedHashMap<ResourceKey<TrimMaterial>, Float> trimMaterials = new LinkedHashMap<>();
|
||||
static {
|
||||
trimMaterials.put(TrimMaterials.QUARTZ, 0.1F);
|
||||
trimMaterials.put(TrimMaterials.IRON, 0.2F);
|
||||
trimMaterials.put(TrimMaterials.NETHERITE, 0.3F);
|
||||
trimMaterials.put(TrimMaterials.REDSTONE, 0.4F);
|
||||
trimMaterials.put(TrimMaterials.COPPER, 0.5F);
|
||||
trimMaterials.put(TrimMaterials.GOLD, 0.6F);
|
||||
trimMaterials.put(TrimMaterials.EMERALD, 0.7F);
|
||||
trimMaterials.put(TrimMaterials.DIAMOND, 0.8F);
|
||||
trimMaterials.put(TrimMaterials.LAPIS, 0.9F);
|
||||
trimMaterials.put(TrimMaterials.AMETHYST, 1.0F);
|
||||
}
|
||||
|
||||
public ModItemModelProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
|
||||
super(output, NuggetMod.MOD_ID, existingFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerModels() {
|
||||
basicItem(ModItems.NUGGET_HORSE_ARMOR.get());
|
||||
basicItem(ModItems.NUGGET_SMITHING_TEMPLATE.get());
|
||||
basicItem(ModItems.NUGGET.get());
|
||||
basicItem(ModItems.RAW_NUGGET.get());
|
||||
basicItem(ModItems.NUGGET_MUSIC_DISC.get());
|
||||
|
||||
handheldItem(ModItems.NUGGET_SWORD);
|
||||
handheldItem(ModItems.NUGGET_PICKAXE);
|
||||
handheldItem(ModItems.NUGGET_SHOVEL);
|
||||
handheldItem(ModItems.NUGGET_AXE);
|
||||
handheldItem(ModItems.NUGGET_HOE);
|
||||
|
||||
trimmedArmorItem(ModItems.NUGGET_HELMET);
|
||||
trimmedArmorItem(ModItems.NUGGET_CHESTPLATE);
|
||||
trimmedArmorItem(ModItems.NUGGET_LEGGINGS);
|
||||
trimmedArmorItem(ModItems.NUGGET_BOOTS);
|
||||
}
|
||||
private void trimmedArmorItem(RegistryObject<Item> itemRegistryObject) {
|
||||
final String MOD_ID = NuggetMod.MOD_ID; // Change this to your mod id
|
||||
if (itemRegistryObject.get() instanceof ArmorItem armorItem) {
|
||||
trimMaterials.forEach((trimMaterial, value) -> {
|
||||
float trimValue = value;
|
||||
|
||||
String armorType = "";
|
||||
if(armorItem.toString().contains("helmet")) {
|
||||
armorType = "helmet";
|
||||
} else if(armorItem.toString().contains("chestplate")) {
|
||||
armorType = "chestplate";
|
||||
} else if(armorItem.toString().contains("leggings")) {
|
||||
armorType = "leggings";
|
||||
} else if(armorItem.toString().contains("boots")) {
|
||||
armorType = "boots";
|
||||
}
|
||||
|
||||
|
||||
String armorItemPath = armorItem.toString();
|
||||
String trimPath = "trims/items/" + armorType + "_trim_" + trimMaterial.location().getPath();
|
||||
String currentTrimName = armorItemPath + "_" + trimMaterial.location().getPath() + "_trim";
|
||||
ResourceLocation armorItemResLoc = ResourceLocation.parse(armorItemPath);
|
||||
ResourceLocation trimResLoc = ResourceLocation.parse(trimPath); // minecraft namespace
|
||||
ResourceLocation trimNameResLoc = ResourceLocation.parse(currentTrimName);
|
||||
// This is used for making the ExistingFileHelper acknowledge that this texture exist, so this will
|
||||
// avoid an IllegalArgumentException
|
||||
existingFileHelper.trackGenerated(trimResLoc, PackType.CLIENT_RESOURCES, ".png", "textures");
|
||||
// Trimmed armorItem files
|
||||
getBuilder(currentTrimName)
|
||||
.parent(new ModelFile.UncheckedModelFile("item/generated"))
|
||||
.texture("layer0", armorItemResLoc.getNamespace() + ":item/" + armorItemResLoc.getPath())
|
||||
.texture("layer1", trimResLoc);
|
||||
// Non-trimmed armorItem file (normal variant)
|
||||
this.withExistingParent(itemRegistryObject.getId().getPath(),
|
||||
mcLoc("item/generated"))
|
||||
.override()
|
||||
.model(new ModelFile.UncheckedModelFile(trimNameResLoc.getNamespace() + ":item/" + trimNameResLoc.getPath()))
|
||||
.predicate(mcLoc("trim_type"), trimValue).end()
|
||||
.texture("layer0",
|
||||
ResourceLocation.fromNamespaceAndPath(MOD_ID,
|
||||
"item/" + itemRegistryObject.getId().getPath()));
|
||||
});
|
||||
}
|
||||
}
|
||||
private ItemModelBuilder handheldItem(RegistryObject<Item> item) {
|
||||
return withExistingParent(item.getId().getPath(),
|
||||
ResourceLocation.parse("item/handheld")).texture("layer0",
|
||||
ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath()));
|
||||
}
|
||||
|
||||
public void buttonItem(RegistryObject<? extends Block> block, RegistryObject<Block> baseBlock) {
|
||||
this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/button_inventory"))
|
||||
.texture("texture", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,
|
||||
"block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath()));
|
||||
}
|
||||
|
||||
public void fenceItem(RegistryObject<? extends Block> block, RegistryObject<Block> baseBlock) {
|
||||
this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/fence_inventory"))
|
||||
.texture("texture", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,
|
||||
"block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath()));
|
||||
}
|
||||
|
||||
public void wallItem(RegistryObject<? extends Block> block, RegistryObject<Block> baseBlock) {
|
||||
this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/wall_inventory"))
|
||||
.texture("wall", ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,
|
||||
"block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath()));
|
||||
}
|
||||
|
||||
private ItemModelBuilder simpleBlockItem(RegistryObject<? extends Block> item) {
|
||||
return withExistingParent(item.getId().getPath(),
|
||||
ResourceLocation.parse("item/generated")).texture("layer0",
|
||||
ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath()));
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import xyz.sillyangel.nugget.util.ModTags;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.tags.ItemTagsProvider;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class ModItemTagProvider extends ItemTagsProvider {
|
||||
public ModItemTagProvider(PackOutput packOutput, CompletableFuture<HolderLookup.Provider> completableFuture,
|
||||
CompletableFuture<TagLookup<Block>> lookupCompletableFuture, @Nullable ExistingFileHelper existingFileHelper) {
|
||||
super(packOutput, completableFuture, lookupCompletableFuture, NuggetMod.MOD_ID, existingFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addTags(HolderLookup.Provider pProvider) {
|
||||
tag(ModTags.Items.TRANSFORMABLE_ITEMS)
|
||||
.add(ModItems.NUGGET.get())
|
||||
.add(ModItems.RAW_NUGGET.get())
|
||||
.add(Items.COAL)
|
||||
.add(Items.STICK)
|
||||
.add(Items.COMPASS);
|
||||
|
||||
tag(ItemTags.TRIMMABLE_ARMOR)
|
||||
.add(ModItems.NUGGET_HELMET.get())
|
||||
.add(ModItems.NUGGET_CHESTPLATE.get())
|
||||
.add(ModItems.NUGGET_LEGGINGS.get())
|
||||
.add(ModItems.NUGGET_BOOTS.get());
|
||||
tag(ItemTags.TRIM_MATERIALS)
|
||||
.add(ModItems.NUGGET.get());
|
||||
tag(ItemTags.TRIM_TEMPLATES)
|
||||
.add(ModItems.NUGGET_SMITHING_TEMPLATE.get());
|
||||
tag(ModTags.Items.NUGGET_REPAIRS)
|
||||
.add(ModItems.NUGGET.get());
|
||||
}
|
||||
}
|
||||
@@ -1,173 +0,0 @@
|
||||
package xyz.sillyangel.nugget.datagen;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.item.Items;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.block.ModBlocks;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.recipes.*;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.crafting.*;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraftforge.common.crafting.conditions.IConditionBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class ModRecipeProvider extends RecipeProvider implements IConditionBuilder {
|
||||
public ModRecipeProvider(HolderLookup.Provider lookup, RecipeOutput recipeOutput) {
|
||||
super(lookup, recipeOutput);
|
||||
}
|
||||
|
||||
public static class Runner extends RecipeProvider.Runner {
|
||||
public Runner(PackOutput output, CompletableFuture<HolderLookup.Provider> providerCompletableFuture) {
|
||||
super(output, providerCompletableFuture);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected RecipeProvider createRecipeProvider(HolderLookup.Provider provider, RecipeOutput recipeOutput) {
|
||||
return new ModRecipeProvider(provider, recipeOutput);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Recipes";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildRecipes() {
|
||||
List<ItemLike> NUGGET_SMELTABLES = List.of(ModItems.RAW_NUGGET.get(),
|
||||
ModBlocks.NUGGET_ORE.get(), ModBlocks.NUGGET_DEEPSLATE_ORE.get());
|
||||
|
||||
shaped(RecipeCategory.MISC, ModBlocks.NUGGET_BLOCK.get())
|
||||
.pattern("AAA")
|
||||
.pattern("AAA")
|
||||
.pattern("AAA")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
|
||||
shapeless(RecipeCategory.MISC, ModItems.NUGGET.get(), 9)
|
||||
.requires(ModBlocks.NUGGET_BLOCK.get())
|
||||
.unlockedBy(getHasName(ModBlocks.NUGGET_BLOCK.get()), has(ModBlocks.NUGGET_BLOCK.get())).save(this.output);
|
||||
|
||||
// RAW NUGGET
|
||||
|
||||
shaped(RecipeCategory.MISC, ModBlocks.RAW_NUGGET_BLOCK.get())
|
||||
.pattern("AAA")
|
||||
.pattern("AAA")
|
||||
.pattern("AAA")
|
||||
.define('A', ModItems.RAW_NUGGET.get())
|
||||
.unlockedBy(getHasName(ModItems.RAW_NUGGET.get()), has(ModItems.RAW_NUGGET.get())).save(this.output);
|
||||
|
||||
shapeless(RecipeCategory.MISC, ModItems.RAW_NUGGET.get(), 9)
|
||||
.requires(ModBlocks.RAW_NUGGET_BLOCK.get())
|
||||
.unlockedBy(getHasName(ModBlocks.RAW_NUGGET_BLOCK.get()), has(ModBlocks.RAW_NUGGET_BLOCK.get())).save(this.output);
|
||||
// TOOLS
|
||||
|
||||
//SWORD
|
||||
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_SWORD.get())
|
||||
.pattern(" A ")
|
||||
.pattern(" A ")
|
||||
.pattern(" B ")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.define('B', Items.STICK)
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
//PICAXE
|
||||
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_PICKAXE.get())
|
||||
.pattern("AAA")
|
||||
.pattern(" B ")
|
||||
.pattern(" B ")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.define('B', Items.STICK)
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
//AXE
|
||||
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_AXE.get())
|
||||
.pattern(" AA")
|
||||
.pattern(" BA")
|
||||
.pattern(" B ")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.define('B', Items.STICK)
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
//SHOVEL
|
||||
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_SHOVEL.get())
|
||||
.pattern(" A ")
|
||||
.pattern(" B ")
|
||||
.pattern(" B ")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.define('B', Items.STICK)
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
//HOE
|
||||
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_HOE.get())
|
||||
.pattern(" AA")
|
||||
.pattern(" B ")
|
||||
.pattern(" B ")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.define('B', Items.STICK)
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
|
||||
// END OF TOOLS
|
||||
|
||||
// start of armor
|
||||
// head!?!
|
||||
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_HELMET.get())
|
||||
.pattern("AAA")
|
||||
.pattern("A A")
|
||||
.pattern(" ")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
//shirt
|
||||
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_CHESTPLATE.get())
|
||||
.pattern("A A")
|
||||
.pattern("AAA")
|
||||
.pattern("AAA")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
//pants?
|
||||
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_LEGGINGS.get())
|
||||
.pattern("AAA")
|
||||
.pattern("A A")
|
||||
.pattern("A A")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
//socks
|
||||
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_BOOTS.get())
|
||||
.pattern(" ")
|
||||
.pattern("A A")
|
||||
.pattern("A A")
|
||||
.define('A', ModItems.NUGGET.get())
|
||||
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
|
||||
|
||||
trimSmithing(ModItems.NUGGET_SMITHING_TEMPLATE.get(), ResourceKey.create(Registries.RECIPE,
|
||||
ResourceLocation.parse(getItemName(ModItems.NUGGET_SMITHING_TEMPLATE.get()) + "_smithing_trim")));
|
||||
|
||||
oreSmelting(this.output, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 200, "nugget");
|
||||
oreBlasting(this.output, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 100, "nugget");
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void oreSmelting(RecipeOutput recipeOutput, List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult,
|
||||
float pExperience, int pCookingTIme, String pGroup) {
|
||||
oreCooking(recipeOutput, RecipeSerializer.SMELTING_RECIPE, SmeltingRecipe::new, pIngredients, pCategory, pResult,
|
||||
pExperience, pCookingTIme, pGroup, "_from_smelting");
|
||||
}
|
||||
|
||||
protected void oreBlasting(RecipeOutput recipeOutput, List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult,
|
||||
float pExperience, int pCookingTime, String pGroup) {
|
||||
oreCooking(recipeOutput, RecipeSerializer.BLASTING_RECIPE, BlastingRecipe::new, pIngredients, pCategory, pResult,
|
||||
pExperience, pCookingTime, pGroup, "_from_blasting");
|
||||
}
|
||||
|
||||
protected <T extends AbstractCookingRecipe> void oreCooking(RecipeOutput recipeOutput, RecipeSerializer<T> pCookingSerializer, AbstractCookingRecipe.Factory<T> factory,
|
||||
List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) {
|
||||
for(ItemLike itemlike : pIngredients) {
|
||||
SimpleCookingRecipeBuilder.generic(Ingredient.of(itemlike), pCategory, pResult, pExperience, pCookingTime, pCookingSerializer, factory).group(pGroup).unlockedBy(getHasName(itemlike), has(itemlike))
|
||||
.save(recipeOutput, NuggetMod.MOD_ID + ":" + getItemName(pResult) + pRecipeName + "_" + getItemName(itemlike));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package xyz.sillyangel.nugget.item;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.util.ModTags;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.world.item.equipment.ArmorMaterial;
|
||||
import net.minecraft.world.item.equipment.ArmorType;
|
||||
import java.util.EnumMap;
|
||||
|
||||
public class ModArmorMaterials {
|
||||
public static final ArmorMaterial NUGGET_ARMOR_MATERIAL = new ArmorMaterial(1200, Util.make(new EnumMap<>(ArmorType.class),
|
||||
attribute -> {
|
||||
attribute.put(ArmorType.BOOTS, 5);
|
||||
attribute.put(ArmorType.LEGGINGS, 7);
|
||||
attribute.put(ArmorType.CHESTPLATE, 9);
|
||||
attribute.put(ArmorType.HELMET, 5);
|
||||
attribute.put(ArmorType.BODY, 11);
|
||||
}), 15, SoundEvents.ARMOR_EQUIP_NETHERITE,
|
||||
4f, 0.1f, ModTags.Items.NUGGET_REPAIRS, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"));
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package xyz.sillyangel.nugget.item;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.item.equipment.ArmorType;
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.minecraft.world.item.*;
|
||||
import xyz.sillyangel.nugget.sound.ModSounds;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ModItems {
|
||||
public static final DeferredRegister<Item> ITEMS =
|
||||
DeferredRegister.create(ForgeRegistries.ITEMS, NuggetMod.MOD_ID);
|
||||
|
||||
public static final RegistryObject<Item> NUGGET = ITEMS.register("nugget",
|
||||
() -> new Item(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget")))
|
||||
.food(ModFoodProperties.Nugget)) {
|
||||
@Override
|
||||
public void appendHoverText(ItemStack pStack, TooltipContext pContext, List<Component> pTooltipComponent, TooltipFlag pTooltipFlag) {
|
||||
pTooltipComponent.add(Component.translatable("item.nuggetmod.nugget.tooltip"));
|
||||
super.appendHoverText(pStack, pContext, pTooltipComponent, pTooltipFlag);
|
||||
}
|
||||
});
|
||||
|
||||
public static final RegistryObject<Item> RAW_NUGGET = ITEMS.register("raw_nugget",
|
||||
() -> new Item(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "raw_nugget")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_SWORD = ITEMS.register("nugget_sword",
|
||||
() -> new SwordItem(ModToolTiers.NUGGET, 3, -2.4f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_sword")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_PICKAXE = ITEMS.register("nugget_pickaxe",
|
||||
() -> new PickaxeItem(ModToolTiers.NUGGET, 1, -2.8f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_pickaxe")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_SHOVEL = ITEMS.register("nugget_shovel",
|
||||
() -> new ShovelItem(ModToolTiers.NUGGET, 1.5f, -3.0f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_shovel")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_AXE = ITEMS.register("nugget_axe",
|
||||
() -> new AxeItem(ModToolTiers.NUGGET, 6, -3.2f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_axe")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_HOE = ITEMS.register("nugget_hoe",
|
||||
() -> new HoeItem(ModToolTiers.NUGGET, 0, -3.0f, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_hoe")))));
|
||||
|
||||
// armor things
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_HELMET = ITEMS.register("nugget_helmet",
|
||||
() -> new ArmorItem(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.HELMET,
|
||||
new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_helmet")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_CHESTPLATE = ITEMS.register("nugget_chestplate",
|
||||
() -> new ArmorItem(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.CHESTPLATE,
|
||||
new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_chestplate")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_LEGGINGS = ITEMS.register("nugget_leggings",
|
||||
() -> new ArmorItem(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.LEGGINGS,
|
||||
new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_leggings")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_BOOTS = ITEMS.register("nugget_boots",
|
||||
() -> new ArmorItem(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.BOOTS,
|
||||
new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_boots")))));
|
||||
|
||||
// horse armor
|
||||
public static final RegistryObject<Item> NUGGET_HORSE_ARMOR = ITEMS.register("nugget_horse_armor",
|
||||
() -> new AnimalArmorItem(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, AnimalArmorItem.BodyType.EQUESTRIAN, new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_horse_armor")))
|
||||
.stacksTo(1)));
|
||||
// smithing temp
|
||||
public static final RegistryObject<Item> NUGGET_SMITHING_TEMPLATE = ITEMS.register("nugget_armor_trim_smithing_template",
|
||||
() -> SmithingTemplateItem.createArmorTrimTemplate(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_armor_trim_smithing_template")))));
|
||||
|
||||
public static final RegistryObject<Item> NUGGET_MUSIC_DISC = ITEMS.register("nugget_music_disc",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_music_disc")))
|
||||
.jukeboxPlayable(ModSounds.NUGGET_THEME_KEY).stacksTo(1)));
|
||||
|
||||
|
||||
public static void register(IEventBus eventBus) {
|
||||
ITEMS.register(eventBus);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package xyz.sillyangel.nugget.trim;
|
||||
|
||||
import xyz.sillyangel.nugget.NuggetMod;
|
||||
import xyz.sillyangel.nugget.item.ModItems;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.worldgen.BootstrapContext;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.network.chat.TextColor;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.equipment.trim.TrimMaterial;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class ModTrimMaterials {
|
||||
public static final ResourceKey<TrimMaterial> NUGGET =
|
||||
ResourceKey.create(Registries.TRIM_MATERIAL, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"));
|
||||
|
||||
public static void bootstrap(BootstrapContext<TrimMaterial> context) {
|
||||
register(context, NUGGET, ModItems.NUGGET.get(), Style.EMPTY.withColor(TextColor.parseColor("#f9b042").getOrThrow()), 0.1F);
|
||||
}
|
||||
private static void register(BootstrapContext<TrimMaterial> context, ResourceKey<TrimMaterial> trimKey, Item item,
|
||||
Style style, float itemModelIndex) {
|
||||
TrimMaterial trimmaterial = TrimMaterial.create(trimKey.location().getPath(), item, itemModelIndex,
|
||||
Component.translatable(Util.makeDescriptionId("trim_material", trimKey.location())).withStyle(style), Map.of());
|
||||
context.register(trimKey, trimmaterial);
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ loaderVersion="${loader_version_range}" #mandatory This is typically bumped ever
|
||||
# Review your options at https://choosealicense.com/. All rights reserved is the default copyright stance, and is thus the default here.
|
||||
license="${mod_license}"
|
||||
# A URL to refer people to when problems occur with this mod
|
||||
#issueTrackerURL="https://change.me.to.your.issue.tracker.example.invalid/" #optional
|
||||
issueTrackerURL="https://github.com/sillyangel/nugget" #optional
|
||||
# If your mod is purely client-side and has no multiplayer functionality (be it dedicated servers or Open to LAN),
|
||||
# set this to true, and Forge will set the correct displayTest for you and skip loading your mod on dedicated servers.
|
||||
#clientSideOnly=true #optional - defaults to false if absent
|
||||
@@ -26,9 +26,9 @@ displayName="${mod_name}" #mandatory
|
||||
# A URL to query for updates for this mod. See the JSON update specification https://docs.minecraftforge.net/en/latest/misc/updatechecker/
|
||||
#updateJSONURL="https://change.me.example.invalid/updates.json" #optional
|
||||
# A URL for the "homepage" for this mod, displayed in the mod UI
|
||||
#displayURL="https://change.me.to.your.mods.homepage.example.invalid/" #optional
|
||||
displayURL="https://modrinth.com/mod/nuggetmod/" #optional
|
||||
# A file name (in the root of the mod JAR) containing a logo for display
|
||||
#logoFile="examplemod.png" #optional
|
||||
logoFile="splash.png" #optional
|
||||
# A text field displayed in the mod UI
|
||||
#credits="" #optional
|
||||
# A text field displayed in the mod UI
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
{
|
||||
"type": "paletted_permutations",
|
||||
"textures": [
|
||||
"trims/entity/humanoid/coast",
|
||||
"trims/entity/humanoid_leggings/coast",
|
||||
"trims/entity/humanoid/sentry",
|
||||
"trims/entity/humanoid_leggings/sentry",
|
||||
"trims/entity/humanoid/dune",
|
||||
"trims/entity/humanoid_leggings/dune",
|
||||
"trims/entity/humanoid/coast",
|
||||
"trims/entity/humanoid_leggings/coast",
|
||||
"trims/entity/humanoid/wild",
|
||||
"trims/entity/humanoid_leggings/wild",
|
||||
"trims/entity/humanoid/ward",
|
||||
@@ -45,22 +45,25 @@
|
||||
],
|
||||
"palette_key": "trims/color_palettes/trim_palette",
|
||||
"permutations": {
|
||||
"quartz": "trims/color_palettes/quartz",
|
||||
"iron": "trims/color_palettes/iron",
|
||||
"gold": "trims/color_palettes/gold",
|
||||
"diamond": "trims/color_palettes/diamond",
|
||||
"netherite": "trims/color_palettes/netherite",
|
||||
"redstone": "trims/color_palettes/redstone",
|
||||
"copper": "trims/color_palettes/copper",
|
||||
"emerald": "trims/color_palettes/emerald",
|
||||
"lapis": "trims/color_palettes/lapis",
|
||||
"amethyst": "trims/color_palettes/amethyst",
|
||||
"iron_darker": "trims/color_palettes/iron_darker",
|
||||
"gold_darker": "trims/color_palettes/gold_darker",
|
||||
"copper": "trims/color_palettes/copper",
|
||||
"copper_darker": "trims/color_palettes/copper_darker",
|
||||
"diamond": "trims/color_palettes/diamond",
|
||||
"diamond_darker": "trims/color_palettes/diamond_darker",
|
||||
"emerald": "trims/color_palettes/emerald",
|
||||
"gold": "trims/color_palettes/gold",
|
||||
"gold_darker": "trims/color_palettes/gold_darker",
|
||||
"iron": "trims/color_palettes/iron",
|
||||
"iron_darker": "trims/color_palettes/iron_darker",
|
||||
"lapis": "trims/color_palettes/lapis",
|
||||
"netherite": "trims/color_palettes/netherite",
|
||||
"netherite_darker": "trims/color_palettes/netherite_darker",
|
||||
"quartz": "trims/color_palettes/quartz",
|
||||
"redstone": "trims/color_palettes/redstone",
|
||||
"resin": "trims/color_palettes/resin",
|
||||
"nugget": "nuggetmod:trims/color_palettes/nugget"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
{
|
||||
"layers": {
|
||||
"wolf_body": [
|
||||
{
|
||||
"texture": "nuggetmod:nugget"
|
||||
}
|
||||
],
|
||||
"horse_body": [
|
||||
{
|
||||
"texture": "nuggetmod:nugget"
|
||||
BIN
src/main/resources/assets/nuggetmod/icon.png
Normal file
BIN
src/main/resources/assets/nuggetmod/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.0 KiB |
6
src/main/resources/assets/nuggetmod/items/nugget.json
Normal file
6
src/main/resources/assets/nuggetmod/items/nugget.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_armor_trim_smithing_template"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_axe"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:block/nugget_block"
|
||||
}
|
||||
}
|
||||
89
src/main/resources/assets/nuggetmod/items/nugget_boots.json
Normal file
89
src/main/resources/assets/nuggetmod/items/nugget_boots.json
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:select",
|
||||
"cases": [
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_quartz_trim"
|
||||
},
|
||||
"when": "minecraft:quartz"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_iron_trim"
|
||||
},
|
||||
"when": "minecraft:iron"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_netherite_trim"
|
||||
},
|
||||
"when": "minecraft:netherite"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_redstone_trim"
|
||||
},
|
||||
"when": "minecraft:redstone"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_copper_trim"
|
||||
},
|
||||
"when": "minecraft:copper"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_gold_trim"
|
||||
},
|
||||
"when": "minecraft:gold"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_emerald_trim"
|
||||
},
|
||||
"when": "minecraft:emerald"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_diamond_trim"
|
||||
},
|
||||
"when": "minecraft:diamond"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_lapis_trim"
|
||||
},
|
||||
"when": "minecraft:lapis"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_amethyst_trim"
|
||||
},
|
||||
"when": "minecraft:amethyst"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots_resin_trim"
|
||||
},
|
||||
"when": "minecraft:resin"
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_boots"
|
||||
},
|
||||
"property": "minecraft:trim_material"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:select",
|
||||
"cases": [
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_quartz_trim"
|
||||
},
|
||||
"when": "minecraft:quartz"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_iron_trim"
|
||||
},
|
||||
"when": "minecraft:iron"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_netherite_trim"
|
||||
},
|
||||
"when": "minecraft:netherite"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_redstone_trim"
|
||||
},
|
||||
"when": "minecraft:redstone"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_copper_trim"
|
||||
},
|
||||
"when": "minecraft:copper"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_gold_trim"
|
||||
},
|
||||
"when": "minecraft:gold"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_emerald_trim"
|
||||
},
|
||||
"when": "minecraft:emerald"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_diamond_trim"
|
||||
},
|
||||
"when": "minecraft:diamond"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_lapis_trim"
|
||||
},
|
||||
"when": "minecraft:lapis"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_amethyst_trim"
|
||||
},
|
||||
"when": "minecraft:amethyst"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate_resin_trim"
|
||||
},
|
||||
"when": "minecraft:resin"
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_chestplate"
|
||||
},
|
||||
"property": "minecraft:trim_material"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:block/nugget_deepslate_ore"
|
||||
}
|
||||
}
|
||||
89
src/main/resources/assets/nuggetmod/items/nugget_helmet.json
Normal file
89
src/main/resources/assets/nuggetmod/items/nugget_helmet.json
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:select",
|
||||
"cases": [
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_quartz_trim"
|
||||
},
|
||||
"when": "minecraft:quartz"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_iron_trim"
|
||||
},
|
||||
"when": "minecraft:iron"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_netherite_trim"
|
||||
},
|
||||
"when": "minecraft:netherite"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_redstone_trim"
|
||||
},
|
||||
"when": "minecraft:redstone"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_copper_trim"
|
||||
},
|
||||
"when": "minecraft:copper"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_gold_trim"
|
||||
},
|
||||
"when": "minecraft:gold"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_emerald_trim"
|
||||
},
|
||||
"when": "minecraft:emerald"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_diamond_trim"
|
||||
},
|
||||
"when": "minecraft:diamond"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_lapis_trim"
|
||||
},
|
||||
"when": "minecraft:lapis"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_amethyst_trim"
|
||||
},
|
||||
"when": "minecraft:amethyst"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet_resin_trim"
|
||||
},
|
||||
"when": "minecraft:resin"
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_helmet"
|
||||
},
|
||||
"property": "minecraft:trim_material"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_hoe"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_horse_armor"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:select",
|
||||
"cases": [
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_quartz_trim"
|
||||
},
|
||||
"when": "minecraft:quartz"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_iron_trim"
|
||||
},
|
||||
"when": "minecraft:iron"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_netherite_trim"
|
||||
},
|
||||
"when": "minecraft:netherite"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_redstone_trim"
|
||||
},
|
||||
"when": "minecraft:redstone"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_copper_trim"
|
||||
},
|
||||
"when": "minecraft:copper"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_gold_trim"
|
||||
},
|
||||
"when": "minecraft:gold"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_emerald_trim"
|
||||
},
|
||||
"when": "minecraft:emerald"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_diamond_trim"
|
||||
},
|
||||
"when": "minecraft:diamond"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_lapis_trim"
|
||||
},
|
||||
"when": "minecraft:lapis"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_amethyst_trim"
|
||||
},
|
||||
"when": "minecraft:amethyst"
|
||||
},
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings_resin_trim"
|
||||
},
|
||||
"when": "minecraft:resin"
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_leggings"
|
||||
},
|
||||
"property": "minecraft:trim_material"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_music_disc"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:block/nugget_ore"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_pickaxe"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_shovel"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_spear"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/nugget_sword"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:item/raw_nugget"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "nuggetmod:block/raw_nugget_block"
|
||||
}
|
||||
}
|
||||
@@ -1,40 +1,50 @@
|
||||
{
|
||||
"item.nuggetmod.raw_nugget": "Raw Nugget",
|
||||
"item.nuggetmod.nugget": "Nugget",
|
||||
|
||||
"item.nuggetmod.nugget_block": "Nugget Block",
|
||||
"item.nuggetmod.raw_nugget_block": "Raw Nugget Block",
|
||||
"item.nuggetmod.nugget_ore": "Nugget Ore",
|
||||
"item.nuggetmod.nugget_deepslate_ore": "Nugget Deepslate Ore",
|
||||
|
||||
"item.nuggetmod.nugget_sword": "Nugget Sword",
|
||||
"item.nuggetmod.nugget_pickaxe": "Nugget Pickaxe",
|
||||
"item.nuggetmod.nugget_shovel": "Nugget Shovel",
|
||||
"item.nuggetmod.nugget_axe": "Nugget Axe",
|
||||
"item.nuggetmod.nugget_hoe": "Nugget Hoe",
|
||||
|
||||
"item.nuggetmod.nugget_music_disc": "Nugget Theme",
|
||||
"item.nuggetmod.nugget_music_disc.desc": "Gegagedigedagedago",
|
||||
|
||||
|
||||
"item.nuggetmod.nugget_horse_armor": "Nugget Horse Armor",
|
||||
"item.nuggetmod.nugget_armor_trim_smithing_template": "§6Nugget Armor Trim",
|
||||
|
||||
"item.nuggetmod.nugget_helmet": "Nugget Helmet",
|
||||
"item.nuggetmod.nugget_chestplate": "Nugget Chestplate",
|
||||
"item.nuggetmod.nugget_leggings": "Nugget Leggings",
|
||||
"item.nuggetmod.nugget_boots": "Nugget Boots",
|
||||
|
||||
"creativetab.nuggetmod.nugget_items": "Nugget Items",
|
||||
"creativetab.nuggetmod.nugget_blocks": "Nugget Blocks",
|
||||
|
||||
"item.nuggetmod.nugget.tooltip": "THE NUGGET",
|
||||
|
||||
"trim_material.nuggetmod.nugget": "Nugget Material",
|
||||
"trim_pattern.nuggetmod.nugget_trim_material": "Nugget Trim",
|
||||
"trim_pattern.nuggetmod.nugget": "Nugget Trim",
|
||||
|
||||
|
||||
"painting.nuggetmod.nugget_painting.title": "Nugget Painting",
|
||||
"painting.nuggetmod.nugget_painting.author": "Nugget Mod"
|
||||
{
|
||||
"item.nuggetmod.raw_nugget": "Raw Nugget",
|
||||
"item.nuggetmod.nugget": "Nugget",
|
||||
|
||||
"block.nuggetmod.nugget_block": "Nugget Block",
|
||||
"block.nuggetmod.raw_nugget_block": "Raw Nugget Block",
|
||||
"block.nuggetmod.nugget_ore": "Nugget Ore",
|
||||
"block.nuggetmod.nugget_deepslate_ore": "Nugget Deepslate Ore",
|
||||
|
||||
"item.nuggetmod.nugget_sword": "Nugget Sword",
|
||||
"item.nuggetmod.nugget_pickaxe": "Nugget Pickaxe",
|
||||
"item.nuggetmod.nugget_shovel": "Nugget Shovel",
|
||||
"item.nuggetmod.nugget_axe": "Nugget Axe",
|
||||
"item.nuggetmod.nugget_hoe": "Nugget Hoe",
|
||||
"item.nuggetmod.nugget_bow": "Nugget Bow",
|
||||
"item.nuggetmod.nugget_crossbow": "Nugget Crossbow",
|
||||
"item.nuggetmod.nugget_trident": "Nugget Trident",
|
||||
"item.nuggetmod.nugget_fishing_rod": "Nugget Fishing Rod",
|
||||
"item.nuggetmod.nugget_flint_and_steel": "Nugget Flint and Steel",
|
||||
"item.nuggetmod.nugget_shears": "Nugget Shears",
|
||||
"item.nuggetmod.nugget_shield": "Nugget Shield",
|
||||
"item.nuggetmod.nugget_spear": "Nugget Spear",
|
||||
|
||||
"item.nuggetmod.nugget_music_disc": "Nugget Theme",
|
||||
"item.nuggetmod.nugget_music_disc.desc": "Gegagedigedagedago",
|
||||
|
||||
|
||||
"item.nuggetmod.nugget_horse_armor": "Nugget Horse Armor",
|
||||
"item.nuggetmod.nugget_armor_trim_smithing_template": "Smithing Template",
|
||||
|
||||
"item.nuggetmod.nugget_helmet": "Nugget Helmet",
|
||||
"item.nuggetmod.nugget_chestplate": "Nugget Chestplate",
|
||||
"item.nuggetmod.nugget_leggings": "Nugget Leggings",
|
||||
"item.nuggetmod.nugget_boots": "Nugget Boots",
|
||||
|
||||
"creativetab.nuggetmod.nugget_items": "Nugget Items",
|
||||
"creativetab.nuggetmod.nugget_blocks": "Nugget Blocks",
|
||||
|
||||
"item.nuggetmod.nugget.tooltip": "THE NUGGET",
|
||||
|
||||
"entity.minecraft.villager.nuggeter": "Nuggeter",
|
||||
|
||||
"trim_material.nuggetmod.nugget": "Nugget Material",
|
||||
"trim_pattern.nuggetmod.nugget_trim_material": "Nugget Trim",
|
||||
"trim_pattern.nuggetmod.nugget_armor_trim_smithing_template": "§6Nugget Armor Trim",
|
||||
"trim_pattern.nuggetmod.nugget": "Nugget Trim",
|
||||
|
||||
"painting.nuggetmod.nugget_painting.title": "Nugget Painting",
|
||||
"painting.nuggetmod.nugget_painting.author": "Nugget Mod"
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
"item.nuggetmod.raw_nugget": "Nugget Crudo",
|
||||
"item.nuggetmod.nugget": "Nugget",
|
||||
|
||||
"item.nuggetmod.nugget_block": "Bloque de Nuggets",
|
||||
"item.nuggetmod.raw_nugget_block": "Bloque de Nuggets Crudos",
|
||||
"item.nuggetmod.nugget_ore": "Mineral de Nuggets",
|
||||
"item.nuggetmod.nugget_deepslate_ore": "Mineral de Nuggets de Pizca Profunda",
|
||||
"block.nuggetmod.nugget_block": "Bloque de Nuggets",
|
||||
"block.nuggetmod.raw_nugget_block": "Bloque de Nuggets Crudos",
|
||||
"block.nuggetmod.nugget_ore": "Mineral de Nuggets",
|
||||
"block.nuggetmod.nugget_deepslate_ore": "Mineral de Nuggets de Pizca Profunda",
|
||||
|
||||
"item.nuggetmod.nugget_sword": "Espada de Nuggets",
|
||||
"item.nuggetmod.nugget_pickaxe": "Pico de Nuggets",
|
||||
@@ -17,7 +17,7 @@
|
||||
"item.nuggetmod.nugget_music_disc.desc": "Gegagedigedagedago",
|
||||
|
||||
"item.nuggetmod.nugget_horse_armor": "Armadura de Caballo de Nuggets",
|
||||
"item.nuggetmod.nugget_armor_trim_smithing_template": "§6Adorno de Armadura de Nuggets",
|
||||
"item.nuggetmod.nugget_armor_trim_smithing_template": "Plantilla de Adorno de Nuggets",
|
||||
|
||||
"item.nuggetmod.nugget_helmet": "Casco de Nuggets",
|
||||
"item.nuggetmod.nugget_chestplate": "Peto de Nuggets",
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "nuggetmod:item/nugget_boots"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user