Mekanism | independent Minecraft add-on featuring | Video Game library
kandi X-RAY | Mekanism Summary
Support
Quality
Security
License
Reuse
- Add custom recipes
- Adds two recipes .
- Convenience method for performing the skills .
- Creates and adds new Ore recipes
- Sanitize NBT .
- Transfer items to the shopping window
- Appends a textured texture to the buffer .
- Gets the visible area of the covered area .
- End the game .
- Simulates an insert .
Mekanism Key Features
Mekanism Examples and Code Snippets
Trending Discussions on Video Game
Trending Discussions on Video Game
QUESTION
I want Python to kind of ignore a statement that is unlikely to be called in a function that is often called.
I do not have a formal education in programming, so please excuse my lackluster ability to desribe things. I will try to explain the concept by example.
Say I am writing a video game, first-person shooter, drawing 60 frames per second. In the settings menu, the user can select whether or not to display the name of other players above their head. If they disable this, I store this value as showplayernames = False
.
Then in my drawing function that outputs the graphics I have:
def draw():
#code that draws the graphics on screen
if showplayernames:
#code that draws the name of players on screen
I call this function 60 times a second, but there is absolutely no point for checking if showplayernames is True 60 times a second. It will not change that often, in fact I could make this a kind of "constant" during play by preventing it to change. If showplayernames is False, then the third and fourth lines of the code are completely redundant, but they are executed nevertheless. The computer isn't smart enough to know it can ignore it, and there is a performance difference: reading a value and then checking if it is false takes time.
I could write two copies of the game (or at least the draw() function), one with only the first two lines when the user selects not to show names in the settings, and another without the if statement, and then run the appropriate one.
def draw_with_names():
#code that draws the graphics on screen
#code that draws the name of players on screen
def draw_without_names():
#code that draws the graphics on screen
Although looping through either of these 60 times a second is more efficient than running draw()
,this is obviously not the way to go. There are dozens of settings like this.
So how do software and game designers implement these kind of "software-wide" settings efficiently?
ANSWER
Answered 2022-Apr-07 at 15:38not an game designer, but here is my voice. You could store settings inside json file next to you python, but then you need to cover reading, getting right values etc.
You could use Environment variables to store value but that would end up using still "if" in the code.
Game designers use triggers and events to get things done, and on the lowest level I would assume those things also use if's.
system-wide-settings will in the end be used with if's
You could use overwrites based on event/trigger and use "same" draw function in both times but that only complicates code, and we all know to "keep it simple".
Sorry if this is not the answer you were looking for.
QUESTION
I was trying to find a way to error/style correct a non-standard custom menu file from a decade old video game that I was working on in Notepad++ and this was the best I could come up with.
The below returns any curly brackets that aren't followed by an EOL character or are preceded by anything other than line start and 1-4 tabs, it works fine but seems like it could be a lot more elegant. Any returned brackets are incorrect unless they're the first or last in the file. More tabs are technically okay highly unlikely.
(?
Properly formatted:
Menu "MenuName"
{
Menu "SubMenuName"
{
Option "OptionName" "Command"
Option "OptionName" "Command"
}
}
// This is a comment line
// [ curly brackets in comment lines are made square so they don't get counted as balancing
All curly brackets should be on a separate line by themselves with nothing but preceding tabs. They should also be paired but I've got a plugin handling that.
Improperly formatted:
Menu "MenuName"{
Menu "SubMenuName"
{
Option "OptionName" "Command"
Option "OptionName" "Command" }
}Menu "That bracket would be wrong since the line should end afterwards.
{ //this would also be wrong
// Nothing should ever follow a bracket except a End Of Line character.
Is there some better way to implement this search/check, considering Notepad++ uses Boost regex and doesn't allow variable-length lookbehinds? Also perhaps keeping in mind that I learned everything I know about regex last night.
The expression also returns the first (no preceding tab) and last (no EOL character) but I'm okay with that particular behavior.
The full content of a file I use as a template:
It loads from a loose file in the data folder, completely as is.
//DO NOT DELETE, needs a line here for some reason.
Menu "MenuNameTEMPLATE"
{
Title "TitleName"
Option "OptionName" "Command"
Divider
LockedOption
{
DisplayName "OptionName"
Command "Command"
Icon "IconName"
PowerReady "PowerIdentifiers"
}
LockedOption
{
DisplayName "OptionName"
Command "Command"
Icon "IconName"
Badge "BadgeIdentifiers"
}
LockedOption
{
DisplayName "OptionName"
Command "Command"
Icon "IconName"
}
Menu "SubMenuName"
{
Title "TitleName"
Option "OptionName" "Command"
Option "OptionName" "Command"
}
}
ANSWER
Answered 2022-Mar-18 at 16:55I want to start by saying that regex is 100% the wrong tool for this, you want a custom parser to handle both validating your file and parsing it into a model you can then use.
However, with the limitations imposed by your question, the following should do it:
^(?:[^{}]*|\t{1,4}[{}])$
Rather than worry about look-arounds, simply match what you expect to find. See it in action here: https://regex101.com/r/nYNqHw/1
QUESTION
so I'm trying to create an online game using Babylon.js but have run into a problem thats got me a little stumped so hoping someone here would be willing to help me out. Please bear with me on this one, i'm a complete newbie with babylon as i've only every worked with THREE.js. Right now my game consists of a scene compromising of multiple meshes with multiple users represented as avatars (created from basic circle geometry for the moment) loaded into an environment. What I want to do is highlight the outline of these avatars ONLY when they are occluded by any other object, meaning that when they are not occluded they look normal with no highlight but when behind an object their highlighted silhouette can be seen by others (including yourself as you can see your own avatar). This is very akin to effects used in many other video games (see example below).
Thus far, based on some googling and forum browsing (Babylonjs outline through walls & https://forum.babylonjs.com/t/highlight-through-objects/8002/4) I've figured out how to highlight the outline of objects using Babylon.HighlighLayer and I know that i can render objects above others via RenderingGroups but I can't seem to figure out how to use them in conjunction to create the effect I want. The best i've managed to do is get the highlighted avatar render above everything but I need just the silhouette not the entire mesh. I'm also constrained by the fact that my scene has many meshes in it that are loaded dynamically and i'm also trying to keep things as optimal as possible. Can't afford to use very computationally expensive procedures.
Anybody know of the best way to approach this? Would greatly appreciate any advice or assistance you can provide.Thanks!
ANSWER
Answered 2022-Feb-22 at 09:36So I asked the same question on the babylon forums which helped me to find a solution. All credit goes to the guy's that helped me out over there but just in case someone else comes across this question seeking an answer, here is a link to that forum question https://forum.babylonjs.com/t/showing-highlighted-silhouette-of-mesh-only-when-it-is-occluded/27783/7
Edit: Ok thought i'd include the two possible solutions here properly as well as their babylon playgrounds. All credit goes to roland & evgeni_popov who came up with these solutions on the forum linked above.
The first solution is easier to implement but slightly less performant than the second solution.
Clone Solution: https://playground.babylonjs.com/#JXYGLT%235
// roland@babylonjs.xyz, 2022
const createScene = function () {
const scene = new BABYLON.Scene(engine);
const camera = new BABYLON.ArcRotateCamera('camera', -Math.PI / 2, Math.PI / 2, 20, new BABYLON.Vector3(0, 0, 0), scene)
camera.attachControl(canvas, true);
const light = new BABYLON.HemisphericLight("light", new BABYLON.Vector3(0, 1, 0), scene);
light.intensity = 0.7;
const wall = BABYLON.MeshBuilder.CreateBox('wall', { width: 5, height: 5, depth: 0.5 }, scene)
wall.position.y = 1
wall.position.z = -2
const sphere = BABYLON.MeshBuilder.CreateSphere('sphere', { diameter: 2, segments: 32 }, scene)
sphere.position.y = 1
const sphereClone = sphere.clone('sphereClone')
sphereClone.setEnabled(false)
const matc = new BABYLON.StandardMaterial("matc", scene);
matc.depthFunction = BABYLON.Constants.ALWAYS;
matc.disableColorWrite = true;
matc.disableDepthWrite = true;
sphereClone.material = matc;
sphere.occlusionQueryAlgorithmType = BABYLON.AbstractMesh.OCCLUSION_ALGORITHM_TYPE_ACCURATE
sphere.occlusionType = BABYLON.AbstractMesh.OCCLUSION_TYPE_STRICT
const hl = new BABYLON.HighlightLayer('hl1', scene, { camera: camera })
hl.addMesh(sphereClone, BABYLON.Color3.Green())
hl.addExcludedMesh(wall);
let t = 0;
scene.onBeforeRenderObservable.add(() => {
sphere.position.x = 10 * Math.cos(t);
sphere.position.z = 100 + 104 * Math.sin(t);
if (sphere.isOccluded) {
sphereClone.setEnabled(true)
sphereClone.position.copyFrom(sphere.position);
} else {
sphereClone.setEnabled(false)
}
t += 0.03;
})
return scene;
};
This second solution is slightly more performant than above as you don't need a clone but involves overriding the AbstactMesh._checkOcclusionQuery function which is the function that updates the isOccluded property for meshes such that the mesh is always rendered even when occluded. There’s no overhead if you are using the occlusion queries only for the purpose of drawing silhouettes however If you are also using them to avoid drawing occluded meshes then there’s an overhead because the meshes will be drawn even if they are occluded. In which case your probably best of going with the first solution
Non-Clone solution: https://playground.babylonjs.com/#JXYGLT#14
// roland@babylonjs.xyz, 2022
const createScene = function () {
const scene = new BABYLON.Scene(engine);
const camera = new BABYLON.ArcRotateCamera('camera', -Math.PI / 2, Math.PI / 2, 20, new BABYLON.Vector3(0, 0, 0), scene)
camera.attachControl(canvas, true);
const light = new BABYLON.HemisphericLight("light", new BABYLON.Vector3(0, 1, 0), scene);
light.intensity = 0.7;
const wall = BABYLON.MeshBuilder.CreateBox('wall', { width: 5, height: 5, depth: 0.5 }, scene)
wall.position.y = 1
wall.position.z = -2
const sphere = BABYLON.MeshBuilder.CreateSphere('sphere', { diameter: 2, segments: 32 }, scene)
sphere.position.y = 1
sphere.occlusionQueryAlgorithmType = BABYLON.AbstractMesh.OCCLUSION_ALGORITHM_TYPE_ACCURATE
sphere.occlusionType = BABYLON.AbstractMesh.OCCLUSION_TYPE_STRICT
const mats = new BABYLON.StandardMaterial("mats", scene);
sphere.material = mats;
const hl = new BABYLON.HighlightLayer('hl1', scene, { camera: camera })
hl.addExcludedMesh(wall);
let t = 0;
const cur = BABYLON.AbstractMesh.prototype._checkOcclusionQuery;
scene.onDisposeObservable.add(() => {
BABYLON.AbstractMesh.prototype._checkOcclusionQuery = cur;
});
BABYLON.AbstractMesh.prototype._checkOcclusionQuery = function() {
cur.apply(this);
return false;
}
scene.onBeforeRenderObservable.add(() => {
sphere.position.x = 10 * Math.cos(t);
sphere.position.z = 100 + 104 * Math.sin(t);
if (sphere.isOccluded) {
hl.addMesh(sphere, BABYLON.Color3.Green())
mats.depthFunction = BABYLON.Constants.ALWAYS;
mats.disableColorWrite = true;
} else {
hl.removeMesh(sphere);
mats.depthFunction = BABYLON.Constants.LESS;
mats.disableColorWrite = false;
}
t += 0.03;
})
return scene;
};
QUESTION
I want to extract story plots from the English Wikipedia. I'm only looking for a few (~100) and the source of the plots doesn't matter, e.g. novels, video games, etc.
I briefly tried a few things that didn't work, and need some clarification on what I'm missing and where to direct my efforts. It would be nice if I could avoid manual parsing and could get just issue a single query.
Things I tried 1. markriedl/WikiPlotsThis repo downloads the pages-articles
dump, expands it using wikiextractor, then scans each article and saves the contents of each section whose title contains "plot". This is a heavy-handed method of achieving what I want, but I gave it a try and failed. I had to run wikiextractor inside Docker because there are known issues with Windows, and then wikiextractor failed because there is a problem with the --html flag.
I could probably get this working but it would take a lot of effort and there seemed like better ways.
2. WikidataI used the Wikidata SPARQL service and was able to get some queries working, but it seems like Wikidata only deals with metadata and relationships. Specifically, I was able to get novel titles but unable to get novel summaries.
3. DBpediaIn theory, DBpedia should be exactly what I want because it's "Wikipedia but structured", but they don't have nice tutorials and examples like Wikidata so I couldn't figure out how to use their SPARQL endpoint. Google wasn't much help either and seemed to imply that it's common to setup your own graph DB to query, which is beyond my scope.
4. QuarryThis is a new query service that lets you query several Wikimedia databases. Sounds promising but I was again unable to grab content.
5. PetScan & title downloadThis SO answer says I can query PetScan to get Wikipedia titles, download HTML from Wikipedia.org, then parse that HTML. This sounds like it would work, but PetScan looks intimidating and this involves HTML parsing that I want to avoid if possible.
ANSWER
Answered 2022-Feb-18 at 21:32There's no straightforward way to do this as Wikipedia content isn't structured as you would like it to be. I'd use petscan to get a list of articles based on the category, feed them in to e.g. https://en.wikipedia.org/w/api.php?action=parse&page=The%20Hobbit&format=json&prop=sections iterate through the sections and if the 'line' attribute == 'Plot' then call e.g. https://en.wikipedia.org/w/api.php?action=parse&page=The%20Hobbit&format=json&prop=text§ion=2 where 'section' = 'number' of the section titled plot. That gives you html and I can't figure out how to just get the plain text, but you might be able to make sense of https://www.mediawiki.org/w/api.php?action=help&modules=parse
QUESTION
I have an array of object and I need to get a single property, but it's returning undefined and have no idea why. Does anyone know how to solve?
const [questions, setQuestions] = useState({});
const [index, setIndex] = useState(0);
async function handleQuestions() {
const fetchQuestions = await fetchTriviaApi();
setQuestions(fetchQuestions.results);
}
useEffect(() => {
handleQuestions();
}, []);
Return of questions:
(5) [{…}, {…}, {…}, {…}, {…}]
0: {category: 'Entertainment: Music', type: 'boolean', difficulty: 'medium', question: 'Rapper Snoop Dogg's real name is 'Cordozar Calvin Broadus, Jr.'.', correct_answer: 'True', …}
1: {category: 'Entertainment: Video Games', type: 'multiple', difficulty: 'medium', question: 'Which of these "Worms" games featured 3D gameplay?', correct_answer: 'Worms 4: Mayhem', …}
2: {category: 'Vehicles', type: 'multiple', difficulty: 'easy', question: 'What UK Train does NOT go over 125MPH?', correct_answer: 'Sprinter', …}
3: {category: 'Entertainment: Video Games', type: 'boolean', difficulty: 'medium', question: 'Tony Hawk's Pro Skater was released in 1999.', correct_answer: 'True', …}
4: {category: 'Entertainment: Video Games', type: 'boolean', difficulty: 'hard', question: 'In The Witcher 3, the Zoltan Chivay Gwent card can be found under the Hanged Man's Tree.', correct_answer: 'True', …}
length: 5
Return of questions[index]:
{category: 'Entertainment: Music', type: 'boolean', difficulty: 'medium', question: 'Rapper Snoop Dogg's real name is 'Cordozar Calvin Broadus, Jr.'.', correct_answer: 'True', …}
Return of questions[index].category: When I try to access any property it returns undefined.
ANSWER
Answered 2022-Feb-18 at 14:41You need to initialize the questions
state to an empty array.
const [questions, setQuestions] = useState([]);
And when accessing the items you have to check whether the questions
is populated by the API call.
{questions.length > 0 && questions[index].category}
QUESTION
I would like to create an empty half circle in CSS/SASS, here's my code snippet for the half circle, here's the output:
.half-circle{
width: 60px;
height: 120px;
border-radius: 60px 0 0 60px;
background: #15DEA5;
}
ANSWER
Answered 2022-Feb-16 at 12:19 .half-circle {
width: 60px;
height: 120px;
border-top-left-radius: 110px;
border-bottom-left-radius: 110px;
border: 10px solid gray;
border-right: 0;
}
HTML:
QUESTION
In a section of my code I made a row-grid for a part that displays images but when I went to insert and look at the website its not displaying in a row format but in a column and im not sure why. I thought the problem came from it being col-sm-6 but i changed it to col-sm-12 and its still not displaying it. Any reasons why?
.site-main .project-area {
padding: 4rem 0;
}
.site-main .project-area .button-group button {
background: transparent;
border: none;
font: normal 500 16px/130px var(--lato);
text-transform: uppercase;
}
.site-main .project-area .button-group button+button {
padding-left: 3rem;
}
.site-main .project-area .grid .our-project>title h4 {
font: normal 700 25px/12px var(--lato);
}
Recent Projects
Quality Work
All
Cars
Characters
Food
Activities
minimul design
Latest, Popular
video game character
popular, Portfolio
minimul design
Latest, Popular
minimul design
Latest, Popular
ANSWER
Answered 2022-Feb-04 at 08:32Changing the class row-grid
to row
makes it work. I don't think Bootstrap has a class called row-grid.
If you are trying to fit all the div elements into one row, just replace the col-lg-4 col-md-6 col-sm-6
and the col-lg-4 col-md-6 col-sm-12
with col
QUESTION
I've been having trouble with collisions in pygame. Specifically, I have a player and a list of walls, and if they collide, I'm supposed to prevent any more movement in that direction.
I've tried many guides but I can't seem to get this to work myself.
import pygame
pygame.init()
win = pygame.display.set_mode((800,600))
pygame.display.set_caption("Game")
playerX = 380 #Player X coordinate
playerY = 380 #Player Y coordinate
playerXVel = 10 #Horizontal Velocity
playerYVel = 10 #Vertical Velocity
overworld = (248, 192, 117)
run = True
while run: #The game starts running
win.fill(overworld)
pygame.time.delay(30)
for event in pygame.event.get(): #You can stop the game now too
if event.type == pygame.QUIT:
run = False
class Player: #This is you
def __init__(self):
self.rect = pygame.Rect(playerX,playerY,50,50)
player = Player()
class Wall: #The walls
def __init__(self, pos):
walls.append(self)
self.rect = pygame.Rect(pos[0], pos[1], 50, 50)
walls = []
keys = pygame.key.get_pressed() #To retain the feel of retro video games, I have made it impossible to walk diagonally
if keys[pygame.K_w] and not keys[pygame.K_a] and not keys[pygame.K_d]:
playerY -= playerYVel
if keys[pygame.K_a] and not keys[pygame.K_w] and not keys[pygame.K_s]:
playerX -= playerXVel
if keys[pygame.K_s] and not keys[pygame.K_a] and not keys[pygame.K_d]:
playerY += playerYVel
if keys[pygame.K_d] and not keys[pygame.K_s] and not keys[pygame.K_w]:
playerX += playerXVel
#I copied this section of code
#Credit: https://www.pygame.org/project-Rect+Collision+Response-1061-.html
level = [
"WWWWWWWWWWWWWWWW",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"WWWWWWWWWWWWWWWW",
]
x = y = 0
for row in level:
for col in row:
if col == "W":
Wall((x, y))
x += 50
y += 50
x = 0
#Drawing every rectangle in :3
pygame.draw.rect(win, (0, 255, 0), player.rect)
for wall in walls:
pygame.draw.rect(win, (143, 41, 3), wall.rect)
pygame.display.update()
pygame.quit()
So far so good. I have walls, I have a player, and that player can move. The player can, however, walk through the walls.
I want to put a piece of code in that prevents velocity being added or removed if the player collides with a wall. This what I've tried for walking upwards, but it just makes it so that I cannot walk upwards altogether
for allwalls in walls:
if not player.rect.colliderect(allwalls):
playerY -= playerYVel
Could anyone tell me what I'm doing wrong/what I should be entering into the code instead to prevent a player from moving through a wall?
ANSWER
Answered 2022-Jan-09 at 19:46Create the objects once before the application loop. You don't need the variables playerX
and playerY
at all. Use player.rect.x
and player.rect.y
instead.
Store the position of the player before moving it. If a collision is detected, restore player position:
oldPlyerX, oldPlyerY = player.rect.topleft # store player position
keys = pygame.key.get_pressed()
if keys[pygame.K_w] and not keys[pygame.K_a] and not keys[pygame.K_d]:
player.rect.y -= playerYVel
if keys[pygame.K_a] and not keys[pygame.K_w] and not keys[pygame.K_s]:
player.rect.x -= playerXVel
if keys[pygame.K_s] and not keys[pygame.K_a] and not keys[pygame.K_d]:
player.rect.y += playerYVel
if keys[pygame.K_d] and not keys[pygame.K_s] and not keys[pygame.K_w]:
player.rect.x += playerXVel
for allwalls in walls:
if player.rect.colliderect(allwalls):
player.rect.topleft = oldPlyerX, oldPlyerY # restore player position
Complete example:
import pygame
pygame.init()
win = pygame.display.set_mode((800,600))
pygame.display.set_caption("Game")
playerXVel = 10 #Horizontal Velocity
playerYVel = 10 #Vertical Velocity
overworld = (248, 192, 117)
class Player: #This is you
def __init__(self):
self.rect = pygame.Rect(380,380,50,50)
player = Player()
class Wall: #The walls
def __init__(self, pos):
walls.append(self)
self.rect = pygame.Rect(pos[0], pos[1], 50, 50)
walls = []
#I copied this section of code
#Credit: https://www.pygame.org/project-Rect+Collision+Response-1061-.html
level = [
"WWWWWWWWWWWWWWWW",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"W W",
"WWWWWWWWWWWWWWWW",
]
x = y = 0
for row in level:
for col in row:
if col == "W":
Wall((x, y))
x += 50
y += 50
x = 0
run = True
while run: #The game starts running
win.fill(overworld)
pygame.time.delay(30)
for event in pygame.event.get(): #You can stop the game now too
if event.type == pygame.QUIT:
run = False
oldPlyerX, oldPlyerY = player.rect.topleft
keys = pygame.key.get_pressed() #To retain the feel of retro video games, I have made it impossible to walk diagonally
if keys[pygame.K_w] and not keys[pygame.K_a] and not keys[pygame.K_d]:
player.rect.y -= playerYVel
if keys[pygame.K_a] and not keys[pygame.K_w] and not keys[pygame.K_s]:
player.rect.x -= playerXVel
if keys[pygame.K_s] and not keys[pygame.K_a] and not keys[pygame.K_d]:
player.rect.y += playerYVel
if keys[pygame.K_d] and not keys[pygame.K_s] and not keys[pygame.K_w]:
player.rect.x += playerXVel
for allwalls in walls:
if player.rect.colliderect(allwalls):
player.rect.topleft = oldPlyerX, oldPlyerY
#Drawing every rectangle in :3
pygame.draw.rect(win, (0, 255, 0), player.rect)
for wall in walls:
pygame.draw.rect(win, (143, 41, 3), wall.rect)
pygame.display.update()
pygame.quit()
QUESTION
In case of duplicate - i already readed other posts from stackoverflow. Most of them are asociated with Unity3D, and a lot of them are using keywords like theta/omega .. ect. I can't understand any of that stuff. Also, i have 0 knowledge of those formula symbols so i understand 0% of what i readed.
I experiment making a bot for a video game, the only thing im stuck with is how to get the needed rotation degree till i face the given cordinate. Here i made quick example of my question in programming.
Things that i know in the situation:
- Player1 position
- Player1 rotation
- Player2 position (i need to face this player)
2D map of the situation. Click here
And here is how it looks in c#
using System;
public class Program
{
// Player 1 cordinates
public static float p1x = 2;
public static float p1y = 3;
public static float p1rotation = 0; // In degrees 0-360
// Player 2 cordinates
public static float p2x = 6;
public static float p2y = 4;
// Player 1 needed degree to face Player 2
public static float needed_distance;
public static void Main()
{
needed_distance = ??; // no clue how to get this value ...
Console.WriteLine("The needed distance is: "+needed_distance);
}
}
Please don't mark this as a duplicate, my math skills are even below zero. I can understand better if someone tries to answer me using the example that i made.
ANSWER
Answered 2021-Dec-28 at 20:35You are looking for Math.Atan2 method:
private static float Rotation(float p1x, float p1y, float p2x, float p2y) =>
(float)(Math.Atan2(p1x - p2x, p2y - p1y) * 180.0 / Math.PI + 630) % 360.0f;
private static float Distance(float p1x, float p1y, float p2x, float p2y) =>
(float)Math.Sqrt((p1x - p2x) * (p1x - p2x) + (p1y - p2y) * (p1y - p2y));
Demo:
Console.WriteLine(Rotation(2, 3, 6, 4));
Outcome:
194.0362548828125
So, if player #1 initial rotation1 = 0
(s)he needs to turn at ~ 194
degree. In case of player #1 arbitrary initial rotation1
:
float rotation1 = ...;
float requiredRotation = (Rotation(p1x, p1y, p2x, p2y) -
(rotation1 % 360f) + 360f) % 360f;
QUESTION
[
{"923390702359048212": 5},
{"462291477964259329": 1},
{"803390252265242634": 3},
{"824114065445486592": 2},
{"832041337968263178": 4}
]
This is a list of user ids that I just randomly made and some sample number that each id has. In this case lets call it a number of goals scored in a season in a video game. As I try to update the amount of goals scored at the end of the game, I have to go in a roundabout way which first gets all the member ids in the server, and then compares it to the data with the following code.
amount = 0
for member in server:
if member.id != server.member.id:
amount = amount + 1
else:
print(amount)
print(str(member.id), str(server.member.id))
print(jsondata[amount][str(server.member.id)])
break
jsondata[amount][str(server.member.id) = jsondata[amount][str(server.member.id)] + 1
Is there a better way to do what I am working on? I know I am going to run into problems eventually as I don't list members on the json until they score a goal and also I feel like I am wasting a ton of time with my program by having it check a lot of members (I edited out my real list and made this one to make it easier as nobody needs to see 50+ entries to get the idea). I am still a beginner when it comes to this so please respond in simple terms or leave links to places I can learn more complicated ideas. Thanks
def goalscored():
amount = 0
for member in server:
if member.id != server.member.id:
amount = amount + 1
else:
print(amount)
break
with open('Goals.json','w') as f:
jsondata = json.load(f)
jsondata[amount][str(server.member.id) = jsondata[amount][str(server.member.id)] + 1
json.dump(jsondata,f)
def firstgoal(server.member.id):
with open('Goals.json','w') as f:
jsondata = json.load(f)
amount = 0
goalscored = 1
totalmembers = server.members.amount
for member in server:
if membed.id !=server.member.id:
amount = amount + 1
if amount == totalmembers:
NewScore = {user.id:goalscored}
json.dump(NewScore,f)
Code that I'm using
ANSWER
Answered 2021-Dec-25 at 19:23Not sure why you couldn't get it work earlier, but storing it as dict would be much, much easier.
# file.json
{
"923390702359048212": 5,
"462291477964259329": 1,
"803390252265242634": 3,
"824114065445486592": 2,
"832041337968263178": 4
}
def goalscored():
with open("Goals.json", "r") as f:
jsondata = json.load(f)
# Make sure your id is not int but str
if server.member.id not in jsondata: # first goal case
jsondata[server.member.id] = 0
jsondata[server.member.id] += 1
with open("Goals.json", "w") as f:
json.dump(jsondata, f)
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install Mekanism
You can use Mekanism like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the Mekanism component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .
Support
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesExplore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits
Save this library and start creating your kit
Share this Page